diff maxquant.xml @ 10:f522c08e900c draft

"planemo upload for repository https://github.com/galaxyproteomics/tools-galaxyp/tree/master/tools/maxquant commit 63e45d43f403514ab0ceafaf441d761866f1eb7e"
author galaxyp
date Fri, 12 Mar 2021 08:41:06 +0000
parents ea0a1d50c83f
children d72c96ad9a16
line wrap: on
line diff
--- a/maxquant.xml	Fri Feb 19 21:24:41 2021 +0000
+++ b/maxquant.xml	Fri Mar 12 08:41:06 2021 +0000
@@ -1,4 +1,4 @@
-<tool id="maxquant" name="MaxQuant" version="@VERSION@+galaxy3">
+<tool id="maxquant" name="MaxQuant" version="@VERSION@+galaxy4">
     <macros>
         <xml name="output" token_format="tabular" token_label="default description" token_name="default">
             <data format="@FORMAT@" label="@LABEL@ for ${on_string}" name="@NAME@">
@@ -89,7 +89,14 @@
             lfqStabilizeLargeRatios: ${protein_quant.lfq_opts.lfqStabilizeLargeRatios}
             lfqRequireMsms: ${protein_quant.lfq_opts.lfqRequireMsms}
             advancedSiteIntensities: ${protein_quant.lfq_opts.advancedSiteIntensities}
-            matchBetweenRuns: ${search_opts.match_between_runs}
+            matchBetweenRuns: ${search_opts.mbr.match_between_runs}
+            #if $search_opts.mbr.match_between_runs == 'True':
+            matchingTimeWindow: ${search_opts.mbr.matching_time_window}
+            matchingIonMobilityWindow: ${search_opts.mbr.matching_ion_mobility_window}
+            alignmentTimeWindow: ${search_opts.mbr.alignment_time_window}
+            alignmentIonMobilityWindow: ${search_opts.mbr.alignment_ion_mobility_window}
+            matchUnidentifiedFeatures: ${search_opts.mbr.match_unidentified_features}
+            #end if
             includeContaminants: ${search_opts.incl_contaminants}
             minPeptideLengthForUnspecificSearch: ${search_opts.min_pep_length}
             maxPeptideLengthForUnspecificSearch: ${search_opts.max_pep_length}
@@ -223,7 +230,78 @@
                     - [iodoTMT6plex-Cys130,'',0,0,0,0,True]
                     - [iodoTMT6plex-Cys131,'',0,0,0,0,True]
                   #end if
