diff varscan_mpileup2indel_from_bam.xml @ 1:2c56a59a112f draft default tip

planemo upload for repository https://github.com/ErasmusMC-Bioinformatics/galaxytools-emc/tree/master/tools/galaxy-tool-shed-tools commit bd543e68c1af82bcd6a04f0ae3d1180e8887e122
author erasmus-medical-center
date Wed, 15 Feb 2017 16:15:21 -0500
parents 10e2ea79ec55
children
line wrap: on
line diff
--- 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
@@ -1,126 +1,97 @@
 <?xml version="1.0" encoding="UTF-8"?>
-<tool id="varscan_mpileup2indel_from_bam" name="VarScan2 Call INDELs from BAM" version="2.3.6.a">
+<tool id="varscan_mpileup2indel_from_bam" name="VarScan2 Call INDELs from BAM" version="2.4.2.a">
     <description>VarScan2 INDEL detection; directly reading *.bam file(s) &amp; using parallel mpileup generation, to avoid unnecessairy I/O overhead and increase performance.</description>
     
     <requirements>
-        <requirement type="package" version="0.1.19a">samtools_parallel_mpileup_0_1_19a</requirement>
-        <requirement type="package" version="0.1.19">samtools</requirement>
-        <requirement type="package" version="2.3.6">varscan</requirement>
+        <requirement type="package" version="2.4.2">varscan</requirement>
+        <requirement type="package" version="0.6.5">sambamba</requirement>
     </requirements>
     
-    <version_command>java -jar $JAVA_JAR_PATH/VarScan.v2.3.6.jar 2>&amp;1 | head -n 1</version_command>
+    <version_command>varscan 2&gt;&amp;1 | head -n 1</version_command>
     
