Mercurial > repos > galaxyp > fragpipe
diff 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 |
line wrap: on
line diff
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/macros.xml Wed Jul 10 06:15:00 2024 +0000 @@ -0,0 +1,1198 @@ +<macros> + <import>msfragger_macros.xml</import> + <token name="@TOOL_VERSION@">20.0</token> + <token name="@VERSION_SUFFIX@">0</token> + <xml name="requirements"> + <requirements> + <requirement type="package" version="@TOOL_VERSION@">fragpipe</requirement> + </requirements> + </xml> + + <!-- TMT-n uses the following n first labels from TMT-18 --> + <token name="@TMT_LABELS@">['126', '127N', '127C', '128N', '128C', '129N', '129C', '130N', '130C', '131N', '131C', '132N', '132C', '133N', '133C', '134N', '134C', '135N']</token> + <token name="@iTRAQ-4_LABELS@">['114', '115', '116', '117']</token> + <token name="@iTRAQ-8_LABELS@">['113', '114', '115', '116', '117', '118', '119', '121']</token> + + <!-- + User specifies input file format and selects sample files as are included by the scan_inputs macro + + User must also supply their own manifest file, a TSV file of the format: + name, experiment, bioreplicate, data type + --> + <xml name="samples"> + <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"/> + <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"> + <validator type="regex" message="">[a-zA-Z][a-zA-Z0-9_-]*</validator> + </param> + <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)"/> + </xml> + + <!-- + Prepares enviroment variables for FragPipe. + --> + <token name="@PREPARE_ENVIRONMENT@"><![CDATA[ + env_location="\$(dirname \$(which philosopher))/.." && + cp -r \${env_location}/share/fragpipe*/ fragpipe_local/ && + mkdir .cache .config tmp && + export XDG_CONFIG_HOME=\$(pwd)/.config && + export XDG_CACHE_HOME=\$(pwd)/.cache && + export JAVA_OPTS="\$JAVA_OPTS -Djava.io.tmpdir=\$(pwd)/tmp" && + export LD_LIBRARY_PATH="\$LD_LIBRARY_PATH:/usr/local/lib" && + ]]></token> + + <!-- + Prepares input scan files. + + Scans and moved to a scan directory and linked. + + Annotation files are copied into the scan directory for TMT workflows. + --> + <token name="@LINK_SAMPLES@"><![CDATA[ + CWD=\$(pwd | sed 's@/@\\/@g') && + + mkdir -p scans && + #if $wf.workflow_name == "TMT10" or $wf.workflow_name == "TMT11" + cp -p '$wf.annotation' 'scans/annotation.txt' && + #end if + + sed "s@^@\$CWD/scans/@" $manifest > fp.manifest && + + #for $sf in $inputs + #set $i_name = $ln_name($sf) + ln -s '$sf' 'scans/${i_name}' && + #end for + ]]></token> + + <!-- + Prepares input files, excluding database. + --> + <token name="@PREPARE_INPUTS@"><![CDATA[ + mkdir -p outputs && + @CMD_IMPORTS@ + @LINK_SAMPLES@ + ]]></token> + + <!-- + Prepares database. + + First genericizes unknown sequence headers in the database. + Then adds decoys, or decoys and contaminants depending on user selection. + --> + <token name="@PREPARE_DATABASE@"><![CDATA[ + '$__tool_directory__/genericize_db.py' $database_name genericized_db.fas && + + #if str($database_options) != 'none' + philosopher workspace --init && + philosopher database --custom genericized_db.fas --prefix rev_ + #if str($database_options) != 'decoy_and_contam' + --contam + #end if + --contamprefix && + ln -s *-decoys-*.fas final_db.fas && + #else + ln -s genericized_db.fas final_db.fas && + #end if + ]]></token> + + <!-- + Prepares outputs. + + Creates log file symlink, makes a new directory for "combined" outputs and creates "concatenated" results. + --> + <token name="@PREPARE_OUTPUTS@"><![CDATA[ + cd outputs && + + #if $output_options and 'combined_outputs' in $output_options + mkdir combined_outputs && + find . -name 'combined*tsv' | xargs -I {} mv {} combined_outputs && + #end if + + ## For each category of results - psm, ion, peptide, protein - this loop concatenates results from each sample into a single result. + ## 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. + for f in psm.tsv ion.tsv peptide.tsv protein.tsv; do + n=0; + for i in \$(find * -name \${f}); do + d=\${i%/*}; + if [[ \$n == 0 ]]; then + awk 'NR==1{printf("Experiment\t%s\n",\$0);}' \$i > concat_\${f}; + fi; + awk 'NR>1{printf("'"\${d}"'\t%s\n",\$0);}' \$i >> concat_\${f}; t=\$(echo \${i} | tr '/' '.'); + mv \${i} \${t}; n=\$((n+1)); + done; + done + ]]></token> + + <!-- Input database for MSFragger --> + <xml name="fragger_database"> + <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."/> + <!-- Whether to add decoys and contaminants to the database with Philosopher --> + <param name="database_options" + type="select" + label="Decoys and contaminants" + help="The default decoy prefix is "rev_"."> + <option value="decoy_and_contam" selected="true">Add decoys and contaminants</option> + <option value="decoy">Add decoys</option> + <option value="none">Don't add decoys or contaminants</option> + </param> + + <!-- Database may be split into chunks for performance benefits --> + <param name="num_slices" type="integer" label="Split database" value="1" help="The number of chunks in which to split the database."/> + </xml> + + <!-- + The following macro allows users to select their FragPipe workfow. + + For a given workflow selection, the relevant parameter sections are expanded. Options specific to the selected workflow + are passed to the parameter definitions in the expand element. + + The Galaxy parameters overwrite a workflow file provided by FragPipe for the selected workflow. As a result, any parameters + that are not defined in the Galaxy tool will fall back on the FragPipe defaults for that workflow. This logic is defined + in the <configfile> element. + --> + <xml name="workflow"> + <conditional name="wf"> + <param name="workflow_name" type="select" label="Workflow" help="Note: MSBooster is currently disabled in all Galaxy FragPipe workflows."> + <option value="Default">Default</option> + <option value="Open">Open</option> + <option value="Nonspecific-HLA">Nonspecific-HLA</option> + <option value="LFQ-MBR">LFQ-MBR</option> + <option value="TMT10">TMT10</option> + <option value="TMT11">TMT11</option> + </param> + + <when value="Default"> + <section name="msfragger" expanded="false" title="MSFragger Options"> + <expand macro="msfragger_default"/> + </section> + <expand macro="validation" + pep="false" + perc="true" + boost="false" + no="false" + masswidth="5" + clevel="0" + accmass="true" + decoyprobs="true" + nonparam="true" + expectscore="true" + ppm="true" + combined_pepxml="false"/> + <expand macro="label_free_quantification" yes="false" no="true"/> + <expand macro="ptm_shepherd" yes="false" no="true" c="true" z="true"/> + <expand macro="isobaric_quantification" yes="false" no="true"/> + </when> + + <when value="Open"> + <section name="msfragger" expanded="false" title="MSFragger Options"> + <expand macro="msfragger_open"/> + </section> + <expand macro="validation" + pep="true" + perc="false" + boost="false" + no="false" + masswidth="1000" + clevel="-2" + accmass="false" + decoyprobs="true" + nonparam="true" + expectscore="true" + ppm="false" + combined_pepxml="true"> + <expand macro="crystalc"/> + </expand> + <expand macro="label_free_quantification" yes="false" no="true"/> + <expand macro="ptm_shepherd" yes="true" no="false"/> + <expand macro="isobaric_quantification" yes="false" no="true" bridge="false" pool="true"/> + </when> + + <when value="Nonspecific-HLA"> + <section name="msfragger" expanded="false" title="MSFragger Options"> + <expand macro="msfragger_nonspecific_HLA"/> + </section> + <expand macro="validation" + pep="false" + perc="true" + boost="false" + no="true" + masswidth="5" + clevel="0" + accmass="true" + decoyprobs="true" + nonparam="true" + expectscore="true" + ppm="true" + combined_pepxml="false"/> + <expand macro="label_free_quantification" yes="false" no="true"/> + <expand macro="ptm_shepherd" yes="false" no="true"/> + <expand macro="isobaric_quantification" yes="false" no="true"/> + </when> + + <when value="LFQ-MBR"> + <section name="msfragger" expanded="false" title="MSFragger Options"> + <expand macro="msfragger_LFQ_MBR"/> + </section> + <!-- MSBooster should be enabled once included in FragPipe Galaxy tool --> + <expand macro="validation" + pep="false" + perc="true" + boost="false" + no="true" + masswidth="5" + clevel="0" + accmass="true" + decoyprobs="true" + nonparam="true" + expectscore="true" + ppm="true" + combined_pepxml="false"/> + <expand macro="label_free_quantification" yes="true" no="false"/> + <expand macro="ptm_shepherd" yes="false" no="true"/> + <expand macro="isobaric_quantification" yes="false" no="true"/> + </when> + + <when value="TMT10"> + <expand macro="tmt_options" plex="TMT-10"/> + </when> + + <!-- TMT11 is not in FragPipe GUI --> + <when value="TMT11"> + <expand macro="tmt_options" plex="TMT-11"/> + </when> + </conditional> + </xml> + + <!-- Options for TMT workflows --> + <xml name="tmt_options" token_plex=""> + <param name="annotation" type="data" format="txt" optional="false" label="annotation file" help=""/> + <section name="msfragger" expanded="false" title="MSFragger Options"> + <expand macro="msfragger_TMT"/> + </section> + <expand macro="validation" + pep="false" + perc="true" + boost="false" + no="false" + masswidth="5" + clevel="0" + accmass="true" + decoyprobs="true" + nonparam="true" + expectscore="true" + ppm="true" + combined_pepxml="false" + protp_minprob="0.5"/> + <expand macro="isobaric_quantification" yes="true" no="false" plex="@PLEX@" level="2" ref_tag="Bridge" mod_tag="none"/> + <expand macro="label_free_quantification" yes="false" no="true"/> + <expand macro="ptm_shepherd" yes="false" no="true" token_unimod="false" token_common="true"/> + </xml> + + <!-- Generates the FragPipe workflow--> + <xml name="workflow_configfile"> + <configfile name="workflow_configfile"><![CDATA[#slurp + ## Create a fragpipe params dictionary from a file + #set $comments = [] + #set $wfdict = {} + #set $wfpath = $__tool_directory__ + '/workflows/' + str($wf.workflow_name) + '.workflow' + #set $fh = open($wfpath, 'r') + #for $line in $fh: + #if $line.startswith('#') + #silent $comments.append($line) + #elif $line.strip() != '' + #set $kv = $line.strip().split('=') + #if len($kv) < 2 + #silent $kv.append('') + #end if + #set $wfdict[$kv[0]] = '='.join($kv[1:]) + #end if + #end for + + #set $wfdict['database.db-path'] = 'final_db.fas' + #set $wfdict['msfragger.misc.slice-db'] = $num_slices + + ## Get the MSFragger Params (shared with the MSFragger tool) + #set $prefix = $wf.msfragger + @MSFRAGGER_PARAM_DICT@ + #if len($vmods) > 0 + #set $msfragger_dict['table.var-mods'] = '; '.join([$re.sub('^(.*,)(\d)$','\\1True,\\2',m) for m in $vmods]) + #end if + #for $k in $msfragger_dict.keys() + #set $kv = $k + '=' + str($msfragger_dict[$k]) + #set $wfk = 'msfragger.' + $k + #set $wfdict[$wfk] = str($msfragger_dict[$k]) + #end for + + @VALIDATION@ + @PTM_SHEPHERD@ + @LABEL_FREE_QUANTIFICATION@ + @ISOBARIC_QUANTIFICATION@ + + ## Populate the workflow with configuration and comment dictionary entries populated by tool params. + #for $comment in $comments +$comment + #end for + + #for $k in sorted($wfdict.keys()) + #set $kv = $k + '=' + str($wfdict[$k]) +$kv + #end for +#slurp]]></configfile> + </xml> + + <!-- Percolator options --> + <xml name="percolator"> + <section name="percolator" expanded="true" title="Percolator"> + <param name="keep_tsv_files" type="boolean" truevalue="true" falsevalue="false" checked="false" label="Keep intermediate files"/> + <param name="min_prob" type="float" value="0.5" label="Minimum probability (default 0.5)"/> + </section> + </xml> + + <!-- Set Percolator workflow options --> + <token name="@PERCOLATOR@"><![CDATA[ + #set $prc = $wf.validation.validation_tab.psm_validation.percolator + #set $wfdict['run-validation-tab'] = $wf.validation.validation_tab.run_validation + #set $wfdict['peptide-prophet.run-peptide-prophet'] = 'false' + #set $wfdict['percolator.run-percolator'] = 'true' + #set $wfdict['percolator.keep-tsv-files'] = str($prc.keep_tsv_files) + #set $wfdict['percolator.min-prob'] = str($prc.min_prob) + ]]></token> + + <!-- Philosopher Report (phi-report) options --> + <xml name="phi_report"> + <conditional name="phi_report"> + <param name="run_phi_report" type="select" label="Generate Philosopher Reports"> + <option value="true" selected="true">Yes</option> + <option value="false">No</option> + </param> + <when value="true"> + <section name="phi_report_opts" expanded="false" title="FDR Filter and Report"> + <param name="dont_use_prot_prophet_file" type="boolean" truevalue="true" falsevalue="false" checked="false"/> + <param name="print_decoys" type="boolean" truevalue="true" falsevalue="false" checked="false"/> + </section> + </when> + <when value="false"/> + </conditional> + </xml> + + <!-- Set Philosopher Report (phi-report) workflow options --> + <token name="@PHIREPORT@"><![CDATA[ + #set $prfx = $wf.validation.validation_tab.phi_report + #if $prfx.run_phi_report == 'true' + #set $wfdict['phi-report.run-report'] = 'true' + #set $prfx = $wf.validation.validation_tab.phi_report.phi_report_opts + #set $wfdict['phi-report.print-decoys'] = $prfx.print_decoys + #else + #set $wfdict['phi-report.run-report'] = 'false' + #end if + ]]></token> + + <!-- PeptideProphet options --> + <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"> + <section name="peptide_prophet" expanded="true" title="PeptideProphet"> + <param name="combined_pepxml" type="boolean" truevalue="true" falsevalue="false" checked="@COMBINED_PEPXML@" label="Single combined pepxml per experiment or group"/> + <param argument="--decoyprobs" type="boolean" truevalue="--decoyprobs" falsevalue="" checked="@DECOYPROBS@" label="compute possible non-zero probabilities for Decoy entries on the last iteration"/> + <param argument="--ppm" type="boolean" truevalue="--ppm" falsevalue="" checked="@PPM@" label="use PPM mass error instead of Dalton for mass modeling"/> + <param argument="--accmass" type="boolean" truevalue="--accmass" falsevalue="" checked="@ACCMASS@" label="use Accurate Mass model binning"/> + <param argument="--nonparam" type="boolean" truevalue="--nonparam" falsevalue="" checked="@NONPARAM@" label="use semi-parametric modeling, must be used in conjunction with --decoy option"/> + <param argument="--expectscore" type="boolean" truevalue="--expectscore" falsevalue="" checked="@EXPECTSCORE@" label="use expectation value as the only contributor to the f-value for modeling"/> + <param argument="--masswidth" type="float" value="@MASSWIDTH@" label="model mass width (default 5)"/> + <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"/> + <param argument="--glyc" type="boolean" truevalue="--glyc" falsevalue="" checked="false" label="enable peptide Glyco motif model"/> + <param argument="--combine" type="boolean" truevalue="--combine" falsevalue="" checked="false" label="combine the results from PeptideProphet into a single result file" /> + <param argument="--minpeplen" type="integer" value="7" label="minimum peptide length not rejected (default 7)" /> + <param argument="--minprob" type="float" value="0.05" label="report results with minimum probability" /> + <param argument="--nomass" type="boolean" truevalue="--nomass" falsevalue="" checked="false" label="disable mass model" /> + <param argument="--nonmc" type="boolean" truevalue="--nonmc" falsevalue="" checked="false" label="disable NMC missed cleavage model" /> + <param argument="--nontt" type="boolean" truevalue="--nontt" falsevalue="" checked="false" label="disable NTT enzymatic termini model" /> + <param argument="--phospho" type="boolean" truevalue="--phospho" falsevalue="" checked="false" label="enable peptide phospho motif model" /> + </section> + </xml> + <token name="@PEPTIDEPROPHET@"><![CDATA[ + #set $prfx = $wf.validation.validation_tab.psm_validation.peptide_prophet + #set $wfdict['peptide-prophet.run-peptide-prophet'] = 'true' + #set $wfdict['peptide-prophet.combine-pepxml'] = str($prfx.combined_pepxml) + #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)] + #silent $cmd_opts.append('--clevel ' + str($prfx.clevel)) + #silent $cmd_opts.append('--masswidth ' + str($prfx.masswidth)) + #silent $cmd_opts.append('--minpeplen ' + str($prfx.minpeplen)) + #silent $cmd_opts.append('--minprob ' + str($prfx.minprob)) + #set $wfdict['peptide-prophet.cmd-opts'] = ' '.join($cmd_opts).strip() + ]]></token> + + <!-- CrystalC options --> + <xml name="crystalc"> + <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"/> + </xml> + + <!-- MSBooster options. Disabled until DIA-NN integrated. + <xml name="msbooster"> + <section name="msbooster" expanded="false" title="MSBooster"> + <param name="predict_rt" type="boolean" truevalue="true" falsevalue="false" checked="true" label="Predict RT"/> + <param name="predict_spectra" type="boolean" truevalue="true" falsevalue="false" checked="true" label="Predict spectra"/> + <param name="use_correlated_features" type="boolean" truevalue="true" falsevalue="false" checked="false" label="Use correlated features"/> + </section> + </xml> + --> + + <!-- Protein Prophet options --> + <xml name="protein_prophet" token_minprob="0.05"> + <conditional name="protein_prophet"> + <param name="run_protein_prophet" type="select" label="Run Protein Prophet"> + <option value="true" selected="true">Yes</option> + <option value="false">No</option> + </param> + <when value="true"> + <section name="protein_prophet_opts" expanded="true" title="Protein Prophet"> + <param argument="--iprophet" type="boolean" truevalue="--iprophet" falsevalue="" checked="false" label="input is from iProphet" /> + <param argument="--maxppmdiff" type="integer" value="2000000" label="maximum peptide mass difference in ppm (default 2000000)" /> + <param argument="--minprob" type="float" value="@MINPROB@" label="PeptideProphet probability threshold (default 0.05)" /> + <param argument="--nonsp" type="boolean" truevalue="--nonsp" falsevalue="" checked="false" label="do not use NSP model" /> + <param argument="--subgroups" type="boolean" truevalue="--subgroups" falsevalue="" checked="false" label="do not use NOGROUPS" /> + <param argument="--unmapped" type="boolean" truevalue="--unmapped" falsevalue="" checked="false" label="report results for UNMAPPED proteins" /> + </section> + </when> + <when value="false"/> + </conditional> + </xml> + + <!-- Set ProteinProphet workflow options --> + <token name="@PROTEINPROPHET@"><![CDATA[ + #set $prfx = $wf.validation.validation_tab.protein_prophet + #if $prfx.run_protein_prophet == 'true' + #set $prfx = $wf.validation.validation_tab.protein_prophet.protein_prophet_opts + #set $wfdict['protein-prophet.run-protein-prophet'] = 'true' + #set $cmd_opts = [str($prfx.iprophet),str($prfx.nonsp),str($prfx.subgroups),str($prfx.unmapped)] + #silent $cmd_opts.append('--maxppmdiff ' + str($prfx.maxppmdiff)) + #silent $cmd_opts.append('--minprob ' + str($prfx.minprob)) + #set $wfdict['protein-prophet.cmd-opts'] = ' '.join($cmd_opts).strip() + #else + #set $wfdict[protein-prophet.run-protein-prophet] = 'false' + #end if + ]]></token> + + <!-- Validation options. Includes PeptideProphet, Percolator, MSBooster, ProteinProphet, and CrystalC --> + <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"> + <section name="validation" expanded="@EXPAND@" title="Validation"> + <conditional name="validation_tab"> + <param name="run_validation" type="select" label="Run Validation"> + <option value="true" selected="true">Yes</option> + <option value="false">No</option> + </param> + <when value="true"> + <yield/> <!-- crystalc --> + <conditional name="psm_validation"> + <param name="run_psm_validation" type="select" label="PSM Validation"> + <option value="peptide_prophet" selected="@PEP@">Run PeptideProphet</option> + <option value="percolator" selected="@PERC@">Run Percolator</option> + <!-- MSBooster disabled until DIA-NN integrated + <option value="msbooster_percolator" selected="@BOOST@">Run MSBooster and Percolator</option> + --> + <option value="no" selected="@NO@">Use workflow values</option> + </param> + <when value="peptide_prophet"> + <expand macro="peptide_prophet" masswidth="@MASSWIDTH@" clevel="@CLEVEL@" accmass="@ACCMASS@" decoyprobs="@DECOYPROBS@" nonparam="@NONPARAM@" expectscore="@EXPECTSCORE@" ppm="@PPM@" combined_pepxml="@COMBINED_PEPXML@"/> + </when> + <when value="percolator"> + <expand macro="percolator"/> + </when> + <!-- MSBooster disabled until DIA-NN integrated + <when value="msbooster_percolator"> + <expand macro="msbooster"/> + <expand macro="percolator"/> + </when> + --> + <when value="no"> + </when> + </conditional> + <expand macro="protein_prophet" minprob="@PROTP_MINPROB@"/> + <expand macro="phi_report"/> + </when> + <when value="false"> + </when> + </conditional> + </section> + </xml> + + <!-- Set validation workflow options --> + <token name="@VALIDATION@"><![CDATA[ + #set $prfx = $wf.validation.validation_tab.psm_validation + #if $prfx.run_psm_validation == 'peptide_prophet' + #set $wfdict['run-psm-validation'] = 'true' + #set $wfdict['msbooster.run-msbooster'] = 'false' + #set $wfdict['percolator.run-percolator'] = 'false' + @PEPTIDEPROPHET@ + #elif $prfx.run_psm_validation == 'percolator' + #set $wfdict['run-psm-validation'] = 'true' + #set $wfdict['msbooster.run-msbooster'] = 'false' + @PERCOLATOR@ + ##elif $prfx.run_psm_validation == 'msbooster_percolator' + # MSBooster disabled until DIA-NN integrated. + #end if + @PROTEINPROPHET@ + @PHIREPORT@ + ]]></token> + + <!-- PTM-Sheperd options --> + <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"> + <section name="ptms" expanded="false" title="PTMs"> + <conditional name="ptm_shepherd"> + <param name="run_ptm_shepherd" type="select" label="Run PTM Shepherd"> + <option value="yes" selected="@YES@">yes</option> + <option value="no" selected="@NO@">no</option> + </param> + <when value="yes"> + <param name="output_extended" type="boolean" truevalue="true" falsevalue="false" checked="false" label="Extended output"/> + <section name="ptm_profiling" expanded="false" title="PTM Profiling"> + <param name="histo_smoothbins" type="integer" value="" min="0" optional="true" label="Smoothing factor" help="ptmshepherd.histo_smoothbins"/> + <param name="precursor_mass_units" type="select" label="Precursor Mass tolerance units" help="ptmshepherd.precursor_mass_units"> + <option value="1" selected="true">ppm</option> + <option value="0" selected="false">Daltons</option> + </param> + <param name="precursor_tol" type="float" value="" min="0" optional="true" label="Precursor tolerance" help="ptmshepherd.precursor_tol"/> + <param name="peakpicking_promRatio" type="float" value="" min="0" optional="true" label="Prominece ratio" help="ptmshepherd.peakpicking_promRatio"/> + <param name="peakpicking_mass_units" type="select" label="Peakpicking Mass tolerance units" help="ptmshepherd.peakpicking_mass_units"> + <option value="1" selected="true">ppm</option> + <option value="0" selected="false">Daltons</option> + </param> + <param name="peakpicking_width" type="float" value="" min="0" optional="true" label="Peak picking width" help="ptmshepherd.peakpicking_width"/> + <param name="peakpicking_minPsm" type="integer" value="" min="0" optional="true" label="Peak minimum PSMs" help="ptmshepherd.peakpicking_minPsm"/> + <param name="spectra_ppmtol" type="float" value="" min="0" optional="true" label="Fragment Mass tolerance (PPM)" help="ptmshepherd.spectra_ppmtol"/> + <param name="normalization" type="select" optional="true" label="Normalize data to" help="ptmshepherd.normalization-psms ptmshepherd.normalization-scans"> + <option value="psms" selected="true">PSMs</option> + <option value="scans" selected="false">MS2 scans</option> + </param> + <param name="varmod_masses" type="select" optional="true" label="Custom mass shifts" help="ptmshepherd.varmod_masses"> + <option value="Failed_Carbamidomethylation\:-57.021464">Failed_Carbamidomethylation:-57.021464</option> + </param> + </section> + <section name="ptm_annotation" expanded="true" title="PTM Annotation"> + <param name="annotation_tol" type="float" value="" min="0" optional="true" label="Annotation tolerance (Da)" help="ptmshepherd.annotation_tol"/> + <conditional name="annotation"> + <param name="annotation_source" type="select" label="Annotation source" help="ptmshepherd.annotation"> + <option value="unimod" selected="@UNIMOD@">Unimod</option> + <option value="common" selected="@COMMON@">Common mass shifts</option> + <option value="glyco" selected="@GLYCO@">Glyco mass shifts</option> + <option value="custom" selected="@CUSTOM@">Custom annotation file</option> + </param> + <when value="unimod"/> + <when value="common"/> + <when value="glyco"/> + <when value="custom"> + <param name="annotation_file" type="data" format="txt" label="Custom annotation file"/> + </when> + </conditional> + </section> + <section name="ptm_localization" expanded="false" title="PTM Localization"> + <param name="nions" type="select" multiple="true" optional="true" label="Use specified N-term ions" help="(default: a,b for CID, c for ETD)"> + <option value="a" selected="@A@">a</option> + <option value="b" selected="@B@">b</option> + <option value="c" selected="@C@">c</option> + </param> + <param name="cions" type="select" multiple="true" optional="true" label="use specified C-term ions" help="(default: y for CID, z for ETD)"> + <option value="x" selected="@X@">x</option> + <option value="y" selected="@Y@">y</option> + <option value="z" selected="@Z@">z</option> + </param> + <param name="spectra_maxfragcharge" type="integer" value="" min="0" optional="true" label="Max fragment charge" help="ptmshepherd.spectra_maxfragcharge"/> + <param name="localization_background" type="integer" value="" min="0" optional="true" label="Localization background" help="ptmshepherd.localization_background"/> + <param name="localization_allowed_res" type="select" label="Restrict localization to" help="ptmshepherd.localization_allowed_res"> + <option value="" selected="true">none</option> + <option value="all">all</option> + <option value="N">N</option> + <option value="ST">ST</option> + </param> + </section> + <!-- Not yet implemented + <section name="ion_discovery" expanded="false" title="Diagnostic Ion Discovery"> + </section> + <section name="glycan" expanded="false" title="Gyclan Assignment and FDR"> + </section> + --> + </when> + <when value="no"/> + </conditional> + </section> + </xml> + + <!-- Set PTM-Sheperd workflow options --> + <token name="@PTM_SHEPHERD@"><![CDATA[ + #set $prfx = $wf.ptms.ptm_shepherd + #if $prfx.run_ptm_shepherd == 'yes' + #set $wfdict['ptmshepherd.run-shepherd'] = 'true' + #set $cxt = $prfx.ptm_profiling + #set $wfdict['ptmshepherd.output_extended'] = $prfx.output_extended + #if $cxt.histo_smoothbins != '' + #set $wfdict['ptmshepherd.histo_smoothbins'] = $cxt.histo_smoothbins + #end if + #if $cxt.precursor_tol != '' + #set $wfdict['ptmshepherd.precursor_mass_units'] = $ctx.precursor_mass_units + #set $wfdict['ptmshepherd.precursor_tol'] = $cxt.precursor_tol + #end if + #if $cxt.peakpicking_promRatio != '' + #set $wfdict['ptmshepherd.peakpicking_promRatio'] = $cxt.peakpicking_promRatio + #end if + #if $cxt.peakpicking_width != '' + #set $wfdict['ptmshepherd.peakpicking_mass_units'] = $ctx.peakpicking_mass_units + #set $wfdict['ptmshepherd.peakpicking_width'] = $cxt.peakpicking_width + #end if + #if $cxt.peakpicking_minPsm != '' + #set $wfdict['ptmshepherd.peakpicking_minPsm'] = $cxt.peakpicking_minPsm + #end if + #if $cxt.spectra_ppmtol != '' + #set $wfdict['ptmshepherd.spectra_ppmtol'] = $cxt.spectra_ppmtol + #end if + #if $cxt.normalization != 'None' + #if $cxt.normalization == "psms" + #set $wfdict['ptmshepherd.normalization-psms'] = 'true' + #set $wfdict['ptmshepherd.normalization-scans'] = 'false' + #else + #set $wfdict['ptmshepherd.normalization-psms'] = 'false' + #set $wfdict['ptmshepherd.normalization-scans'] = 'true' + #end if + #end if + #if $cxt.varmod_masses != 'None' + #set $wfdict['ptmshepherd.varmod_masses'] = $cxt.varmod_masses + #end if + #set $cxt = $prfx.ptm_annotation + #if $cxt.annotation_tol != '' + #set $wfdict['ptmshepherd.annotation_tol'] = $cxt.annotation_tol + #end if + #if $cxt.annotation.annotation_source == 'unimod' + #set $wfdict['ptmshepherd.annotation-unimod'] = 'true' + #set $wfdict['ptmshepherd.annotation-common'] = 'false' + #set $wfdict['ptmshepherd.annotation-glyco'] = 'false' + #set $wfdict['ptmshepherd.annotation-custom'] = 'false' + #elif $cxt.annotation.annotation_source == 'common' + #set $wfdict['ptmshepherd.annotation-unimod'] = 'false' + #set $wfdict['ptmshepherd.annotation-common'] = 'true' + #set $wfdict['ptmshepherd.annotation-glyco'] = 'false' + #set $wfdict['ptmshepherd.annotation-custom'] = 'false' + #elif $cxt.annotation.annotation_source == 'glyco' + #set $wfdict['ptmshepherd.annotation-unimod'] = 'false' + #set $wfdict['ptmshepherd.annotation-common'] = 'false' + #set $wfdict['ptmshepherd.annotation-glyco'] = 'true' + #set $wfdict['ptmshepherd.annotation-custom'] = 'false' + #elif $cxt.annotation.annotation_source == 'custom' + #set $wfdict['ptmshepherd.annotation-unimod'] = 'false' + #set $wfdict['ptmshepherd.annotation-common'] = 'false' + #set $wfdict['ptmshepherd.annotation-glyco'] = 'false' + #set $wfdict['ptmshepherd.annotation-custom'] = 'true' + #set $wfdict['ptmshepherd.annotation_file'] = $cxt.annotation.annotation_file + #end if + #set $cxt = $prfx.ptm_localization + #if $cxt.nions is not None + #set $wfdict['ptmshepherd.iontype_a'] = str('a' in $cxt.nions).lower() + #set $wfdict['ptmshepherd.iontype_b'] = str('b' in $cxt.nions).lower() + #set $wfdict['ptmshepherd.iontype_c'] = str('c' in $cxt.nions).lower() + #end if + #if $cxt.cions is not None + #set $wfdict['ptmshepherd.iontype_x'] = str('x' in $cxt.cions).lower() + #set $wfdict['ptmshepherd.iontype_y'] = str('y' in $cxt.cions).lower() + #set $wfdict['ptmshepherd.iontype_z'] = str('z' in $cxt.cions).lower() + #end if + #if $cxt.spectra_maxfragcharge != '' + #set $wfdict['ptmshepherd.spectra_maxfragcharge'] = $cxt.spectra_maxfragcharge + #end if + #if $cxt.localization_background != '' + #set $wfdict['ptmshepherd.localization_background'] = $cxt.localization_background + #end if + #set $wfdict['ptmshepherd.localization_allowed_res'] = $cxt.localization_allowed_res + #else + #set $wfdict['ptmshepherd.run-shepherd'] = 'false' + #end if + ]]></token> + + <token name="@RE_EXCLUDEMOD@">@RE_AA@,@RE_FLOAT@</token> + <token name="@RE_EXCLUDEMODS@">@RE_EXCLUDEMOD@(;\s*@RE_EXCLUDEMOD@)*</token> + + <!-- Label-free quantification options --> + <xml name="label_free_quantification" token_expand="false"> + <section name="quant_ms1" expanded="@EXPAND@" title="Quant (MS1)"> + <conditional name="label_free_quantification"> + <param name="label_free_quantification_run" type="select" label="Perform Label-Free Quantification"> + <option value="default" selected="true">Use workflow default</option> + <option value="no">No Label-Free Quantification</option> + <option value="ionquant">Run IonQuant</option> + <option value="freequant">Run FreeQuant</option> + </param> + <when value="default"/> + <when value="no"/> + <when value="ionquant"> + <section name="ionquant" expanded="false" title="IonQuant Label-Free Quantification"> + <param name="mbr" type="select" optional="true" label="Match between runs (MBR)" help="ionquant.mbr"> + <option value="0">No</option> + <option value="1">Yes</option> + </param> + <param name="normalization" type="select" optional="true" label="Normalize" help="ionquant.normalization"> + <option value="0">No</option> + <option value="1">Yes</option> + </param> + <section name="feature_detection" expanded="false" title="Feature detection"> + <param name="mztol" type="integer" value="" optional="true" label="m/z tolerance in ppm" help="ionquant.mztol (default 10)"/> + <param name="rttol" type="float" value="" optional="true" label="RT tolerance (minutes)" help="ionquant.rttol (default 0.4)"/> + <param name="imtol" type="float" value="" optional="true" label="IM tolerance (1/k0)" help="ionquant.imtol (default 0.05)"/> + </section> + <section name="mbr" expanded="false" title="Match between runs (MBR)"> + <param name="mbrrttol" type="float" value="" optional="true" label="MBR RT tolerance (minutes)" help="ionquant.mbrrttol"/> + <param name="mbrimtol" type="float" value="" optional="true" label="MBR IM tolerance (1/k0)" help="ionquant.mbrimtol"/> + <param name="mbrmincorr" type="float" value="" optional="true" label="MBR min correlation" help="ionquant.mbrmincorr"/> + <param name="mbrtoprun" type="integer" value="" optional="true" label="MBR top runs" help="ionquant.mbrtoprun"/> + <param name="ionfdr" type="float" value="" min="0.00001" max="1.0" optional="true" label="MBR ion FDR" help="ionquant.ionfdr"/> + <param name="peptidefdr" type="float" value="" min="0.00001" max="1.0" optional="true" label="MBR peptide FDR" help="ionquant.peptidefdr"/> + <param name="proteinfdr" type="float" value="" min="0.00001" max="1.0" optional="true" label="MBR protein FDR" help="ionquant.proteinfdr"/> + </section> + <section name="topn" expanded="false" title="Top-N options"> + <param name="tp" type="integer" value="" min="0" optional="true" label="Top N ions" help="ionquant.tp"/> + <param name="minfreq" type="float" value="" min="0.0" max="1.0" optional="true" label="Min freq" help="ionquant.minfreq"/> + <param name="minexps" type="integer" value="" optional="true" label="Min exps" help="ionquant.minexps"/> + </section> + <conditional name="labeling_conditional"> + <param name="labeling_option" type="select" label="Labeling option"> + <option value="lfq" selected="true">LFQ</option> + <option value="labeling">Labeling</option> + </param> + <when value="lfq"> + <section name="lfq" expanded="false" title="LFQ"> + <param name="maxlfq" type="select" optional="true" label="MaxLFQ" help="ionquant.maxlfq"> + <option value="0">No</option> + <option value="1">Yes</option> + </param> + <param name="minions" type="integer" value="" optional="true" label="Min ions" help="ionquant.minions"/> + </section> + </when> + <when value="labeling"> + <section name="labeling" expanded="false" title="Labeling-based quant"> + <param name="light" type="select" label="Light" help="ionquant.light"> + <option value="" selected="true">none</option> + <option value="C463.2366">C463.2366</option> + <option value="C464.28596">C464.28596</option> + <option value="C561.3387">C561.3387</option> + <option value="K0;R0">K0;R0</option> + </param> + <param name="medium" type="select" label="Medium" help="ionquant.medium"> + <option value="" selected="true">none</option> + <option value="K4.025107;R6.020129">K4.025107;R6.020129</option> + </param> + <param name="heavy" type="select" label="Heavy" help="ionquant.heavy"> + <option value="" selected="true">none</option> + <option value="C467.2529">C467.2529</option> + <option value="C470.29977">C470.29977</option> + <option value="C567.3462">C567.3462</option> + <option value="K8.014199;R10.008269">K8.014199;R10.008269</option> + </param> + <param name="requantify" type="select" label="Re-quantify" help="ionquant.requantify"> + <option value="0">No</option> + <option value="1" selected="true">Yes</option> + </param> + </section> + </when> + </conditional> + <section name="advanced" expanded="false" title="Advanced options"> + <param name="excludemods" type="text" optional="true" label="excludemods" help="ionquant.excludemods"> + <validator type="regex">^\s*@RE_EXCLUDEMODS@\s*$</validator> + </param> + <param name="minscans" type="integer" value="" min="0" optional="true" label="Min scans" help="ionquant.minscans"/> + <param name="minisotopes" type="integer" value="" min="1" max="3" optional="true" label="Min isotopes" help="ionquant.minisotopes"/> + <param name="locprob" type="float" value="" min="0.0" max="1.0" optional="true" label="Min site probability" help="ionquant.locprob"/> + <param name="writeindex" type="select" optional="true" label="Write index" help="ionquant.writeindex"> + <option value="0">No</option> + <option value="1">Yes</option> + </param> + </section> + </section> + </when> + <when value="freequant"> + <section name="freequant" expanded="false" title="IonQuant Label-Free Quantification"> + <param name="rt_tol" type="float" value="" min="0" optional="true" label="RT Window (minutes)"/> + <param name="mz_tol" type="integer" value="" min="1" optional="true" label="m/z Window (ppm)"/> + </section> + </when> + </conditional> + </section> + </xml> + + <!-- Set label-free quantification workflow options --> + <token name="@LABEL_FREE_QUANTIFICATION@"><![CDATA[ + #set $prfx = $wf.quant_ms1.label_free_quantification + #if $prfx.label_free_quantification_run == 'no' + #set $wfdict['quantitation.run-label-free-quant'] = 'false' + #elif $prfx.label_free_quantification_run == 'ionquant' + #set $wfdict['quantitation.run-label-free-quant'] = 'false' + #set $wfdict['ionquant.run-ionquant'] = 'true' + #set $wfdict['freequant.run-freequant'] = 'false' + #set $cxt = $prfx.ionquant + #if $cxt.mbr != 'None' + #set $wfdict['ionquant.mbr'] = $cxt.mbr + #end if + #if $cxt.maxlfqbr is not None + #set $wfdict['ionquant.maxlfqbr'] = $cxt.maxlfqbr + #end if + #if $cxt.normalization != 'None' + #set $wfdict['ionquant.normalization'] = $cxt.normalization + #end if + #set $cxt = $prfx.ionquant.feature_detection + #if $cxt.mztol != '' + #set $wfdict['ionquant.mztol'] = $cxt.mztol + #end if + #if $cxt.rttol != '' + #set $wfdict['ionquant.rttol'] = $cxt.rttol + #end if + #if $cxt.imtol != '' + #set $wfdict['ionquant.imtol'] = $cxt.imtol + #end if + #set $cxt = $prfx.ionquant.mbr + #if $cxt.mbrrttol != '' + #set $wfdict['ionquant.mbrrttol'] = $cxt.mbrrttol + #end if + #if $cxt.mbrimtol != '' + #set $wfdict['ionquant.mbrimtol'] = $cxt.mbrimtol + #end if + #if $cxt.mbrmincorr != '' + #set $wfdict['ionquant.mbrmincorr'] = $cxt.mbrmincorr + #end if + #if $cxt.mbrtoprun != '' + #set $wfdict['ionquant.mbrtoprun'] = $cxt.mbrtoprun + #end if + #if $cxt.ionfdr != '' + #set $wfdict['ionquant.ionfdr'] = $cxt.ionfdr + #end if + #if $cxt.peptidefdr != '' + #set $wfdict['ionquant.peptidefdr'] = $cxt.peptidefdr + #end if + #if $cxt.proteinfdr != '' + #set $wfdict['ionquant.proteinfdr'] = $cxt.proteinfdr + #end if + #set $cxt = $prfx.ionquant.topn + #if $cxt.tp != '' + #set $wfdict['ionquant.tp'] = $cxt.tp + #end if + #if $cxt.minfreq != '' + #set $wfdict['ionquant.minfreq'] = $cxt.minfreq + #end if + #if $cxt.minexps != '' + #set $wfdict['ionquant.minexps'] = $cxt.minexps + #end if + #set $cxt = $prfx.ionquant.labeling_conditional + #if $cxt.labeling_option == 'labeling' + #set $cxt = $prfx.ionquant.labeling_conditional.labeling + #set $wfdict['ionquant.use-labeling'] = 'true' + #set $wfdict['ionquant.use-lfq'] = 'false' + #set $wfdict['ionquant.light'] = $cxt.labeling.light + #set $wfdict['ionquant.medium'] = $cxt.labeling.medium + #set $wfdict['ionquant.heavy'] = $cxt.labeling.heavy + #set $wfdict['ionquant.requantify'] = $cxt.labeling.requantify + #else + #set $cxt = $prfx.ionquant.labeling_conditional.lfq + #set $wfdict['ionquant.use-labeling'] = 'false' + #set $wfdict['ionquant.use-lfq'] = 'true' + #if $cxt.maxlfq != 'None' + #set $wfdict['ionquant.maxlfq'] = $cxt.maxlfq + #end if + #if $cxt.minions != '' + #set $wfdict['ionquant.minions'] = $cxt.minions + #end if + #end if + #set $cxt = $prfx.ionquant.advanced + #if $cxt.excludemods != '' + #set $wfdict['ionquant.excludemods'] = $cxt.excludemods + #end if + #if $cxt.minscans != '' + #set $wfdict['ionquant.minscans'] = $cxt.minscans + #end if + #if $cxt.minisotopes != '' + #set $wfdict['ionquant.minisotopes'] = $cxt.minisotopes + #end if + #if $cxt.locprob != '' + #set $wfdict['ionquant.locprob'] = $cxt.locprob + #end if + #if $cxt.writeindex != 'None' + #set $wfdict['ionquant.writeindex'] = $cxt.writeindex + #end if + #elif $prfx.label_free_quantification_run == 'freequant' + #set $wfdict['quantitation.run-label-free-quant'] = 'false' + #set $wfdict['ionquant.run-ionquant'] = 'false' + #set $wfdict['freequant.run-freequant'] = 'true' + #set $cxt = $prfx.freequant + #if $cxt.rt_tol != '' + #set $wfdict['freequant.rt-tol'] = $cxt.rt_tol + #end if + #if $cxt.mz_tol != '' + #set $wfdict['freequant.mz-tol'] = $cxt.mz_tol + #end if + #end if + ]]></token> + + <!-- + Isobaric quantification options + + TMT-n uses the following n first labels from TMT-18 + TMT-18 "126, 127N, 127C, 128N, 128C, 129N, 129C, 130N, 130C, 131N, 131C, 132N, 132C, 133N, 133C, 134N, 134C, 135N" + iTRAQ-4 "114, 115, 116, 117" + iTRAQ-8 "113, 114, 115, 116, 117, 118, 119, 121" + --> + <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"> + <section name="quant_iso" expanded="@EXPAND@" title="Quant (Isobaric)"> + <conditional name="isobaric_quantification"> + <param name="isobaric_quantification_step" type="select" label="Perform Isobaric Quantification"> + <option value="default">Use workflow defaults</option> + <option value="yes" selected="@YES@">yes</option> + <option value="no" selected="@NO@">no</option> + </param> + <when value="default"/> + <when value="no"/> + <when value="yes"> + <section name="options" expanded="true" title="Isobaric Quantification"> + <param name="quant_level" type="integer" value="@LEVEL@" min="1" max="3" label="MS level for the quantification"/> + <param name="channel_num" type="text" value="@PLEX@" optional="true" label="Number of channels"> + <validator type="regex" message="">^TMT-\d?</validator> + </param> + <param name="ref_tag" type="select" label="Set Unique tag to identify reference channels"> + <help>Virtual or specify a Reference sample tag: pool or Bridge</help> + <option value="Virtual" selected="@VIRTUAL@">Virtual - Add an artificial reference channel</option> + <option value="pool" selected="@POOL@">pool</option> + <option value="Bridge" selected="@BRIDGE@">Bridge</option> + </param> + <param name="groupby" type="select" optional="true" label="Group by level of summarization"> + <option value="0">Gene level</option> + <option value="1">Protein</option> + <option value="2">Peptide sequence</option> + <option value="3">Multiple PTM sites</option> + <option value="4">Single PTM site</option> + <option value="-1">All</option> + </param> + <param name="log2transformed" type="boolean" truevalue="true" falsevalue="false" checked="true" label="Log2 transform the intensity"/> + <param name="prot_norm" type="select" optional="true" label="normalization"> + <option value="0">None</option> + <option value="1">MC (median centering)</option> + <option value="2">GN (median centering + variance scaling)</option> + <option value="-1">generate reports with all normalization options</option> + </param> + <conditional name="glycan_conditional"> + <param name="use_glycan_composition" type="select" label="Perform Isobaric Quantification"> + <option value="default">Use workflow defaults</option> + <option value="yes">yes</option> + </param> + <when value="default"/> + <when value="yes"> + <param name="mod_tag" type="select" optional="true" label="PTM Mod tag"> + <option value="none">none</option> + <option value="N-glyco">N-glyco</option> + <option value="C(239.1629)">C(239.1629)</option> + <option value="K(-187.1524)">K(-187.1524)</option> + <option value="K(-262.1966)">K(-262.1966)</option> + <option value="K(114.0429),K(-115.12)">K(114.0429),K(-115.12)</option> + <option value="S(79.9663),T(79.9663),Y(79.9663)">S(79.9663),T(79.9663),Y(79.9663)</option> + </param> + <param name="min_site_prob" type="float" min="-1.0" max="1.0" optional="true" label="Minimum site probability"> + <help>site localization confidence thresholdr: -1 for global, 0 for search engine determined, above 0 for probability</help> + </param> + <param name="glyco_qval" type="integer" value="-1" optional="true" label="Glycan FDR filter"/> + </when> + </conditional> + <param name="unique_gene" type="select" optional="true" label="Peptide-Gene uniqueness"> + <option value="0">0: allow all PSMs</option> + <option value="1">1: remove PSMs mapping to more than one GENE with evidence of expression in the dataset</option> + <option value="2">2: remove all PSMs mapping to more than one GENE in the fasta file</option> + </param> + <param name="unique_pep" type="select" optional="true" label="Peptide-Protein uniqueness"> + <option value="false">unique plus razor peptides</option> + <option value="true">allow PSMs with unique peptides only</option> + </param> + <param name="min_pep_prob" type="float" min="0" max="1.0" optional="true" label="only use PSMs with a minimum probability score" + help="minimum PSM probability threshold (in addition to FDR-based filtering by Philosopher)"/> + <param name="min_purity" type="float" min="0" max="1.0" optional="true" label="ion purity threshold (default 0.5)"/> + <param name="min_percent" type="float" min="0" max="1.0" optional="true" label="ignore the lower % PSMs based on their summed abundances" + 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"/> + <param name="max_pep_prob_thres" type="float" min="0" max="1.0" optional="true" label="threshold for maximum peptide probability"/> + <param name="min_ntt" type="integer" min="0" max="2" optional="true" label="minimum allowed number of enzymatic termini"/> + <param name="aggregation_method" type="select" optional="true" label="the aggregation method from the PSM level to the specified level"> + <option value="0">0: median</option> + <option value="1">1: weighted-ratio</option> + </param> + <param name="prot_exclude" type="text" optional="true" label="Exclude proteins with specified tags at the beginning of the accession number" + help="e.g. none: no exclusion; sp|,tr| : exclude protein with sp| or tr|"> + <validator type="regex">^(none|[a-zA-Z]+\|)$</validator> + </param> + <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"> + <option value="true">Yes</option> + <option value="false">No</option> + </param> + <param name="psm_norm" type="select" optional="true" label="perform additional retention time-based normalization at the PSM level"> + <option value="false">No</option> + <option value="true">Yes</option> + </param> + <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)"> + <option value="true">Yes</option> + <option value="false">No</option> + </param> + <param name="allow_unlabeled" type="select" optional="true" label="allow PSMs without TMT tag or acetylation on the peptide n-terminus"> + <option value="true">Yes</option> + <option value="false">No</option> + </param> + <param name="outlier_removal" type="select" optional="true" label="perform outlier removal"> + <option value="true">Yes</option> + <option value="false">No</option> + </param> + <param name="ms1_int" type="select" optional="true" label="MS1 precursor ion intensity for reference sample abundance estimation"> + <option value="true">Yes - use MS1 precursor ion intensity</option> + <option value="false">No - use MS2 reference intensity</option> + </param> + <param name="tolerance" type="integer" optional="true" label="Tolerance"/> + <param name="top3_pep" type="select" optional="true" label="use top 3 most intense peptide ions as part of the reference sample abundance estimation"> + <option value="true">Yes</option> + <option value="false">No</option> + </param> + <param name="print_RefInt" type="select" optional="true" label="print individual reference sample abundance estimates for each multiplex in the final reports"> + <option value="false">No</option> + <option value="true">Yes</option> + </param> + </section> + </when> + </conditional> + </section> + </xml> + + <!-- Set isobaric quantification workflow options --> + <token name="@ISOBARIC_QUANTIFICATION@"><![CDATA[ + #set $prfx = $wf.quant_iso.isobaric_quantification + #if $prfx.isobaric_quantification_step == 'no' + #set $wfdict['tmtintegrator.run-tmtintegrator'] = 'false' + #elif $prfx.isobaric_quantification_step == 'yes' + #set $wfdict['tmtintegrator.run-tmtintegrator'] = 'true' + #set $wfdict['tmtintegrator.dont-run-fq-lq'] = 'false' + #set $cxt = $prfx.options + #set $wfdict['tmtintegrator.quant_level'] = $cxt.quant_level + #set $wfdict['tmtintegrator.channel_num'] = $cxt.channel_num + #if $cxt.ref_tag == 'Virtual' + #set $wfdict['tmtintegrator.add_Ref'] = -1 + #else + #set $wfdict['tmtintegrator.add_Ref'] = 1 + #set $wfdict['tmtintegrator.ref_tag'] = $cxt.ref_tag + #end if + #if $cxt.groupby != '' + #set $wfdict['tmtintegrator.groupby'] = $cxt.groupby + #end if + #set $wfdict['tmtintegrator.log2transformed'] = $cxt.log2transformed + #if $cxt.prot_norm != 'None' + #set $wfdict['tmtintegrator.prot_norm'] = $cxt.prot_norm + #end if + #if $cxt.glycan_conditional.use_glycan_composition == 'yes' + #if $cxt.glycan_conditional.mod_tag != 'None' + #set $wfdict['tmtintegrator.mod_tag'] = $cxt.glycan_conditional.mod_tag + #end if + #if $cxt.glycan_conditional.min_site_prob != '' + #set $wfdict['tmtintegrator.min_site_prob'] = $cxt.glycan_conditional.min_site_prob + #end if + #if $cxt.glycan_conditional.glyco_qval != '' + #set $wfdict['tmtintegrator.glyco_qval'] = $cxt.glycan_conditional.glyco_qval + #end if + #end if + #if $cxt.unique_gene != 'None' + #set $wfdict['tmtintegrator.unique_gene'] = $cxt.unique_gene + #end if + #if $cxt.unique_pep != 'None' + #set $wfdict['tmtintegrator.unique_pep'] = $cxt.unique_pep + #end if + #if $cxt.min_pep_prob != '' + #set $wfdict['tmtintegrator.min_pep_prob'] = $cxt.min_pep_prob + #end if + #if $cxt.min_purity != '' + #set $wfdict['tmtintegrator.min_purity'] = $cxt.min_purity + #end if + #if $cxt.min_percent != '' + #set $wfdict['tmtintegrator.min_percent'] = $cxt.min_percent + #end if + #if $cxt.max_pep_prob_thres != '' + #set $wfdict['tmtintegrator.max_pep_prob_thres'] = $cxt.max_pep_prob_thres + #end if + #if $cxt.min_ntt != '' + #set $wfdict['tmtintegrator.min_ntt'] = $cxt.min_ntt + #end if + #if $cxt.aggregation_method != 'None' + #set $wfdict['tmtintegrator.aggregation_method'] = $cxt.aggregation_method + #end if + #if $cxt.prot_exclude != '' + #set $wfdict['tmtintegrator.prot_exclude'] = $cxt.prot_exclude + #end if + #if $cxt.best_psm != 'None' + #set $wfdict['tmtintegrator.best_psm'] = $cxt.best_psm + #end if + #if $cxt.psm_norm != 'None' + #set $wfdict['tmtintegrator.psm_norm'] = $cxt.psm_norm + #end if + #if $cxt.allow_overlabel != 'None' + #set $wfdict['tmtintegrator.allow_overlabel'] = $cxt.allow_overlabel + #end if + #if $cxt.allow_unlabeled != 'None' + #set $wfdict['tmtintegrator.allow_unlabeled'] = $cxt.allow_unlabeled + #end if + #if $cxt.outlier_removal != 'None' + #set $wfdict['tmtintegrator.outlier_removal'] = $cxt.outlier_removal + #end if + #if $cxt.ms1_int != 'None' + #set $wfdict['tmtintegrator.ms1_int'] = $cxt.ms1_int + #end if + #if $cxt.tolerance != '' + #set $wfdict['tmtintegrator.tolerance'] = $cxt.tolerance + #end if + #if $cxt.top3_pep != 'None' + #set $wfdict['tmtintegrator.top3_pep'] = $cxt.top3_pep + #end if + #if $cxt.print_RefInt != 'None' + #set $wfdict['tmtintegrator.print_RefInt'] = $cxt.print_RefInt + #end if + #end if + ]]></token> + + <!-- License agreement texts. --> + <token name="@MSFRAGGER_LICENSE_AGREEMENT@"> +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. + </token> + <token name="@IONQUANT_LICENSE_AGREEMENT@"> +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 + </token> + <token name="@THERMO_RAW_READER_LICENSE_AGREEMENT@"> +I agree to the terms of Thermo (c) Raw File Reader License Agreement: http://msfragger-upgrader.nesvilab.org/upgrader/RawFileRdr_License_Agreement_RevA.pdf + </token> + <token name="@BRUKER_LICENSE_AGREEMENT@"> +I agree to the terms of Bruker SDK library distribution conditions: http://msfragger-upgrader.nesvilab.org/upgrader/redist.txt + </token> + <token name="@LICENSE_AGREEMENTS@"> +@MSFRAGGER_LICENSE_AGREEMENT@ +@IONQUANT_LICENSE_AGREEMENT@ +@THERMO_RAW_READER_LICENSE_AGREEMENT@ +@BRUKER_LICENSE_AGREEMENT@ + </token> + + <!-- User must check box agreeing to MSFragger license agreement. --> + <xml name="license_agreements"> + <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."> + <validator type="expression" message="You must agree to the MSFragger license!">value == True</validator> + <help><![CDATA[ +@MSFRAGGER_LICENSE_AGREEMENT@ +<br/><br/> +@IONQUANT_LICENSE_AGREEMENT@ +<br/><br/> +@THERMO_RAW_READER_LICENSE_AGREEMENT@ +<br/><br/> +@BRUKER_LICENSE_AGREEMENT@ + ]]></help> + </param> + </xml> + + <xml name="citations"> + <citations> + <citation type="doi">10.1038/s41592-020-0912-y</citation> + <citation type="doi">10.1038/nmeth.4256</citation> + <citation type="doi">10.1038/s41467-020-17921-y</citation> + <citation type="doi">10.1038/s41592-020-0967-9</citation> + <citation type="doi">10.1021/acs.jproteome.0c00119</citation> + <citation type="doi">10.1074/mcp.TIR120.002216</citation> + <citation type="doi">10.1074/mcp.TIR120.002048</citation> + <citation type="doi">10.1016/j.mcpro.2021.100077</citation> + <citation type="doi">10.1021/acs.jproteome.0c00544</citation> + <citation type="doi">10.1038/nmeth.3255</citation> + <yield /> + </citations> + </xml> +</macros>