-                #end if  
+                #end if
+                #if $pg.quant_method.select_quant_method == 'reporter_ion_ms3':
+                lcmsRunType: 'Reporter ion MS3'
+                reporterMassTolerance: 0.003
+                #if $pg.quant_method.filter_by_pif.filter_pif == 'True':
+                reporterPif: ${pg.quant_method.filter_by_pif.reporter_pif}
+                #else:
+                reporterPif: 0
+                #end if
+                reporterFraction: 0
+                reporterBasePeakRatio: 0
+                filterPif: ${pg.quant_method.filter_by_pif.filter_pif}
+                isobaricLabels:
+                  #if $pg.quant_method.iso_labels.labeling == 'custom':
+                    #for $l in $pg.quant_method.iso_labels.iso_label:
+                      - ['$l.internallabel','$l.terminallabel',$l.cm2,$l.cm1,$l.cp1,$l.cp2,$l.tmtlike]
+                    #end for
+                  #end if
+                  #if $pg.quant_method.iso_labels.labeling == 'tmt2plex':
+                    - [TMT2plex-Lys126,TMT2plex-Nter126,0,0,0,0,True]
+                    - [TMT2plex-Lys127,TMT2plex-Nter127,0,0,0,0,True]
+                  #end if
+                  #if $pg.quant_method.iso_labels.labeling == 'tmt6plex':
+                    - [TMT6plex-Lys126,TMT6plex-Nter126,0,0,0,0,True]
+                    - [TMT6plex-Lys127,TMT6plex-Nter127,0,0,0,0,True]
+                    - [TMT6plex-Lys128,TMT6plex-Nter128,0,0,0,0,True]
+                    - [TMT6plex-Lys129,TMT6plex-Nter129,0,0,0,0,True]
+                    - [TMT6plex-Lys130,TMT6plex-Nter130,0,0,0,0,True]
+                    - [TMT6plex-Lys131,TMT6plex-Nter131,0,0,0,0,True]
+                  #end if
+                  #if $pg.quant_method.iso_labels.labeling == 'tmt8plex':
+                    - [TMT8plex-Lys126C,TMT8plex-Nter126C,0,0,0,0,True]
+                    - [TMT8plex-Lys127N,TMT8plex-Nter127N,0,0,0,0,True]
+                    - [TMT8plex-Lys127C,TMT8plex-Nter127C,0,0,0,0,True]
+                    - [TMT8plex-Lys128C,TMT8plex-Nter128C,0,0,0,0,True]
+                    - [TMT8plex-Lys129N,TMT8plex-Nter129N,0,0,0,0,True]
+                    - [TMT8plex-Lys129C,TMT8plex-Nter129C,0,0,0,0,True]
+                    - [TMT8plex-Lys130C,TMT8plex-Nter130C,0,0,0,0,True]
+                    - [TMT8plex-Lys131N,TMT8plex-Nter131N,0,0,0,0,True]
+                  #end if
+                  #if $pg.quant_method.iso_labels.labeling == 'tmt10plex':
+                    @TMT10PLEX@
+                  #end if
+                  #if $pg.quant_method.iso_labels.labeling == 'tmt11plex':
+                    @TMT10PLEX@
+                    - [TMT11plex-Lys131C,TMT11plex-Nter131C,0,0,0,0,True]
+                  #end if
+                  #if $pg.quant_method.iso_labels.labeling == 'itraq4plex':
+                    - [iTRAQ4plex-Lys114,iTRAQ4plex-Nter114,0,0,0,0,False]
+                    - [iTRAQ4plex-Lys115,iTRAQ4plex-Nter115,0,0,0,0,False]
+                    - [iTRAQ4plex-Lys116,iTRAQ4plex-Nter116,0,0,0,0,False]
+                    - [iTRAQ4plex-Lys117,iTRAQ4plex-Nter117,0,0,0,0,False]
+                  #end if
+                  #if $pg.quant_method.iso_labels.labeling == 'itraq8plex':
+                    - [iTRAQ4plex-Lys113,iTRAQ8plex-Nter113,0,0,0,0,False]
+                    - [iTRAQ4plex-Lys114,iTRAQ8plex-Nter114,0,0,0,0,False]
+                    - [iTRAQ4plex-Lys115,iTRAQ8plex-Nter115,0,0,0,0,False]
+                    - [iTRAQ4plex-Lys116,iTRAQ8plex-Nter116,0,0,0,0,False]
+                    - [iTRAQ4plex-Lys117,iTRAQ8plex-Nter117,0,0,0,0,False]
+                    - [iTRAQ4plex-Lys118,iTRAQ8plex-Nter118,0,0,0,0,False]
+                    - [iTRAQ4plex-Lys119,iTRAQ8plex-Nter119,0,0,0,0,False]
+                    - [iTRAQ4plex-Lys121,iTRAQ8plex-Nter121,0,0,0,0,False]
+                  #end if
+                  #if $pg.quant_method.iso_labels.labeling == 'iodotmt6plex':
+                    - [iodoTMT6plex-Cys126,'',0,0,0,0,True]
+                    - [iodoTMT6plex-Cys127,'',0,0,0,0,True]
+                    - [iodoTMT6plex-Cys128,'',0,0,0,0,True]
+                    - [iodoTMT6plex-Cys129,'',0,0,0,0,True]
+                    - [iodoTMT6plex-Cys130,'',0,0,0,0,True]
+                    - [iodoTMT6plex-Cys131,'',0,0,0,0,True]
+                  #end if
+                #end if
             #end for
         </configfile>
         <expand macro="ptxqc"/>
