Mercurial > repos > drosofff > lumpy
comparison lumpy.xml @ 2:b1e152172de9 draft
planemo upload for repository https://github.com/ARTbio/tools-artbio/tree/master/tools/lumpy commit 5f3fb85a6eb667b04c4de65eb722261f315c8241
author | drosofff |
---|---|
date | Tue, 06 Dec 2016 17:29:34 -0500 |
parents | a006d42dd759 |
children | 0bd777f0d6d8 |
comparison
equal
deleted
inserted
replaced
1:a006d42dd759 | 2:b1e152172de9 |
---|---|
1 <tool id="lumpy" name="lumpy-sv" version="0.1"> | 1 <tool id="lumpy" name="lumpy-sv" version="0.2"> |
2 <description>find structural variants</description> | 2 <description>find structural variants</description> |
3 <requirements> | 3 <requirements> |
4 <requirement type="package" version="0.2.12">lumpy-sv</requirement> | 4 <requirement type="package" version="0.2.12">lumpy-sv</requirement> |
5 <requirement type="package" version="1.3.1">samtools</requirement> | 5 <requirement type="package" version="1.3.1">samtools</requirement> |
6 <requirement type="package" version="1.11.2">numpy</requirement> | 6 <requirement type="package" version="1.11.2">numpy</requirement> |
8 <stdio> | 8 <stdio> |
9 <exit_code range="1:" level="fatal" description="Tool exception" /> | 9 <exit_code range="1:" level="fatal" description="Tool exception" /> |
10 </stdio> | 10 </stdio> |
11 <version_command>lumpy --version</version_command> | 11 <version_command>lumpy --version</version_command> |
12 <command><![CDATA[ | 12 <command><![CDATA[ |
13 ln -f -s "$input_file" input.bam && | 13 #if $analysis_type.analysis_type_list == "one_sample": |
14 #if $seq_method.seq_method_list == "paired-end": | 14 ln -f -s $analysis_type.input_file input.bam && |
15 samtools view -b -F 1294 input.bam > "input.discordants.unsorted.bam" && | 15 #else: |
16 samtools view -h input.bam | python $__tool_directory__/extractSplitReads_BwaMem.py -i stdin | samtools view -Sb - > "input.splitters.unsorted.bam" && | 16 ln -f -s $analysis_type.input_file input.A.bam && |
17 samtools sort input.discordants.unsorted.bam > input.discordants.bam && | 17 ln -f -s $analysis_type.input_fileB input.B.bam && |
18 samtools sort input.splitters.unsorted.bam > input.splitters.bam && | |
19 samtools view -r readgroup input.bam | |
20 |tail -n +$seq_method.additional_params.samplingValue | |
21 |python $__tool_directory__/pairend_distro.py -r 101 -X 4 -N $seq_method.additional_params.samplingValue -o input.lib.histo > meandev.txt && | |
22 mean=\$(cat meandev.txt | sed s/mean:// | sed -r s/stdev:.+//) && | |
23 stdev=\$(cat meandev.txt | sed -r s/mean:.+stdev://) && | |
24 lumpy -mw 4 -tt 0 | |
25 -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 | |
26 -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 && | |
27 mv input.discordants.bam $discordants && | |
28 mv input.splitters.bam $splits && | |
29 mv input.lib.histo $histogram && | |
30 mv output.vcf $vcf_call && | |
31 rm input.discordants.unsorted.bam input.splitters.unsorted.bam meandev.txt | |
32 #end if | 18 #end if |
33 #if $seq_method.seq_method_list == "single-read": | 19 |
34 samtools view -h input.bam | python $__tool_directory__/extractSplitReads_BwaMem.py -i stdin | samtools view -Sb - > "input.splitters.unsorted.bam" && | 20 #if $analysis_type.analysis_type_list == "one_sample": |
35 lumpy -mw 4 -tt 0 | 21 |
36 -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 && | 22 #if $seq_method.seq_method_list == "paired-end": |
37 mv input.splitters.unsorted.bam $splits && | 23 samtools view -b -F 1294 input.bam > "input.discordants.unsorted.bam" && |
38 mv output.vcf $vcf_call | 24 samtools view -h input.bam | python $__tool_directory__/extractSplitReads_BwaMem.py -i stdin | samtools view -Sb - > "input.splitters.unsorted.bam" && |
25 samtools sort input.discordants.unsorted.bam > input.discordants.bam && | |
26 samtools sort input.splitters.unsorted.bam > input.splitters.bam && | |
27 samtools view -r readgroup input.bam | |
28 |tail -n +$seq_method.additional_params.samplingValue | |
29 |python $__tool_directory__/pairend_distro.py -r 101 -X 4 -N $seq_method.additional_params.samplingValue -o input.lib.histo > meandev.txt && | |
30 mean=\$(cat meandev.txt | sed s/mean:// | sed -r s/stdev:.+//) && | |
31 stdev=\$(cat meandev.txt | sed -r s/mean:.+stdev://) && | |
32 lumpy -mw $seq_method.additional_params.mw -tt $seq_method.additional_params.tt | |
33 -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 | |
34 -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 && | |
35 mv input.discordants.bam $discordants && | |
36 mv input.splitters.bam $splits && | |
37 mv input.lib.histo $histogram && | |
38 mv output.vcf $vcf_call && | |
39 rm input.discordants.unsorted.bam input.splitters.unsorted.bam meandev.txt | |
40 #end if | |
41 #if $seq_method.seq_method_list == "single-read": | |
42 samtools view -h input.bam | python $__tool_directory__/extractSplitReads_BwaMem.py -i stdin | samtools view -Sb - > "input.splitters.unsorted.bam" && | |
43 lumpy -mw $seq_method.additional_params.mw -tt $seq_method.additional_params.tt | |
44 -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 && | |
45 mv input.splitters.unsorted.bam $splits && | |
46 mv output.vcf $vcf_call | |
47 #end if | |
48 | |
49 #else: | |
50 | |
51 #if $seq_method.seq_method_list == "paired-end": | |
52 samtools view -b -F 1294 input.A.bam > "input.A.discordants.unsorted.bam" && | |
53 samtools view -b -F 1294 input.B.bam > "input.B.discordants.unsorted.bam" && | |
54 samtools view -h input.A.bam | python $__tool_directory__/extractSplitReads_BwaMem.py -i stdin | samtools view -Sb - > "input.A.splitters.unsorted.bam" && | |
55 samtools view -h input.B.bam | python $__tool_directory__/extractSplitReads_BwaMem.py -i stdin | samtools view -Sb - > "input.B.splitters.unsorted.bam" && | |
56 samtools sort input.A.discordants.unsorted.bam > input.A.discordants.bam && | |
57 samtools sort input.B.discordants.unsorted.bam > input.B.discordants.bam && | |
58 samtools sort input.A.splitters.unsorted.bam > input.A.splitters.bam && | |
59 samtools sort input.B.splitters.unsorted.bam > input.B.splitters.bam && | |
60 samtools view -r readgroup input.A.bam | |
61 |tail -n +$seq_method.additional_params.samplingValue | |
62 |python $__tool_directory__/pairend_distro.py -r 101 -X 4 -N $seq_method.additional_params.samplingValue -o input.A.lib.histo > meandevA.txt && | |
63 samtools view -r readgroup input.B.bam | |
64 |tail -n +$seq_method.additional_params.samplingValue | |
65 |python $__tool_directory__/pairend_distro.py -r 101 -X 4 -N $seq_method.additional_params.samplingValue -o input.B.lib.histo > meandevB.txt && | |
66 meanA=\$(cat meandevA.txt | sed s/mean:// | sed -r s/stdev:.+//) && | |
67 meanB=\$(cat meandevB.txt | sed s/mean:// | sed -r s/stdev:.+//) && | |
68 stdevA=\$(cat meandevA.txt | sed -r s/mean:.+stdev://) && | |
69 stdevB=\$(cat meandevB.txt | sed -r s/mean:.+stdev://) && | |
70 lumpy -mw $seq_method.additional_params.mw -tt $seq_method.additional_params.tt | |
71 -pe id:inputA.bam,bam_file:input.A.discordants.bam,histo_file:input.A.lib.histo,mean:"\$meanA",stdev:"\$stdevA",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 | |
72 -pe id:inputB.bam,bam_file:input.B.discordants.bam,histo_file:input.B.lib.histo,mean:"\$meanB",stdev:"\$stdevA",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 | |
73 -sr id:inputA.bam,bam_file:input.A.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 | |
74 -sr id:inputB.bam,bam_file:input.B.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 && | |
75 mv input.A.discordants.bam $discordants && | |
76 mv input.B.discordants.bam $discordantsB && | |
77 mv input.A.splitters.bam $splits && | |
78 mv input.B.splitters.bam $splitsB && | |
79 mv input.A.lib.histo $histogram && | |
80 mv input.B.lib.histo $histogramB && | |
81 mv output.vcf $vcf_call && | |
82 rm input.A.discordants.unsorted.bam input.B.discordants.unsorted.bam input.A.splitters.unsorted.bam input.B.splitters.unsorted.bam meandevA.txt meandevB.txt | |
83 #end if | |
84 #if $seq_method.seq_method_list == "single-read": | |
85 samtools view -h input.A.bam | python $__tool_directory__/extractSplitReads_BwaMem.py -i stdin | samtools view -Sb - > "input.A.splitters.unsorted.bam" && | |
86 samtools view -h input.B.bam | python $__tool_directory__/extractSplitReads_BwaMem.py -i stdin | samtools view -Sb - > "input.B.splitters.unsorted.bam" && | |
87 lumpy -mw $seq_method.additional_params.mw -tt $seq_method.additional_params.tt | |
88 -sr id:input.A.bam,bam_file:input.A.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 | |
89 -sr id:input.B.bam,bam_file:input.B.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 && | |
90 mv input.A.splitters.unsorted.bam $splits && | |
91 mv input.B.splitters.unsorted.bam $splitsB && | |
92 mv output.vcf $vcf_call | |
93 #end if | |
94 | |
95 | |
39 #end if | 96 #end if |
40 | 97 |
41 ]]></command> | 98 ]]></command> |
42 <!-- basic error handling --> | 99 <!-- basic error handling --> |
43 <inputs> | 100 <inputs> |
44 <param format="bam" name="input_file" type="data" label="One BAM alignment file produced by BWA-mem"/> | 101 <conditional name="analysis_type"> |
102 <param help="Single or paired conditions (eg tumor vs normal)" label="Analysis type" name="analysis_type_list" type="select"> | |
103 <option selected="True" value="one_sample">One Sample</option> | |
104 <option value="two_sample">Two samples</option> | |
105 </param> | |
106 <when value="one_sample"> | |
107 <param format="bam" name="input_file" type="data" label="One BAM alignment file produced by BWA-mem"/> | |
108 </when> | |
109 <when value="two_sample"> | |
110 <param format="bam" name="input_file" type="data" label="One BAM alignment file produced by BWA-mem"/> | |
111 <param format="bam" name="input_fileB" type="data" label="One BAM alignment file produced by BWA-mem"/> | |
112 </when> | |
113 </conditional> | |
45 <conditional name="seq_method"> | 114 <conditional name="seq_method"> |
46 <param help="Paired-end or single-read sequencing" label="Sequencing method" name="seq_method_list" type="select"> | 115 <param help="Paired-end or single-read sequencing" label="Sequencing method" name="seq_method_list" type="select"> |
47 <option selected="True" value="paired-end">Paired-end sequencing</option> | 116 <option selected="True" value="paired-end">Paired-end sequencing</option> |
48 <option value="single-read">Single-read sequencing</option> | 117 <option value="single-read">Single-read sequencing</option> |
49 </param> | 118 </param> |
50 <when value="paired-end"> | 119 <when value="paired-end"> |
51 <param name="readLength" value="151" type="integer" label="read length" help="e.g. 151 nt" /> | 120 <param name="readLength" value="151" type="integer" label="read length" help="e.g. 151 nt" /> |
52 <section name="additional_params" title="Additional Options" expanded="False"> | 121 <section name="additional_params" title="Additional Options" expanded="False"> |
53 <param name="samplingValue" value="100000" type="integer" label="number of reads to compute mean and stdev of read length" help="e.g. 10000" /> | 122 <param name="samplingValue" value="100000" type="integer" label="number of reads to compute mean and stdev of read length" help="e.g. 10000" /> |
123 <param name="mw" value="4" type="integer" label="-mw" help="minimum weight across all samples for a call (default: 4)" /> | |
124 <param name="tt" value="0" type="integer" label="-tt" help="trim threshold (default: 0)" /> | |
54 <param name="min_non_overlap" value="101" type="integer" label="min_non_overlap" help="e.g. 101" /> | 125 <param name="min_non_overlap" value="101" type="integer" label="min_non_overlap" help="e.g. 101" /> |
55 <param name="discordant_z" value="5" type="integer" label="discordant_z" help="e.g. 5" /> | 126 <param name="discordant_z" value="5" type="integer" label="discordant_z" help="e.g. 5" /> |
56 <param name="back_distance" value="10" type="integer" label="back_distance" help="e.g. 10" /> | 127 <param name="back_distance" value="10" type="integer" label="back_distance" help="e.g. 10" /> |
57 <param name="weight" value="1" type="integer" label="weight" help="e.g. 1" /> | 128 <param name="weight" value="1" type="integer" label="weight" help="e.g. 1" /> |
58 <param name="min_mapping_threshold" value="20" type="integer" label="min_mapping_threshold" help="e.g. 20" /> | 129 <param name="min_mapping_threshold" value="20" type="integer" label="min_mapping_threshold" help="e.g. 20" /> |
59 </section> | 130 </section> |
60 </when> | 131 </when> |
61 <when value="single-read"> | 132 <when value="single-read"> |
62 <section name="additional_params" title="Additional Options" expanded="False"> | 133 <section name="additional_params" title="Additional Options" expanded="False"> |
134 <param name="mw" value="4" type="integer" label="-mw" help="minimum weight across all samples for a call (default: 4)" /> | |
135 <param name="tt" value="0" type="integer" label="-tt" help="trim threshold (default: 0)" /> | |
63 <param name="back_distance" value="10" type="integer" label="back_distance" help="e.g. 10" /> | 136 <param name="back_distance" value="10" type="integer" label="back_distance" help="e.g. 10" /> |
64 <param name="weight" value="1" type="integer" label="weight" help="e.g. 1" /> | 137 <param name="weight" value="1" type="integer" label="weight" help="e.g. 1" /> |
65 <param name="min_mapping_threshold" value="20" type="integer" label="min_mapping_threshold" help="e.g. 20" /> | 138 <param name="min_mapping_threshold" value="20" type="integer" label="min_mapping_threshold" help="e.g. 20" /> |
66 </section> | 139 </section> |
67 </when> | 140 </when> |
69 </conditional> | 142 </conditional> |
70 | 143 |
71 </inputs> | 144 </inputs> |
72 | 145 |
73 <outputs> | 146 <outputs> |
74 <data format="tabular" name="histogram" type="data" label="Lumpy on ${input_file.element_identifier}: Fragment size distribution"> | 147 <data format="tabular" name="histogram" type="data" label="Lumpy on ${analysis_type.input_file.element_identifier}: Fragment size distribution"> |
75 <filter>seq_method['seq_method_list'] == "paired-end"</filter> | 148 <filter>seq_method['seq_method_list'] == "paired-end"</filter> |
76 </data> | 149 </data> |
77 <data format="bam" name="splits" type="data" label="Lumpy on ${input_file.element_identifier}: Split Reads (Bam format)"/> | 150 <data format="tabular" name="histogramB" type="data" label="Lumpy on ${analysis_type.input_fileB.element_identifier}: Fragment size distribution"> |
78 <data format="bam" name="discordants" type="data" label="Lumpy on ${input_file.element_identifier}: Discordant Pairs (Bam format)"> | 151 <filter>seq_method['seq_method_list'] == "paired-end"</filter> |
79 <filter>seq_method['seq_method_list'] == "paired-end"</filter> | 152 <filter>analysis_type['analysis_type_list'] == "two_sample"</filter> |
80 </data> | 153 </data> |
81 <data format="vcf" name="vcf_call" type="data" label="Lumpy on ${input_file.element_identifier}: Variant Calling (vcf format)"/> | 154 <data format="bam" name="splits" type="data" label="Lumpy on ${analysis_type.input_file.element_identifier}: Split Reads (Bam format)"/> |
155 <data format="bam" name="splitsB" type="data" label="Lumpy on ${analysis_type.input_fileB.element_identifier}: Split Reads (Bam format)"> | |
156 <filter>analysis_type['analysis_type_list'] == "two_sample"</filter> | |
157 </data> | |
158 <data format="bam" name="discordants" type="data" label="Lumpy on ${analysis_type.input_file.element_identifier}: Discordant Pairs (Bam format)"> | |
159 <filter>seq_method['seq_method_list'] == "paired-end"</filter> | |
160 </data> | |
161 <data format="bam" name="discordantsB" type="data" label="Lumpy on ${analysis_type.input_fileB.element_identifier}: Discordant Pairs (Bam format)"> | |
162 <filter>seq_method['seq_method_list'] == "paired-end"</filter> | |
163 <filter>analysis_type['analysis_type_list'] == "two_sample"</filter> | |
164 </data> | |
165 <data format="vcf" name="vcf_call" type="data" label="Lumpy Variant Calling (vcf format)"/> | |
82 </outputs> | 166 </outputs> |
83 | 167 |
84 <tests> | 168 <tests> |
85 <test> | 169 <test> |
170 <param name="analysis_type" value="one_sample" /> | |
86 <param name="input_file" value="sr.input.bam" ftype="bam"/> | 171 <param name="input_file" value="sr.input.bam" ftype="bam"/> |
87 <param name="seq_method_list" value="single-read" /> | 172 <param name="seq_method_list" value="single-read" /> |
173 <param name="mw" value="4"/> | |
174 <param name="tt" value="0"/> | |
88 <param name="back_distance" value="10"/> | 175 <param name="back_distance" value="10"/> |
89 <param name="weight" value="1" /> | 176 <param name="weight" value="1" /> |
90 <param name="min_mapping_threshold" value="20" /> | 177 <param name="min_mapping_threshold" value="20" /> |
91 <output name="vcf_call" file="output.vcf" ftype="vcf"/> | 178 <output name="vcf_call" file="output.vcf" ftype="vcf"/> |
92 </test> | 179 </test> |