-    <command>
-        #if $reference_genome_source.source_select == "attribute" and len({ alignment.metadata.dbkey:True for alignment in $alignments }.keys()) != 1
-            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
-        #else
-            #import os.path
+    <command detect_errors="exit_code"><![CDATA[
+        #for $alignment in $alignments
+            ln -f -s '${alignment.metadata.bam_index}' '${alignment}.bai' &&
+        #end for
+
+        sambamba mpileup
+            -t \${GALAXY_SLOTS:-4}
+            
             #for $alignment in $alignments
-                <!-- @todo use the existence of $alignment.metadata.bam_index or $alignment.metadata['bam_index'] -->
-                #if not os.path.isfile(str($alignment)+".bai")
-                 echo "- Indexing alignment file: $alignment.name " ; 
-                 samtools index $alignment 2>&amp;1 ; 
-                #else
-                 echo "- Skiping indexing: $alignment.name " ; 
-                #end if
+                 '${alignment}'
             #end for
             
-            #if $mpileup_parallelization.mpileup_parallelization_select == "true"
-                samtools-parallel-mpileup mpileup
-                -t $mpileup_parallelization.samtools_threads
-            #else
-                samtools mpileup
-            #end if
-                -f 
-                    #if $reference_genome_source.source_select == "indexed_filtered"
-                        "$reference_genome_source.reference_genome"
-                    #else if $reference_genome_source.source_select == "indexed_all"
-                        "$reference_genome_source.reference_genome"
-                    #else if $reference_genome_source.source_select == "history"
-                        "$reference_genome_source.reference_genome"
-                    #else
-                        <!--
-                            This is a workaround to obtain the "genome.fa" file that
-                            corresponds to the dbkey of the alignments.
-                            Because this file is "calculated" during run-time, it can
-                            be used in a workflow.
-                        -->
-                        "${ 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] }"
-                    #end if
-            
-            #if $extended_parameters_regions.samtools_regions == "region"
-                 -r $extended_parameters_regions.samtools_r
-            #elif $extended_parameters_regions.samtools_regions == "regions_file_pos" or $extended_parameters_regions.samtools_regions == "regions_file_bed"
-                 -l $extended_parameters_regions.samtools_l
-            #end if
+            --samtools
+            -f 
+                #if $reference_genome_source.source_select == "indexed_filtered"
+                    '$reference_genome_source.reference_genome'
+                #else if $reference_genome_source.source_select == "indexed_all"
+                    '$reference_genome_source.reference_genome'
+                #else if $reference_genome_source.source_select == "history"
+                    '$reference_genome_source.reference_genome'
+                #else
+                    <!--
+                        This is a workaround to obtain the "genome.fa" file that
+                        corresponds to the dbkey of the alignments.
+                        Because this file is "calculated" during run-time, it can
+                        be used in a workflow.
+                    -->
+                    "${ 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] }"
+                #end if
+        
+        #if $extended_parameters_regions.samtools_regions == "region"
+             -r '${extended_parameters_regions.samtools_r}'
+        #elif $extended_parameters_regions.samtools_regions == "regions_file_pos" or $extended_parameters_regions.samtools_regions == "regions_file_bed"
+             -l '${extended_parameters_regions.sambamba_l}'
+        #end if
+        
+        #if $extended_parameters.parameters == "extended"
+            $extended_parameters.samtools_6
+            $extended_parameters.samtools_A
+            $extended_parameters.samtools_B
+             -C $extended_parameters.samtools_C
+             -d $extended_parameters.samtools_d
+            $extended_parameters.samtools_E
+             -M $extended_parameters.samtools_M
+            $extended_parameters.samtools_R
+             -q $extended_parameters.samtools_q
+             -Q $extended_parameters.samtools_Q
             
-            #if $extended_parameters.parameters == "extended"
-                $extended_parameters.samtools_6
-                $extended_parameters.samtools_A
-                $extended_parameters.samtools_B
-                 -C $extended_parameters.samtools_C
-                 -d $extended_parameters.samtools_d
-                $extended_parameters.samtools_E
-                 -M $extended_parameters.samtools_M
-                $extended_parameters.samtools_R
-                 -q $extended_parameters.samtools_q
-                 -Q $extended_parameters.samtools_Q
-                
-                 -e $extended_parameters.samtools_e
-                 -F $extended_parameters.samtools_F
-                 -h $extended_parameters.samtools_h
-                $extended_parameters.samtools_I
-                 -L $extended_parameters.samtools_L
-                 -m $extended_parameters.samtools_m
-                 -o $extended_parameters.samtools_o
-                $extended_parameters.samtools_p
-                 -P $extended_parameters.samtools_P
-            #end if
-            
-            #for $alignment in $alignments
-                 ${alignment}
-            #end for
-             2>stderr_1.txt
-            
-            #if $mpileup_parallelization.mpileup_parallelization_select == "true"
-                #if $mpileup_parallelization.sort_mpileup
-                 | sort -k1,1V -k2,2g 
-                #end if
-            #end if
-            
-             | java
-                     -Xmx64G
-                     -jar \$JAVA_JAR_PATH/VarScan.v2.3.6.jar
-                         mpileup2indel
-             
-            #if $extended_parameters.parameters == "extended"
-                     --min-coverage     $extended_parameters.varscan_min_coverage
-                     --min-reads2       $extended_parameters.varscan_min_reads2
-                     --min-avg-qual     $extended_parameters.varscan_min_avg_qual
-                     --min-var-freq     $extended_parameters.varscan_min_var_freq
-                     --min-freq-for-hom $extended_parameters.varscan_min_freq_for_hom
-                     --p-value          $extended_parameters.varscan_p_value
-                                        $extended_parameters.varscan_strand_filter 
-                                        $extended_parameters.varscan_variants 
-            #end if
-            
-            #if $varscan_output == "vcf" or $varscan_output.value == "vcf"
-             --output-vcf 1 
-            #end if
-            
-             2>stderr_2.txt 
-             > $snv_output ;
-             
-             
-             echo "---------------[ mpileup generation ]---------------" ;
-             cat stderr_1.txt ;
-             echo "" ;
-             echo "---------------[ VarScan INDEL detect ]-------------" ;
-             cat stderr_2.txt ;
-             echo "" ;
-             echo "----------------------------------------------------" ;
+             -e $extended_parameters.samtools_e
+             -F $extended_parameters.samtools_F
+             -h $extended_parameters.samtools_h
+            $extended_parameters.samtools_I
+             -L $extended_parameters.samtools_L
+             -m $extended_parameters.samtools_m
+             -o $extended_parameters.samtools_o
+            $extended_parameters.samtools_p
+             -P $extended_parameters.samtools_P
         #end if
-    </command>
+        
+        #for $alignment in $alignments
+             '${alignment}'
+        #end for
+
+        | varscan mpileup2indel
+         
+        #if $extended_parameters.parameters == "extended"
+                 --min-coverage     $extended_parameters.varscan_min_coverage
+                 --min-reads2       $extended_parameters.varscan_min_reads2
+                 --min-avg-qual     $extended_parameters.varscan_min_avg_qual
+                 --min-var-freq     $extended_parameters.varscan_min_var_freq
+                 --min-freq-for-hom $extended_parameters.varscan_min_freq_for_hom
+                 --p-value          $extended_parameters.varscan_p_value
+                                    $extended_parameters.varscan_strand_filter 
+                                    $extended_parameters.varscan_variants 
+        #end if
+        
+        #if $varscan_output == "vcf" or $varscan_output.value == "vcf"
+            --output-vcf 1 
+        #end if
+        
+         > '${snv_output}'
+         
+    ]]></command>
     
     <inputs>
         <param format="bam,sam" multiple="true" name="alignments" type="data" label="Alignment file(s)" help="Mapped reads in BAM or SAM format."/>
