Repository 'phephenix'
hg clone https://toolshed.g2.bx.psu.edu/repos/ulfschaefer/phephenix

Changeset 0:cb29f95c7b88 (2016-05-09)
Next changeset 1:162c88041ed7 (2016-05-10)
Commit message:
Uploaded
added:
LICENSE
filter_vcf.sh
filter_vcf.xml
test-data/1_short.vcf
test-data/2_short.vcf
test-data/test_input.vcf
test-data/test_output.vcf
test-data/testresult.fa
tool_dependencies.xml
vcfs2fasta.sh
vcfs2fasta.xml
b
diff -r 000000000000 -r cb29f95c7b88 LICENSE
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/LICENSE Mon May 09 09:27:06 2016 -0400
b
b'@@ -0,0 +1,676 @@\n+\n+\n+                    GNU GENERAL PUBLIC LICENSE\n+                       Version 3, 29 June 2007\n+\n+ Copyright (C) 2007 Free Software Foundation, Inc. <http://fsf.org/>\n+ Everyone is permitted to copy and distribute verbatim copies\n+ of this license document, but changing it is not allowed.\n+\n+                            Preamble\n+\n+  The GNU General Public License is a free, copyleft license for\n+software and other kinds of works.\n+\n+  The licenses for most software and other practical works are designed\n+to take away your freedom to share and change the works.  By contrast,\n+the GNU General Public License is intended to guarantee your freedom to\n+share and change all versions of a program--to make sure it remains free\n+software for all its users.  We, the Free Software Foundation, use the\n+GNU General Public License for most of our software; it applies also to\n+any other work released this way by its authors.  You can apply it to\n+your programs, too.\n+\n+  When we speak of free software, we are referring to freedom, not\n+price.  Our General Public Licenses are designed to make sure that you\n+have the freedom to distribute copies of free software (and charge for\n+them if you wish), that you receive source code or can get it if you\n+want it, that you can change the software or use pieces of it in new\n+free programs, and that you know you can do these things.\n+\n+  To protect your rights, we need to prevent others from denying you\n+these rights or asking you to surrender the rights.  Therefore, you have\n+certain responsibilities if you distribute copies of the software, or if\n+you modify it: responsibilities to respect the freedom of others.\n+\n+  For example, if you distribute copies of such a program, whether\n+gratis or for a fee, you must pass on to the recipients the same\n+freedoms that you received.  You must make sure that they, too, receive\n+or can get the source code.  And you must show them these terms so they\n+know their rights.\n+\n+  Developers that use the GNU GPL protect your rights with two steps:\n+(1) assert copyright on the software, and (2) offer you this License\n+giving you legal permission to copy, distribute and/or modify it.\n+\n+  For the developers\' and authors\' protection, the GPL clearly explains\n+that there is no warranty for this free software.  For both users\' and\n+authors\' sake, the GPL requires that modified versions be marked as\n+changed, so that their problems will not be attributed erroneously to\n+authors of previous versions.\n+\n+  Some devices are designed to deny users access to install or run\n+modified versions of the software inside them, although the manufacturer\n+can do so.  This is fundamentally incompatible with the aim of\n+protecting users\' freedom to change the software.  The systematic\n+pattern of such abuse occurs in the area of products for individuals to\n+use, which is precisely where it is most unacceptable.  Therefore, we\n+have designed this version of the GPL to prohibit the practice for those\n+products.  If such problems arise substantially in other domains, we\n+stand ready to extend this provision to those domains in future versions\n+of the GPL, as needed to protect the freedom of users.\n+\n+  Finally, every program is threatened constantly by software patents.\n+States should not allow patents to restrict development and use of\n+software on general-purpose computers, but in those that do, we wish to\n+avoid the special danger that patents applied to a free program could\n+make it effectively proprietary.  To prevent this, the GPL assures that\n+patents cannot be used to render the program non-free.\n+\n+  The precise terms and conditions for copying, distribution and\n+modification follow.\n+\n+                       TERMS AND CONDITIONS\n+\n+  0. Definitions.\n+\n+  "This License" refers to version 3 of the GNU General Public License.\n+\n+  "Copyright" also means copyright-like laws that apply to other kinds of\n+works, such as semiconductor masks.\n+\n+  "The Program" refers '..b'CE OF THE PROGRAM\n+IS WITH YOU.  SHOULD THE PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF\n+ALL NECESSARY SERVICING, REPAIR OR CORRECTION.\n+\n+  16. Limitation of Liability.\n+\n+  IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING\n+WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MODIFIES AND/OR CONVEYS\n+THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES, INCLUDING ANY\n+GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING OUT OF THE\n+USE OR INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED TO LOSS OF\n+DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY YOU OR THIRD\n+PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER PROGRAMS),\n+EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE POSSIBILITY OF\n+SUCH DAMAGES.\n+\n+  17. Interpretation of Sections 15 and 16.\n+\n+  If the disclaimer of warranty and limitation of liability provided\n+above cannot be given local legal effect according to their terms,\n+reviewing courts shall apply local law that most closely approximates\n+an absolute waiver of all civil liability in connection with the\n+Program, unless a warranty or assumption of liability accompanies a\n+copy of the Program in return for a fee.\n+\n+                     END OF TERMS AND CONDITIONS\n+\n+            How to Apply These Terms to Your New Programs\n+\n+  If you develop a new program, and you want it to be of the greatest\n+possible use to the public, the best way to achieve this is to make it\n+free software which everyone can redistribute and change under these terms.\n+\n+  To do so, attach the following notices to the program.  It is safest\n+to attach them to the start of each source file to most effectively\n+state the exclusion of warranty; and each file should have at least\n+the "copyright" line and a pointer to where the full notice is found.\n+\n+    {one line to give the program\'s name and a brief idea of what it does.}\n+    Copyright (C) {year}  {name of author}\n+\n+    This program is free software: you can redistribute it and/or modify\n+    it under the terms of the GNU General Public License as published by\n+    the Free Software Foundation, either version 3 of the License, or\n+    (at your option) any later version.\n+\n+    This program is distributed in the hope that it will be useful,\n+    but WITHOUT ANY WARRANTY; without even the implied warranty of\n+    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n+    GNU General Public License for more details.\n+\n+    You should have received a copy of the GNU General Public License\n+    along with this program.  If not, see <http://www.gnu.org/licenses/>.\n+\n+Also add information on how to contact you by electronic and paper mail.\n+\n+  If the program does terminal interaction, make it output a short\n+notice like this when it starts in an interactive mode:\n+\n+    {project}  Copyright (C) {year}  {fullname}\n+    This program comes with ABSOLUTELY NO WARRANTY; for details type `show w\'.\n+    This is free software, and you are welcome to redistribute it\n+    under certain conditions; type `show c\' for details.\n+\n+The hypothetical commands `show w\' and `show c\' should show the appropriate\n+parts of the General Public License.  Of course, your program\'s commands\n+might be different; for a GUI interface, you would use an "about box".\n+\n+  You should also get your employer (if you work as a programmer) or school,\n+if any, to sign a "copyright disclaimer" for the program, if necessary.\n+For more information on this, and how to apply and follow the GNU GPL, see\n+<http://www.gnu.org/licenses/>.\n+\n+  The GNU General Public License does not permit incorporating your program\n+into proprietary programs.  If your program is a subroutine library, you\n+may consider it more useful to permit linking proprietary applications with\n+the library.  If this is what you want to do, use the GNU Lesser General\n+Public License instead of this License.  But first, please read\n+<http://www.gnu.org/philosophy/why-not-lgpl.html>.\n'
b
diff -r 000000000000 -r cb29f95c7b88 filter_vcf.sh
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/filter_vcf.sh Mon May 09 09:27:06 2016 -0400
[
@@ -0,0 +1,22 @@
+#!/bin/bash
+
+# echo $@
+
+OUTPUT=$1
+shift
+VCF=$1
+shift
+ONLYGOOD=$1
+shift
+FILTERS=$@
+
+FILTERS=$(echo -n $FILTERS | sed 's/ /,/g')
+
+CMD="phenix.py filter_vcf --vcf $VCF --filters $FILTERS --output $OUTPUT"
+
+if [ $ONLYGOOD != "NOTTHERE" ]; then
+    CMD="$CMD --only-good"
+fi
+
+echo "CMD: "$CMD
+eval $CMD
b
diff -r 000000000000 -r cb29f95c7b88 filter_vcf.xml
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/filter_vcf.xml Mon May 09 09:27:06 2016 -0400
[
@@ -0,0 +1,112 @@
+<tool id="filter_vcf" name="Filter VCF" version="1.0">
+  <description>filters a VCF file</description>
+  <requirements>
+    <requirement type="package" version="2.7.10">python</requirement>
+    <requirement type="package" version="0.6.8dev">pyvcf</requirement>
+    <requirement type="package" version="3.11">pyyaml</requirement>
+    <requirement type="package" version="2.0.2">bintrees</requirement>
+ <requirement type="package" version="1.66">biopython</requirement>
+ <requirement type="package" version="1.4">matplotlib</requirement>
+ <requirement type="package" version="0.23.1">cython</requirement>
+ <requirement type="package" version="1.0">phephenix</requirement>
+  </requirements>
+  <stdio>
+    <!-- Assume anything other than zero is an error -->
+    <exit_code range="1:" />
+    <exit_code range=":-1" />
+  </stdio>
+  <command interpreter="bash">
+    filter_vcf.sh
+ $output
+ $input
+    #if str($onlygood) == "false":
+ onlygood
+ #else
+ NOTTHERE
+ #end if
+ #for $sf in $snp_filter:
+ #for $name, $param in $sf.snp_filter_type.iteritems():
+ #if $name not in [ "__current_case__", "snp_filter_type_selector" ]:
+ ${name}:"${param}"
+ #end if
+ #end for
+ #end for
+  </command>
+
+  <inputs>
+    <param name="input" type="data" format="vcf" label="VCF File to filter" />
+
+    <repeat name="snp_filter" title="SNP Filter" help="">
+        <conditional name="snp_filter_type">
+ <param name="snp_filter_type_selector" type="select" label="SNP Filter Type">
+ <option value="gq_score_option">GQ score</option>
+ <option value="dp4_ratio_option">DP4 ratio</option>
+ <option value="ad_ratio_option">AD ratio</option>
+ <option value="mq_score_option">MQ score</option>
+ <option value="min_depth_option">Minimum depth</option>
+ <option value="uncall_gt_option">Uncall GT</option>
+ <option value="mq0_ratio_option">MQ0 ratio</option>
+ <option value="qual_score_option">Quality score</option>
+ <option value="mq0f_ratio_option">MQ0F ratio</option>
+            </param>
+ <when value="gq_score_option">
+ <param name="gq_score" type="integer" value="0" label="Minimum GC score" help="Type integer"/>
+ </when>
+ <when value="dp4_ratio_option">
+ <param name="dp4_ratio" type="float" value="0.9" label="Minimum DP4 ratio" help="Type float"/>
+ </when>
+ <when value="ad_ratio_option">
+ <param name="ad_ratio" type="float" value="0.9" label="Minimum AD ratio" help="Type float"/>
+ </when>
+ <when value="mq_score_option">
+ <param name="mq_score" type="integer" value="30" label="Minimum MQ score" help="Type integer"/>
+ </when>
+ <when value="min_depth_option">
+ <param name="min_depth" type="integer" value="5" label="Minimum depth" help="Type integer"/>
+ </when>
+ <when value="uncall_gt_option">
+ <param name="uncall_gt" type="text" value="" hidden="True"/>
+ </when>
+ <when value="mq0_ratio_option">
+ <param name="mq0_ratio" type="float" value="0.05" label="Minimim MQ0 ratio" help="Type float"/>
+ </when>
+ <when value="qual_score_option">
+ <param name="qual_score" type="integer" value="30" label="Minimim quality score" help="Type integer"/>
+ </when>
+ <when value="mq0f_ratio_option">
+ <param name="mq0f_ratio" type="float" value="0.05" label="Minimum MQ0F ratio" help="Type float"/>
+ </when>
+ </conditional>
+    </repeat>
+ <param name="onlygood" type="select" label="Write only good variants to output" help="Write only variants that PASS all filters. ">
+ <option value="true" selected="true">Write all</option>
+ <option value="false">Write only good</option>
+    </param>
+  </inputs>
+
+  <outputs>
+    <data format="vcf" name="output" label="${tool.name} on ${on_string}: filtered VCF" />
+  </outputs>
+    <tests>
+        <test>
+            <param name="input" value="test_input.vcf" ftype="vcf" />
+            <param name="min_depth" value="100" />
+            <output name="output" file="test_output.vcf" ftype="vcf" />
+        </test>
+    </tests>
+  <help>
+
+usage: filter_vcf.py [-h] \-\-vcf VCF \-\-filters FILTERS \-\-output OUTPUT
+
+optional arguments:
+
+-h, \-\-help            show this help message and exit
+
+\-\-vcf VCF, -v VCF     VCF file to (re)filter.
+
+\-\-filters FILTERS, -f FILTERS Filter(s) to apply as key:threshold pairs, separated by comma.
+
+\-\-output OUTPUT, -o OUTPUT Location for filtered VCF to be written.
+
+  </help>
+</tool>
b
diff -r 000000000000 -r cb29f95c7b88 test-data/1_short.vcf
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/test-data/1_short.vcf Mon May 09 09:27:06 2016 -0400
[
b'@@ -0,0 +1,50000 @@\n+##fileformat=VCFv4.1\n+##FILTER=<ID=LowQual,Description="Low quality">\n+##FORMAT=<ID=AD,Number=.,Type=Integer,Description="Allelic depths for the ref and alt alleles in the order listed">\n+##FORMAT=<ID=DP,Number=1,Type=Integer,Description="Approximate read depth (reads with MQ=255 or with bad mates are filtered)">\n+##FORMAT=<ID=GQ,Number=1,Type=Integer,Description="Genotype Quality">\n+##FORMAT=<ID=GT,Number=1,Type=String,Description="Genotype">\n+##FORMAT=<ID=PL,Number=G,Type=Integer,Description="Normalized, Phred-scaled likelihoods for genotypes as defined in the VCF specification">\n+##GATKCommandLine=<ID=SelectVariants,Version=2.6-5-gba531bd,Date="Thu May 22 09:24:36 BST 2014",Epoch=1400747076888,CommandLineOptions="analysis_type=SelectVariants input_file=[] read_buffer_size=null phone_home=AWS gatk_key=null tag=NA read_filter=[] intervals=null excludeIntervals=null interval_set_rule=UNION interval_merging=ALL interval_padding=0 reference_sequence=/phengs/galaxy/database/tmp/tmp-gatk-lMh4vi/gatk_input.fasta nonDeterministicRandomSeed=false disableDithering=false maxRuntime=-1 maxRuntimeUnits=MINUTES downsampling_type=BY_SAMPLE downsample_to_fraction=null downsample_to_coverage=1000 baq=OFF baqGapOpenPenalty=40.0 fix_misencoded_quality_scores=false allow_potentially_misencoded_quality_scores=false useOriginalQualities=false defaultBaseQualities=-1 performanceLog=null BQSR=null quantize_quals=0 disable_indel_quals=false emit_original_quals=false preserve_qscores_less_than=6 globalQScorePrior=-1.0 allow_bqsr_on_reduced_bams_despite_repeated_warnings=false validation_strictness=SILENT remove_program_records=false keep_program_records=false unsafe=null disable_auto_index_creation_and_locking_when_reading_rods=false num_threads=2 num_cpu_threads_per_data_thread=1 num_io_threads=0 monitorThreadEfficiency=false num_bam_file_handles=null read_group_black_list=null pedigree=[] pedigreeString=[] pedigreeValidationType=STRICT allow_intervals_with_unindexed_bam=false generateShadowBCF=false logging_level=INFO log_to_file=null help=false version=false variant=(RodBinding name=variant source=/phengs/galaxy/database/tmp/tmp-gatk-lMh4vi/input_variant.vcf) discordance=(RodBinding name= source=UNBOUND) concordance=(RodBinding name= source=UNBOUND) out=org.broadinstitute.sting.gatk.io.stubs.VariantContextWriterStub no_cmdline_in_header=org.broadinstitute.sting.gatk.io.stubs.VariantContextWriterStub sites_only=org.broadinstitute.sting.gatk.io.stubs.VariantContextWriterStub bcf=org.broadinstitute.sting.gatk.io.stubs.VariantContextWriterStub sample_name=[] sample_expressions=null sample_file=null exclude_sample_name=[] exclude_sample_file=[] select_expressions=[] excludeNonVariants=false excludeFiltered=false restrictAllelesTo=ALL keepOriginalAC=false mendelianViolation=false mendelianViolationQualThreshold=0.0 select_random_fraction=0.0 remove_fraction_genotypes=0.0 selectTypeToInclude=[SNP] keepIDs=null fullyDecode=false forceGenotypesDecode=false justRead=false maxIndelSize=2147483647 ALLOW_NONOVERLAPPING_COMMAND_LINE_SAMPLES=false filter_reads_with_N_cigar=false filter_mismatching_base_and_quals=false filter_bases_not_stored=false">\n+##GATKCommandLine=<ID=UnifiedGenotyper,Version=2.6-5-gba531bd,Date="Thu May 22 09:10:24 BST 2014",Epoch=1400746224902,CommandLineOptions="analysis_type=UnifiedGenotyper input_file=[/phengs/galaxy/database/tmp/tmp-gatk-x7S0pF/gatk_input_0.bam] read_buffer_size=null phone_home=AWS gatk_key=null tag=NA read_filter=[BadCigar] intervals=null excludeIntervals=null interval_set_rule=UNION interval_merging=ALL interval_padding=0 reference_sequence=/phengs/galaxy/database/tmp/tmp-gatk-x7S0pF/gatk_input.fasta nonDeterministicRandomSeed=false disableDithering=false maxRuntime=-1 maxRuntimeUnits=MINUTES downsampling_type=NONE downsample_to_fraction=null downsample_to_coverage=null baq=OFF baqGapOpenPenalty=40.0 fix_misencoded_quality_scores=false allow_potentially_misencoded_quality_scores=false useOrigina'..b'.\tAN=2;DP=146;MQ=60.00;MQ0=0\tGT:DP\t0/0:146\n+gi|15829254|ref|NC_002695.1|\t49922\t.\tT\t.\t434.23\t.\tAN=2;DP=144;MQ=60.00;MQ0=0\tGT:DP\t0/0:144\n+gi|15829254|ref|NC_002695.1|\t49923\t.\tC\t.\t434.23\t.\tAN=2;DP=143;MQ=60.00;MQ0=0\tGT:DP\t0/0:143\n+gi|15829254|ref|NC_002695.1|\t49924\t.\tA\t.\t428.23\t.\tAN=2;DP=141;MQ=60.00;MQ0=0\tGT:DP\t0/0:141\n+gi|15829254|ref|NC_002695.1|\t49925\t.\tA\t.\t440.23\t.\tAN=2;DP=149;MQ=60.00;MQ0=0\tGT:DP\t0/0:149\n+gi|15829254|ref|NC_002695.1|\t49926\t.\tT\t.\t440.23\t.\tAN=2;DP=152;MQ=60.00;MQ0=0\tGT:DP\t0/0:152\n+gi|15829254|ref|NC_002695.1|\t49927\t.\tG\t.\t446.23\t.\tAN=2;DP=155;MQ=60.00;MQ0=0\tGT:DP\t0/0:155\n+gi|15829254|ref|NC_002695.1|\t49928\t.\tT\t.\t452.23\t.\tAN=2;DP=157;MQ=60.00;MQ0=0\tGT:DP\t0/0:157\n+gi|15829254|ref|NC_002695.1|\t49929\t.\tC\t.\t443.23\t.\tAN=2;DP=153;MQ=60.00;MQ0=0\tGT:DP\t0/0:153\n+gi|15829254|ref|NC_002695.1|\t49930\t.\tG\t.\t449.23\t.\tAN=2;DP=155;MQ=60.00;MQ0=0\tGT:DP\t0/0:155\n+gi|15829254|ref|NC_002695.1|\t49931\t.\tA\t.\t449.23\t.\tAN=2;DP=156;MQ=60.00;MQ0=0\tGT:DP\t0/0:156\n+gi|15829254|ref|NC_002695.1|\t49932\t.\tT\t.\t461.23\t.\tAN=2;DP=159;MQ=60.00;MQ0=0\tGT:DP\t0/0:159\n+gi|15829254|ref|NC_002695.1|\t49933\t.\tG\t.\t449.23\t.\tAN=2;DP=156;MQ=60.00;MQ0=0\tGT:DP\t0/0:156\n+gi|15829254|ref|NC_002695.1|\t49934\t.\tA\t.\t455.23\t.\tAN=2;DP=156;MQ=60.00;MQ0=0\tGT:DP\t0/0:156\n+gi|15829254|ref|NC_002695.1|\t49935\t.\tA\t.\t452.23\t.\tAN=2;DP=156;MQ=60.00;MQ0=0\tGT:DP\t0/0:156\n+gi|15829254|ref|NC_002695.1|\t49936\t.\tG\t.\t455.23\t.\tAN=2;DP=158;MQ=60.00;MQ0=0\tGT:DP\t0/0:157\n+gi|15829254|ref|NC_002695.1|\t49937\t.\tA\t.\t440.23\t.\tAN=2;DP=155;MQ=60.00;MQ0=0\tGT:DP\t0/0:155\n+gi|15829254|ref|NC_002695.1|\t49938\t.\tG\t.\t449.23\t.\tAN=2;DP=157;MQ=60.00;MQ0=0\tGT:DP\t0/0:157\n+gi|15829254|ref|NC_002695.1|\t49939\t.\tC\t.\t443.23\t.\tAN=2;DP=155;MQ=60.00;MQ0=0\tGT:DP\t0/0:155\n+gi|15829254|ref|NC_002695.1|\t49940\t.\tA\t.\t440.23\t.\tAN=2;DP=154;MQ=60.00;MQ0=0\tGT:DP\t0/0:154\n+gi|15829254|ref|NC_002695.1|\t49941\t.\tT\t.\t449.23\t.\tAN=2;DP=155;MQ=60.00;MQ0=0\tGT:DP\t0/0:155\n+gi|15829254|ref|NC_002695.1|\t49942\t.\tC\t.\t446.23\t.\tAN=2;DP=155;MQ=60.00;MQ0=0\tGT:DP\t0/0:155\n+gi|15829254|ref|NC_002695.1|\t49943\t.\tC\t.\t428.23\t.\tAN=2;DP=144;MQ=60.00;MQ0=0\tGT:DP\t0/0:144\n+gi|15829254|ref|NC_002695.1|\t49944\t.\tG\t.\t428.23\t.\tAN=2;DP=144;MQ=60.00;MQ0=0\tGT:DP\t0/0:144\n+gi|15829254|ref|NC_002695.1|\t49945\t.\tC\t.\t431.23\t.\tAN=2;DP=144;MQ=60.00;MQ0=0\tGT:DP\t0/0:144\n+gi|15829254|ref|NC_002695.1|\t49946\t.\tA\t.\t425.23\t.\tAN=2;DP=144;MQ=60.00;MQ0=0\tGT:DP\t0/0:144\n+gi|15829254|ref|NC_002695.1|\t49947\t.\tC\t.\t431.23\t.\tAN=2;DP=145;MQ=60.00;MQ0=0\tGT:DP\t0/0:145\n+gi|15829254|ref|NC_002695.1|\t49948\t.\tA\t.\t404.23\t.\tAN=2;DP=137;MQ=60.00;MQ0=0\tGT:DP\t0/0:137\n+gi|15829254|ref|NC_002695.1|\t49949\t.\tT\t.\t425.23\t.\tAN=2;DP=144;MQ=60.00;MQ0=0\tGT:DP\t0/0:143\n+gi|15829254|ref|NC_002695.1|\t49950\t.\tT\t.\t419.23\t.\tAN=2;DP=144;MQ=60.00;MQ0=0\tGT:DP\t0/0:144\n+gi|15829254|ref|NC_002695.1|\t49951\t.\tG\t.\t431.23\t.\tAN=2;DP=146;MQ=60.00;MQ0=0\tGT:DP\t0/0:146\n+gi|15829254|ref|NC_002695.1|\t49952\t.\tT\t.\t437.23\t.\tAN=2;DP=146;MQ=60.00;MQ0=0\tGT:DP\t0/0:146\n+gi|15829254|ref|NC_002695.1|\t49953\t.\tT\t.\t428.23\t.\tAN=2;DP=144;MQ=60.00;MQ0=0\tGT:DP\t0/0:144\n+gi|15829254|ref|NC_002695.1|\t49954\t.\tG\t.\t434.23\t.\tAN=2;DP=146;MQ=60.00;MQ0=0\tGT:DP\t0/0:146\n+gi|15829254|ref|NC_002695.1|\t49955\t.\tT\t.\t428.23\t.\tAN=2;DP=146;MQ=60.00;MQ0=0\tGT:DP\t0/0:146\n+gi|15829254|ref|NC_002695.1|\t49956\t.\tG\t.\t434.23\t.\tAN=2;DP=146;MQ=60.00;MQ0=0\tGT:DP\t0/0:146\n+gi|15829254|ref|NC_002695.1|\t49957\t.\tA\t.\t428.23\t.\tAN=2;DP=144;MQ=60.00;MQ0=0\tGT:DP\t0/0:144\n+gi|15829254|ref|NC_002695.1|\t49958\t.\tA\t.\t416.23\t.\tAN=2;DP=140;MQ=60.00;MQ0=0\tGT:DP\t0/0:140\n+gi|15829254|ref|NC_002695.1|\t49959\t.\tA\t.\t407.23\t.\tAN=2;DP=138;MQ=60.00;MQ0=0\tGT:DP\t0/0:138\n+gi|15829254|ref|NC_002695.1|\t49960\t.\tG\t.\t395.23\t.\tAN=2;DP=136;MQ=60.00;MQ0=0\tGT:DP\t0/0:136\n+gi|15829254|ref|NC_002695.1|\t49961\t.\tC\t.\t404.23\t.\tAN=2;DP=136;MQ=60.00;MQ0=0\tGT:DP\t0/0:136\n+gi|15829254|ref|NC_002695.1|\t49962\t.\tC\t.\t392.23\t.\tAN=2;DP=134;MQ=60.00;MQ0=0\tGT:DP\t0/0:134\n+gi|15829254|ref|NC_002695.1|\t49963\t.\tG\t.\t398.23\t.\tAN=2;DP=134;MQ=60.00;MQ0=0\tGT:DP\t0/0:134\n+gi|15829254|ref|NC_002695.1|\t49964\t.\tA\t.\t398.23\t.\tAN=2;DP=136;MQ=60.00;MQ0=0\tGT:DP\t0/0:136\n'
b
diff -r 000000000000 -r cb29f95c7b88 test-data/2_short.vcf
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/test-data/2_short.vcf Mon May 09 09:27:06 2016 -0400
[
b'@@ -0,0 +1,50000 @@\n+##fileformat=VCFv4.1\n+##FILTER=<ID=LowQual,Description="Low quality">\n+##FORMAT=<ID=AD,Number=.,Type=Integer,Description="Allelic depths for the ref and alt alleles in the order listed">\n+##FORMAT=<ID=DP,Number=1,Type=Integer,Description="Approximate read depth (reads with MQ=255 or with bad mates are filtered)">\n+##FORMAT=<ID=GQ,Number=1,Type=Integer,Description="Genotype Quality">\n+##FORMAT=<ID=GT,Number=1,Type=String,Description="Genotype">\n+##FORMAT=<ID=PL,Number=G,Type=Integer,Description="Normalized, Phred-scaled likelihoods for genotypes as defined in the VCF specification">\n+##GATKCommandLine=<ID=SelectVariants,Version=2.6-5-gba531bd,Date="Thu May 22 09:15:54 BST 2014",Epoch=1400746554393,CommandLineOptions="analysis_type=SelectVariants input_file=[] read_buffer_size=null phone_home=AWS gatk_key=null tag=NA read_filter=[] intervals=null excludeIntervals=null interval_set_rule=UNION interval_merging=ALL interval_padding=0 reference_sequence=/phengs/galaxy/database/tmp/tmp-gatk-4mpB9s/gatk_input.fasta nonDeterministicRandomSeed=false disableDithering=false maxRuntime=-1 maxRuntimeUnits=MINUTES downsampling_type=BY_SAMPLE downsample_to_fraction=null downsample_to_coverage=1000 baq=OFF baqGapOpenPenalty=40.0 fix_misencoded_quality_scores=false allow_potentially_misencoded_quality_scores=false useOriginalQualities=false defaultBaseQualities=-1 performanceLog=null BQSR=null quantize_quals=0 disable_indel_quals=false emit_original_quals=false preserve_qscores_less_than=6 globalQScorePrior=-1.0 allow_bqsr_on_reduced_bams_despite_repeated_warnings=false validation_strictness=SILENT remove_program_records=false keep_program_records=false unsafe=null disable_auto_index_creation_and_locking_when_reading_rods=false num_threads=2 num_cpu_threads_per_data_thread=1 num_io_threads=0 monitorThreadEfficiency=false num_bam_file_handles=null read_group_black_list=null pedigree=[] pedigreeString=[] pedigreeValidationType=STRICT allow_intervals_with_unindexed_bam=false generateShadowBCF=false logging_level=INFO log_to_file=null help=false version=false variant=(RodBinding name=variant source=/phengs/galaxy/database/tmp/tmp-gatk-4mpB9s/input_variant.vcf) discordance=(RodBinding name= source=UNBOUND) concordance=(RodBinding name= source=UNBOUND) out=org.broadinstitute.sting.gatk.io.stubs.VariantContextWriterStub no_cmdline_in_header=org.broadinstitute.sting.gatk.io.stubs.VariantContextWriterStub sites_only=org.broadinstitute.sting.gatk.io.stubs.VariantContextWriterStub bcf=org.broadinstitute.sting.gatk.io.stubs.VariantContextWriterStub sample_name=[] sample_expressions=null sample_file=null exclude_sample_name=[] exclude_sample_file=[] select_expressions=[] excludeNonVariants=false excludeFiltered=false restrictAllelesTo=ALL keepOriginalAC=false mendelianViolation=false mendelianViolationQualThreshold=0.0 select_random_fraction=0.0 remove_fraction_genotypes=0.0 selectTypeToInclude=[SNP] keepIDs=null fullyDecode=false forceGenotypesDecode=false justRead=false maxIndelSize=2147483647 ALLOW_NONOVERLAPPING_COMMAND_LINE_SAMPLES=false filter_reads_with_N_cigar=false filter_mismatching_base_and_quals=false filter_bases_not_stored=false">\n+##GATKCommandLine=<ID=UnifiedGenotyper,Version=2.6-5-gba531bd,Date="Thu May 22 09:06:54 BST 2014",Epoch=1400746014908,CommandLineOptions="analysis_type=UnifiedGenotyper input_file=[/phengs/galaxy/database/tmp/tmp-gatk-Gz3f1A/gatk_input_0.bam] read_buffer_size=null phone_home=AWS gatk_key=null tag=NA read_filter=[BadCigar] intervals=null excludeIntervals=null interval_set_rule=UNION interval_merging=ALL interval_padding=0 reference_sequence=/phengs/galaxy/database/tmp/tmp-gatk-Gz3f1A/gatk_input.fasta nonDeterministicRandomSeed=false disableDithering=false maxRuntime=-1 maxRuntimeUnits=MINUTES downsampling_type=NONE downsample_to_fraction=null downsample_to_coverage=null baq=OFF baqGapOpenPenalty=40.0 fix_misencoded_quality_scores=false allow_potentially_misencoded_quality_scores=false useOrigina'..b'AN=2;DP=48;MQ=60.00;MQ0=0\tGT:DP\t0/0:48\n+gi|15829254|ref|NC_002695.1|\t49921\t.\tT\t.\t157.23\t.\tAN=2;DP=49;MQ=60.00;MQ0=0\tGT:DP\t0/0:49\n+gi|15829254|ref|NC_002695.1|\t49922\t.\tT\t.\t157.23\t.\tAN=2;DP=48;MQ=60.00;MQ0=0\tGT:DP\t0/0:48\n+gi|15829254|ref|NC_002695.1|\t49923\t.\tC\t.\t154.23\t.\tAN=2;DP=47;MQ=60.00;MQ0=0\tGT:DP\t0/0:47\n+gi|15829254|ref|NC_002695.1|\t49924\t.\tA\t.\t151.23\t.\tAN=2;DP=45;MQ=60.00;MQ0=0\tGT:DP\t0/0:45\n+gi|15829254|ref|NC_002695.1|\t49925\t.\tA\t.\t163.23\t.\tAN=2;DP=50;MQ=60.00;MQ0=0\tGT:DP\t0/0:50\n+gi|15829254|ref|NC_002695.1|\t49926\t.\tT\t.\t160.23\t.\tAN=2;DP=50;MQ=60.00;MQ0=0\tGT:DP\t0/0:50\n+gi|15829254|ref|NC_002695.1|\t49927\t.\tG\t.\t160.23\t.\tAN=2;DP=51;MQ=60.00;MQ0=0\tGT:DP\t0/0:51\n+gi|15829254|ref|NC_002695.1|\t49928\t.\tT\t.\t160.23\t.\tAN=2;DP=52;MQ=60.00;MQ0=0\tGT:DP\t0/0:51\n+gi|15829254|ref|NC_002695.1|\t49929\t.\tC\t.\t160.23\t.\tAN=2;DP=51;MQ=60.00;MQ0=0\tGT:DP\t0/0:51\n+gi|15829254|ref|NC_002695.1|\t49930\t.\tG\t.\t163.23\t.\tAN=2;DP=53;MQ=60.00;MQ0=0\tGT:DP\t0/0:53\n+gi|15829254|ref|NC_002695.1|\t49931\t.\tA\t.\t166.23\t.\tAN=2;DP=54;MQ=60.00;MQ0=0\tGT:DP\t0/0:54\n+gi|15829254|ref|NC_002695.1|\t49932\t.\tT\t.\t169.23\t.\tAN=2;DP=55;MQ=60.00;MQ0=0\tGT:DP\t0/0:55\n+gi|15829254|ref|NC_002695.1|\t49933\t.\tG\t.\t163.23\t.\tAN=2;DP=51;MQ=60.00;MQ0=0\tGT:DP\t0/0:50\n+gi|15829254|ref|NC_002695.1|\t49934\t.\tA\t.\t166.23\t.\tAN=2;DP=51;MQ=60.00;MQ0=0\tGT:DP\t0/0:51\n+gi|15829254|ref|NC_002695.1|\t49935\t.\tA\t.\t169.23\t.\tAN=2;DP=51;MQ=60.00;MQ0=0\tGT:DP\t0/0:51\n+gi|15829254|ref|NC_002695.1|\t49936\t.\tG\t.\t169.23\t.\tAN=2;DP=51;MQ=60.00;MQ0=0\tGT:DP\t0/0:51\n+gi|15829254|ref|NC_002695.1|\t49937\t.\tA\t.\t163.23\t.\tAN=2;DP=50;MQ=60.00;MQ0=0\tGT:DP\t0/0:50\n+gi|15829254|ref|NC_002695.1|\t49938\t.\tG\t.\t160.23\t.\tAN=2;DP=50;MQ=60.00;MQ0=0\tGT:DP\t0/0:50\n+gi|15829254|ref|NC_002695.1|\t49939\t.\tC\t.\t154.23\t.\tAN=2;DP=47;MQ=60.00;MQ0=0\tGT:DP\t0/0:47\n+gi|15829254|ref|NC_002695.1|\t49940\t.\tA\t.\t151.23\t.\tAN=2;DP=48;MQ=60.00;MQ0=0\tGT:DP\t0/0:48\n+gi|15829254|ref|NC_002695.1|\t49941\t.\tT\t.\t157.23\t.\tAN=2;DP=49;MQ=60.00;MQ0=0\tGT:DP\t0/0:49\n+gi|15829254|ref|NC_002695.1|\t49942\t.\tC\t.\t160.23\t.\tAN=2;DP=50;MQ=60.00;MQ0=0\tGT:DP\t0/0:50\n+gi|15829254|ref|NC_002695.1|\t49943\t.\tC\t.\t157.23\t.\tAN=2;DP=47;MQ=60.00;MQ0=0\tGT:DP\t0/0:47\n+gi|15829254|ref|NC_002695.1|\t49944\t.\tG\t.\t157.23\t.\tAN=2;DP=48;MQ=60.00;MQ0=0\tGT:DP\t0/0:48\n+gi|15829254|ref|NC_002695.1|\t49945\t.\tC\t.\t154.23\t.\tAN=2;DP=47;MQ=60.00;MQ0=0\tGT:DP\t0/0:47\n+gi|15829254|ref|NC_002695.1|\t49946\t.\tA\t.\t154.23\t.\tAN=2;DP=48;MQ=60.00;MQ0=0\tGT:DP\t0/0:48\n+gi|15829254|ref|NC_002695.1|\t49947\t.\tC\t.\t154.23\t.\tAN=2;DP=48;MQ=60.00;MQ0=0\tGT:DP\t0/0:48\n+gi|15829254|ref|NC_002695.1|\t49948\t.\tA\t.\t151.23\t.\tAN=2;DP=46;MQ=60.00;MQ0=0\tGT:DP\t0/0:46\n+gi|15829254|ref|NC_002695.1|\t49949\t.\tT\t.\t151.23\t.\tAN=2;DP=46;MQ=60.00;MQ0=0\tGT:DP\t0/0:46\n+gi|15829254|ref|NC_002695.1|\t49950\t.\tT\t.\t148.23\t.\tAN=2;DP=46;MQ=60.00;MQ0=0\tGT:DP\t0/0:46\n+gi|15829254|ref|NC_002695.1|\t49951\t.\tG\t.\t154.23\t.\tAN=2;DP=49;MQ=60.00;MQ0=0\tGT:DP\t0/0:49\n+gi|15829254|ref|NC_002695.1|\t49952\t.\tT\t.\t157.23\t.\tAN=2;DP=49;MQ=60.00;MQ0=0\tGT:DP\t0/0:49\n+gi|15829254|ref|NC_002695.1|\t49953\t.\tT\t.\t154.23\t.\tAN=2;DP=49;MQ=60.00;MQ0=0\tGT:DP\t0/0:49\n+gi|15829254|ref|NC_002695.1|\t49954\t.\tG\t.\t157.23\t.\tAN=2;DP=48;MQ=60.00;MQ0=0\tGT:DP\t0/0:48\n+gi|15829254|ref|NC_002695.1|\t49955\t.\tT\t.\t151.23\t.\tAN=2;DP=48;MQ=60.00;MQ0=0\tGT:DP\t0/0:48\n+gi|15829254|ref|NC_002695.1|\t49956\t.\tG\t.\t154.23\t.\tAN=2;DP=47;MQ=60.00;MQ0=0\tGT:DP\t0/0:47\n+gi|15829254|ref|NC_002695.1|\t49957\t.\tA\t.\t151.23\t.\tAN=2;DP=47;MQ=60.00;MQ0=0\tGT:DP\t0/0:47\n+gi|15829254|ref|NC_002695.1|\t49958\t.\tA\t.\t148.23\t.\tAN=2;DP=47;MQ=60.00;MQ0=0\tGT:DP\t0/0:47\n+gi|15829254|ref|NC_002695.1|\t49959\t.\tA\t.\t148.23\t.\tAN=2;DP=47;MQ=60.00;MQ0=0\tGT:DP\t0/0:47\n+gi|15829254|ref|NC_002695.1|\t49960\t.\tG\t.\t145.23\t.\tAN=2;DP=46;MQ=60.00;MQ0=0\tGT:DP\t0/0:46\n+gi|15829254|ref|NC_002695.1|\t49961\t.\tC\t.\t145.23\t.\tAN=2;DP=46;MQ=60.00;MQ0=0\tGT:DP\t0/0:46\n+gi|15829254|ref|NC_002695.1|\t49962\t.\tC\t.\t148.23\t.\tAN=2;DP=46;MQ=60.00;MQ0=0\tGT:DP\t0/0:46\n+gi|15829254|ref|NC_002695.1|\t49963\t.\tG\t.\t145.23\t.\tAN=2;DP=46;MQ=60.00;MQ0=0\tGT:DP\t0/0:46\n+gi|15829254|ref|NC_002695.1|\t49964\t.\tA\t.\t145.23\t.\tAN=2;DP=46;MQ=60.00;MQ0=0\tGT:DP\t0/0:46\n'
b
diff -r 000000000000 -r cb29f95c7b88 test-data/test_input.vcf
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/test-data/test_input.vcf Mon May 09 09:27:06 2016 -0400
[
b'@@ -0,0 +1,1000 @@\n+##fileformat=VCFv4.1\n+##GATKCommandLine=<ID=SelectVariants,Version=2.6-5-gba531bd,Date="Thu May 22 09:24:36 BST 2014",Epoch=1400747076888,CommandLineOptions="analysis_type=SelectVariants input_file=[] read_buffer_size=null phone_home=AWS gatk_key=null tag=NA read_filter=[] intervals=null excludeIntervals=null interval_set_rule=UNION interval_merging=ALL interval_padding=0 reference_sequence=/phengs/galaxy/database/tmp/tmp-gatk-lMh4vi/gatk_input.fasta nonDeterministicRandomSeed=false disableDithering=false maxRuntime=-1 maxRuntimeUnits=MINUTES downsampling_type=BY_SAMPLE downsample_to_fraction=null downsample_to_coverage=1000 baq=OFF baqGapOpenPenalty=40.0 fix_misencoded_quality_scores=false allow_potentially_misencoded_quality_scores=false useOriginalQualities=false defaultBaseQualities=-1 performanceLog=null BQSR=null quantize_quals=0 disable_indel_quals=false emit_original_quals=false preserve_qscores_less_than=6 globalQScorePrior=-1.0 allow_bqsr_on_reduced_bams_despite_repeated_warnings=false validation_strictness=SILENT remove_program_records=false keep_program_records=false unsafe=null disable_auto_index_creation_and_locking_when_reading_rods=false num_threads=2 num_cpu_threads_per_data_thread=1 num_io_threads=0 monitorThreadEfficiency=false num_bam_file_handles=null read_group_black_list=null pedigree=[] pedigreeString=[] pedigreeValidationType=STRICT allow_intervals_with_unindexed_bam=false generateShadowBCF=false logging_level=INFO log_to_file=null help=false version=false variant=(RodBinding name=variant source=/phengs/galaxy/database/tmp/tmp-gatk-lMh4vi/input_variant.vcf) discordance=(RodBinding name= source=UNBOUND) concordance=(RodBinding name= source=UNBOUND) out=org.broadinstitute.sting.gatk.io.stubs.VariantContextWriterStub no_cmdline_in_header=org.broadinstitute.sting.gatk.io.stubs.VariantContextWriterStub sites_only=org.broadinstitute.sting.gatk.io.stubs.VariantContextWriterStub bcf=org.broadinstitute.sting.gatk.io.stubs.VariantContextWriterStub sample_name=[] sample_expressions=null sample_file=null exclude_sample_name=[] exclude_sample_file=[] select_expressions=[] excludeNonVariants=false excludeFiltered=false restrictAllelesTo=ALL keepOriginalAC=false mendelianViolation=false mendelianViolationQualThreshold=0.0 select_random_fraction=0.0 remove_fraction_genotypes=0.0 selectTypeToInclude=[SNP] keepIDs=null fullyDecode=false forceGenotypesDecode=false justRead=false maxIndelSize=2147483647 ALLOW_NONOVERLAPPING_COMMAND_LINE_SAMPLES=false filter_reads_with_N_cigar=false filter_mismatching_base_and_quals=false filter_bases_not_stored=false">\n+##GATKCommandLine=<ID=UnifiedGenotyper,Version=2.6-5-gba531bd,Date="Thu May 22 09:10:24 BST 2014",Epoch=1400746224902,CommandLineOptions="analysis_type=UnifiedGenotyper input_file=[/phengs/galaxy/database/tmp/tmp-gatk-x7S0pF/gatk_input_0.bam] read_buffer_size=null phone_home=AWS gatk_key=null tag=NA read_filter=[BadCigar] intervals=null excludeIntervals=null interval_set_rule=UNION interval_merging=ALL interval_padding=0 reference_sequence=/phengs/galaxy/database/tmp/tmp-gatk-x7S0pF/gatk_input.fasta nonDeterministicRandomSeed=false disableDithering=false maxRuntime=-1 maxRuntimeUnits=MINUTES downsampling_type=NONE downsample_to_fraction=null downsample_to_coverage=null baq=OFF baqGapOpenPenalty=40.0 fix_misencoded_quality_scores=false allow_potentially_misencoded_quality_scores=false useOriginalQualities=false defaultBaseQualities=-1 performanceLog=null BQSR=null quantize_quals=0 disable_indel_quals=false emit_original_quals=false preserve_qscores_less_than=6 globalQScorePrior=-1.0 allow_bqsr_on_reduced_bams_despite_repeated_warnings=false validation_strictness=STRICT remove_program_records=false keep_program_records=false unsafe=null disable_auto_index_creation_and_locking_when_reading_rods=false num_threads=2 num_cpu_threads_per_data_thread=6 num_io_threads=0 monitorThreadEfficiency=false num_bam_file_handles=null read_group_black_list=null pedigree='..b'MQ=0.0;MQ0=92\tGT\t./.\n+gi|15829254|ref|NC_002695.1|\t227782\t.\tA\t.\t.\tmq_score:50\tDP=92;MQ=0.0;MQ0=92\tGT\t./.\n+gi|15829254|ref|NC_002695.1|\t227783\t.\tG\t.\t.\tmq_score:50\tDP=91;MQ=0.0;MQ0=91\tGT\t./.\n+gi|15829254|ref|NC_002695.1|\t227784\t.\tG\t.\t.\tmq_score:50\tDP=91;MQ=0.0;MQ0=91\tGT\t./.\n+gi|15829254|ref|NC_002695.1|\t227785\t.\tT\t.\t.\tmq_score:50\tDP=91;MQ=0.0;MQ0=91\tGT\t./.\n+gi|15829254|ref|NC_002695.1|\t227786\t.\tG\t.\t.\tmq_score:50\tDP=90;MQ=0.0;MQ0=90\tGT\t./.\n+gi|15829254|ref|NC_002695.1|\t227787\t.\tT\t.\t.\tmq_score:50\tDP=87;MQ=0.0;MQ0=87\tGT\t./.\n+gi|15829254|ref|NC_002695.1|\t227788\t.\tA\t.\t.\tmq_score:50\tDP=87;MQ=0.0;MQ0=87\tGT\t./.\n+gi|15829254|ref|NC_002695.1|\t227789\t.\tG\t.\t.\tmq_score:50\tDP=88;MQ=0.0;MQ0=88\tGT\t./.\n+gi|15829254|ref|NC_002695.1|\t227790\t.\tC\t.\t.\tmq_score:50\tDP=87;MQ=0.0;MQ0=87\tGT\t./.\n+gi|15829254|ref|NC_002695.1|\t227791\t.\tG\t.\t.\tmq_score:50\tDP=87;MQ=0.0;MQ0=87\tGT\t./.\n+gi|15829254|ref|NC_002695.1|\t227792\t.\tG\t.\t.\tmq_score:50\tDP=87;MQ=0.0;MQ0=87\tGT\t./.\n+gi|15829254|ref|NC_002695.1|\t227793\t.\tT\t.\t.\tmq_score:50\tDP=84;MQ=0.0;MQ0=84\tGT\t./.\n+gi|15829254|ref|NC_002695.1|\t227794\t.\tG\t.\t.\tmq_score:50\tDP=84;MQ=0.0;MQ0=84\tGT\t./.\n+gi|15829254|ref|NC_002695.1|\t227795\t.\tA\t.\t.\tmq_score:50\tDP=89;MQ=0.0;MQ0=89\tGT\t./.\n+gi|15829254|ref|NC_002695.1|\t227796\t.\tA\t.\t.\tmq_score:50\tDP=89;MQ=0.0;MQ0=89\tGT\t./.\n+gi|15829254|ref|NC_002695.1|\t227797\t.\tA\t.\t.\tmq_score:50\tDP=92;MQ=0.0;MQ0=92\tGT\t./.\n+gi|15829254|ref|NC_002695.1|\t227798\t.\tT\t.\t.\tmq_score:50\tDP=89;MQ=0.0;MQ0=89\tGT\t./.\n+gi|15829254|ref|NC_002695.1|\t227799\t.\tG\t.\t.\tmq_score:50\tDP=93;MQ=0.0;MQ0=93\tGT\t./.\n+gi|15829254|ref|NC_002695.1|\t227800\t.\tC\t.\t.\tmq_score:50\tDP=93;MQ=0.0;MQ0=93\tGT\t./.\n+gi|15829254|ref|NC_002695.1|\t227801\t.\tG\t.\t.\tmq_score:50\tDP=92;MQ=0.0;MQ0=92\tGT\t./.\n+gi|15829254|ref|NC_002695.1|\t227802\t.\tT\t.\t.\tmq_score:50\tDP=91;MQ=0.0;MQ0=91\tGT\t./.\n+gi|15829254|ref|NC_002695.1|\t227803\t.\tA\t.\t.\tmq_score:50\tDP=92;MQ=0.0;MQ0=92\tGT\t./.\n+gi|15829254|ref|NC_002695.1|\t227804\t.\tG\t.\t.\tmq_score:50\tDP=94;MQ=0.0;MQ0=94\tGT\t./.\n+gi|15829254|ref|NC_002695.1|\t227805\t.\tA\t.\t.\tmq_score:50\tDP=96;MQ=0.0;MQ0=96\tGT\t./.\n+gi|15829254|ref|NC_002695.1|\t227806\t.\tG\t.\t.\tmq_score:50\tDP=104;MQ=0.0;MQ0=104\tGT\t./.\n+gi|15829254|ref|NC_002695.1|\t227807\t.\tA\t.\t.\tmq_score:50\tDP=109;MQ=0.0;MQ0=109\tGT\t./.\n+gi|15829254|ref|NC_002695.1|\t227808\t.\tT\t.\t.\tmq_score:50\tDP=104;MQ=0.0;MQ0=104\tGT\t./.\n+gi|15829254|ref|NC_002695.1|\t227809\t.\tC\t.\t.\tmq_score:50\tDP=104;MQ=0.0;MQ0=104\tGT\t./.\n+gi|15829254|ref|NC_002695.1|\t227810\t.\tT\t.\t.\tmq_score:50\tDP=103;MQ=0.0;MQ0=103\tGT\t./.\n+gi|15829254|ref|NC_002695.1|\t227811\t.\tG\t.\t.\tmq_score:50\tDP=104;MQ=0.0;MQ0=104\tGT\t./.\n+gi|15829254|ref|NC_002695.1|\t227812\t.\tG\t.\t.\tmq_score:50\tDP=105;MQ=0.0;MQ0=105\tGT\t./.\n+gi|15829254|ref|NC_002695.1|\t227813\t.\tA\t.\t.\tmq_score:50\tDP=105;MQ=0.0;MQ0=105\tGT\t./.\n+gi|15829254|ref|NC_002695.1|\t227814\t.\tG\t.\t.\tmq_score:50\tDP=104;MQ=0.0;MQ0=104\tGT\t./.\n+gi|15829254|ref|NC_002695.1|\t227815\t.\tG\t.\t.\tmq_score:50\tDP=106;MQ=0.0;MQ0=106\tGT\t./.\n+gi|15829254|ref|NC_002695.1|\t227816\t.\tA\t.\t.\tmq_score:50\tDP=102;MQ=0.0;MQ0=102\tGT\t./.\n+gi|15829254|ref|NC_002695.1|\t227817\t.\tA\t.\t.\tmq_score:50\tDP=102;MQ=0.0;MQ0=102\tGT\t./.\n+gi|15829254|ref|NC_002695.1|\t227818\t.\tT\t.\t.\tmq_score:50\tDP=103;MQ=0.0;MQ0=103\tGT\t./.\n+gi|15829254|ref|NC_002695.1|\t227819\t.\tA\t.\t.\tmq_score:50\tDP=103;MQ=0.0;MQ0=103\tGT\t./.\n+gi|15829254|ref|NC_002695.1|\t227820\t.\tC\t.\t.\tmq_score:50\tDP=104;MQ=0.0;MQ0=104\tGT\t./.\n+gi|15829254|ref|NC_002695.1|\t227821\t.\tC\t.\t.\tmq_score:50\tDP=97;MQ=0.0;MQ0=97\tGT\t./.\n+gi|15829254|ref|NC_002695.1|\t227822\t.\tG\t.\t.\tmq_score:50\tDP=99;MQ=0.0;MQ0=99\tGT\t./.\n+gi|15829254|ref|NC_002695.1|\t227823\t.\tG\t.\t.\tmq_score:50\tDP=97;MQ=0.0;MQ0=97\tGT\t./.\n+gi|15829254|ref|NC_002695.1|\t227824\t.\tT\t.\t.\tmq_score:50\tDP=95;MQ=0.0;MQ0=95\tGT\t./.\n+gi|15829254|ref|NC_002695.1|\t227825\t.\tG\t.\t.\tmq_score:50\tDP=95;MQ=0.0;MQ0=95\tGT\t./.\n+gi|15829254|ref|NC_002695.1|\t227826\t.\tG\t.\t.\tmq_score:50\tDP=95;MQ=0.0;MQ0=95\tGT\t./.\n+gi|15829254|ref|NC_002695.1|\t227827\t.\tC\t.\t.\tmq_score:50\tDP=94;MQ=0.0;MQ0=94\tGT\t./.\n+gi|15829254|ref|NC_002695.1|\t227828\t.\tG\t.\t.\tmq_score:50\tDP=94;MQ=0.0;MQ0=94\tGT\t./.\n'
b
diff -r 000000000000 -r cb29f95c7b88 test-data/test_output.vcf
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/test-data/test_output.vcf Mon May 09 09:27:06 2016 -0400
[
b'@@ -0,0 +1,1001 @@\n+##fileformat=VCFv4.1\n+##GATKCommandLine=<ID=SelectVariants,Version=2.6-5-gba531bd,Date="Thu May 22 09:24:36 BST 2014",Epoch=1400747076888,CommandLineOptions="analysis_type=SelectVariants input_file=[] read_buffer_size=null phone_home=AWS gatk_key=null tag=NA read_filter=[] intervals=null excludeIntervals=null interval_set_rule=UNION interval_merging=ALL interval_padding=0 reference_sequence=/phengs/galaxy/database/tmp/tmp-gatk-lMh4vi/gatk_input.fasta nonDeterministicRandomSeed=false disableDithering=false maxRuntime=-1 maxRuntimeUnits=MINUTES downsampling_type=BY_SAMPLE downsample_to_fraction=null downsample_to_coverage=1000 baq=OFF baqGapOpenPenalty=40.0 fix_misencoded_quality_scores=false allow_potentially_misencoded_quality_scores=false useOriginalQualities=false defaultBaseQualities=-1 performanceLog=null BQSR=null quantize_quals=0 disable_indel_quals=false emit_original_quals=false preserve_qscores_less_than=6 globalQScorePrior=-1.0 allow_bqsr_on_reduced_bams_despite_repeated_warnings=false validation_strictness=SILENT remove_program_records=false keep_program_records=false unsafe=null disable_auto_index_creation_and_locking_when_reading_rods=false num_threads=2 num_cpu_threads_per_data_thread=1 num_io_threads=0 monitorThreadEfficiency=false num_bam_file_handles=null read_group_black_list=null pedigree=[] pedigreeString=[] pedigreeValidationType=STRICT allow_intervals_with_unindexed_bam=false generateShadowBCF=false logging_level=INFO log_to_file=null help=false version=false variant=(RodBinding name=variant source=/phengs/galaxy/database/tmp/tmp-gatk-lMh4vi/input_variant.vcf) discordance=(RodBinding name= source=UNBOUND) concordance=(RodBinding name= source=UNBOUND) out=org.broadinstitute.sting.gatk.io.stubs.VariantContextWriterStub no_cmdline_in_header=org.broadinstitute.sting.gatk.io.stubs.VariantContextWriterStub sites_only=org.broadinstitute.sting.gatk.io.stubs.VariantContextWriterStub bcf=org.broadinstitute.sting.gatk.io.stubs.VariantContextWriterStub sample_name=[] sample_expressions=null sample_file=null exclude_sample_name=[] exclude_sample_file=[] select_expressions=[] excludeNonVariants=false excludeFiltered=false restrictAllelesTo=ALL keepOriginalAC=false mendelianViolation=false mendelianViolationQualThreshold=0.0 select_random_fraction=0.0 remove_fraction_genotypes=0.0 selectTypeToInclude=[SNP] keepIDs=null fullyDecode=false forceGenotypesDecode=false justRead=false maxIndelSize=2147483647 ALLOW_NONOVERLAPPING_COMMAND_LINE_SAMPLES=false filter_reads_with_N_cigar=false filter_mismatching_base_and_quals=false filter_bases_not_stored=false">\n+##GATKCommandLine=<ID=UnifiedGenotyper,Version=2.6-5-gba531bd,Date="Thu May 22 09:10:24 BST 2014",Epoch=1400746224902,CommandLineOptions="analysis_type=UnifiedGenotyper input_file=[/phengs/galaxy/database/tmp/tmp-gatk-x7S0pF/gatk_input_0.bam] read_buffer_size=null phone_home=AWS gatk_key=null tag=NA read_filter=[BadCigar] intervals=null excludeIntervals=null interval_set_rule=UNION interval_merging=ALL interval_padding=0 reference_sequence=/phengs/galaxy/database/tmp/tmp-gatk-x7S0pF/gatk_input.fasta nonDeterministicRandomSeed=false disableDithering=false maxRuntime=-1 maxRuntimeUnits=MINUTES downsampling_type=NONE downsample_to_fraction=null downsample_to_coverage=null baq=OFF baqGapOpenPenalty=40.0 fix_misencoded_quality_scores=false allow_potentially_misencoded_quality_scores=false useOriginalQualities=false defaultBaseQualities=-1 performanceLog=null BQSR=null quantize_quals=0 disable_indel_quals=false emit_original_quals=false preserve_qscores_less_than=6 globalQScorePrior=-1.0 allow_bqsr_on_reduced_bams_despite_repeated_warnings=false validation_strictness=STRICT remove_program_records=false keep_program_records=false unsafe=null disable_auto_index_creation_and_locking_when_reading_rods=false num_threads=2 num_cpu_threads_per_data_thread=6 num_io_threads=0 monitorThreadEfficiency=false num_bam_file_handles=null read_group_black_list=null pedigree='..b'6\t.\tG\t.\t.\tmq_score:50;min_depth:100\tDP=90;MQ=0.0;MQ0=90\tGT\t./.\n+gi|15829254|ref|NC_002695.1|\t227787\t.\tT\t.\t.\tmq_score:50;min_depth:100\tDP=87;MQ=0.0;MQ0=87\tGT\t./.\n+gi|15829254|ref|NC_002695.1|\t227788\t.\tA\t.\t.\tmq_score:50;min_depth:100\tDP=87;MQ=0.0;MQ0=87\tGT\t./.\n+gi|15829254|ref|NC_002695.1|\t227789\t.\tG\t.\t.\tmq_score:50;min_depth:100\tDP=88;MQ=0.0;MQ0=88\tGT\t./.\n+gi|15829254|ref|NC_002695.1|\t227790\t.\tC\t.\t.\tmq_score:50;min_depth:100\tDP=87;MQ=0.0;MQ0=87\tGT\t./.\n+gi|15829254|ref|NC_002695.1|\t227791\t.\tG\t.\t.\tmq_score:50;min_depth:100\tDP=87;MQ=0.0;MQ0=87\tGT\t./.\n+gi|15829254|ref|NC_002695.1|\t227792\t.\tG\t.\t.\tmq_score:50;min_depth:100\tDP=87;MQ=0.0;MQ0=87\tGT\t./.\n+gi|15829254|ref|NC_002695.1|\t227793\t.\tT\t.\t.\tmq_score:50;min_depth:100\tDP=84;MQ=0.0;MQ0=84\tGT\t./.\n+gi|15829254|ref|NC_002695.1|\t227794\t.\tG\t.\t.\tmq_score:50;min_depth:100\tDP=84;MQ=0.0;MQ0=84\tGT\t./.\n+gi|15829254|ref|NC_002695.1|\t227795\t.\tA\t.\t.\tmq_score:50;min_depth:100\tDP=89;MQ=0.0;MQ0=89\tGT\t./.\n+gi|15829254|ref|NC_002695.1|\t227796\t.\tA\t.\t.\tmq_score:50;min_depth:100\tDP=89;MQ=0.0;MQ0=89\tGT\t./.\n+gi|15829254|ref|NC_002695.1|\t227797\t.\tA\t.\t.\tmq_score:50;min_depth:100\tDP=92;MQ=0.0;MQ0=92\tGT\t./.\n+gi|15829254|ref|NC_002695.1|\t227798\t.\tT\t.\t.\tmq_score:50;min_depth:100\tDP=89;MQ=0.0;MQ0=89\tGT\t./.\n+gi|15829254|ref|NC_002695.1|\t227799\t.\tG\t.\t.\tmq_score:50;min_depth:100\tDP=93;MQ=0.0;MQ0=93\tGT\t./.\n+gi|15829254|ref|NC_002695.1|\t227800\t.\tC\t.\t.\tmq_score:50;min_depth:100\tDP=93;MQ=0.0;MQ0=93\tGT\t./.\n+gi|15829254|ref|NC_002695.1|\t227801\t.\tG\t.\t.\tmq_score:50;min_depth:100\tDP=92;MQ=0.0;MQ0=92\tGT\t./.\n+gi|15829254|ref|NC_002695.1|\t227802\t.\tT\t.\t.\tmq_score:50;min_depth:100\tDP=91;MQ=0.0;MQ0=91\tGT\t./.\n+gi|15829254|ref|NC_002695.1|\t227803\t.\tA\t.\t.\tmq_score:50;min_depth:100\tDP=92;MQ=0.0;MQ0=92\tGT\t./.\n+gi|15829254|ref|NC_002695.1|\t227804\t.\tG\t.\t.\tmq_score:50;min_depth:100\tDP=94;MQ=0.0;MQ0=94\tGT\t./.\n+gi|15829254|ref|NC_002695.1|\t227805\t.\tA\t.\t.\tmq_score:50;min_depth:100\tDP=96;MQ=0.0;MQ0=96\tGT\t./.\n+gi|15829254|ref|NC_002695.1|\t227806\t.\tG\t.\t.\tmq_score:50\tDP=104;MQ=0.0;MQ0=104\tGT\t./.\n+gi|15829254|ref|NC_002695.1|\t227807\t.\tA\t.\t.\tmq_score:50\tDP=109;MQ=0.0;MQ0=109\tGT\t./.\n+gi|15829254|ref|NC_002695.1|\t227808\t.\tT\t.\t.\tmq_score:50\tDP=104;MQ=0.0;MQ0=104\tGT\t./.\n+gi|15829254|ref|NC_002695.1|\t227809\t.\tC\t.\t.\tmq_score:50\tDP=104;MQ=0.0;MQ0=104\tGT\t./.\n+gi|15829254|ref|NC_002695.1|\t227810\t.\tT\t.\t.\tmq_score:50\tDP=103;MQ=0.0;MQ0=103\tGT\t./.\n+gi|15829254|ref|NC_002695.1|\t227811\t.\tG\t.\t.\tmq_score:50\tDP=104;MQ=0.0;MQ0=104\tGT\t./.\n+gi|15829254|ref|NC_002695.1|\t227812\t.\tG\t.\t.\tmq_score:50\tDP=105;MQ=0.0;MQ0=105\tGT\t./.\n+gi|15829254|ref|NC_002695.1|\t227813\t.\tA\t.\t.\tmq_score:50\tDP=105;MQ=0.0;MQ0=105\tGT\t./.\n+gi|15829254|ref|NC_002695.1|\t227814\t.\tG\t.\t.\tmq_score:50\tDP=104;MQ=0.0;MQ0=104\tGT\t./.\n+gi|15829254|ref|NC_002695.1|\t227815\t.\tG\t.\t.\tmq_score:50\tDP=106;MQ=0.0;MQ0=106\tGT\t./.\n+gi|15829254|ref|NC_002695.1|\t227816\t.\tA\t.\t.\tmq_score:50\tDP=102;MQ=0.0;MQ0=102\tGT\t./.\n+gi|15829254|ref|NC_002695.1|\t227817\t.\tA\t.\t.\tmq_score:50\tDP=102;MQ=0.0;MQ0=102\tGT\t./.\n+gi|15829254|ref|NC_002695.1|\t227818\t.\tT\t.\t.\tmq_score:50\tDP=103;MQ=0.0;MQ0=103\tGT\t./.\n+gi|15829254|ref|NC_002695.1|\t227819\t.\tA\t.\t.\tmq_score:50\tDP=103;MQ=0.0;MQ0=103\tGT\t./.\n+gi|15829254|ref|NC_002695.1|\t227820\t.\tC\t.\t.\tmq_score:50\tDP=104;MQ=0.0;MQ0=104\tGT\t./.\n+gi|15829254|ref|NC_002695.1|\t227821\t.\tC\t.\t.\tmq_score:50;min_depth:100\tDP=97;MQ=0.0;MQ0=97\tGT\t./.\n+gi|15829254|ref|NC_002695.1|\t227822\t.\tG\t.\t.\tmq_score:50;min_depth:100\tDP=99;MQ=0.0;MQ0=99\tGT\t./.\n+gi|15829254|ref|NC_002695.1|\t227823\t.\tG\t.\t.\tmq_score:50;min_depth:100\tDP=97;MQ=0.0;MQ0=97\tGT\t./.\n+gi|15829254|ref|NC_002695.1|\t227824\t.\tT\t.\t.\tmq_score:50;min_depth:100\tDP=95;MQ=0.0;MQ0=95\tGT\t./.\n+gi|15829254|ref|NC_002695.1|\t227825\t.\tG\t.\t.\tmq_score:50;min_depth:100\tDP=95;MQ=0.0;MQ0=95\tGT\t./.\n+gi|15829254|ref|NC_002695.1|\t227826\t.\tG\t.\t.\tmq_score:50;min_depth:100\tDP=95;MQ=0.0;MQ0=95\tGT\t./.\n+gi|15829254|ref|NC_002695.1|\t227827\t.\tC\t.\t.\tmq_score:50;min_depth:100\tDP=94;MQ=0.0;MQ0=94\tGT\t./.\n+gi|15829254|ref|NC_002695.1|\t227828\t.\tG\t.\t.\tmq_score:50;min_depth:100\tDP=94;MQ=0.0;MQ0=94\tGT\t./.\n'
b
diff -r 000000000000 -r cb29f95c7b88 test-data/testresult.fa
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/test-data/testresult.fa Mon May 09 09:27:06 2016 -0400
b
@@ -0,0 +1,6 @@
+>1_short
+TTCTTCATGA
+>2_short
+TTTTACACGA
+>reference
+CCCATAGCAG
b
diff -r 000000000000 -r cb29f95c7b88 tool_dependencies.xml
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/tool_dependencies.xml Mon May 09 09:27:06 2016 -0400
b
@@ -0,0 +1,27 @@
+<?xml version="1.0"?>
+<tool_dependency>
+ <package name="python" version="2.7.10">
+        <repository changeset_revision="0339c4a9b87b" name="package_python_2_7_10" owner="iuc" prior_installation_required="True" toolshed="https://toolshed.g2.bx.psu.edu" />
+    </package>
+    <package name="pyvcf" version="0.6.8dev">
+        <repository changeset_revision="7ef691e979b5" name="package_python_2_7_pyvcf_0_6_8dev" owner="ulfschaefer" prior_installation_required="True" toolshed="https://toolshed.g2.bx.psu.edu"/>
+    </package>
+    <package name="pyyaml" version="3.11">
+        <repository changeset_revision="99267d131c05" name="package_python_2_7_pyyaml_3_11" owner="iuc" prior_installation_required="True" toolshed="https://toolshed.g2.bx.psu.edu"/>
+    </package>
+ <package name="cython" version="0.23.1">
+        <repository changeset_revision="65f6ba2786d0" name="package_python_2_7_10_cython_0_23_1" owner="ulfschaefer" prior_installation_required="True" toolshed="https://toolshed.g2.bx.psu.edu"/>
+    </package>
+    <package name="bintrees" version="2.0.2">
+        <repository changeset_revision="618a0c8a468b" name="package_python_2_7_bintrees_2_0_2" owner="ulfschaefer" prior_installation_required="True" toolshed="https://toolshed.g2.bx.psu.edu"/>
+    </package>
+ <package name="biopython" version="1.66">
+        <repository changeset_revision="c722591ee0aa" name="package_python_2_7_biopython_1_66" owner="ulfschaefer" prior_installation_required="True" toolshed="https://toolshed.g2.bx.psu.edu"/>
+    </package>
+ <package name="matplotlib" version="1.4">
+        <repository changeset_revision="f7424e1cf115" name="package_python_2_7_matplotlib_1_4" owner="iuc" prior_installation_required="True" toolshed="https://toolshed.g2.bx.psu.edu"/>
+    </package>
+ <package name="phephenix" version="1.0">
+        <repository changeset_revision="6690a962e75e" name="package_phephenix_1_0" owner="ulfschaefer" prior_installation_required="True" toolshed="https://toolshed.g2.bx.psu.edu"/>
+    </package>
+</tool_dependency>
b
diff -r 000000000000 -r cb29f95c7b88 vcfs2fasta.sh
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/vcfs2fasta.sh Mon May 09 09:27:06 2016 -0400
[
@@ -0,0 +1,48 @@
+#!/bin/bash
+
+echo $@
+
+OUTPUT=$1
+shift
+WITHMIXTURES=$1
+shift
+COLUMNNS=$1
+shift
+SAMPLENS=$1
+shift
+REFERENCE=$1
+shift
+INCLUDE=$1
+shift
+EXCLUDE=$1
+shift
+INPUT=$@
+
+CMD="phenix.py vcf2fasta --out $OUTPUT --input $INPUT"
+
+if [ $WITHMIXTURES != "NOTTHERE" ]; then
+    CMD="$CMD --with-mixtures $WITHMIXTURES"
+fi
+
+if [ $COLUMNNS != "NOTTHERE" ]; then
+    CMD="$CMD --column-Ns $COLUMNNS"
+fi
+
+if [ $SAMPLENS != "NOTTHERE" ]; then
+    CMD="$CMD --sample-Ns $SAMPLENS"
+fi
+
+if [ $REFERENCE != "NOTTHERE" ]; then
+    CMD="$CMD --reference $REFERENCE"
+fi
+
+if [ $INCLUDE != "NOTTHERE" ]; then
+    CMD="$CMD --include INCLUDE"
+fi
+
+if [ $EXCLUDE != "NOTTHERE" ]; then
+    CMD="$CMD --exclude EXCLUDE"
+fi
+
+echo $CMD
+eval $CMD
b
diff -r 000000000000 -r cb29f95c7b88 vcfs2fasta.xml
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/vcfs2fasta.xml Mon May 09 09:27:06 2016 -0400
b
@@ -0,0 +1,125 @@
+<tool id="vcfs2fasta" name="VCFs to fasta" version="1.0">
+  <description>Takes a set of VCF files and outputs a multi fasta file with only the variant positions.</description>
+  <requirements>
+    <requirement type="package" version="2.7.10">python</requirement>
+    <requirement type="package" version="0.6.8dev">pyvcf</requirement>
+    <requirement type="package" version="3.11">pyyaml</requirement>
+    <requirement type="package" version="2.0.2">bintrees</requirement>
+ <requirement type="package" version="1.66">biopython</requirement>
+ <requirement type="package" version="1.4">matplotlib</requirement>
+    <requirement type="package" version="0.23.1">cython</requirement>
+ <requirement type="package" version="1.0">phephenix</requirement>
+  </requirements>
+  <stdio>
+ <!-- Assume anything other than zero is an error -->
+    <exit_code range="1:" />
+    <exit_code range=":-1" />
+  </stdio>
+  <command interpreter="bash">
+    vcfs2fasta.sh
+ $output
+ #if str($mix_cond.mix) == "yes":
+        $mix_cond.mix_value
+    #else
+        NOTTHERE
+    #end if
+ #if str($cols_cond.cols) == "yes":
+        $cols_cond.column_ns
+    #else
+        NOTTHERE
+    #end if
+ #if str($sample_cond.sample) == "yes":
+        $sample_cond.sample_ns
+    #else
+        NOTTHERE
+    #end if
+ #if str($reference_cond.reference) == "yes":
+ $reference_cond.ref_fa
+ #else
+        NOTTHERE
+    #end if
+ #if str($include_cond.include) == "yes":
+ $include_cond.in_bed
+ #else
+        NOTTHERE
+    #end if
+ #if str($exclude_cond.exclude) == "yes":
+ $exclude_cond.ex_bed
+ #else
+        NOTTHERE
+    #end if
+ #for $i, $input_vcf in enumerate( $input_vcfs ):
+        "${input_vcf}"
+    #end for
+  </command>
+
+  <inputs>
+ <param name="input_vcfs" type="data" multiple="true" format="vcf" label="Input VCF file(s)" />
+ <conditional name="mix_cond">
+        <param name="mix" type="select" label="With Mixtures" help="Specify this option with a threshold to output mixtures above this threshold.">
+          <option value="yes">Specify</option>
+          <option value="no" selected="true">Do not specify</option>
+        </param>
+        <when value="yes">
+ <param name="mix_value" type="float" value="0.5" label="Mixture value" />
+        </when>
+    </conditional>
+ <conditional name="cols_cond">
+        <param name="cols" type="select" label="Column Ns" help="Keeps columns with fraction of Ns above specified threshold.">
+          <option value="yes">Specify</option>
+          <option value="no" selected="true">Do not specify</option>
+        </param>
+        <when value="yes">
+ <param name="column_ns" type="float" value="0.5" label="Column Ns value" />
+        </when>
+    </conditional>
+ <conditional name="sample_cond">
+        <param name="sample" type="select" label="Sample Ns" help="Keeps samples with fraction of Ns above specified threshold.">
+          <option value="yes">Specify</option>
+          <option value="no" selected="true">Do not specify</option>
+        </param>
+        <when value="yes">
+ <param name="sample_ns" type="float" value="0.5" label="Sample Ns value" />
+        </when>
+    </conditional>
+ <conditional name="reference_cond">
+        <param name="reference" type="select" label="Reference genome file" help="If path to reference specified, then whole genome will be outputted.">
+          <option value="yes">Specify</option>
+          <option value="no" selected="true">Do not specify</option>
+        </param>
+        <when value="yes">
+ <param name="ref_fa" type="data" format="fasta" label="Reference fasta file" help="Fasta format"/>
+        </when>
+    </conditional>
+ <conditional name="include_cond">
+        <param name="include" type="select" label="Include region" help="Specify regions to include in a bed file.">
+          <option value="yes">Specify</option>
+          <option value="no" selected="true">Do not specify</option>
+        </param>
+        <when value="yes">
+ <param name="in_bed" type="data" format="bed" label="Include regions bed file" help="bed format"/>
+        </when>
+    </conditional>
+ <conditional name="exclude_cond">
+        <param name="exclude" type="select" label="Exclude region" help="Specify regions to exclude in a bed file.">
+          <option value="yes">Specify</option>
+          <option value="no" selected="true">Do not specify</option>
+        </param>
+        <when value="yes">
+ <param name="ex_bed" type="data" format="bed" label="Exclude regions bed file" help="bed format"/>
+        </when>
+    </conditional>
+  </inputs>
+
+  <outputs>
+    <data format="fasta" name="output" label="${tool.name} on ${on_string}: FASTA file" />
+  </outputs>
+  <test>
+ <param name="input_vcfs" value="1_short.vcf" ftype="vcf" />
+ <param name="input_vcfs" value="2_short.vcf" ftype="vcf" />
+ <output name="output" file="testresult.fa" ftype="fasta" />
+  </test>
+  <help>
+
+  </help>
+</tool>