@@ -276,10 +354,29 @@
                    label="Calculate peak properties"
                    truevalue="True" falsevalue="False"
                    help="If checked, several quantities characterizing peaks and isotopes patterns are calculated. This may lead to a substantial increase in computation time."/>
-            <param name="match_between_runs" type="boolean" checked="false"
-                   label="Match between runs"
-                   truevalue="True" falsevalue="False"
-                   help="Identifications are transferred to non-sequenced or non-identified MS features in other LC-MS runs."/>
+            <conditional name="mbr">
+                <param name="match_between_runs" type="select"
+                       label="Match between runs"
+                       help="Identifications are transferred to non-sequenced or non-identified MS features in other LC-MS runs.">
+                    <option value="False" selected="true">No</option>
+                    <option value="True">Yes</option>
+                </param>
+                <when value="False"/>
+                <when value="True">
+                    <param name="matching_time_window" type="float" label="Match Time Window [min]" min="0" value="0.7"
+                       help="The time window that is used in 'Match between runs' for the transfer of identifications."/>
+                    <param name="matching_ion_mobility_window" type="float" label="Match Ion Mobility Window" min="0" value="0.05"
+                       help="The ion mobility window that is used in 'Match between runs' for the transfer of identifications."/>
+                    <param name="alignment_time_window" type="integer" label="Alignment Time Window [min]" min="0" value="20"
+                       help="The time window that is used in retention time alignment to search for the best alignment function."/>
+                    <param name="alignment_ion_mobility_window" type="integer" label="Alignment Ion Mobility" min="0" value="1"
+                       help="The ion mobility window that is used in ion mobility alignment to search for the best alignment function."/>
+                    <param name="match_unidentified_features" type="boolean" checked="false"
+                           label="Match unidentified Features"
+                           truevalue="True" falsevalue="False"
+                       help="Also unidentified peptide features will be matched between runs. Their expression profiles over multiple samples are written into the table called 'matchedFeatures.txt'."/>
+                </when>
+            </conditional>
             <param name="incl_contaminants" type="boolean" checked="true"
                    label="Include contaminants"
                    truevalue="True" falsevalue="False"
@@ -410,6 +507,7 @@
                     <option value="lfq">label free quantification</option>
                     <option value="silac">label based quantification</option>
                     <option value="reporter_ion_ms2">reporter ion MS2</option>
+                    <option value="reporter_ion_ms3">reporter ion MS3</option>
                 </param>
                 <when value=""/>
                 <when value="silac">
@@ -496,6 +594,60 @@
                         <when value="False"></when>
                     </conditional>
                 </when>