@@ -179,18 +150,6 @@
             </when>
         </conditional>
         
-        <conditional name="mpileup_parallelization">
-            <param name="mpileup_parallelization_select" type="select" label="Use parallelization for the mpileup generation (experimental)" help="Especially if larger numbers of bam/sam files are processed, or the file infrastructure is optimized for IO-paralellization, this feature might improve performance.">
-                <option value="false" >False - uses classical samtools</option>
-                <option value="true">True - uses (experimental) samtools mpileup-parallel</option>
-            </param>
-            <when value="false" />
-            <when value="true">
-                <param type="integer" name="samtools_threads" value="2" min="1" label="Samtools: mpileup threads" />
-                <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." />
-            </when>
-        </conditional>
-        
         <conditional name="extended_parameters">
             <param name="parameters" type="select" label="Advanced parameters" help="For more advanced VarScan and samtools settings.">
                 <option value="default">Default settings</option>
@@ -260,30 +219,12 @@
             <param name="varscan_output_vcf" value="1" />
             
             
-            <output name="snv_output" file="example.vcf" />
-        </test>
-        <test><!-- Use parallelized samtools -->
-            <param name="alignments" value="example.bam" ftype="bam" />
-            
-            <param name="source_select" value="history" />
-            <param name="reference_genome" value="example.fa" ftype="fasta" />
-            
-            <param name="samtools_regions" value="entire_genome" />
-            
-            <param name="mpileup_parallelization_select" value="true" />
-            <param name="samtools_threads" value="2" />
-            <param name="sort_mpileup" value="true" />
-            
-            <param name="parameters" value="default" />
-            <param name="varscan_output_vcf" value="1" />
-            
-            
-            <output name="snv_output" file="example.vcf" />
+            <output name="snv_output" file="example.2.vcf" />
         </test>
     </tests>
     
     <help>
-**VarScan 2.3.6**
+**VarScan 2.4.2**
 
 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.
 http://dx.doi.org/10.1101/gr.129684.111
@@ -302,33 +243,18 @@
 
 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.
 
-**Installation**
-
-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.
-
 **License**
 
-* VarScan2.3.6: Non-Profit Open Software License 3.0 (Non-Profit OSL 3.0)
-* parallel-mpileup: MIT License (https://github.com/mydatascience/parallel-mpileup/blob/master/samtools-0.1.19/COPYING)
+* VarScan 2.4.2: Non-Profit Open Software License 3.0 (Non-Profit OSL 3.0)
 
 
 Contact
 -------
 
 The tool wrapper has been written by Youri Hoogstrate from the Erasmus
-Medical Center (Rotterdam, Netherlands) on behalf of the Translational
-Research IT (TraIT) project:
-
-http://www.ctmm.nl/en/programmas/infrastructuren/traitprojecttranslationeleresearch
-
-More tools by the Translational Research IT (TraIT) project can be found
-in the following toolsheds:
-
-http://toolshed.g2.bx.psu.edu/
-
-http://testtoolshed.g2.bx.psu.edu/
+Medical Center (Rotterdam, Netherlands).
     </help>
     <citations>
         <citation type="doi">10.1101/gr.129684.111</citation>
     </citations>
-</tool>
\ No newline at end of file
+</tool>