Repository 'varscan_mpileup2indel_from_bam'
hg clone https://toolshed.g2.bx.psu.edu/repos/yhoogstrate/varscan_mpileup2indel_from_bam

Changeset 1:2c56a59a112f (2017-02-15)
Previous changeset 0:10e2ea79ec55 (2015-11-05)
Commit message:
planemo upload for repository https://github.com/ErasmusMC-Bioinformatics/galaxytools-emc/tree/master/tools/galaxy-tool-shed-tools commit bd543e68c1af82bcd6a04f0ae3d1180e8887e122
modified:
varscan_mpileup2indel.xml
varscan_mpileup2indel_from_bam.xml
added:
test-data/example.2.vcf
removed:
example.fa.1.bed
example.fa.2.bed
test-data/example.fa.1.bed
test-data/example.fa.2.bed
test-data/example.fa.fai
tool_dependencies.xml
b
diff -r 10e2ea79ec55 -r 2c56a59a112f example.fa.1.bed
--- a/example.fa.1.bed Thu Nov 05 10:00:19 2015 -0500
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
b
@@ -1,1 +0,0 @@
-chr1 0 330
b
diff -r 10e2ea79ec55 -r 2c56a59a112f example.fa.2.bed
--- a/example.fa.2.bed Thu Nov 05 10:00:19 2015 -0500
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
b
@@ -1,1 +0,0 @@
-chr1 330 600
b
diff -r 10e2ea79ec55 -r 2c56a59a112f test-data/example.2.vcf
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/test-data/example.2.vcf Wed Feb 15 16:15:21 2017 -0500
b
@@ -0,0 +1,26 @@
+##fileformat=VCFv4.1
+##source=VarScan2
+##INFO=<ID=ADP,Number=1,Type=Integer,Description="Average per-sample depth of bases with Phred score >= 15">
+##INFO=<ID=WT,Number=1,Type=Integer,Description="Number of samples called reference (wild-type)">
+##INFO=<ID=HET,Number=1,Type=Integer,Description="Number of samples called heterozygous-variant">
+##INFO=<ID=HOM,Number=1,Type=Integer,Description="Number of samples called homozygous-variant">
+##INFO=<ID=NC,Number=1,Type=Integer,Description="Number of samples not called">
+##FILTER=<ID=str10,Description="Less than 10% or more than 90% of variant supporting reads on one strand">
+##FILTER=<ID=indelError,Description="Likely artifact due to indel reads at this position">
+##FORMAT=<ID=GT,Number=1,Type=String,Description="Genotype">
+##FORMAT=<ID=GQ,Number=1,Type=Integer,Description="Genotype Quality">
+##FORMAT=<ID=SDP,Number=1,Type=Integer,Description="Raw Read Depth as reported by SAMtools">
+##FORMAT=<ID=DP,Number=1,Type=Integer,Description="Quality Read Depth of bases with Phred score >= 15">
+##FORMAT=<ID=RD,Number=1,Type=Integer,Description="Depth of reference-supporting bases (reads1)">
+##FORMAT=<ID=AD,Number=1,Type=Integer,Description="Depth of variant-supporting bases (reads2)">
+##FORMAT=<ID=FREQ,Number=1,Type=String,Description="Variant allele frequency">
+##FORMAT=<ID=PVAL,Number=1,Type=String,Description="P-value from Fisher's Exact Test">
+##FORMAT=<ID=RBQ,Number=1,Type=Integer,Description="Average quality of reference-supporting bases (qual1)">
+##FORMAT=<ID=ABQ,Number=1,Type=Integer,Description="Average quality of variant-supporting bases (qual2)">
+##FORMAT=<ID=RDF,Number=1,Type=Integer,Description="Depth of reference-supporting bases on forward strand (reads1plus)">
+##FORMAT=<ID=RDR,Number=1,Type=Integer,Description="Depth of reference-supporting bases on reverse strand (reads1minus)">
+##FORMAT=<ID=ADF,Number=1,Type=Integer,Description="Depth of variant-supporting bases on forward strand (reads2plus)">
+##FORMAT=<ID=ADR,Number=1,Type=Integer,Description="Depth of variant-supporting bases on reverse strand (reads2minus)">
+#CHROM POS ID REF ALT QUAL FILTER INFO FORMAT Sample1 Sample2
+chr1 17 . TT T . PASS ADP=8;WT=0;HET=0;HOM=2;NC=0 GT:GQ:SDP:DP:RD:AD:FREQ:PVAL:RBQ:ABQ:RDF:RDR:ADF:ADR 1/1:41:8:8:0:8:100%:7.77E-5:0:93:0:0:3:5 1/1:41:8:8:0:8:100%:7.77E-5:0:93:0:0:3:5
+chr1 77 . A AA . PASS ADP=8;WT=0;HET=0;HOM=2;NC=0 GT:GQ:SDP:DP:RD:AD:FREQ:PVAL:RBQ:ABQ:RDF:RDR:ADF:ADR 1/1:41:8:8:0:8:100%:7.77E-5:0:93:0:0:0:8 1/1:41:8:8:0:8:100%:7.77E-5:0:93:0:0:0:8
b
diff -r 10e2ea79ec55 -r 2c56a59a112f test-data/example.fa.1.bed
--- a/test-data/example.fa.1.bed Thu Nov 05 10:00:19 2015 -0500
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
b
@@ -1,1 +0,0 @@
-chr1 0 330
b
diff -r 10e2ea79ec55 -r 2c56a59a112f test-data/example.fa.2.bed
--- a/test-data/example.fa.2.bed Thu Nov 05 10:00:19 2015 -0500
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
b
@@ -1,1 +0,0 @@
-chr1 330 600
b
diff -r 10e2ea79ec55 -r 2c56a59a112f test-data/example.fa.fai
--- a/test-data/example.fa.fai Thu Nov 05 10:00:19 2015 -0500
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
b
@@ -1,1 +0,0 @@
-chr1 600 6 60 61
b
diff -r 10e2ea79ec55 -r 2c56a59a112f tool_dependencies.xml
--- a/tool_dependencies.xml Thu Nov 05 10:00:19 2015 -0500
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
b
@@ -1,14 +0,0 @@
-<?xml version="1.0"?>
-<tool_dependency>
-    <package name="samtools" version="0.1.19">
-        <repository changeset_revision="96aab723499f" name="package_samtools_0_1_19" owner="iuc" toolshed="https://toolshed.g2.bx.psu.edu" />
-    </package>
-
-    <package name="samtools_parallel_mpileup" version="0.1.19-a">
-        <repository changeset_revision="7dd0c6a9be41" name="package_samtools_parallel_mpileup_0_1_19_a" owner="yhoogstrate" toolshed="https://toolshed.g2.bx.psu.edu" />
-    </package>
-
-    <package name="varscan" version="2.3.6">
-        <repository changeset_revision="6f8cead3dc93" name="varscan_version_2" owner="devteam" prior_installation_required="True" toolshed="https://toolshed.g2.bx.psu.edu" />
-    </package>
-</tool_dependency>
b
diff -r 10e2ea79ec55 -r 2c56a59a112f varscan_mpileup2indel.xml
--- a/varscan_mpileup2indel.xml Thu Nov 05 10:00:19 2015 -0500
+++ b/varscan_mpileup2indel.xml Wed Feb 15 16:15:21 2017 -0500
[
b'@@ -1,41 +1,39 @@\n <?xml version="1.0" encoding="UTF-8"?>\n-<tool id="varscan_mpileup2indel" name="VarScan2 Call INDELs from a mpileup file" version="2.3.6.a">\n-    <description>VarScan2 INDEL detection; directly from a *.mpileup file.</description>\n+<tool id="varscan_mpileup2indel" name="VarScan2 Call INDELs from a mpileup file" version="2.4.2.a">\n+    <description>VarScan2 INDEL detection (on mpileup data)</description>\n     \n     <requirements>\n-        <requirement type="package" version="2.3.6">varscan</requirement>\n+        <requirement type="package" version="2.4.2">varscan</requirement>\n     </requirements>\n     \n-    <version_command>java -jar $JAVA_JAR_PATH/VarScan.v2.3.6.jar 2>&amp;1 | head -n 1</version_command>\n+    <version_command>varscan 2&gt;&amp;1 | head -n 1</version_command>\n     \n-    <command>\n-        cat $mpileup_input | java\n-             -Xmx64G\n-             -jar \\$JAVA_JAR_PATH/VarScan.v2.3.6.jar\n-                 mpileup2indel\n-         \n-        #if $extended_parameters.parameters == "extended"\n-             --min-coverage     $extended_parameters.varscan_min_coverage\n-             --min-reads2       $extended_parameters.varscan_min_reads2\n-             --min-avg-qual     $extended_parameters.varscan_min_avg_qual\n-             --min-var-freq     $extended_parameters.varscan_min_var_freq\n-             --min-freq-for-hom $extended_parameters.varscan_min_freq_for_hom\n-             --p-value          $extended_parameters.varscan_p_value\n-                                $extended_parameters.varscan_strand_filter \n-                                $extended_parameters.varscan_variants \n-        #end if\n-        \n-        #if $varscan_output == "vcf" or $varscan_output.value == "vcf"\n-         --output-vcf 1 \n-        #end if\n-        \n-         2> stderr.txt \n-         > $snv_output ;\n-         cat stderr.txt\n-    </command>\n+    <command detect_errors="exit_code"><![CDATA[\n+        varscan mpileup2indel\n+\n+        \'${mpileup_input}\'\n+\n+            #if $extended_parameters.parameters == "extended"\n+                 --min-coverage     $extended_parameters.varscan_min_coverage\n+                 --min-reads2       $extended_parameters.varscan_min_reads2\n+                 --min-avg-qual     $extended_parameters.varscan_min_avg_qual\n+                 --min-var-freq     $extended_parameters.varscan_min_var_freq\n+                 --min-freq-for-hom $extended_parameters.varscan_min_freq_for_hom\n+                 --p-value          $extended_parameters.varscan_p_value\n+                                    $extended_parameters.varscan_strand_filter \n+                                    $extended_parameters.varscan_variants \n+            #end if\n+\n+            #if $varscan_output == "vcf" or $varscan_output.value == "vcf"\n+                --output-vcf 1 \n+            #end if\n+\n+            > \'${snv_output}\'\n+    ]]></command>\n     \n     <inputs>\n-        <param format="pileup" name="mpileup_input" type="data" label="Alignment file" help="Mapped reads in mpileup format."/><!-- datatype "mpileup" does not exist.. it seems to be common to use pileup instead? -->\n+        <param name="mpileup_input" format="pileup" type="data" label="Alignment file"\n+               help="Mapped reads in mpileup format."/>\n         \n         <conditional name="extended_parameters">\n             <param name="parameters" type="select" label="VarScan parameters" help="For more advanced VarScan settings.">\n@@ -45,12 +43,12 @@\n             <when value="default">\n             </when>\n             <when value="extended">\n-                <param type="integer" name="varscan_min_coverage"     value="8"       label="VarScan: Minimum read depth at a position to make a call [8]" />\n-                <param type="integer" name="varscan_min_reads2"\t      value="2"       label="VarScan: PMinimum supporting reads at a position to call variants [2]" />\n-                <param type="integer" name="varscan_min_avg_qual"     value="15"      label="VarScan: M'..b'ition to make a call [8]" />\n+                <param type="integer" name="varscan_min_reads2"\t      value="2"       label="Minimum supporting reads at a position to call variants [2]" />\n+                <param type="integer" name="varscan_min_avg_qual"     value="15"      label="Minimum base quality at a position to count a read [15]" />\n+                <param type="float"   name="varscan_min_var_freq"     value="0.01"    label="minimum fraction of gapped reads for candidates [0.002]" help="Alias: -F" />\n+                <param type="float"   name="varscan_min_freq_for_hom" value="0.75"    label="Minimum frequency to call homozygote [0.75]" />\n+                <param type="float"   name="varscan_p_value"          value="0.99"    label="Default p-value threshold for calling variants [99e-02]" />\n                 <param type="boolean" name="varscan_strand_filter"    falsevalue=" --strand_filter 0" truevalue=" --strand_filter 1" checked="true"  label="VarScan: Ignore variants with >90% support on one strand [1]" />\n                 <param type="boolean" name="varscan_variants"         falsevalue=" --variants 0"      truevalue=" --variants 1"      checked="false" label="VarScan: Report only variant (SNP/indel) positions [0]" />\n             </when>\n@@ -81,51 +79,21 @@\n     </tests>\n     \n     <help>\n-**VarScan 2.3.6**\n+**VarScan 2.4.2**\n \n VarScan is a platform-independent mutation caller for targeted, exome, and whole-genome resequencing data generated on Illumina, SOLiD, Life/PGM, Roche/454, and similar instruments. The newest version, VarScan 2, is written in Java, so it runs on most operating systems.\n http://dx.doi.org/10.1101/gr.129684.111\n http://www.ncbi.nlm.nih.gov/pubmed/19542151\n \n-*VarScan* requires mpileup formatted input files, which are generally derived from BAM files. Since mpileup files can become humongous, the interim step of storing it is bypassed. Thus, in this wrapper one or multiple BAM/SAM files go in, get processed into a mpileup file and get directly linked to VarScan.\n-The samtools package is not able to parallelize the mpileup generation which make it a very slow process.\n-Other people were aware of this and have written a version that can do parallelization:\n-https://github.com/mydatascience/parallel-mpileup\n-\n-Consequently, when a BAM files gets processed by this wrapper, it\'s processed by *parallel-mpileup* before its send to VarScan.\n-\n-.. _VarScan: http://varscan.sourceforge.net/\n-\n **Input formats**\n \n-VarScan2 accepts sequencing alignments in the same, either SAM or BAM format (http://samtools.sourceforge.net/). The alignment files have to be linked to a reference genome by galaxy. This is indicated under every history item with e.g.: *"database: hg19"* for a link to hg19, or *"database: ?"* if the link is missing.\n+Alignment files have to be linked to a reference genome by galaxy. This is indicated under every history item with e.g.: *"database: hg19"* for a link to hg19, or *"database: ?"* if the link is missing.\n \n **Installation**\n \n Make sure your reference genomes are properly annotated in "tool-data/all_fasta.loc", and linked to the names of the reference used for alignment.\n-\n-**License**\n-\n-* VarScan2.3.6: Non-Profit Open Software License 3.0 (Non-Profit OSL 3.0)\n-* parallel-mpileup: MIT License (https://github.com/mydatascience/parallel-mpileup/blob/master/samtools-0.1.19/COPYING)\n-\n-Contact\n--------\n-\n-The tool wrapper has been written by Youri Hoogstrate from the Erasmus\n-Medical Center (Rotterdam, Netherlands) on behalf of the Translational\n-Research IT (TraIT) project:\n-\n-http://www.ctmm.nl/en/programmas/infrastructuren/traitprojecttranslationeleresearch\n-\n-More tools by the Translational Research IT (TraIT) project can be found\n-in the following toolsheds:\n-\n-http://toolshed.g2.bx.psu.edu/\n-\n-http://testtoolshed.g2.bx.psu.edu/\n </help>\n     <citations>\n         <citation type="doi">10.1101/gr.129684.111</citation>\n     </citations>\n-</tool>\n\\ No newline at end of file\n+</tool>\n'
b
diff -r 10e2ea79ec55 -r 2c56a59a112f varscan_mpileup2indel_from_bam.xml
--- a/varscan_mpileup2indel_from_bam.xml Thu Nov 05 10:00:19 2015 -0500
+++ b/varscan_mpileup2indel_from_bam.xml Wed Feb 15 16:15:21 2017 -0500
[
b'@@ -1,126 +1,97 @@\n <?xml version="1.0" encoding="UTF-8"?>\n-<tool id="varscan_mpileup2indel_from_bam" name="VarScan2 Call INDELs from BAM" version="2.3.6.a">\n+<tool id="varscan_mpileup2indel_from_bam" name="VarScan2 Call INDELs from BAM" version="2.4.2.a">\n     <description>VarScan2 INDEL detection; directly reading *.bam file(s) &amp; using parallel mpileup generation, to avoid unnecessairy I/O overhead and increase performance.</description>\n     \n     <requirements>\n-        <requirement type="package" version="0.1.19a">samtools_parallel_mpileup_0_1_19a</requirement>\n-        <requirement type="package" version="0.1.19">samtools</requirement>\n-        <requirement type="package" version="2.3.6">varscan</requirement>\n+        <requirement type="package" version="2.4.2">varscan</requirement>\n+        <requirement type="package" version="0.6.5">sambamba</requirement>\n     </requirements>\n     \n-    <version_command>java -jar $JAVA_JAR_PATH/VarScan.v2.3.6.jar 2>&amp;1 | head -n 1</version_command>\n+    <version_command>varscan 2&gt;&amp;1 | head -n 1</version_command>\n     \n-    <command>\n-        #if $reference_genome_source.source_select == "attribute" and len({ alignment.metadata.dbkey:True for alignment in $alignments }.keys()) != 1\n-            echo "Invalid number of dbkeys are found: ${ len({ alignment.metadata.dbkey:True for alignment in $alignments }.keys()) }, while only one should be used. Make sure that the alignments are done on the same reference genome and that \'tool-data/all_fasta.loc\' is configured properly!" >&amp;2\n-        #else\n-            #import os.path\n+    <command detect_errors="exit_code"><![CDATA[\n+        #for $alignment in $alignments\n+            ln -f -s \'${alignment.metadata.bam_index}\' \'${alignment}.bai\' &&\n+        #end for\n+\n+        sambamba mpileup\n+            -t \\${GALAXY_SLOTS:-4}\n+            \n             #for $alignment in $alignments\n-                <!-- @todo use the existence of $alignment.metadata.bam_index or $alignment.metadata[\'bam_index\'] -->\n-                #if not os.path.isfile(str($alignment)+".bai")\n-                 echo "- Indexing alignment file: $alignment.name " ; \n-                 samtools index $alignment 2>&amp;1 ; \n-                #else\n-                 echo "- Skiping indexing: $alignment.name " ; \n-                #end if\n+                 \'${alignment}\'\n             #end for\n             \n-            #if $mpileup_parallelization.mpileup_parallelization_select == "true"\n-                samtools-parallel-mpileup mpileup\n-                -t $mpileup_parallelization.samtools_threads\n-            #else\n-                samtools mpileup\n-            #end if\n-                -f \n-                    #if $reference_genome_source.source_select == "indexed_filtered"\n-                        "$reference_genome_source.reference_genome"\n-                    #else if $reference_genome_source.source_select == "indexed_all"\n-                        "$reference_genome_source.reference_genome"\n-                    #else if $reference_genome_source.source_select == "history"\n-                        "$reference_genome_source.reference_genome"\n-                    #else\n-                        <!--\n-                            This is a workaround to obtain the "genome.fa" file that\n-                            corresponds to the dbkey of the alignments.\n-                            Because this file is "calculated" during run-time, it can\n-                            be used in a workflow.\n-                        -->\n-                        "${ filter( lambda x: str( x[0] ) == str( { alignment.metadata.dbkey:True for alignment in $alignments }.keys()[0] ), $__app__.tool_data_tables[ \'all_fasta\' ].get_fields() )[0][-1] }"\n-                    #end if\n-            \n-            #if $extended_parameters_regions.samtools_regions == "region"\n-                 -r $extended_parameters_regions.samtools_r\n-            #elif $extended_parameters_regions.samtools_regions == "re'..b' improve performance.">\n-                <option value="false" >False - uses classical samtools</option>\n-                <option value="true">True - uses (experimental) samtools mpileup-parallel</option>\n-            </param>\n-            <when value="false" />\n-            <when value="true">\n-                <param type="integer" name="samtools_threads" value="2" min="1" label="Samtools: mpileup threads" />\n-                <param type="boolean" name="sort_mpileup" truevalue="true" falsevalue="false" label="Sort mpileup file (SLOW)" help="Because parallelization may disrupt the outputs order, sorting can be conveniet for e.g. testing. Notice that this function has only use in a limited number of situations but consumes (much) resources. Only use it if it\'s really neccesairy." />\n-            </when>\n-        </conditional>\n-        \n         <conditional name="extended_parameters">\n             <param name="parameters" type="select" label="Advanced parameters" help="For more advanced VarScan and samtools settings.">\n                 <option value="default">Default settings</option>\n@@ -260,30 +219,12 @@\n             <param name="varscan_output_vcf" value="1" />\n             \n             \n-            <output name="snv_output" file="example.vcf" />\n-        </test>\n-        <test><!-- Use parallelized samtools -->\n-            <param name="alignments" value="example.bam" ftype="bam" />\n-            \n-            <param name="source_select" value="history" />\n-            <param name="reference_genome" value="example.fa" ftype="fasta" />\n-            \n-            <param name="samtools_regions" value="entire_genome" />\n-            \n-            <param name="mpileup_parallelization_select" value="true" />\n-            <param name="samtools_threads" value="2" />\n-            <param name="sort_mpileup" value="true" />\n-            \n-            <param name="parameters" value="default" />\n-            <param name="varscan_output_vcf" value="1" />\n-            \n-            \n-            <output name="snv_output" file="example.vcf" />\n+            <output name="snv_output" file="example.2.vcf" />\n         </test>\n     </tests>\n     \n     <help>\n-**VarScan 2.3.6**\n+**VarScan 2.4.2**\n \n VarScan is a platform-independent mutation caller for targeted, exome, and whole-genome resequencing data generated on Illumina, SOLiD, Life/PGM, Roche/454, and similar instruments. The newest version, VarScan 2, is written in Java, so it runs on most operating systems.\n http://dx.doi.org/10.1101/gr.129684.111\n@@ -302,33 +243,18 @@\n \n VarScan2 accepts sequencing alignments in the same, either SAM or BAM format (http://samtools.sourceforge.net/). The alignment files have to be linked to a reference genome by galaxy. This is indicated under every history item with e.g.: *"database: hg19"* for a link to hg19, or *"database: ?"* if the link is missing.\n \n-**Installation**\n-\n-Make sure your reference genomes are properly annotated in "tool-data/all_fasta.loc", and linked to the names of the reference used for alignment.\n-\n **License**\n \n-* VarScan2.3.6: Non-Profit Open Software License 3.0 (Non-Profit OSL 3.0)\n-* parallel-mpileup: MIT License (https://github.com/mydatascience/parallel-mpileup/blob/master/samtools-0.1.19/COPYING)\n+* VarScan 2.4.2: Non-Profit Open Software License 3.0 (Non-Profit OSL 3.0)\n \n \n Contact\n -------\n \n The tool wrapper has been written by Youri Hoogstrate from the Erasmus\n-Medical Center (Rotterdam, Netherlands) on behalf of the Translational\n-Research IT (TraIT) project:\n-\n-http://www.ctmm.nl/en/programmas/infrastructuren/traitprojecttranslationeleresearch\n-\n-More tools by the Translational Research IT (TraIT) project can be found\n-in the following toolsheds:\n-\n-http://toolshed.g2.bx.psu.edu/\n-\n-http://testtoolshed.g2.bx.psu.edu/\n+Medical Center (Rotterdam, Netherlands).\n     </help>\n     <citations>\n         <citation type="doi">10.1101/gr.129684.111</citation>\n     </citations>\n-</tool>\n\\ No newline at end of file\n+</tool>\n'