+                <when value="reporter_ion_ms3">
+                    <conditional name="iso_labels">
+                        <param name="labeling" type="select" label="isobaric labeling"
+                               help="Select one of the standard labelings (correction factors are zero) or create a custom labeling.">
+                            <option value="custom">custom</option>
+                            <option value="tmt2plex">TMT2plex</option>
+                            <option value="tmt6plex">TMT6plex</option>
+                            <option value="tmt8plex">TMT8plex</option>
+                            <option value="tmt10plex">TMT10plex</option>
+                            <option value="tmt11plex">TMT11plex</option>
+                            <option value="itraq4plex">iTRAQ4plex</option>
+                            <option value="itraq8plex">iTRAQ8plex</option>
+                            <option value="iodotmt6plex">iodoTMT6plex</option>
+                        </param>
+
+                        <when value="tmt2plex"></when>
+                        <when value="tmt6plex"></when>
+                        <when value="tmt8plex"></when>
+                        <when value="tmt10plex"></when>
+                        <when value="tmt11plex"></when>
+                        <when value="itraq4plex"></when>
+                        <when value="itraq8plex"></when>
+                        <when value="iodotmt6plex"></when>
+                        <when value="custom">
+                            <repeat name="iso_label" title="Isobaric Label" min="1" default="1">
+                                <param name="internallabel" type="select" label="internal label" help="contains Lys">
+                                    <expand macro="iso_labels"/>
+                                </param>
+                                <param name="terminallabel" type="select" label="terminal label" help="contains Nter">
+                                    <option value="">None</option>
+                                    <expand macro="iso_labels"/>
+                                </param>
+                                <param name="cm2" type="float" label="correction factor -2%" value="0.0"/>
+                                <param name="cm1" type="float" label="correction factor -1%" value="0.0"/>
+                                <param name="cp1" type="float" label="correction factor +1%" value="0.0"/>
+                                <param name="cp2" type="float" label="correction factor +2%" value="0.0"/>
+                                <param type="boolean" name="tmtlike" checked="false"
+                                       label="TMT-like"
+                                       truevalue="True" falsevalue="False"/>
+                            </repeat>
+                        </when>
+                    </conditional>
+                    <conditional name="filter_by_pif">
+                        <param name="filter_pif" type="boolean" checked="false" label="Filter by PIF"
+                               truevalue="True" falsevalue="False"
+                               help="If checked, quantified PSMs will be filtered by their precursor intensity fraction to avoid using peptides that clearly suffer from co-fragmentation with other peptide species."/>
+                        <when value="True">
+                            <param name="reporter_pif" type="float" label="Minimum reporter PIF" value="0.75" min="0"
+                                   max="1"
+                                   help="MS/MS spectra with a lower value for the PIF will be discarded for isobaric label quantification."/>
+                        </when>
+                        <when value="False"></when>
+                    </conditional>
+                </when>
             </conditional>
         </repeat>
 
@@ -632,6 +784,82 @@
             <!-- high difference due to unconsistant xml formatting in MQ -->
             <output name="mqpar" file="02/mqpar.xml" lines_diff="24" />
         </test>
+        <!-- reporter ion ms3 + multiple param groups, testing yaml conf file and mqpar.xml only -->
+        <test expect_num_outputs="3">
+            <param name="ftype" value=".mzxml" />
+            <param name="fasta_files" value="bsa.fasta" />
+            <param name="identifier_parse_rule" value="&gt;([^\s]*)" />
+            <param name="description_parse_rule" value="&gt;(.*)" />
+            <param name="incl_contaminants" value="False" /> <!-- non-default value -->
+            <param name="min_pep_length" value="7" /> <!-- non-default value -->
+            <param name="max_pep_length" value="24" /> <!-- non-default value -->
+            <param name="decoy_mode" value="randomize" /> <!-- non-default value -->
+            <param name="psm_fdr" value="0.5" /> <!-- non-default value -->
+            <param name="protein_fdr" value="0.4" /> <!-- non-default value -->
+            <section name="protein_quant">
+                <param name="peptides_for_quantification" value="0"/><!-- non-default value -->
+                <conditional name="only_unmod_prot">
+                    <param name="unmod_prot" value="True"/>
+                    <param name="mods_used_prot_quant" value="Pro5,Pro6"/>
+                </conditional>
+            </section>
+            <repeat name="paramGroups">
+                <param name="files" value="BSA_min_23.mzXML"/>
+                <param name="variableModifications" value="Oxidation (M)" />
+                <param name="fixedModifications" value="" />
+                <conditional name="quant_method">
+                    <param name="select_quant_method" value="reporter_ion_ms3" />
+                    <conditional name="iso_labels">
+                        <param name="labeling" value="custom" />
+                        <repeat name="iso_label">
+                            <param name="internallabel" value="TMT2plex-Lys126" />
+                            <param name="terminallabel" value="TMT2plex-Nter126" />
+                            <param name="tmtlike" value="True" />
+                            <param name="cp1" value="6.7" />
+                            <param name="cp2" value="3" />
+                        </repeat>
+                        <repeat name="iso_label">
+                            <param name="internallabel" value="TMT2plex-Lys127" />
+                            <param name="terminallabel" value="TMT2plex-Nter127" />
+                            <param name="tmtlike" value="True" />
+                        </repeat>
+                    </conditional>
+                    <conditional name="filter_by_pif">
+                        <param name="filter_pif" value="False"/>
+                        <param name="reporter_pif"
+                               value="0.6"/> <!-- as filter_pif is False this value will be ignored and 0 used instead -->
+                    </conditional>
+                </conditional>
+            </repeat>
+            <repeat name="paramGroups">
+                <param name="files" value="BSA_min_22"/>
+                <param name="variableModifications" value="" />
+                <param name="fixedModifications" value="" />
+                <param name="enzymes" value="" />
+                <conditional name="quant_method">
+                    <param name="select_quant_method" value="reporter_ion_ms3"/>
+                    <conditional name="iso_labels">
+                        <param name="labeling" value="itraq4plex"/>
+                    </conditional>
+                    <conditional name="filter_by_pif">
+                        <param name="filter_pif" value="True"/>
+                        <param name="reporter_pif" value="0.8"/> <!-- as filter_pif is True this value is used -->
+                    </conditional>
+                </conditional>
+            </repeat>
+            <param name="dry_run" value="True" />
+            <param name="output" value="config,mqpar,mzTab" />
+            <output name="config" file="06/config.yml" lines_diff="2">
+                <assert_contents>
+                    <has_text_matching expression="lcmsRunType\: \'Reporter ion MS3\'" />
+                </assert_contents>
+            </output>
+            <output name="mqpar" file="06/mqpar.xml" lines_diff="6">
+                <assert_contents>
+                    <has_text_matching expression=".lcmsRunType.Reporter ion MS3.\/lcmsRunType." />
+                </assert_contents>
+            </output>
+        </test>
         <!-- lfq, testing yaml conf file and mqpar.xml only -->
         <test expect_num_outputs="2">
             <param name="ftype" value=".mzxml" />
