comparison macros.xml @ 0:14785481da2b draft

planemo upload for repository https://github.com/galaxyproteomics/tools-galaxyp/tree/master/tools/fragpipe commit 905cc2be18669cffe9ac6c46fcd08b6857a67f4f
author galaxyp
date Wed, 10 Jul 2024 06:15:00 +0000
parents
children dc5de2ea607e
comparison
equal deleted inserted replaced
-1:000000000000 0:14785481da2b
1 <macros>
2 <import>msfragger_macros.xml</import>
3 <token name="@TOOL_VERSION@">20.0</token>
4 <token name="@VERSION_SUFFIX@">0</token>
5 <xml name="requirements">
6 <requirements>
7 <requirement type="package" version="@TOOL_VERSION@">fragpipe</requirement>
8 </requirements>
9 </xml>
10
11 <!-- TMT-n uses the following n first labels from TMT-18 -->
12 <token name="@TMT_LABELS@">['126', '127N', '127C', '128N', '128C', '129N', '129C', '130N', '130C', '131N', '131C', '132N', '132C', '133N', '133C', '134N', '134C', '135N']</token>
13 <token name="@iTRAQ-4_LABELS@">['114', '115', '116', '117']</token>
14 <token name="@iTRAQ-8_LABELS@">['113', '114', '115', '116', '117', '118', '119', '121']</token>
15
16 <!--
17 User specifies input file format and selects sample files as are included by the scan_inputs macro
18
19 User must also supply their own manifest file, a TSV file of the format:
20 name, experiment, bioreplicate, data type
21 -->
22 <xml name="samples">
23 <param name="inputs" type="data" format="mzML,mzXML" multiple="true" label="Proteomics Spectrum files" help="All input scan files must of a matching format: mzML, mzXML"/>
24 <param name="input_prefix" type="text" value="" optional="true" label="File name prefix" help="Names inputs: prefix_rep#.mzXML Leave blank to use History names of inputs">
25 <validator type="regex" message="">[a-zA-Z][a-zA-Z0-9_-]*</validator>
26 </param>
27 <param name="manifest" type="data" format="tabular" label="Manifest file" help="TSV file with entries for each input scan file: Name (Name of input Galaxy history item. Extension in the name must be mzML or mzXML.), Experiment (empty, alphanumeric, or _), Bioreplicate (empty or integer), Data type (DDA, DIA, GPF-DIA, DIA-Quant, or DIA-lib)"/>
28 </xml>
29
30 <!--
31 Prepares enviroment variables for FragPipe.
32 -->
33 <token name="@PREPARE_ENVIRONMENT@"><![CDATA[
34 env_location="\$(dirname \$(which philosopher))/.." &&
35 cp -r \${env_location}/share/fragpipe*/ fragpipe_local/ &&
36 mkdir .cache .config tmp &&
37 export XDG_CONFIG_HOME=\$(pwd)/.config &&
38 export XDG_CACHE_HOME=\$(pwd)/.cache &&
39 export JAVA_OPTS="\$JAVA_OPTS -Djava.io.tmpdir=\$(pwd)/tmp" &&
40 export LD_LIBRARY_PATH="\$LD_LIBRARY_PATH:/usr/local/lib" &&
41 ]]></token>
42
43 <!--
44 Prepares input scan files.
45
46 Scans and moved to a scan directory and linked.
47
48 Annotation files are copied into the scan directory for TMT workflows.
49 -->
50 <token name="@LINK_SAMPLES@"><![CDATA[
51 CWD=\$(pwd | sed 's@/@\\/@g') &&
52
53 mkdir -p scans &&
54 #if $wf.workflow_name == "TMT10" or $wf.workflow_name == "TMT11"
55 cp -p '$wf.annotation' 'scans/annotation.txt' &&
56 #end if
57
58 sed "s@^@\$CWD/scans/@" $manifest > fp.manifest &&
59
60 #for $sf in $inputs
61 #set $i_name = $ln_name($sf)
62 ln -s '$sf' 'scans/${i_name}' &&
63 #end for
64 ]]></token>
65
66 <!--
67 Prepares input files, excluding database.
68 -->
69 <token name="@PREPARE_INPUTS@"><![CDATA[
70 mkdir -p outputs &&
71 @CMD_IMPORTS@
72 @LINK_SAMPLES@
73 ]]></token>
74
75 <!--
76 Prepares database.
77
78 First genericizes unknown sequence headers in the database.
79 Then adds decoys, or decoys and contaminants depending on user selection.
80 -->
81 <token name="@PREPARE_DATABASE@"><![CDATA[
82 '$__tool_directory__/genericize_db.py' $database_name genericized_db.fas &&
83
84 #if str($database_options) != 'none'
85 philosopher workspace --init &&
86 philosopher database --custom genericized_db.fas --prefix rev_
87 #if str($database_options) != 'decoy_and_contam'
88 --contam
89 #end if
90 --contamprefix &&
91 ln -s *-decoys-*.fas final_db.fas &&
92 #else
93 ln -s genericized_db.fas final_db.fas &&
94 #end if
95 ]]></token>
96
97 <!--
98 Prepares outputs.
99
100 Creates log file symlink, makes a new directory for "combined" outputs and creates "concatenated" results.
101 -->
102 <token name="@PREPARE_OUTPUTS@"><![CDATA[
103 cd outputs &&
104
105 #if $output_options and 'combined_outputs' in $output_options
106 mkdir combined_outputs &&
107 find . -name 'combined*tsv' | xargs -I {} mv {} combined_outputs &&
108 #end if
109
110 ## For each category of results - psm, ion, peptide, protein - this loop concatenates results from each sample into a single result.
111 ## For example, the entries sample1/psm.tsv and sample2/psm.tsv would be combined to concat_psm.tsv, a single psm.tsv header as its first line.
112 for f in psm.tsv ion.tsv peptide.tsv protein.tsv; do
113 n=0;
114 for i in \$(find * -name \${f}); do
115 d=\${i%/*};
116 if [[ \$n == 0 ]]; then
117 awk 'NR==1{printf("Experiment\t%s\n",\$0);}' \$i > concat_\${f};
118 fi;
119 awk 'NR>1{printf("'"\${d}"'\t%s\n",\$0);}' \$i >> concat_\${f}; t=\$(echo \${i} | tr '/' '.');
120 mv \${i} \${t}; n=\$((n+1));
121 done;
122 done
123 ]]></token>
124
125 <!-- Input database for MSFragger -->
126 <xml name="fragger_database">
127 <param name="database_name" type="data" format="fasta" label="Proteomics Search Database in FASTA format" help="Generic sequence headers in the input FASTA file that are not formatted according to the UniProt, NCBI, or ENSEMBL formats will be automatically prefixed with '>generic|' to avoid being misinterpreted by Philosopher."/>
128 <!-- Whether to add decoys and contaminants to the database with Philosopher -->
129 <param name="database_options"
130 type="select"
131 label="Decoys and contaminants"
132 help="The default decoy prefix is &quot;rev_&quot;.">
133 <option value="decoy_and_contam" selected="true">Add decoys and contaminants</option>
134 <option value="decoy">Add decoys</option>
135 <option value="none">Don't add decoys or contaminants</option>
136 </param>
137
138 <!-- Database may be split into chunks for performance benefits -->
139 <param name="num_slices" type="integer" label="Split database" value="1" help="The number of chunks in which to split the database."/>
140 </xml>
141
142 <!--
143 The following macro allows users to select their FragPipe workfow.
144
145 For a given workflow selection, the relevant parameter sections are expanded. Options specific to the selected workflow
146 are passed to the parameter definitions in the expand element.
147
148 The Galaxy parameters overwrite a workflow file provided by FragPipe for the selected workflow. As a result, any parameters
149 that are not defined in the Galaxy tool will fall back on the FragPipe defaults for that workflow. This logic is defined
150 in the <configfile> element.
151 -->
152 <xml name="workflow">
153 <conditional name="wf">
154 <param name="workflow_name" type="select" label="Workflow" help="Note: MSBooster is currently disabled in all Galaxy FragPipe workflows.">
155 <option value="Default">Default</option>
156 <option value="Open">Open</option>
157 <option value="Nonspecific-HLA">Nonspecific-HLA</option>
158 <option value="LFQ-MBR">LFQ-MBR</option>
159 <option value="TMT10">TMT10</option>
160 <option value="TMT11">TMT11</option>
161 </param>
162
163 <when value="Default">
164 <section name="msfragger" expanded="false" title="MSFragger Options">
165 <expand macro="msfragger_default"/>
166 </section>
167 <expand macro="validation"
168 pep="false"
169 perc="true"
170 boost="false"
171 no="false"
172 masswidth="5"
173 clevel="0"
174 accmass="true"
175 decoyprobs="true"
176 nonparam="true"
177 expectscore="true"
178 ppm="true"
179 combined_pepxml="false"/>
180 <expand macro="label_free_quantification" yes="false" no="true"/>
181 <expand macro="ptm_shepherd" yes="false" no="true" c="true" z="true"/>
182 <expand macro="isobaric_quantification" yes="false" no="true"/>
183 </when>
184
185 <when value="Open">
186 <section name="msfragger" expanded="false" title="MSFragger Options">
187 <expand macro="msfragger_open"/>
188 </section>
189 <expand macro="validation"
190 pep="true"
191 perc="false"
192 boost="false"
193 no="false"
194 masswidth="1000"
195 clevel="-2"
196 accmass="false"
197 decoyprobs="true"
198 nonparam="true"
199 expectscore="true"
200 ppm="false"
201 combined_pepxml="true">
202 <expand macro="crystalc"/>
203 </expand>
204 <expand macro="label_free_quantification" yes="false" no="true"/>
205 <expand macro="ptm_shepherd" yes="true" no="false"/>
206 <expand macro="isobaric_quantification" yes="false" no="true" bridge="false" pool="true"/>
207 </when>
208
209 <when value="Nonspecific-HLA">
210 <section name="msfragger" expanded="false" title="MSFragger Options">
211 <expand macro="msfragger_nonspecific_HLA"/>
212 </section>
213 <expand macro="validation"
214 pep="false"
215 perc="true"
216 boost="false"
217 no="true"
218 masswidth="5"
219 clevel="0"
220 accmass="true"
221 decoyprobs="true"
222 nonparam="true"
223 expectscore="true"
224 ppm="true"
225 combined_pepxml="false"/>
226 <expand macro="label_free_quantification" yes="false" no="true"/>
227 <expand macro="ptm_shepherd" yes="false" no="true"/>
228 <expand macro="isobaric_quantification" yes="false" no="true"/>
229 </when>
230
231 <when value="LFQ-MBR">
232 <section name="msfragger" expanded="false" title="MSFragger Options">
233 <expand macro="msfragger_LFQ_MBR"/>
234 </section>
235 <!-- MSBooster should be enabled once included in FragPipe Galaxy tool -->
236 <expand macro="validation"
237 pep="false"
238 perc="true"
239 boost="false"
240 no="true"
241 masswidth="5"
242 clevel="0"
243 accmass="true"
244 decoyprobs="true"
245 nonparam="true"
246 expectscore="true"
247 ppm="true"
248 combined_pepxml="false"/>
249 <expand macro="label_free_quantification" yes="true" no="false"/>
250 <expand macro="ptm_shepherd" yes="false" no="true"/>
251 <expand macro="isobaric_quantification" yes="false" no="true"/>
252 </when>
253
254 <when value="TMT10">
255 <expand macro="tmt_options" plex="TMT-10"/>
256 </when>
257
258 <!-- TMT11 is not in FragPipe GUI -->
259 <when value="TMT11">
260 <expand macro="tmt_options" plex="TMT-11"/>
261 </when>
262 </conditional>
263 </xml>
264
265 <!-- Options for TMT workflows -->
266 <xml name="tmt_options" token_plex="">
267 <param name="annotation" type="data" format="txt" optional="false" label="annotation file" help=""/>
268 <section name="msfragger" expanded="false" title="MSFragger Options">
269 <expand macro="msfragger_TMT"/>
270 </section>
271 <expand macro="validation"
272 pep="false"
273 perc="true"
274 boost="false"
275 no="false"
276 masswidth="5"
277 clevel="0"
278 accmass="true"
279 decoyprobs="true"
280 nonparam="true"
281 expectscore="true"
282 ppm="true"
283 combined_pepxml="false"
284 protp_minprob="0.5"/>
285 <expand macro="isobaric_quantification" yes="true" no="false" plex="@PLEX@" level="2" ref_tag="Bridge" mod_tag="none"/>
286 <expand macro="label_free_quantification" yes="false" no="true"/>
287 <expand macro="ptm_shepherd" yes="false" no="true" token_unimod="false" token_common="true"/>
288 </xml>
289
290 <!-- Generates the FragPipe workflow-->
291 <xml name="workflow_configfile">
292 <configfile name="workflow_configfile"><![CDATA[#slurp
293 ## Create a fragpipe params dictionary from a file
294 #set $comments = []
295 #set $wfdict = {}
296 #set $wfpath = $__tool_directory__ + '/workflows/' + str($wf.workflow_name) + '.workflow'
297 #set $fh = open($wfpath, 'r')
298 #for $line in $fh:
299 #if $line.startswith('#')
300 #silent $comments.append($line)
301 #elif $line.strip() != ''
302 #set $kv = $line.strip().split('=')
303 #if len($kv) < 2
304 #silent $kv.append('')
305 #end if
306 #set $wfdict[$kv[0]] = '='.join($kv[1:])
307 #end if
308 #end for
309
310 #set $wfdict['database.db-path'] = 'final_db.fas'
311 #set $wfdict['msfragger.misc.slice-db'] = $num_slices
312
313 ## Get the MSFragger Params (shared with the MSFragger tool)
314 #set $prefix = $wf.msfragger
315 @MSFRAGGER_PARAM_DICT@
316 #if len($vmods) > 0
317 #set $msfragger_dict['table.var-mods'] = '; '.join([$re.sub('^(.*,)(\d)$','\\1True,\\2',m) for m in $vmods])
318 #end if
319 #for $k in $msfragger_dict.keys()
320 #set $kv = $k + '=' + str($msfragger_dict[$k])
321 #set $wfk = 'msfragger.' + $k
322 #set $wfdict[$wfk] = str($msfragger_dict[$k])
323 #end for
324
325 @VALIDATION@
326 @PTM_SHEPHERD@
327 @LABEL_FREE_QUANTIFICATION@
328 @ISOBARIC_QUANTIFICATION@
329
330 ## Populate the workflow with configuration and comment dictionary entries populated by tool params.
331 #for $comment in $comments
332 $comment
333 #end for
334
335 #for $k in sorted($wfdict.keys())
336 #set $kv = $k + '=' + str($wfdict[$k])
337 $kv
338 #end for
339 #slurp]]></configfile>
340 </xml>
341
342 <!-- Percolator options -->
343 <xml name="percolator">
344 <section name="percolator" expanded="true" title="Percolator">
345 <param name="keep_tsv_files" type="boolean" truevalue="true" falsevalue="false" checked="false" label="Keep intermediate files"/>
346 <param name="min_prob" type="float" value="0.5" label="Minimum probability (default 0.5)"/>
347 </section>
348 </xml>
349
350 <!-- Set Percolator workflow options -->
351 <token name="@PERCOLATOR@"><![CDATA[
352 #set $prc = $wf.validation.validation_tab.psm_validation.percolator
353 #set $wfdict['run-validation-tab'] = $wf.validation.validation_tab.run_validation
354 #set $wfdict['peptide-prophet.run-peptide-prophet'] = 'false'
355 #set $wfdict['percolator.run-percolator'] = 'true'
356 #set $wfdict['percolator.keep-tsv-files'] = str($prc.keep_tsv_files)
357 #set $wfdict['percolator.min-prob'] = str($prc.min_prob)
358 ]]></token>
359
360 <!-- Philosopher Report (phi-report) options -->
361 <xml name="phi_report">
362 <conditional name="phi_report">
363 <param name="run_phi_report" type="select" label="Generate Philosopher Reports">
364 <option value="true" selected="true">Yes</option>
365 <option value="false">No</option>
366 </param>
367 <when value="true">
368 <section name="phi_report_opts" expanded="false" title="FDR Filter and Report">
369 <param name="dont_use_prot_prophet_file" type="boolean" truevalue="true" falsevalue="false" checked="false"/>
370 <param name="print_decoys" type="boolean" truevalue="true" falsevalue="false" checked="false"/>
371 </section>
372 </when>
373 <when value="false"/>
374 </conditional>
375 </xml>
376
377 <!-- Set Philosopher Report (phi-report) workflow options -->
378 <token name="@PHIREPORT@"><![CDATA[
379 #set $prfx = $wf.validation.validation_tab.phi_report
380 #if $prfx.run_phi_report == 'true'
381 #set $wfdict['phi-report.run-report'] = 'true'
382 #set $prfx = $wf.validation.validation_tab.phi_report.phi_report_opts
383 #set $wfdict['phi-report.print-decoys'] = $prfx.print_decoys
384 #else
385 #set $wfdict['phi-report.run-report'] = 'false'
386 #end if
387 ]]></token>
388
389 <!-- PeptideProphet options -->
390 <xml name="peptide_prophet" token_masswidth="5" token_clevel="0" token_accmass="true" token_decoyprobs="true" token_nonparam="true" token_expectscore="true" token_ppm="true" token_combined_pepxml="false">
391 <section name="peptide_prophet" expanded="true" title="PeptideProphet">
392 <param name="combined_pepxml" type="boolean" truevalue="true" falsevalue="false" checked="@COMBINED_PEPXML@" label="Single combined pepxml per experiment or group"/>
393 <param argument="--decoyprobs" type="boolean" truevalue="--decoyprobs" falsevalue="" checked="@DECOYPROBS@" label="compute possible non-zero probabilities for Decoy entries on the last iteration"/>
394 <param argument="--ppm" type="boolean" truevalue="--ppm" falsevalue="" checked="@PPM@" label="use PPM mass error instead of Dalton for mass modeling"/>
395 <param argument="--accmass" type="boolean" truevalue="--accmass" falsevalue="" checked="@ACCMASS@" label="use Accurate Mass model binning"/>
396 <param argument="--nonparam" type="boolean" truevalue="--nonparam" falsevalue="" checked="@NONPARAM@" label="use semi-parametric modeling, must be used in conjunction with --decoy option"/>
397 <param argument="--expectscore" type="boolean" truevalue="--expectscore" falsevalue="" checked="@EXPECTSCORE@" label="use expectation value as the only contributor to the f-value for modeling"/>
398 <param argument="--masswidth" type="float" value="@MASSWIDTH@" label="model mass width (default 5)"/>
399 <param argument="--clevel" type="integer" value="@CLEVEL@" label="set Conservative Level in neg_stdev from the neg_mean, low numbers are less conservative, high numbers are more conservative"/>
400 <param argument="--glyc" type="boolean" truevalue="--glyc" falsevalue="" checked="false" label="enable peptide Glyco motif model"/>
401 <param argument="--combine" type="boolean" truevalue="--combine" falsevalue="" checked="false" label="combine the results from PeptideProphet into a single result file" />
402 <param argument="--minpeplen" type="integer" value="7" label="minimum peptide length not rejected (default 7)" />
403 <param argument="--minprob" type="float" value="0.05" label="report results with minimum probability" />
404 <param argument="--nomass" type="boolean" truevalue="--nomass" falsevalue="" checked="false" label="disable mass model" />
405 <param argument="--nonmc" type="boolean" truevalue="--nonmc" falsevalue="" checked="false" label="disable NMC missed cleavage model" />
406 <param argument="--nontt" type="boolean" truevalue="--nontt" falsevalue="" checked="false" label="disable NTT enzymatic termini model" />
407 <param argument="--phospho" type="boolean" truevalue="--phospho" falsevalue="" checked="false" label="enable peptide phospho motif model" />
408 </section>
409 </xml>
410 <token name="@PEPTIDEPROPHET@"><![CDATA[
411 #set $prfx = $wf.validation.validation_tab.psm_validation.peptide_prophet
412 #set $wfdict['peptide-prophet.run-peptide-prophet'] = 'true'
413 #set $wfdict['peptide-prophet.combine-pepxml'] = str($prfx.combined_pepxml)
414 #set $cmd_opts = [str($prfx.accmass),str($prfx.combine),str($prfx.decoyprobs),str($prfx.expectscore),str($prfx.glyc),str($prfx.nomass),str($prfx.nonmc),str($prfx.nonparam),str($prfx.nontt),str($prfx.phospho),str($prfx.ppm)]
415 #silent $cmd_opts.append('--clevel ' + str($prfx.clevel))
416 #silent $cmd_opts.append('--masswidth ' + str($prfx.masswidth))
417 #silent $cmd_opts.append('--minpeplen ' + str($prfx.minpeplen))
418 #silent $cmd_opts.append('--minprob ' + str($prfx.minprob))
419 #set $wfdict['peptide-prophet.cmd-opts'] = ' '.join($cmd_opts).strip()
420 ]]></token>
421
422 <!-- CrystalC options -->
423 <xml name="crystalc">
424 <param name="run_crystalc" type="boolean" truevalue="true" falsevalue="false" checked="true" label="Run Crystal-C" help="Recommend for open searches for additional resuts cleanup"/>
425 </xml>
426
427 <!-- MSBooster options. Disabled until DIA-NN integrated.
428 <xml name="msbooster">
429 <section name="msbooster" expanded="false" title="MSBooster">
430 <param name="predict_rt" type="boolean" truevalue="true" falsevalue="false" checked="true" label="Predict RT"/>
431 <param name="predict_spectra" type="boolean" truevalue="true" falsevalue="false" checked="true" label="Predict spectra"/>
432 <param name="use_correlated_features" type="boolean" truevalue="true" falsevalue="false" checked="false" label="Use correlated features"/>
433 </section>
434 </xml>
435 -->
436
437 <!-- Protein Prophet options -->
438 <xml name="protein_prophet" token_minprob="0.05">
439 <conditional name="protein_prophet">
440 <param name="run_protein_prophet" type="select" label="Run Protein Prophet">
441 <option value="true" selected="true">Yes</option>
442 <option value="false">No</option>
443 </param>
444 <when value="true">
445 <section name="protein_prophet_opts" expanded="true" title="Protein Prophet">
446 <param argument="--iprophet" type="boolean" truevalue="--iprophet" falsevalue="" checked="false" label="input is from iProphet" />
447 <param argument="--maxppmdiff" type="integer" value="2000000" label="maximum peptide mass difference in ppm (default 2000000)" />
448 <param argument="--minprob" type="float" value="@MINPROB@" label="PeptideProphet probability threshold (default 0.05)" />
449 <param argument="--nonsp" type="boolean" truevalue="--nonsp" falsevalue="" checked="false" label="do not use NSP model" />
450 <param argument="--subgroups" type="boolean" truevalue="--subgroups" falsevalue="" checked="false" label="do not use NOGROUPS" />
451 <param argument="--unmapped" type="boolean" truevalue="--unmapped" falsevalue="" checked="false" label="report results for UNMAPPED proteins" />
452 </section>
453 </when>
454 <when value="false"/>
455 </conditional>
456 </xml>
457
458 <!-- Set ProteinProphet workflow options -->
459 <token name="@PROTEINPROPHET@"><![CDATA[
460 #set $prfx = $wf.validation.validation_tab.protein_prophet
461 #if $prfx.run_protein_prophet == 'true'
462 #set $prfx = $wf.validation.validation_tab.protein_prophet.protein_prophet_opts
463 #set $wfdict['protein-prophet.run-protein-prophet'] = 'true'
464 #set $cmd_opts = [str($prfx.iprophet),str($prfx.nonsp),str($prfx.subgroups),str($prfx.unmapped)]
465 #silent $cmd_opts.append('--maxppmdiff ' + str($prfx.maxppmdiff))
466 #silent $cmd_opts.append('--minprob ' + str($prfx.minprob))
467 #set $wfdict['protein-prophet.cmd-opts'] = ' '.join($cmd_opts).strip()
468 #else
469 #set $wfdict[protein-prophet.run-protein-prophet] = 'false'
470 #end if
471 ]]></token>
472
473 <!-- Validation options. Includes PeptideProphet, Percolator, MSBooster, ProteinProphet, and CrystalC -->
474 <xml name="validation" token_expand="false" token_pep="false" token_perc="false" token_boost="false" token_no="true" token_masswidth="5" token_clevel="0" token_accmass="true" token_decoyprobs="true" token_nonparam="true" token_expectscore="true" token_ppm="true" token_combined_pepxml="false" token_protp_minprob="0.05">
475 <section name="validation" expanded="@EXPAND@" title="Validation">
476 <conditional name="validation_tab">
477 <param name="run_validation" type="select" label="Run Validation">
478 <option value="true" selected="true">Yes</option>
479 <option value="false">No</option>
480 </param>
481 <when value="true">
482 <yield/> <!-- crystalc -->
483 <conditional name="psm_validation">
484 <param name="run_psm_validation" type="select" label="PSM Validation">
485 <option value="peptide_prophet" selected="@PEP@">Run PeptideProphet</option>
486 <option value="percolator" selected="@PERC@">Run Percolator</option>
487 <!-- MSBooster disabled until DIA-NN integrated
488 <option value="msbooster_percolator" selected="@BOOST@">Run MSBooster and Percolator</option>
489 -->
490 <option value="no" selected="@NO@">Use workflow values</option>
491 </param>
492 <when value="peptide_prophet">
493 <expand macro="peptide_prophet" masswidth="@MASSWIDTH@" clevel="@CLEVEL@" accmass="@ACCMASS@" decoyprobs="@DECOYPROBS@" nonparam="@NONPARAM@" expectscore="@EXPECTSCORE@" ppm="@PPM@" combined_pepxml="@COMBINED_PEPXML@"/>
494 </when>
495 <when value="percolator">
496 <expand macro="percolator"/>
497 </when>
498 <!-- MSBooster disabled until DIA-NN integrated
499 <when value="msbooster_percolator">
500 <expand macro="msbooster"/>
501 <expand macro="percolator"/>
502 </when>
503 -->
504 <when value="no">
505 </when>
506 </conditional>
507 <expand macro="protein_prophet" minprob="@PROTP_MINPROB@"/>
508 <expand macro="phi_report"/>
509 </when>
510 <when value="false">
511 </when>
512 </conditional>
513 </section>
514 </xml>
515
516 <!-- Set validation workflow options -->
517 <token name="@VALIDATION@"><![CDATA[
518 #set $prfx = $wf.validation.validation_tab.psm_validation
519 #if $prfx.run_psm_validation == 'peptide_prophet'
520 #set $wfdict['run-psm-validation'] = 'true'
521 #set $wfdict['msbooster.run-msbooster'] = 'false'
522 #set $wfdict['percolator.run-percolator'] = 'false'
523 @PEPTIDEPROPHET@
524 #elif $prfx.run_psm_validation == 'percolator'
525 #set $wfdict['run-psm-validation'] = 'true'
526 #set $wfdict['msbooster.run-msbooster'] = 'false'
527 @PERCOLATOR@
528 ##elif $prfx.run_psm_validation == 'msbooster_percolator'
529 # MSBooster disabled until DIA-NN integrated.
530 #end if
531 @PROTEINPROPHET@
532 @PHIREPORT@
533 ]]></token>
534
535 <!-- PTM-Sheperd options -->
536 <xml name="ptm_shepherd" token_expand="false" token_yes="true" token_no="false" token_a="false" token_b="true" token_c="false" token_x="false" token_y="true" token_z="false" token_unimod="true" token_common="false" token_glyco="false" token_custom="false">
537 <section name="ptms" expanded="false" title="PTMs">
538 <conditional name="ptm_shepherd">
539 <param name="run_ptm_shepherd" type="select" label="Run PTM Shepherd">
540 <option value="yes" selected="@YES@">yes</option>
541 <option value="no" selected="@NO@">no</option>
542 </param>
543 <when value="yes">
544 <param name="output_extended" type="boolean" truevalue="true" falsevalue="false" checked="false" label="Extended output"/>
545 <section name="ptm_profiling" expanded="false" title="PTM Profiling">
546 <param name="histo_smoothbins" type="integer" value="" min="0" optional="true" label="Smoothing factor" help="ptmshepherd.histo_smoothbins"/>
547 <param name="precursor_mass_units" type="select" label="Precursor Mass tolerance units" help="ptmshepherd.precursor_mass_units">
548 <option value="1" selected="true">ppm</option>
549 <option value="0" selected="false">Daltons</option>
550 </param>
551 <param name="precursor_tol" type="float" value="" min="0" optional="true" label="Precursor tolerance" help="ptmshepherd.precursor_tol"/>
552 <param name="peakpicking_promRatio" type="float" value="" min="0" optional="true" label="Prominece ratio" help="ptmshepherd.peakpicking_promRatio"/>
553 <param name="peakpicking_mass_units" type="select" label="Peakpicking Mass tolerance units" help="ptmshepherd.peakpicking_mass_units">
554 <option value="1" selected="true">ppm</option>
555 <option value="0" selected="false">Daltons</option>
556 </param>
557 <param name="peakpicking_width" type="float" value="" min="0" optional="true" label="Peak picking width" help="ptmshepherd.peakpicking_width"/>
558 <param name="peakpicking_minPsm" type="integer" value="" min="0" optional="true" label="Peak minimum PSMs" help="ptmshepherd.peakpicking_minPsm"/>
559 <param name="spectra_ppmtol" type="float" value="" min="0" optional="true" label="Fragment Mass tolerance (PPM)" help="ptmshepherd.spectra_ppmtol"/>
560 <param name="normalization" type="select" optional="true" label="Normalize data to" help="ptmshepherd.normalization-psms ptmshepherd.normalization-scans">
561 <option value="psms" selected="true">PSMs</option>
562 <option value="scans" selected="false">MS2 scans</option>
563 </param>
564 <param name="varmod_masses" type="select" optional="true" label="Custom mass shifts" help="ptmshepherd.varmod_masses">
565 <option value="Failed_Carbamidomethylation\:-57.021464">Failed_Carbamidomethylation:-57.021464</option>
566 </param>
567 </section>
568 <section name="ptm_annotation" expanded="true" title="PTM Annotation">
569 <param name="annotation_tol" type="float" value="" min="0" optional="true" label="Annotation tolerance (Da)" help="ptmshepherd.annotation_tol"/>
570 <conditional name="annotation">
571 <param name="annotation_source" type="select" label="Annotation source" help="ptmshepherd.annotation">
572 <option value="unimod" selected="@UNIMOD@">Unimod</option>
573 <option value="common" selected="@COMMON@">Common mass shifts</option>
574 <option value="glyco" selected="@GLYCO@">Glyco mass shifts</option>
575 <option value="custom" selected="@CUSTOM@">Custom annotation file</option>
576 </param>
577 <when value="unimod"/>
578 <when value="common"/>
579 <when value="glyco"/>
580 <when value="custom">
581 <param name="annotation_file" type="data" format="txt" label="Custom annotation file"/>
582 </when>
583 </conditional>
584 </section>
585 <section name="ptm_localization" expanded="false" title="PTM Localization">
586 <param name="nions" type="select" multiple="true" optional="true" label="Use specified N-term ions" help="(default: a,b for CID, c for ETD)">
587 <option value="a" selected="@A@">a</option>
588 <option value="b" selected="@B@">b</option>
589 <option value="c" selected="@C@">c</option>
590 </param>
591 <param name="cions" type="select" multiple="true" optional="true" label="use specified C-term ions" help="(default: y for CID, z for ETD)">
592 <option value="x" selected="@X@">x</option>
593 <option value="y" selected="@Y@">y</option>
594 <option value="z" selected="@Z@">z</option>
595 </param>
596 <param name="spectra_maxfragcharge" type="integer" value="" min="0" optional="true" label="Max fragment charge" help="ptmshepherd.spectra_maxfragcharge"/>
597 <param name="localization_background" type="integer" value="" min="0" optional="true" label="Localization background" help="ptmshepherd.localization_background"/>
598 <param name="localization_allowed_res" type="select" label="Restrict localization to" help="ptmshepherd.localization_allowed_res">
599 <option value="" selected="true">none</option>
600 <option value="all">all</option>
601 <option value="N">N</option>
602 <option value="ST">ST</option>
603 </param>
604 </section>
605 <!-- Not yet implemented
606 <section name="ion_discovery" expanded="false" title="Diagnostic Ion Discovery">
607 </section>
608 <section name="glycan" expanded="false" title="Gyclan Assignment and FDR">
609 </section>
610 -->
611 </when>
612 <when value="no"/>
613 </conditional>
614 </section>
615 </xml>
616
617 <!-- Set PTM-Sheperd workflow options -->
618 <token name="@PTM_SHEPHERD@"><![CDATA[
619 #set $prfx = $wf.ptms.ptm_shepherd
620 #if $prfx.run_ptm_shepherd == 'yes'
621 #set $wfdict['ptmshepherd.run-shepherd'] = 'true'
622 #set $cxt = $prfx.ptm_profiling
623 #set $wfdict['ptmshepherd.output_extended'] = $prfx.output_extended
624 #if $cxt.histo_smoothbins != ''
625 #set $wfdict['ptmshepherd.histo_smoothbins'] = $cxt.histo_smoothbins
626 #end if
627 #if $cxt.precursor_tol != ''
628 #set $wfdict['ptmshepherd.precursor_mass_units'] = $ctx.precursor_mass_units
629 #set $wfdict['ptmshepherd.precursor_tol'] = $cxt.precursor_tol
630 #end if
631 #if $cxt.peakpicking_promRatio != ''
632 #set $wfdict['ptmshepherd.peakpicking_promRatio'] = $cxt.peakpicking_promRatio
633 #end if
634 #if $cxt.peakpicking_width != ''
635 #set $wfdict['ptmshepherd.peakpicking_mass_units'] = $ctx.peakpicking_mass_units
636 #set $wfdict['ptmshepherd.peakpicking_width'] = $cxt.peakpicking_width
637 #end if
638 #if $cxt.peakpicking_minPsm != ''
639 #set $wfdict['ptmshepherd.peakpicking_minPsm'] = $cxt.peakpicking_minPsm
640 #end if
641 #if $cxt.spectra_ppmtol != ''
642 #set $wfdict['ptmshepherd.spectra_ppmtol'] = $cxt.spectra_ppmtol
643 #end if
644 #if $cxt.normalization != 'None'
645 #if $cxt.normalization == "psms"
646 #set $wfdict['ptmshepherd.normalization-psms'] = 'true'
647 #set $wfdict['ptmshepherd.normalization-scans'] = 'false'
648 #else
649 #set $wfdict['ptmshepherd.normalization-psms'] = 'false'
650 #set $wfdict['ptmshepherd.normalization-scans'] = 'true'
651 #end if
652 #end if
653 #if $cxt.varmod_masses != 'None'
654 #set $wfdict['ptmshepherd.varmod_masses'] = $cxt.varmod_masses
655 #end if
656 #set $cxt = $prfx.ptm_annotation
657 #if $cxt.annotation_tol != ''
658 #set $wfdict['ptmshepherd.annotation_tol'] = $cxt.annotation_tol
659 #end if
660 #if $cxt.annotation.annotation_source == 'unimod'
661 #set $wfdict['ptmshepherd.annotation-unimod'] = 'true'
662 #set $wfdict['ptmshepherd.annotation-common'] = 'false'
663 #set $wfdict['ptmshepherd.annotation-glyco'] = 'false'
664 #set $wfdict['ptmshepherd.annotation-custom'] = 'false'
665 #elif $cxt.annotation.annotation_source == 'common'
666 #set $wfdict['ptmshepherd.annotation-unimod'] = 'false'
667 #set $wfdict['ptmshepherd.annotation-common'] = 'true'
668 #set $wfdict['ptmshepherd.annotation-glyco'] = 'false'
669 #set $wfdict['ptmshepherd.annotation-custom'] = 'false'
670 #elif $cxt.annotation.annotation_source == 'glyco'
671 #set $wfdict['ptmshepherd.annotation-unimod'] = 'false'
672 #set $wfdict['ptmshepherd.annotation-common'] = 'false'
673 #set $wfdict['ptmshepherd.annotation-glyco'] = 'true'
674 #set $wfdict['ptmshepherd.annotation-custom'] = 'false'
675 #elif $cxt.annotation.annotation_source == 'custom'
676 #set $wfdict['ptmshepherd.annotation-unimod'] = 'false'
677 #set $wfdict['ptmshepherd.annotation-common'] = 'false'
678 #set $wfdict['ptmshepherd.annotation-glyco'] = 'false'
679 #set $wfdict['ptmshepherd.annotation-custom'] = 'true'
680 #set $wfdict['ptmshepherd.annotation_file'] = $cxt.annotation.annotation_file
681 #end if
682 #set $cxt = $prfx.ptm_localization
683 #if $cxt.nions is not None
684 #set $wfdict['ptmshepherd.iontype_a'] = str('a' in $cxt.nions).lower()
685 #set $wfdict['ptmshepherd.iontype_b'] = str('b' in $cxt.nions).lower()
686 #set $wfdict['ptmshepherd.iontype_c'] = str('c' in $cxt.nions).lower()
687 #end if
688 #if $cxt.cions is not None
689 #set $wfdict['ptmshepherd.iontype_x'] = str('x' in $cxt.cions).lower()
690 #set $wfdict['ptmshepherd.iontype_y'] = str('y' in $cxt.cions).lower()
691 #set $wfdict['ptmshepherd.iontype_z'] = str('z' in $cxt.cions).lower()
692 #end if
693 #if $cxt.spectra_maxfragcharge != ''
694 #set $wfdict['ptmshepherd.spectra_maxfragcharge'] = $cxt.spectra_maxfragcharge
695 #end if
696 #if $cxt.localization_background != ''
697 #set $wfdict['ptmshepherd.localization_background'] = $cxt.localization_background
698 #end if
699 #set $wfdict['ptmshepherd.localization_allowed_res'] = $cxt.localization_allowed_res
700 #else
701 #set $wfdict['ptmshepherd.run-shepherd'] = 'false'
702 #end if
703 ]]></token>
704
705 <token name="@RE_EXCLUDEMOD@">@RE_AA@,@RE_FLOAT@</token>
706 <token name="@RE_EXCLUDEMODS@">@RE_EXCLUDEMOD@(;\s*@RE_EXCLUDEMOD@)*</token>
707
708 <!-- Label-free quantification options -->
709 <xml name="label_free_quantification" token_expand="false">
710 <section name="quant_ms1" expanded="@EXPAND@" title="Quant (MS1)">
711 <conditional name="label_free_quantification">
712 <param name="label_free_quantification_run" type="select" label="Perform Label-Free Quantification">
713 <option value="default" selected="true">Use workflow default</option>
714 <option value="no">No Label-Free Quantification</option>
715 <option value="ionquant">Run IonQuant</option>
716 <option value="freequant">Run FreeQuant</option>
717 </param>
718 <when value="default"/>
719 <when value="no"/>
720 <when value="ionquant">
721 <section name="ionquant" expanded="false" title="IonQuant Label-Free Quantification">
722 <param name="mbr" type="select" optional="true" label="Match between runs (MBR)" help="ionquant.mbr">
723 <option value="0">No</option>
724 <option value="1">Yes</option>
725 </param>
726 <param name="normalization" type="select" optional="true" label="Normalize" help="ionquant.normalization">
727 <option value="0">No</option>
728 <option value="1">Yes</option>
729 </param>
730 <section name="feature_detection" expanded="false" title="Feature detection">
731 <param name="mztol" type="integer" value="" optional="true" label="m/z tolerance in ppm" help="ionquant.mztol (default 10)"/>
732 <param name="rttol" type="float" value="" optional="true" label="RT tolerance (minutes)" help="ionquant.rttol (default 0.4)"/>
733 <param name="imtol" type="float" value="" optional="true" label="IM tolerance (1/k0)" help="ionquant.imtol (default 0.05)"/>
734 </section>
735 <section name="mbr" expanded="false" title="Match between runs (MBR)">
736 <param name="mbrrttol" type="float" value="" optional="true" label="MBR RT tolerance (minutes)" help="ionquant.mbrrttol"/>
737 <param name="mbrimtol" type="float" value="" optional="true" label="MBR IM tolerance (1/k0)" help="ionquant.mbrimtol"/>
738 <param name="mbrmincorr" type="float" value="" optional="true" label="MBR min correlation" help="ionquant.mbrmincorr"/>
739 <param name="mbrtoprun" type="integer" value="" optional="true" label="MBR top runs" help="ionquant.mbrtoprun"/>
740 <param name="ionfdr" type="float" value="" min="0.00001" max="1.0" optional="true" label="MBR ion FDR" help="ionquant.ionfdr"/>
741 <param name="peptidefdr" type="float" value="" min="0.00001" max="1.0" optional="true" label="MBR peptide FDR" help="ionquant.peptidefdr"/>
742 <param name="proteinfdr" type="float" value="" min="0.00001" max="1.0" optional="true" label="MBR protein FDR" help="ionquant.proteinfdr"/>
743 </section>
744 <section name="topn" expanded="false" title="Top-N options">
745 <param name="tp" type="integer" value="" min="0" optional="true" label="Top N ions" help="ionquant.tp"/>
746 <param name="minfreq" type="float" value="" min="0.0" max="1.0" optional="true" label="Min freq" help="ionquant.minfreq"/>
747 <param name="minexps" type="integer" value="" optional="true" label="Min exps" help="ionquant.minexps"/>
748 </section>
749 <conditional name="labeling_conditional">
750 <param name="labeling_option" type="select" label="Labeling option">
751 <option value="lfq" selected="true">LFQ</option>
752 <option value="labeling">Labeling</option>
753 </param>
754 <when value="lfq">
755 <section name="lfq" expanded="false" title="LFQ">
756 <param name="maxlfq" type="select" optional="true" label="MaxLFQ" help="ionquant.maxlfq">
757 <option value="0">No</option>
758 <option value="1">Yes</option>
759 </param>
760 <param name="minions" type="integer" value="" optional="true" label="Min ions" help="ionquant.minions"/>
761 </section>
762 </when>
763 <when value="labeling">
764 <section name="labeling" expanded="false" title="Labeling-based quant">
765 <param name="light" type="select" label="Light" help="ionquant.light">
766 <option value="" selected="true">none</option>
767 <option value="C463.2366">C463.2366</option>
768 <option value="C464.28596">C464.28596</option>
769 <option value="C561.3387">C561.3387</option>
770 <option value="K0;R0">K0;R0</option>
771 </param>
772 <param name="medium" type="select" label="Medium" help="ionquant.medium">
773 <option value="" selected="true">none</option>
774 <option value="K4.025107;R6.020129">K4.025107;R6.020129</option>
775 </param>
776 <param name="heavy" type="select" label="Heavy" help="ionquant.heavy">
777 <option value="" selected="true">none</option>
778 <option value="C467.2529">C467.2529</option>
779 <option value="C470.29977">C470.29977</option>
780 <option value="C567.3462">C567.3462</option>
781 <option value="K8.014199;R10.008269">K8.014199;R10.008269</option>
782 </param>
783 <param name="requantify" type="select" label="Re-quantify" help="ionquant.requantify">
784 <option value="0">No</option>
785 <option value="1" selected="true">Yes</option>
786 </param>
787 </section>
788 </when>
789 </conditional>
790 <section name="advanced" expanded="false" title="Advanced options">
791 <param name="excludemods" type="text" optional="true" label="excludemods" help="ionquant.excludemods">
792 <validator type="regex">^\s*@RE_EXCLUDEMODS@\s*$</validator>
793 </param>
794 <param name="minscans" type="integer" value="" min="0" optional="true" label="Min scans" help="ionquant.minscans"/>
795 <param name="minisotopes" type="integer" value="" min="1" max="3" optional="true" label="Min isotopes" help="ionquant.minisotopes"/>
796 <param name="locprob" type="float" value="" min="0.0" max="1.0" optional="true" label="Min site probability" help="ionquant.locprob"/>
797 <param name="writeindex" type="select" optional="true" label="Write index" help="ionquant.writeindex">
798 <option value="0">No</option>
799 <option value="1">Yes</option>
800 </param>
801 </section>
802 </section>
803 </when>
804 <when value="freequant">
805 <section name="freequant" expanded="false" title="IonQuant Label-Free Quantification">
806 <param name="rt_tol" type="float" value="" min="0" optional="true" label="RT Window (minutes)"/>
807 <param name="mz_tol" type="integer" value="" min="1" optional="true" label="m/z Window (ppm)"/>
808 </section>
809 </when>
810 </conditional>
811 </section>
812 </xml>
813
814 <!-- Set label-free quantification workflow options -->
815 <token name="@LABEL_FREE_QUANTIFICATION@"><![CDATA[
816 #set $prfx = $wf.quant_ms1.label_free_quantification
817 #if $prfx.label_free_quantification_run == 'no'
818 #set $wfdict['quantitation.run-label-free-quant'] = 'false'
819 #elif $prfx.label_free_quantification_run == 'ionquant'
820 #set $wfdict['quantitation.run-label-free-quant'] = 'false'
821 #set $wfdict['ionquant.run-ionquant'] = 'true'
822 #set $wfdict['freequant.run-freequant'] = 'false'
823 #set $cxt = $prfx.ionquant
824 #if $cxt.mbr != 'None'
825 #set $wfdict['ionquant.mbr'] = $cxt.mbr
826 #end if
827 #if $cxt.maxlfqbr is not None
828 #set $wfdict['ionquant.maxlfqbr'] = $cxt.maxlfqbr
829 #end if
830 #if $cxt.normalization != 'None'
831 #set $wfdict['ionquant.normalization'] = $cxt.normalization
832 #end if
833 #set $cxt = $prfx.ionquant.feature_detection
834 #if $cxt.mztol != ''
835 #set $wfdict['ionquant.mztol'] = $cxt.mztol
836 #end if
837 #if $cxt.rttol != ''
838 #set $wfdict['ionquant.rttol'] = $cxt.rttol
839 #end if
840 #if $cxt.imtol != ''
841 #set $wfdict['ionquant.imtol'] = $cxt.imtol
842 #end if
843 #set $cxt = $prfx.ionquant.mbr
844 #if $cxt.mbrrttol != ''
845 #set $wfdict['ionquant.mbrrttol'] = $cxt.mbrrttol
846 #end if
847 #if $cxt.mbrimtol != ''
848 #set $wfdict['ionquant.mbrimtol'] = $cxt.mbrimtol
849 #end if
850 #if $cxt.mbrmincorr != ''
851 #set $wfdict['ionquant.mbrmincorr'] = $cxt.mbrmincorr
852 #end if
853 #if $cxt.mbrtoprun != ''
854 #set $wfdict['ionquant.mbrtoprun'] = $cxt.mbrtoprun
855 #end if
856 #if $cxt.ionfdr != ''
857 #set $wfdict['ionquant.ionfdr'] = $cxt.ionfdr
858 #end if
859 #if $cxt.peptidefdr != ''
860 #set $wfdict['ionquant.peptidefdr'] = $cxt.peptidefdr
861 #end if
862 #if $cxt.proteinfdr != ''
863 #set $wfdict['ionquant.proteinfdr'] = $cxt.proteinfdr
864 #end if
865 #set $cxt = $prfx.ionquant.topn
866 #if $cxt.tp != ''
867 #set $wfdict['ionquant.tp'] = $cxt.tp
868 #end if
869 #if $cxt.minfreq != ''
870 #set $wfdict['ionquant.minfreq'] = $cxt.minfreq
871 #end if
872 #if $cxt.minexps != ''
873 #set $wfdict['ionquant.minexps'] = $cxt.minexps
874 #end if
875 #set $cxt = $prfx.ionquant.labeling_conditional
876 #if $cxt.labeling_option == 'labeling'
877 #set $cxt = $prfx.ionquant.labeling_conditional.labeling
878 #set $wfdict['ionquant.use-labeling'] = 'true'
879 #set $wfdict['ionquant.use-lfq'] = 'false'
880 #set $wfdict['ionquant.light'] = $cxt.labeling.light
881 #set $wfdict['ionquant.medium'] = $cxt.labeling.medium
882 #set $wfdict['ionquant.heavy'] = $cxt.labeling.heavy
883 #set $wfdict['ionquant.requantify'] = $cxt.labeling.requantify
884 #else
885 #set $cxt = $prfx.ionquant.labeling_conditional.lfq
886 #set $wfdict['ionquant.use-labeling'] = 'false'
887 #set $wfdict['ionquant.use-lfq'] = 'true'
888 #if $cxt.maxlfq != 'None'
889 #set $wfdict['ionquant.maxlfq'] = $cxt.maxlfq
890 #end if
891 #if $cxt.minions != ''
892 #set $wfdict['ionquant.minions'] = $cxt.minions
893 #end if
894 #end if
895 #set $cxt = $prfx.ionquant.advanced
896 #if $cxt.excludemods != ''
897 #set $wfdict['ionquant.excludemods'] = $cxt.excludemods
898 #end if
899 #if $cxt.minscans != ''
900 #set $wfdict['ionquant.minscans'] = $cxt.minscans
901 #end if
902 #if $cxt.minisotopes != ''
903 #set $wfdict['ionquant.minisotopes'] = $cxt.minisotopes
904 #end if
905 #if $cxt.locprob != ''
906 #set $wfdict['ionquant.locprob'] = $cxt.locprob
907 #end if
908 #if $cxt.writeindex != 'None'
909 #set $wfdict['ionquant.writeindex'] = $cxt.writeindex
910 #end if
911 #elif $prfx.label_free_quantification_run == 'freequant'
912 #set $wfdict['quantitation.run-label-free-quant'] = 'false'
913 #set $wfdict['ionquant.run-ionquant'] = 'false'
914 #set $wfdict['freequant.run-freequant'] = 'true'
915 #set $cxt = $prfx.freequant
916 #if $cxt.rt_tol != ''
917 #set $wfdict['freequant.rt-tol'] = $cxt.rt_tol
918 #end if
919 #if $cxt.mz_tol != ''
920 #set $wfdict['freequant.mz-tol'] = $cxt.mz_tol
921 #end if
922 #end if
923 ]]></token>
924
925 <!--
926 Isobaric quantification options
927
928 TMT-n uses the following n first labels from TMT-18
929 TMT-18 "126, 127N, 127C, 128N, 128C, 129N, 129C, 130N, 130C, 131N, 131C, 132N, 132C, 133N, 133C, 134N, 134C, 135N"
930 iTRAQ-4 "114, 115, 116, 117"
931 iTRAQ-8 "113, 114, 115, 116, 117, 118, 119, 121"
932 -->
933 <xml name="isobaric_quantification" token_expand="false" token_yes="true" token_no="false" token_plex="" token_level="2" token_virtual="false" token_pool="false" token_bridge="true">
934 <section name="quant_iso" expanded="@EXPAND@" title="Quant (Isobaric)">
935 <conditional name="isobaric_quantification">
936 <param name="isobaric_quantification_step" type="select" label="Perform Isobaric Quantification">
937 <option value="default">Use workflow defaults</option>
938 <option value="yes" selected="@YES@">yes</option>
939 <option value="no" selected="@NO@">no</option>
940 </param>
941 <when value="default"/>
942 <when value="no"/>
943 <when value="yes">
944 <section name="options" expanded="true" title="Isobaric Quantification">
945 <param name="quant_level" type="integer" value="@LEVEL@" min="1" max="3" label="MS level for the quantification"/>
946 <param name="channel_num" type="text" value="@PLEX@" optional="true" label="Number of channels">
947 <validator type="regex" message="">^TMT-\d?</validator>
948 </param>
949 <param name="ref_tag" type="select" label="Set Unique tag to identify reference channels">
950 <help>Virtual or specify a Reference sample tag: pool or Bridge</help>
951 <option value="Virtual" selected="@VIRTUAL@">Virtual - Add an artificial reference channel</option>
952 <option value="pool" selected="@POOL@">pool</option>
953 <option value="Bridge" selected="@BRIDGE@">Bridge</option>
954 </param>
955 <param name="groupby" type="select" optional="true" label="Group by level of summarization">
956 <option value="0">Gene level</option>
957 <option value="1">Protein</option>
958 <option value="2">Peptide sequence</option>
959 <option value="3">Multiple PTM sites</option>
960 <option value="4">Single PTM site</option>
961 <option value="-1">All</option>
962 </param>
963 <param name="log2transformed" type="boolean" truevalue="true" falsevalue="false" checked="true" label="Log2 transform the intensity"/>
964 <param name="prot_norm" type="select" optional="true" label="normalization">
965 <option value="0">None</option>
966 <option value="1">MC (median centering)</option>
967 <option value="2">GN (median centering + variance scaling)</option>
968 <option value="-1">generate reports with all normalization options</option>
969 </param>
970 <conditional name="glycan_conditional">
971 <param name="use_glycan_composition" type="select" label="Perform Isobaric Quantification">
972 <option value="default">Use workflow defaults</option>
973 <option value="yes">yes</option>
974 </param>
975 <when value="default"/>
976 <when value="yes">
977 <param name="mod_tag" type="select" optional="true" label="PTM Mod tag">
978 <option value="none">none</option>
979 <option value="N-glyco">N-glyco</option>
980 <option value="C(239.1629)">C(239.1629)</option>
981 <option value="K(-187.1524)">K(-187.1524)</option>
982 <option value="K(-262.1966)">K(-262.1966)</option>
983 <option value="K(114.0429),K(-115.12)">K(114.0429),K(-115.12)</option>
984 <option value="S(79.9663),T(79.9663),Y(79.9663)">S(79.9663),T(79.9663),Y(79.9663)</option>
985 </param>
986 <param name="min_site_prob" type="float" min="-1.0" max="1.0" optional="true" label="Minimum site probability">
987 <help>site localization confidence thresholdr: -1 for global, 0 for search engine determined, above 0 for probability</help>
988 </param>
989 <param name="glyco_qval" type="integer" value="-1" optional="true" label="Glycan FDR filter"/>
990 </when>
991 </conditional>
992 <param name="unique_gene" type="select" optional="true" label="Peptide-Gene uniqueness">
993 <option value="0">0: allow all PSMs</option>
994 <option value="1">1: remove PSMs mapping to more than one GENE with evidence of expression in the dataset</option>
995 <option value="2">2: remove all PSMs mapping to more than one GENE in the fasta file</option>
996 </param>
997 <param name="unique_pep" type="select" optional="true" label="Peptide-Protein uniqueness">
998 <option value="false">unique plus razor peptides</option>
999 <option value="true">allow PSMs with unique peptides only</option>
1000 </param>
1001 <param name="min_pep_prob" type="float" min="0" max="1.0" optional="true" label="only use PSMs with a minimum probability score"
1002 help="minimum PSM probability threshold (in addition to FDR-based filtering by Philosopher)"/>
1003 <param name="min_purity" type="float" min="0" max="1.0" optional="true" label="ion purity threshold (default 0.5)"/>
1004 <param name="min_percent" type="float" min="0" max="1.0" optional="true" label="ignore the lower % PSMs based on their summed abundances"
1005 help="e.g. value of 0.05 indicates removal of PSMs with the summed TMT reporter ions intensity in the lowest 5% of all PSMs"/>
1006 <param name="max_pep_prob_thres" type="float" min="0" max="1.0" optional="true" label="threshold for maximum peptide probability"/>
1007 <param name="min_ntt" type="integer" min="0" max="2" optional="true" label="minimum allowed number of enzymatic termini"/>
1008 <param name="aggregation_method" type="select" optional="true" label="the aggregation method from the PSM level to the specified level">
1009 <option value="0">0: median</option>
1010 <option value="1">1: weighted-ratio</option>
1011 </param>
1012 <param name="prot_exclude" type="text" optional="true" label="Exclude proteins with specified tags at the beginning of the accession number"
1013 help="e.g. none: no exclusion; sp|,tr| : exclude protein with sp| or tr|">
1014 <validator type="regex">^(none|[a-zA-Z]+\|)$</validator>
1015 </param>
1016 <param name="best_psm" type="select" optional="true" label="keep the best PSM only (highest summed TMT intensity) among all redundant PSMs within the same LC-MS run">
1017 <option value="true">Yes</option>
1018 <option value="false">No</option>
1019 </param>
1020 <param name="psm_norm" type="select" optional="true" label="perform additional retention time-based normalization at the PSM level">
1021 <option value="false">No</option>
1022 <option value="true">Yes</option>
1023 </param>
1024 <param name="allow_overlabel" type="select" optional="true" label="allow PSMs with TMT on S (when overlabeling on S was allowed in the database search)">
1025 <option value="true">Yes</option>
1026 <option value="false">No</option>
1027 </param>
1028 <param name="allow_unlabeled" type="select" optional="true" label="allow PSMs without TMT tag or acetylation on the peptide n-terminus">
1029 <option value="true">Yes</option>
1030 <option value="false">No</option>
1031 </param>
1032 <param name="outlier_removal" type="select" optional="true" label="perform outlier removal">
1033 <option value="true">Yes</option>
1034 <option value="false">No</option>
1035 </param>
1036 <param name="ms1_int" type="select" optional="true" label="MS1 precursor ion intensity for reference sample abundance estimation">
1037 <option value="true">Yes - use MS1 precursor ion intensity</option>
1038 <option value="false">No - use MS2 reference intensity</option>
1039 </param>
1040 <param name="tolerance" type="integer" optional="true" label="Tolerance"/>
1041 <param name="top3_pep" type="select" optional="true" label="use top 3 most intense peptide ions as part of the reference sample abundance estimation">
1042 <option value="true">Yes</option>
1043 <option value="false">No</option>
1044 </param>
1045 <param name="print_RefInt" type="select" optional="true" label="print individual reference sample abundance estimates for each multiplex in the final reports">
1046 <option value="false">No</option>
1047 <option value="true">Yes</option>
1048 </param>
1049 </section>
1050 </when>
1051 </conditional>
1052 </section>
1053 </xml>
1054
1055 <!-- Set isobaric quantification workflow options -->
1056 <token name="@ISOBARIC_QUANTIFICATION@"><![CDATA[
1057 #set $prfx = $wf.quant_iso.isobaric_quantification
1058 #if $prfx.isobaric_quantification_step == 'no'
1059 #set $wfdict['tmtintegrator.run-tmtintegrator'] = 'false'
1060 #elif $prfx.isobaric_quantification_step == 'yes'
1061 #set $wfdict['tmtintegrator.run-tmtintegrator'] = 'true'
1062 #set $wfdict['tmtintegrator.dont-run-fq-lq'] = 'false'
1063 #set $cxt = $prfx.options
1064 #set $wfdict['tmtintegrator.quant_level'] = $cxt.quant_level
1065 #set $wfdict['tmtintegrator.channel_num'] = $cxt.channel_num
1066 #if $cxt.ref_tag == 'Virtual'
1067 #set $wfdict['tmtintegrator.add_Ref'] = -1
1068 #else
1069 #set $wfdict['tmtintegrator.add_Ref'] = 1
1070 #set $wfdict['tmtintegrator.ref_tag'] = $cxt.ref_tag
1071 #end if
1072 #if $cxt.groupby != ''
1073 #set $wfdict['tmtintegrator.groupby'] = $cxt.groupby
1074 #end if
1075 #set $wfdict['tmtintegrator.log2transformed'] = $cxt.log2transformed
1076 #if $cxt.prot_norm != 'None'
1077 #set $wfdict['tmtintegrator.prot_norm'] = $cxt.prot_norm
1078 #end if
1079 #if $cxt.glycan_conditional.use_glycan_composition == 'yes'
1080 #if $cxt.glycan_conditional.mod_tag != 'None'
1081 #set $wfdict['tmtintegrator.mod_tag'] = $cxt.glycan_conditional.mod_tag
1082 #end if
1083 #if $cxt.glycan_conditional.min_site_prob != ''
1084 #set $wfdict['tmtintegrator.min_site_prob'] = $cxt.glycan_conditional.min_site_prob
1085 #end if
1086 #if $cxt.glycan_conditional.glyco_qval != ''
1087 #set $wfdict['tmtintegrator.glyco_qval'] = $cxt.glycan_conditional.glyco_qval
1088 #end if
1089 #end if
1090 #if $cxt.unique_gene != 'None'
1091 #set $wfdict['tmtintegrator.unique_gene'] = $cxt.unique_gene
1092 #end if
1093 #if $cxt.unique_pep != 'None'
1094 #set $wfdict['tmtintegrator.unique_pep'] = $cxt.unique_pep
1095 #end if
1096 #if $cxt.min_pep_prob != ''
1097 #set $wfdict['tmtintegrator.min_pep_prob'] = $cxt.min_pep_prob
1098 #end if
1099 #if $cxt.min_purity != ''
1100 #set $wfdict['tmtintegrator.min_purity'] = $cxt.min_purity
1101 #end if
1102 #if $cxt.min_percent != ''
1103 #set $wfdict['tmtintegrator.min_percent'] = $cxt.min_percent
1104 #end if
1105 #if $cxt.max_pep_prob_thres != ''
1106 #set $wfdict['tmtintegrator.max_pep_prob_thres'] = $cxt.max_pep_prob_thres
1107 #end if
1108 #if $cxt.min_ntt != ''
1109 #set $wfdict['tmtintegrator.min_ntt'] = $cxt.min_ntt
1110 #end if
1111 #if $cxt.aggregation_method != 'None'
1112 #set $wfdict['tmtintegrator.aggregation_method'] = $cxt.aggregation_method
1113 #end if
1114 #if $cxt.prot_exclude != ''
1115 #set $wfdict['tmtintegrator.prot_exclude'] = $cxt.prot_exclude
1116 #end if
1117 #if $cxt.best_psm != 'None'
1118 #set $wfdict['tmtintegrator.best_psm'] = $cxt.best_psm
1119 #end if
1120 #if $cxt.psm_norm != 'None'
1121 #set $wfdict['tmtintegrator.psm_norm'] = $cxt.psm_norm
1122 #end if
1123 #if $cxt.allow_overlabel != 'None'
1124 #set $wfdict['tmtintegrator.allow_overlabel'] = $cxt.allow_overlabel
1125 #end if
1126 #if $cxt.allow_unlabeled != 'None'
1127 #set $wfdict['tmtintegrator.allow_unlabeled'] = $cxt.allow_unlabeled
1128 #end if
1129 #if $cxt.outlier_removal != 'None'
1130 #set $wfdict['tmtintegrator.outlier_removal'] = $cxt.outlier_removal
1131 #end if
1132 #if $cxt.ms1_int != 'None'
1133 #set $wfdict['tmtintegrator.ms1_int'] = $cxt.ms1_int
1134 #end if
1135 #if $cxt.tolerance != ''
1136 #set $wfdict['tmtintegrator.tolerance'] = $cxt.tolerance
1137 #end if
1138 #if $cxt.top3_pep != 'None'
1139 #set $wfdict['tmtintegrator.top3_pep'] = $cxt.top3_pep
1140 #end if
1141 #if $cxt.print_RefInt != 'None'
1142 #set $wfdict['tmtintegrator.print_RefInt'] = $cxt.print_RefInt
1143 #end if
1144 #end if
1145 ]]></token>
1146
1147 <!-- License agreement texts. -->
1148 <token name="@MSFRAGGER_LICENSE_AGREEMENT@">
1149 MSFragger is available freely for academic research and educational purposes only. I have read the ACADEMIC license for MSFragger software: http://msfragger-upgrader.nesvilab.org/upgrader/MSFragger-LICENSE.pdf. This license provides with non-exclusive, non-transferable right to use MSFragger solely for academic research, non-commercial or educational purposes. I agree to be subject to the terms and conditions of this license. I understand that to use MSFragger for other purposes requires a commercial license from the University of Michigan Office of Tech Transfer.
1150 </token>
1151 <token name="@IONQUANT_LICENSE_AGREEMENT@">
1152 IonQuant is available freely for academic research and educational purposes only. I have read the ACADEMIC license for MSFragger software: https://msfragger.arsci.com/ionquant/IonQuant%20Academic%20Use%20License%2005162022.pdf
1153 </token>
1154 <token name="@THERMO_RAW_READER_LICENSE_AGREEMENT@">
1155 I agree to the terms of Thermo (c) Raw File Reader License Agreement: http://msfragger-upgrader.nesvilab.org/upgrader/RawFileRdr_License_Agreement_RevA.pdf
1156 </token>
1157 <token name="@BRUKER_LICENSE_AGREEMENT@">
1158 I agree to the terms of Bruker SDK library distribution conditions: http://msfragger-upgrader.nesvilab.org/upgrader/redist.txt
1159 </token>
1160 <token name="@LICENSE_AGREEMENTS@">
1161 @MSFRAGGER_LICENSE_AGREEMENT@
1162 @IONQUANT_LICENSE_AGREEMENT@
1163 @THERMO_RAW_READER_LICENSE_AGREEMENT@
1164 @BRUKER_LICENSE_AGREEMENT@
1165 </token>
1166
1167 <!-- User must check box agreeing to MSFragger license agreement. -->
1168 <xml name="license_agreements">
1169 <param name="license_agreements" type="boolean" truevalue="true" falsevalue="false" checked="false" label="I understand that these tools, including MSFragger, IonQuant, Bruker, and Thermo Raw File Reader, are available freely for academic research and educational purposes only, and agree to the following terms.">
1170 <validator type="expression" message="You must agree to the MSFragger license!">value == True</validator>
1171 <help><![CDATA[
1172 @MSFRAGGER_LICENSE_AGREEMENT@
1173 <br/><br/>
1174 @IONQUANT_LICENSE_AGREEMENT@
1175 <br/><br/>
1176 @THERMO_RAW_READER_LICENSE_AGREEMENT@
1177 <br/><br/>
1178 @BRUKER_LICENSE_AGREEMENT@
1179 ]]></help>
1180 </param>
1181 </xml>
1182
1183 <xml name="citations">
1184 <citations>
1185 <citation type="doi">10.1038/s41592-020-0912-y</citation>
1186 <citation type="doi">10.1038/nmeth.4256</citation>
1187 <citation type="doi">10.1038/s41467-020-17921-y</citation>
1188 <citation type="doi">10.1038/s41592-020-0967-9</citation>
1189 <citation type="doi">10.1021/acs.jproteome.0c00119</citation>
1190 <citation type="doi">10.1074/mcp.TIR120.002216</citation>
1191 <citation type="doi">10.1074/mcp.TIR120.002048</citation>
1192 <citation type="doi">10.1016/j.mcpro.2021.100077</citation>
1193 <citation type="doi">10.1021/acs.jproteome.0c00544</citation>
1194 <citation type="doi">10.1038/nmeth.3255</citation>
1195 <yield />
1196 </citations>
1197 </xml>
1198 </macros>