comparison tb_profiler_profile.xml @ 18:4839e590cb26 draft

planemo upload for repository https://github.com/galaxyproject/tools-iuc/blob/master/tools/tb-profiler commit 74ef4277d954bbbb0acd47ae6ef2d323485d5bf1
author iuc
date Thu, 30 May 2024 11:31:53 +0000
parents d03af1c7002c
children 51dd22484644
comparison
equal deleted inserted replaced
17:d03af1c7002c 18:4839e590cb26
1 <tool id="tb_profiler_profile" name="TB-Profiler Profile" version="@TOOL_VERSION@+galaxy0" profile="20.09"> 1 <tool id="tb_profiler_profile" name="TB-Profiler Profile" version="@TOOL_VERSION@+galaxy0" profile="23.2" license="AGPL-3.0-or-later">
2 <description>Infer strain types and drug resistance markers from sequences</description> 2 <description>Infer strain types and drug resistance markers from sequences</description>
3 <macros> 3 <macros>
4 <token name="@TOOL_VERSION@">4.4.1</token> 4 <token name="@TOOL_VERSION@">6.2.1</token>
5 </macros> 5 </macros>
6 <xrefs> 6 <xrefs>
7 <xref type="bio.tools">tb-profiler</xref> 7 <xref type="bio.tools">tb-profiler</xref>
8 </xrefs> 8 </xrefs>
9 <requirements> 9 <requirements>
29 ln -s '$fastq_or_bam.bam_input' input.bam && 29 ln -s '$fastq_or_bam.bam_input' input.bam &&
30 #end if 30 #end if
31 31
32 tb-profiler profile 32 tb-profiler profile
33 --platform '${platform.value}' 33 --platform '${platform.value}'
34 ${spoligotype}
34 #if str($fastq_or_bam.input_select.value) in ("paired_fastq", "paired_collection_fastq", "single_fastq") 35 #if str($fastq_or_bam.input_select.value) in ("paired_fastq", "paired_collection_fastq", "single_fastq")
35 -1 fastq_r1.'$r1_ext' 36 -1 fastq_r1.'$r1_ext'
36 #end if 37 #end if
37 #if str($fastq_or_bam.input_select.value) in ("paired_fastq", "paired_collection_fastq") 38 #if str($fastq_or_bam.input_select.value) in ("paired_fastq", "paired_collection_fastq")
38 -2 fastq_r2.'$r1_ext' 39 -2 fastq_r2.'$r1_ext'
42 43
43 --threads "\${GALAXY_SLOTS:-1}" 44 --threads "\${GALAXY_SLOTS:-1}"
44 #if $advanced.options == 'yes' 45 #if $advanced.options == 'yes'
45 --mapper '${advanced.mapper}' 46 --mapper '${advanced.mapper}'
46 --caller '${advanced.caller}' 47 --caller '${advanced.caller}'
47 --min_depth '${advanced.min_depth}' 48 --depth '${advanced.vf.min_depth_hard},${advanced.vf.min_depth_soft}'
48 --af '${advanced.min_allele_freq}' 49 --af '${advanced.vf.min_af_hard},${advanced.vf.min_af_soft}'
49 --reporting_af '${advanced.min_allele_freq_reporting}' 50 --strand '${advanced.vf.min_read_hard},${advanced.vf.min_read_soft}'
51 --sv-depth '${advanced.vf.min_sv_depth_hard},${advanced.vf.min_sv_depth_soft}'
52 --sv-af '${advanced.vf.min_sv_af_hard},${advanced.vf.min_sv_af_soft}'
53 --sv-len '${advanced.vf.max_sv_len_hard},${advanced.vf.max_sv_len_soft}'
54 ${advanced.suspect}
55 ${advanced.no_trim}
56 ${advanced.no_coverage_qc}
57 ${advanced.no_samclip}
58 ${advanced.no_delly}
50 #end if 59 #end if
51 60
52 #if $output_format == "pdf" 61 #if $output_format == "pdf"
53 --pdf 62 --pdf
54 #else if $output_format == "txt" 63 #else if $output_format == "txt"
56 #end if 65 #end if
57 && mv results/tbprofiler.results.json $results_json 66 && mv results/tbprofiler.results.json $results_json
58 #if str($fastq_or_bam.input_select) != "bam" 67 #if str($fastq_or_bam.input_select) != "bam"
59 && mv bam/tbprofiler.bam '${output_bam}' 68 && mv bam/tbprofiler.bam '${output_bam}'
60 #end if 69 #end if
61 && bcftools view -Ov -o'${output_vcf}' vcf/tbprofiler.targets.csq.vcf.gz 70 && bcftools view -Ov -o'${output_vcf}' vcf/tbprofiler.targets.vcf.gz
62 #if $output_format == "pdf" 71 #if $output_format == "pdf"
63 && mv results/tbprofiler.results.pdf '${output_pdf}' 72 && mv results/tbprofiler.results.pdf '${output_pdf}'
64 #else if $output_format == "txt" 73 #else if $output_format == "txt"
65 && mv results/tbprofiler.results.txt '${output_txt}' 74 && mv results/tbprofiler.results.txt '${output_txt}'
66 #end if 75 #end if
91 </when> 100 </when>
92 <when value="bam"> 101 <when value="bam">
93 <param name="bam_input" type="data" format="bam" label="Bam" help="Warning!!!: The BAM files must have been created using the ensembl version of the genome."/> 102 <param name="bam_input" type="data" format="bam" label="Bam" help="Warning!!!: The BAM files must have been created using the ensembl version of the genome."/>
94 </when> 103 </when>
95 </conditional> 104 </conditional>
105 <param argument="--spoligotype" type="boolean" label="Perform in-silico spoligotyping" checked="false" truevalue="--spoligotype" falsevalue=""
106 help="Uses spacers of CRISPR region to call a spoligotype."/>
96 <param name="output_format" label="Output format" type="select"> 107 <param name="output_format" label="Output format" type="select">
97 <option value="txt" selected="true">Text</option> 108 <option value="txt" selected="true">Text</option>
98 <option value="pdf">PDF</option> 109 <option value="pdf">PDF</option>
99 </param> 110 </param>
100 <conditional name="advanced"> 111 <conditional name="advanced">
116 <option value="bcftools">bcftools</option> 127 <option value="bcftools">bcftools</option>
117 <option value="gatk">gatk</option> 128 <option value="gatk">gatk</option>
118 <option value="pilon">pilon</option> 129 <option value="pilon">pilon</option>
119 <option value="lofreq">lofreq</option> 130 <option value="lofreq">lofreq</option>
120 </param> 131 </param>
121 <param name="min_depth" label="Min Depth" type="integer" value="10" help="Minimum depth required to call variant. Bases with depth below this cutoff will be marked as missing (default: 10)"/> 132 <section name="vf" title="Variant Filters">
122 <param name="min_allele_freq" argument="--af" type="float" value="0.1" label="Minimum allele frequency to call variants" help=" Minimum allele frequency to call variants (default: 0.1)" /> 133 <param name="min_depth_hard" argument="--depth" label="Min Depth (hard cutoff)" type="integer" value="0" min="0"
123 <param name="min_allele_freq_reporting" argument="--reporting_af" value="0.1" label="Reporting Minimum allele frequency to call variants" type="float" help=" Minimum allele frequency to call variants (default: 0.1)"/> 134 help="Minimum depth required to call variant. Bases with depth below this cutoff will be marked as missing (default: 0)"/>
135 <param name="min_depth_soft" argument="--depth" label="Min Depth (soft cutoff)" type="integer" value="10" min="0"
136 help="Minimum depth required to call variant. Variants at positions lower than this depth and above the hard cutoff will be marked as QC fail (default: 10)"/>
137 <param name="min_af_hard" argument="--af" type="float" value="0" label="Minimum allele frequency to call variants (hard cutoff)" min="0.0" max="1.0"
138 help="Minimum allele frequency to call variants (default: 0)" />
139 <param name="min_af_soft" argument="--af" type="float" value="0.1" label="Minimum allele frequency to call variants (soft cutoff)" min="0.0" max="1.0"
140 help="Variants with an allele frequency lower than this (and higher than the hard cutoff) will be marked as QC fail (default 0.1)" />
141 <param name="min_read_hard" argument="--strand" type="integer" value="0" label="Mininum read number per strand (hard cutoff)" min="0"
142 help="Minimum read number per strand to call variants (default: 0)" />
143 <param name="min_read_soft" argument="--strand" type="integer" value="3" label="Mininum read number per strand (soft cutoff)" min="0"
144 help="Minimum read number per strand to report variants (default: 3). Variants with number of reads on each strand below this (and above the hard cutoff) will be marked as QC fail" />
145 <param name="min_sv_depth_hard" argument="--sv-depth" type="integer" value="0" label="Min Depth for SV (hard cutoff)" min="0"
146 help="Minimum depth required to call structural variants (default: 0)" />
147 <param name="min_sv_depth_soft" argument="--sv-depth" type="integer" value="10" label="Min Depth for SV (soft cutoff)" min="0"
148 help="Minimum depth required to call structural variants. Variants at positions lower than this depth and above the hard cutoff will be marked as QC fail" />
149 <param name="min_sv_af_hard" argument="--sv-af" type="float" value="0.5" label="Min SV allele frequency (hard cutoff)" min="0.0" max="1.0"
150 help="Minimum allele frequency to call structural variants (default: 0.5)" />
151 <param name="min_sv_af_soft" argument="--sv-af" type="float" value="0.9" label="Min SV allele frequency (soft cutoff)" min="0.0" max="1.0"
152 help="Variants with an allele frequency lower than this (and higher than the hard cutoff) will be marked as QC fail (default 0.9)" />
153 <param name="max_sv_len_hard" argument="--sv-len" type="integer" value="100000" label="Max SV length (hard cutoff)" min="0"
154 help="Maximum length (length) of structural variants to call (default: 100000)" />
155 <param name="max_sv_len_soft" argument="--sv-len" type="integer" value="50000" label="Max SV length (soft cutoff)" min="0"
156 help="Structural variants with length higher than this (and lower than the hard cutoff) will be marked as QC fail (default: 50000)" />
157 </section>
158 <param argument="--suspect" label="Use ML predictions of resistance from the SUSPECT tool suite" type="boolean" checked="False" truevalue="--suspect" falsevalue=""
159 help="The SUSPECT tools offer ML-based predictions of RIF, PZA and BDQ resistance. Note that this uses a web service thus requires an Internet connection."/>
160 <param argument="--no_trim" label="Do not trim reads using trimmomatic" checked="false" type="boolean" truevalue="--no_trim" falsevalue="" />
161 <param argument="--no_coverage_qc" label="Don't collect flagstats" type="boolean" truevalue="--no_coverage_qc" falsevalue="" />
162 <param argument="--no_samclip" label="Don't removed clipped reads from variant calling" type="boolean" truevalue="--no_samclip" falsevalue="" />
163 <param argument="--no_delly" label="Don't run delly for SV calling" type="boolean" truevalue="--no_delly" falsevalue="" />
124 </when> 164 </when>
125 </conditional> 165 </conditional>
126 </inputs> 166 </inputs>
127 <outputs> 167 <outputs>
128 <data name="results_json" format="json" from_work_dir="results/tbprofiler.results.json" label="${tool.name} on ${on_string}: Results.json"/> 168 <data name="results_json" format="json" from_work_dir="results/tbprofiler.results.json" label="${tool.name} on ${on_string}: Results.json"/>
134 <filter>output_format == 'pdf'</filter> 174 <filter>output_format == 'pdf'</filter>
135 </data> 175 </data>
136 <data format="txt" name="output_txt" label="${tool.name} report on ${on_string}"> 176 <data format="txt" name="output_txt" label="${tool.name} report on ${on_string}">
137 <filter>output_format == 'txt'</filter> 177 <filter>output_format == 'txt'</filter>
138 </data> 178 </data>
139
140 </outputs> 179 </outputs>
141 <tests> 180 <tests>
142 <test expect_num_outputs="4"> 181 <test expect_num_outputs="4">
143 <param name="input_select" value="single_fastq"/> 182 <param name="input_select" value="single_fastq"/>
144 <param name="fastq" ftype="fastq.gz" value="rif_resistant.fastq.gz" /> 183 <param name="fastq" ftype="fastq.gz" value="rif_resistant.fastq.gz" />
146 <param name="platform" value="illumina" /> 185 <param name="platform" value="illumina" />
147 <param name="options" value="no" /> 186 <param name="options" value="no" />
148 <output name="output_txt"> 187 <output name="output_txt">
149 <assert_contents> 188 <assert_contents>
150 <has_line line="Drug-resistance: RR-TB" /> 189 <has_line line="Drug-resistance: RR-TB" />
151 <has_line line="lineage2.2.2&#009;1.000&#009;Beijing-RD105/RD207&#009;RD105;RD207" /> 190 <has_line line="lineage2.2.2&#009;1.000&#009;East-Asian (Beijing)&#009;RD105;RD207" />
152 <has_line line="Rifampicin&#009;R&#009;rpoB p.Asp435Val (1.00)" /> 191 <has_line line="Rifampicin&#009;R&#009;rpoB p.Asp435Val (1.00)" />
153 <has_line line="761110&#009;Rv0667&#009;rpoB&#009;missense_variant&#009;p.Asp435Val&#009;1.000&#009;rifampicin&#009;type=who_confidence|drug=rifampicin|who_confidence=Assoc w R" /> 192 <has_line line="761110&#009;Rv0667&#009;rpoB&#009;missense_variant&#009;p.Asp435Val&#009;1.000&#009;rifampicin&#009;Assoc w R" />
154 </assert_contents> 193 </assert_contents>
155 </output> 194 </output>
156 </test> 195 </test>
157 <test expect_num_outputs="3"> 196 <test expect_num_outputs="3">
158 <param name="input_select" value="bam"/> 197 <param name="input_select" value="bam"/>
161 <param name="platform" value="illumina" /> 200 <param name="platform" value="illumina" />
162 <param name="options" value="no" /> 201 <param name="options" value="no" />
163 <output name="output_txt"> 202 <output name="output_txt">
164 <assert_contents> 203 <assert_contents>
165 <has_line line="Drug-resistance: RR-TB" /> 204 <has_line line="Drug-resistance: RR-TB" />
166 <has_line line="lineage2.2.2&#009;1.000&#009;Beijing-RD105/RD207&#009;RD105;RD207" /> 205 <has_line line="lineage2.2.2&#009;1.000&#009;East-Asian (Beijing)&#009;RD105;RD207" />
167 <has_line line="Rifampicin&#009;R&#009;rpoB p.Asp435Val (1.00)" /> 206 <has_line line="Rifampicin&#009;R&#009;rpoB p.Asp435Val (1.00)" />
168 <has_line line="761110&#009;Rv0667&#009;rpoB&#009;missense_variant&#009;p.Asp435Val&#009;1.000&#009;rifampicin&#009;type=who_confidence|drug=rifampicin|who_confidence=Assoc w R" /> 207 <has_line line="761110&#009;Rv0667&#009;rpoB&#009;missense_variant&#009;p.Asp435Val&#009;1.000&#009;rifampicin&#009;Assoc w R" />
169 </assert_contents> 208 </assert_contents>
170 </output> 209 </output>
171 </test> 210 </test>
172 <test expect_num_outputs="4"> 211 <test expect_num_outputs="4">
173 <param name="input_select" value="single_fastq"/> 212 <param name="input_select" value="single_fastq"/>
174 <param name="fastq" ftype="fastq.gz" value="rif_resistant.fastq.gz" /> 213 <param name="fastq" ftype="fastq.gz" value="rif_resistant.fastq.gz" />
175 <param name="output_format" value="txt" /> 214 <param name="output_format" value="txt" />
176 <param name="platform" value="illumina" /> 215 <param name="platform" value="illumina" />
177 <param name="options" value="yes" /> 216 <conditional name="advanced">
178 <param name="min_allele_freq" value="0.25" /> 217 <param name="options" value="yes" />
179 <param name="min_allele_freq_reporting" value="0.33" /> 218 <section name="vf">
180 <output name="output_txt"> 219 <param name="min_depth_hard" value="40" />
181 <assert_contents> 220 <param name="min_depth_soft" value="50" />
221 </section>
222 </conditional>
223 <output name="output_txt">
224 <assert_contents>
225 <has_line line="lineage2.2.2&#009;1.000&#009;East-Asian (Beijing)&#009;RD105;RD207" />
226 <has_line line="761110&#009;Rv0667&#009;rpoB&#009;missense_variant&#009;p.Asp435Val&#009;1.000&#009;rifampicin&#009;Assoc w R" />
227 </assert_contents>
228 </output>
229 <output name="results_json">
230 <assert_contents>
231 <has_text text='"filter": "soft_fail",' />
232 </assert_contents>
233 </output>
234 </test>
235 <test expect_num_outputs="4">
236 <param name="input_select" value="single_fastq"/>
237 <param name="fastq" ftype="fastq.gz" value="rpoB_and_crispr.fastq.gz" />
238 <param name="output_format" value="txt" />
239 <param name="platform" value="illumina" />
240 <param name="spoligotype" value="true" />
241 <param name="options" value="no" />
242 <output name="output_txt">
243 <assert_contents>
244 <has_line line="Octal: 000000000000771" />
182 <has_line line="Drug-resistance: RR-TB" /> 245 <has_line line="Drug-resistance: RR-TB" />
183 <has_line line="lineage2.2.2&#009;1.000&#009;Beijing-RD105/RD207&#009;RD105;RD207" />
184 <has_line line="Rifampicin&#009;R&#009;rpoB p.Asp435Val (1.00)" /> 246 <has_line line="Rifampicin&#009;R&#009;rpoB p.Asp435Val (1.00)" />
185 <has_line line="761110&#009;Rv0667&#009;rpoB&#009;missense_variant&#009;p.Asp435Val&#009;1.000&#009;rifampicin&#009;type=who_confidence|drug=rifampicin|who_confidence=Assoc w R" /> 247 <has_line line="761110&#009;Rv0667&#009;rpoB&#009;missense_variant&#009;p.Asp435Val&#009;1.000&#009;rifampicin&#009;Assoc w R" />
186 </assert_contents> 248 </assert_contents>
187 </output> 249 </output>
188 </test> 250 </test>
189 </tests> 251 </tests>
190 <help><![CDATA[ 252 <help><![CDATA[
196 TB-Profiler also predicts the number of reads supporting drug resistance variants as an insight into 258 TB-Profiler also predicts the number of reads supporting drug resistance variants as an insight into
197 hetero-resistance (not applicable for MinION data). 259 hetero-resistance (not applicable for MinION data).
198 260
199 Produces a JSON output file by default. 261 Produces a JSON output file by default.
200 262
263 In the Advanced options, you can select the mapper and variant caller to use, as well as set a number of filtering parameters.
264 Each of these typically has a "hard" and a "soft" cutoff. If a variant value is below the "hard" cutoff it is discarded, if
265 it is between the "hard" and "soft" values it is removed from the final predictions but added to the "qc_fail_variants" section
266 of the output.
267
268 One of the advanced options is to use the SUSPECT tool suite to predict resistance to `rifampicin (RIF)`_, `pyrazinamide (PZA)`_
269 and `bedaquiline (BDQ)`_.
270
271 .. _rifampicin (RIF): https://www.nature.com/articles/s41598-020-74648-y
272 .. _pyrazinamide (PZA): https://www.nature.com/articles/s41598-020-58635-x
273 .. _bedaquiline (BDQ): https://journals.plos.org/plosone/article?id=10.1371/journal.pone.0217169
201 ]]> </help> 274 ]]> </help>
202 <citations> 275 <citations>
203 <citation type="doi">10.1186/s13073-019-0650-x</citation> 276 <citation type="doi">10.1186/s13073-019-0650-x</citation>
204 </citations> 277 </citations>
205 </tool> 278 </tool>