@@ -654,6 +882,37 @@
             <output name="config" file="03/config.yml" lines_diff="2" />
             <output name="mqpar" file="03/mqpar.xml" lines_diff="10" />
         </test>
+        <!-- Test for MBR -->
+        <test expect_num_outputs="2">
+            <param name="ftype" value=".mzxml" />
+            <param name="fasta_files" value="bsa.fasta" />
+            <param name="identifier_parse_rule" value="^&gt;.*\|(.*)\|.*$" />
+            <param name="description_parse_rule" value="^&gt;.*\|.*\|[^ ]+ (.*) OS.*$" />
+            <param name="min_unique_pep" value="1" />
+            <param name="ibaq" value="True" />
+            <param name="match_between_runs" value="True" />
+            <param name="ibaqLogFit" value="False" />
+            <repeat name="paramGroups">
+                <param name="files" value="BSA_min_22"/>
+                <param name="maxMissedCleavages" value="1"/>
+                <param name="variableModifications" value="Oxidation (M)" />
+                <conditional name="quant_method">
+                    <param name="select_quant_method" value="lfq" />
+                </conditional>
+            </repeat>
+            <param name="dry_run" value="True" />
+            <param name="output" value="config,mqpar" />
+            <output name="config" file="05/config.yml" lines_diff="2">
+                <assert_contents>
+                    <has_text_matching expression="matchBetweenRuns\: True" />
+                </assert_contents>
+            </output>
+            <output name="mqpar" file="05/mqpar.xml" lines_diff="4">
+                <assert_contents>
+                    <has_text_matching expression=".matchBetweenRuns.True.\/matchBetweenRuns." />
+                </assert_contents>
+            </output>
+        </test>
         <!-- silac + fractions with experimental design template, testing yaml conf file and mqpar.xml only -->
         <test expect_num_outputs="2">
             <param name="ftype" value=".mzxml" />
@@ -744,7 +1003,7 @@
 
         - for two channels: choose options from light and heavy sections
         - for three channels: choose options from light, medium and heavy sections
-    - reporter ion ms2: quantifies conventional isobaric labelling samples. Either use the pre-defined labellings with correction factors set to 0 or specify a custom labelling
+    - reporter ion ms2/ms3: quantifies conventional isobaric labelling samples. Either use the pre-defined labellings with correction factors set to 0 or specify a custom labelling
 - PTXQC quality control: quality control software creates an automatic quality control pdf report