|
0
|
1 <tool id="strelka" name="Strelka" version="1.0.14">
|
|
|
2 <description>
|
|
|
3 detects somatic SNVs and small indels in tumour/normal pairs
|
|
|
4 </description>
|
|
|
5 <macros>
|
|
|
6 <import>citations.xml</import>
|
|
|
7 </macros>
|
|
|
8 <requirements>
|
|
|
9 <requirement type="set_environment">STRELKA_INSTALL_DIR</requirement>
|
|
|
10 <requirement type="set_environment">STRELKA_REPOSITORY_DIR</requirement>
|
|
|
11 </requirements>
|
|
|
12 <command detect_errors="aggressive">
|
|
|
13
|
|
|
14 <!-- LINK BAM INDEX -->
|
|
|
15 ln -s $normal normal.bam;
|
|
|
16 ln -s $normal.metadata.bam_index normal.bam.bai;
|
|
|
17 ln -s $tumour tumour.bam;
|
|
|
18 ln -s $tumour.metadata.bam_index tumour.bam.bai;
|
|
|
19
|
|
|
20 <!-- CREATE CONFIG FILE -->
|
|
|
21 touch config.ini;
|
|
|
22 #if #depthfilters == "genome":
|
|
|
23 echo "isSkipDepthFilters = 0" >> config.ini;
|
|
|
24 echo "maxInputDepth = 10000" >> config.ini;
|
|
|
25 echo "depthFilterMultiple = 3.0" >> config.ini;
|
|
|
26 #elif #depthfilters == "exome":
|
|
|
27 echo "isSkipDepthFilters = 1" >> config.ini;
|
|
|
28 echo "maxInputDepth = 10000" >> config.ini;
|
|
|
29 echo "depthFilterMultiple = 3.0" >> config.ini;
|
|
|
30 #elif #depthfilters == "targeted":
|
|
|
31 echo "isSkipDepthFilters = 1" >> config.ini;
|
|
|
32 echo "maxInputDepth = 10000" >> config.ini;
|
|
|
33 echo "depthFilterMultiple = 3.0" >> config.ini;
|
|
|
34 #else:
|
|
|
35 echo "isSkipDepthFilters = "$isSkipDepthFilters >> config.ini;
|
|
|
36 echo "maxInputDepth = "$maxInputDepth >> config.ini;
|
|
|
37 echo "depthFilterMultiple = "$depthFilterMultiple >> config.ini;
|
|
|
38 #end if
|
|
|
39 echo "snvMaxFilteredBasecallFrac = "$advancedsettings.snvMaxFilteredBasecallFrac >> config.ini;
|
|
|
40 echo "snvMaxSpanningDeletionFrac = "$advancedsettings.snvMaxSpanningDeletionFrac >> config.ini;
|
|
|
41 echo "indelMaxRefRepeat = "$advancedsettings.indelMaxRefRepeat >> config.ini;
|
|
|
42 echo "indelMaxWindowFilteredBasecallFrac = "$advancedsettings.indelMaxWindowFilteredBasecallFrac >> config.ini;
|
|
|
43 echo "indelMaxIntHpolLength = "$advancedsettings.indelMaxIntHpolLength >> config.ini;
|
|
|
44 echo "ssnvPrior = "$advancedsettings.ssnvPrior >> config.ini;
|
|
|
45 echo "sindelPrior = "$advancedsettings.sindelPrior >> config.ini;
|
|
|
46 echo "ssnvNoise = "$advancedsettings.ssnvNoise >> config.ini;
|
|
|
47 echo "sindelNoise = "$advancedsettings.sindelNoise >> config.ini;
|
|
|
48 echo "ssnvNoiseStrandBiasFrac = "$advancedsettings.ssnvNoiseStrandBiasFrac >> config.ini;
|
|
|
49 echo "minTier1Mapq = "$advancedsettings.minTier1Mapq >> config.ini;
|
|
|
50 echo "minTier2Mapq = "$advancedsettings.minTier2Mapq >> config.ini;
|
|
|
51 echo "ssnvQuality_LowerBound = "$advancedsettings.ssnvQuality_LowerBound >> config.ini;
|
|
|
52 echo "sindelQuality_LowerBound = "$advancedsettings.sindelQuality_LowerBound >> config.ini;
|
|
|
53 echo "isWriteRealignedBam = 0" >> config.ini;
|
|
|
54 echo "binSize = 25000000" >> config.ini;
|
|
|
55 echo "extraStrelkaArguments = " >> config.ini;
|
|
|
56
|
|
|
57 <!-- INDEX GENOME IF HISTORY -->
|
|
|
58 #if $reference_source == "history":
|
|
|
59 ln -s $reference_source.ref_file ref.fa;
|
|
|
60 samtools faidx ref.fa;
|
|
|
61 #end if
|
|
|
62
|
|
|
63 <!-- CREATE ORIGINAL STRELKA MAKEFILE -->
|
|
|
64 \$STRELKA_INSTALL_DIR/bin/configureStrelkaWorkflow.pl
|
|
|
65 --normal \$(pwd)/normal.bam
|
|
|
66 --tumor \$(pwd)/tumour.bam
|
|
|
67 #if $reference_source == "history":
|
|
|
68 --ref ref.fa
|
|
|
69 #else:
|
|
|
70 --ref ${reference_source.ref_file.fields.path}
|
|
|
71 #end if
|
|
|
72 --config \$(pwd)/config.ini
|
|
|
73
|
|
|
74 #if $interval_file
|
|
|
75
|
|
|
76 <!-- CREATE SUB-MAKEFILE IF PARALLELISM TURNED ON -->
|
|
|
77 cp ./strelkaAnalysis/Makefile ./;
|
|
|
78
|
|
|
79 \$REPOSITORY_STRELKA_DIR/parse_strelka_makefile.py
|
|
|
80 --makefile Makefile
|
|
|
81 --chrom \$(cat $interval_file | cut -f1)
|
|
|
82 --output ./strelkaAnalysis/Makefile;
|
|
|
83
|
|
|
84 #end if
|
|
|
85
|
|
|
86 <!-- RUN STRELKA -->
|
|
|
87 cd strelkaAnalysis;
|
|
|
88 make -j \${GALAXY_SLOTS:-1};
|
|
|
89
|
|
|
90 #if $interval_file
|
|
|
91
|
|
|
92 <!-- OUTPUT FOR PARALLEL OPTION - TO BE MERGED -->
|
|
|
93 cat ./chromosomes/\$(cat $interval_file | cut -f1)/all.somatic.snvs.vcf > $snvs;
|
|
|
94 cat ./chromosomes/\$(cat $interval_file | cut -f1)/all.somatic.indels.vcf > $indels;
|
|
|
95
|
|
|
96 #else
|
|
|
97
|
|
|
98 <!-- OUTPUT FOR NORMAL OPTION - ALREADY MERGED -->
|
|
|
99 cat ./results/all.somatic.snvs.vcf > $snvs;
|
|
|
100 cat ./results/all.somatic.indels.vcf > $indels;
|
|
|
101
|
|
|
102 #end if
|
|
|
103 </command>
|
|
|
104 <inputs>
|
|
|
105 <conditional name="reference_source">
|
|
|
106 <param label="Choose the source for the reference genome" name="reference_source_selector" type="select">
|
|
|
107 <option value="cached">Use a built-in genome</option>
|
|
|
108 <option value="history">Use a genome from the history</option>
|
|
|
109 </param>
|
|
|
110 <when value="cached">
|
|
|
111 <param label="Reference Genome File" name="ref_file" type="select" >
|
|
|
112 <options from_data_table="fasta_indexes" />
|
|
|
113 </param>
|
|
|
114 </when>
|
|
|
115 <when value="history">
|
|
|
116 <param label="Reference Genome File" name="ref_file" type="data" format="fasta" />
|
|
|
117 </when>
|
|
|
118 </conditional>
|
|
|
119 <param type="data" format="bam" name="normal" label="Normal Alignment File" />
|
|
|
120 <param type="data" format="bam" name="tumour" label="Tumour Alignment File" />
|
|
|
121 <param type="data" format="txt" optional="true" name="interval_file" label="Chromosomes" help="Restrict SNV calls to the following list of chromosomes (one per line)" />
|
|
|
122 <conditional type="depthfilters">
|
|
|
123 <param type="select" name="seqType" label="What Type of Sequencing?">
|
|
|
124 <option value="genome" selected="true">Whole Genome</option>
|
|
|
125 <option value="exome">Exome</option>
|
|
|
126 <option value="targeted">Targeted</option>
|
|
|
127 <option value="other">What are you hiding from me?</option>
|
|
|
128 </param>
|
|
|
129 <when value="other">
|
|
|
130 <param name="isSkipDepthFilters" type="boolean" label="Skip Reads Above Depth Threshold?" help="Should we skip reads if they exist above the chromosome average depth multiplied by the Depth Filter Multiple? Should only be true for Whole Genome Sequencing." checked="true" truevalue="0" falsevalue="1"/>
|
|
|
131 <param name="depthFilterMultiple" type="float" label="Depth Filter Multiple" value="3.0"/>
|
|
|
132 <param name="maxInputDepth" type="integer" label="Max Input Depth" value="10000" help="The upper bound on input depth to load into memory. This filter should not occur with Deep Targeted Sequencing but should occur with Exome or Whole Genome Sequencing. Set to 0 to turn off" min="0"/>
|
|
|
133 </when>
|
|
|
134 </conditional>
|
|
|
135 <section name="advancedsettings" title="Advanced Settings" expanded="False">
|
|
|
136 <param type="float" name="snvMaxFilteredBasecallFrac" value="0.4" label="SNV Max Filtered Basecall Fraction" help="Filter SNV calls when greater than this fraction of basecalls have been removed by a mismatch density filter in either sample."/>
|
|
|
137 <param type="float" name="snvMaxSpanningDeletionFrac" value="0.75" label="SNV Max Spanning Deletion Fraction" help="Filter SNV calls at sites where greater than this fraction of overlapping reads contain deletions which span the SNV call site."/>
|
|
|
138 <param type="integer" name="indelMaxRefRepeat" value="8" label="Indel Max Reference Homopolymer Length" help="Filter Indel calls if they represent an expansion or contraction of a repeated pattern with a repeat count greater than this value in the reference."/>
|
|
|
139 <param type="float" name="indelMaxWindowFilteredBasecallFrac" value="0.3" label="Indel Max Window Filtered Basecall Fraction" help="Filter Indel calls if greater than this fraction of basecalls in a window extending 50 bases to each side of the indel's call positions have been removed by the mismatch density filter."/>
|
|
|
140 <param type="integer" name="indelMaxIntHpolLength" value="14" label="Indel Max Interrupted Homopolymers Length" help="Filter Indel calls if the longest homopolymer which can be found intersecting or adjacent to the called indel when a single non-homopolymer base is allowed is greater than this length."/>
|
|
|
141 <param type="float" name="ssnvPrior" value="0.000001" label="SNV Prior Probability"/>
|
|
|
142 <param type="float" name="sindelPrior" value="0.000001" label="Indel Prior Probability"/>
|
|
|
143 <param type="float" name="ssnvNoise" value="0.0000005" label="SNV Noise Probability"/>
|
|
|
144 <param type="float" name="sindelNoise" value="0.000001" label="Indel Noise Probability"/>
|
|
|
145 <param type="float" name="ssnvNoiseStrandBiasFrac" value="0.5" label="SNV Noise Fraction Attributed to Strand Bias"/>
|
|
|
146 <param type="integer" name="minTier1Mapq" value="20" label="Min Tier1 Mapping Quality"/>
|
|
|
147 <param type="integer" name="minTier2Mapq" value="5" label="Min Tier2 Mapping Quality"/>
|
|
|
148 <param type="integer" name="ssnvQuality_LowerBound" value="15" label="SNV Quality Score Lower Bound"/>
|
|
|
149 <param type="integer" name="sindelQuality_LowerBound" value="30" label="Indel Quality Score Lower Bound"/>
|
|
|
150 </section>
|
|
|
151 </inputs>
|
|
|
152 <outputs>
|
|
|
153 <data format="vcf" name="snvs" label="Strelka SNVs"/>
|
|
|
154 <data format="vcf" name="indels" label="Strelka indels"/>
|
|
|
155 </outputs>
|
|
|
156 <tests>
|
|
|
157 <test>
|
|
|
158 <param name="normal" value="test.normal.bam"/>
|
|
|
159 <param name="tumour" value="test.tumour.bam"/>
|
|
|
160 <param name="reference_source" value="history"/>
|
|
|
161 <param name="ref_file" value="test.fa"/>
|
|
|
162 <output name="snvs" ftype="vcf" file="somatic.all.somatic.snvs.vcf" lines_diff="2"/>
|
|
|
163 <output name="indels" ftype="vcf" file="somatic.all.somatic.indels.vcf" lines_diff="2"/>
|
|
|
164 </test>
|
|
|
165 </tests>
|
|
|
166 <help>
|
|
|
167
|
|
|
168 This tool generates VCF files by calling Strelka, a Somatic Nucleotide Variant Caller, on Tumour Normal Pairs.
|
|
|
169
|
|
|
170 </help>
|
|
|
171 <citations>
|
|
|
172 <expand macro="morinlab_citation"/>
|
|
|
173 <expand macro="galaxy_citation"/>
|
|
|
174 <expand macro="strelka_citation"/>
|
|
|
175 </citations>
|
|
|
176 </tool>
|