diff lumpy.xml @ 0:8b3daa745d9b draft

planemo upload for repository https://github.com/ARTbio/tools-artbio/tree/master/tools/lumpy commit c0bfc4b2215705e1b5fd1d4e60b1d72e5da13c92
author drosofff
date Tue, 06 Dec 2016 05:46:28 -0500
parents
children a006d42dd759
line wrap: on
line diff
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/lumpy.xml	Tue Dec 06 05:46:28 2016 -0500
@@ -0,0 +1,102 @@
+<tool id="lumpy" name="lumpy-sv" version="0.1">
+    <description>find structural variants</description>
+    <requirements>
+        <requirement type="package" version="0.2.12">lumpy-sv</requirement>
+        <requirement type="package" version="1.3.1">samtools</requirement>
+        <requirement type="package" version="1.11.2">numpy</requirement>
+    </requirements>
+    <stdio>
+        <exit_code range="1:" level="fatal" description="Tool exception" />
+    </stdio>
+    <version_command>lumpy --version</version_command>
+    <command><![CDATA[
+        ln -f -s "$input_file" input.bam &&
+        #if $seq_method.seq_method_list == "paired-end":
+            samtools view -b -F 1294 input.bam > "input.discordants.unsorted.bam" &&
+            samtools view -h input.bam | python $__tool_directory__/extractSplitReads_BwaMem.py -i stdin | samtools view -Sb - > "input.splitters.unsorted.bam" &&
+            samtools sort input.discordants.unsorted.bam > input.discordants.bam &&
+            samtools sort input.splitters.unsorted.bam > input.splitters.bam &&
+            samtools view -r readgroup input.bam
+                |tail -n +$seq_method.additional_params.samplingValue
+                |python $__tool_directory__/pairend_distro.py -r 101 -X 4 -N $seq_method.additional_params.samplingValue -o input.lib.histo > meandev.txt &&
+            mean=\$(cat meandev.txt | sed s/mean:// | sed -r s/stdev:.+//) &&
+            stdev=\$(cat meandev.txt | sed -r s/mean:.+stdev://) &&
+            lumpy -mw 4 -tt 0 
+                -pe id:input.bam,bam_file:input.discordants.bam,histo_file:input.lib.histo,mean:"\$mean",stdev:"\$stdev",read_length:$seq_method.readLength,min_non_overlap:$seq_method.additional_params.min_non_overlap,discordant_z:$seq_method.additional_params.discordant_z,back_distance:$seq_method.additional_params.back_distance,weight:$seq_method.additional_params.weight,min_mapping_threshold:$seq_method.additional_params.min_mapping_threshold 
+                -sr id:input.bam,bam_file:input.splitters.bam,back_distance:$seq_method.additional_params.back_distance,weight:$seq_method.additional_params.weight,min_mapping_threshold:$seq_method.additional_params.min_mapping_threshold > output.vcf &&
+            mv input.discordants.bam $discordants &&
+            mv input.splitters.bam $splits &&
+            mv input.lib.histo $histogram &&
+            mv output.vcf $vcf_call &&
+            rm input.discordants.unsorted.bam input.splitters.unsorted.bam meandev.txt
+        #end if
+        #if $seq_method.seq_method_list == "single-read":
+            samtools view -h input.bam | python $__tool_directory__/extractSplitReads_BwaMem.py -i stdin | samtools view -Sb - > "input.splitters.unsorted.bam" &&
+            lumpy -mw 4 -tt 0
+                -sr id:input.bam,bam_file:input.splitters.unsorted.bam,back_distance:$seq_method.additional_params.back_distance,weight:$seq_method.additional_params.weight,min_mapping_threshold:$seq_method.additional_params.min_mapping_threshold > output.vcf &&
+            mv input.splitters.unsorted.bam $splits &&
+            mv output.vcf $vcf_call
+        #end if
+
+    ]]></command>
+    <!-- basic error handling -->
+    <inputs>
+        <param format="bam" name="input_file" type="data" label="One BAM alignment file produced by BWA-mem"/>
+        <conditional name="seq_method">
+            <param help="Paired-end or single-read sequencing" label="Sequencing method" name="seq_method_list" type="select">
+                <option selected="True" value="paired-end">Paired-end sequencing</option>
+                <option value="single-read">Single-read sequencing</option>
+            </param>
+            <when value="paired-end">
+                <param name="readLength" value="151"  type="integer" label="read length" help="e.g. 151 nt" />
+                <section name="additional_params" title="Additional Options" expanded="False">
+                    <param name="samplingValue" value="100000"  type="integer" label="number of reads to compute mean and stdev of read length" help="e.g. 10000" />
+                    <param name="min_non_overlap" value="101"  type="integer" label="min_non_overlap" help="e.g. 101" />
+                    <param name="discordant_z" value="5"  type="integer" label="discordant_z" help="e.g. 5" />
+                    <param name="back_distance" value="10"  type="integer" label="back_distance" help="e.g. 10" />
+                    <param name="weight" value="1"  type="integer" label="weight" help="e.g. 1" />
+                    <param name="min_mapping_threshold" value="20"  type="integer" label="min_mapping_threshold" help="e.g. 20" />
+                </section>
+            </when>
+            <when value="single-read">
+                <section name="additional_params" title="Additional Options" expanded="False">
+                    <param name="back_distance" value="10"  type="integer" label="back_distance" help="e.g. 10" />
+                    <param name="weight" value="1"  type="integer" label="weight" help="e.g. 1" />
+                    <param name="min_mapping_threshold" value="20"  type="integer" label="min_mapping_threshold" help="e.g. 20" />
+                </section>
+            </when>
+            
+        </conditional>
+
+    </inputs>
+
+    <outputs>
+        <data format="tabular" name="histogram" type="data" label="${input_file.element_identifier} Fragment size distribution">
+            <filter>seq_method['seq_method_list'] == "paired-end"</filter>
+        </data>
+        <data format="bam" name="splits" type="data" label="${input_file.element_identifier} Split Reads (Bam format)"/>
+        <data format="bam" name="discordants" type="data" label="${input_file.element_identifier} Discordant Pairs (Bam format)">
+            <filter>seq_method['seq_method_list'] == "paired-end"</filter>
+        </data>
+        <data format="vcf" name="vcf_call" type="data" label="${input_file.element_identifier} Variant Calling (vcf format)"/>
+    </outputs>
+
+    <tests>
+        <test>
+            <param name="input_file" value="sr.input.bam" ftype="bam"/>
+            <param name="seq_method_list" value="single-read" />
+            <param name="back_distance" value="10"/>
+            <param name="weight" value="1" />
+            <param name="min_mapping_threshold" value="20" />
+            <output name="vcf_call" file="output.vcf" ftype="vcf"/>
+        </test>
+   </tests>
+
+    <help>
+        Some help required
+    </help>
+
+    <citations>
+    <citation type="doi">10.1186/gb-2014-15-6-r84</citation>
+  </citations>
+</tool>