view maxquant.xml @ 3:175e062b6a17 draft

"planemo upload for repository https://github.com/galaxyproteomics/tools-galaxyp/tree/master/tools/maxquant commit 74b5aa29e49deaaebe19ce2355a70d4f570f4951"
author galaxyp
date Thu, 15 Aug 2019 08:09:00 -0400
parents 8bac3cc5c5de
children dcd39bcc7481
line wrap: on
line source

<tool id="maxquant" name="MaxQuant" version="@VERSION@+galaxy1">
    <macros>
        <import>macros.xml</import>
    </macros>
    <requirements>
        <requirement type="package" version="@VERSION@">maxquant</requirement>
        <requirement type="package" version="3.7">python</requirement>
    </requirements>
    <command detect_errors="exit_code"><![CDATA[
    #import re

    python3 '$__tool_directory__/mqwrapper.py'
    --num_threads=\${GALAXY_SLOTS:-1}
    --substitution_rx='@SUBSTITUTION_RX@'
    #if $input_opts.infile.select == "mzxml_files"
        --mzxml_files='$input_opts.infile.mzxml_files'
        #set names = ','.join([re.sub('@SUBSTITUTION_RX@', '_', str($name.element_identifier)) for $name in $input_opts.infile.mzxml_files])
    #else
        --raw_files='$input_opts.infile.raw_files'
        #set names = ','.join([re.sub('@SUBSTITUTION_RX@', '_', str($name.element_identifier)) for $name in $input_opts.infile.raw_files])
    #end if
    --infile_names='$names'
    --version='@VERSION@'
    --fasta_files='$input_opts.fasta_files'
    --identifier_parse_rule='$input_opts.identifier_parse_rule'
    --description_parse_rule='$input_opts.description_parse_rule'

    --exp_design='$search_opts.template'
    --missed_cleavages=$search_opts.missed_cleavages
    --min_peptide_len=$search_opts.min_peptide_len
    --max_peptide_mass=$search_opts.max_peptide_mass
    --min_unique_pep=$search_opts.min_unique_pep
    $search_opts.calc_peak_properties
    $search_opts.match_between_runs
    #if $search_opts.fixed_mods
        --fixed_mods='$search_opts.fixed_mods'
    #end if
    #if $search_opts.var_mods
        --var_mods='$search_opts.var_mods'
    #end if
    #if $search_opts.proteases
        --proteases='$search_opts.proteases'
    #end if
    #if $search_opts.silac.light_mods
        --light_mods='$search_opts.silac.light_mods'
    #end if
    #if $search_opts.silac.medium_mods
        --medium_mods='$search_opts.silac.medium_mods'
    #end if
    #if $search_opts.silac.heavy_mods
       --heavy_mods='$search_opts.silac.heavy_mods'
    #end if
    #if $search_opts.lfq.do_lfq == "--lfq_mode=1"
        $search_opts.lfq.do_lfq.lfq_mode
        --lfq_min_ratio_count=$search_opts.lfq.do_lfq.lfq_min_ratio_count
        --lfq_min_edges_per_node=$search_opts.lfq.do_lfq.lfq_min_edges_per_node
        --lfq_avg_edges_per_node=$search_opts.lfq.do_lfq.lfq_avg_edges_per_node
        $search_opts.lfq.do_lfq.lfq_skip_norm
        $search_opts.lfq.do_lfq.separate_lfq
        $search_opts.lfq.do_lfq.lfq_stabilize_large_ratios
        $search_opts.lfq.do_lfq.lfq_require_msms
        #if $search_opts.lfq.do_lfq.do_ibaq == "--ibaq"
            $search_opts.lfq.do_lfq.do_ibaq.ibaq
            $search_opts.lfq.do_lfq.do_ibaq.ibaq_log_fit
        #end if
        $search_opts.lfq.do_lfq.advanced_site_intensities
    #end if

    $output_opts.write_mztab
    --evidence='$evidence'
    --msms='$msms'
    --parameters='$parameters'
    --peptides='$peptides'
    --proteinGroups='$proteinGroups'
    --allPeptides='$allPeptides'
    --libraryMatch='$libraryMatch'
    --matchedFeatures='$matchedFeatures'
    --modificationSpecificPeptides='$modificationSpecificPeptides'
    --ms3Scans='$ms3Scans'
    --msmsScans='$msmsScans'
    --mzRange='$mzRange'
    --peptideSection='$peptideSection'
    --summary='$summary'
    --mzTab='$mzTab'
    --mqpar_out='$mqpar_out'

    #if 'log' in $output_opts.output
        > '$log'
    #end if
    #if 'output_all' in $output_opts.output
        && tar -zcf '$output_all' ./combined/txt
    #end if
    ]]></command>
    <inputs>
        <section name="input_opts" title="Input Options" expanded="True">
            <conditional name="infile">
                <param name="select" type="select" label="choose the type of your input files">
                    <option value="raw_files">Thermo.raw</option>
                    <option value="mzxml_files">mzXML</option>
                </param>
                <when value="raw_files"> 
                    <param multiple="true" name="raw_files" type="data"
                           format="thermo.raw" label="RAW Files"
                           help="Specify one or more Thermo RAW files" />
                </when>
                <when value="mzxml_files">
                    <param multiple="true" name="mzxml_files" type="data"
                           format="mzxml" label="mzXML Files"
                           help="Specify one or more mzXML files" />
                </when>
            </conditional>
            <param format="fasta" multiple="true" name="fasta_files"
                   type="data" label="FASTA files"
                   help="Specify one or more FASTA databases." />
            <param name="identifier_parse_rule" type="text"
                   label="identifier parse rule" value="^&gt;.*\|(.*)\|.*$">
                <sanitizer>
                    <valid initial="string.printable">
                        <remove value="&apos;"/>
                    </valid>
                </sanitizer>
            </param>
            <param name="description_parse_rule" type="text"
                   label="description parse rule" value="^&gt;.*\|.*\|[^ ]+ (.*) OS.*$"
                   help="Modify parse rules if needed">
                <sanitizer>
                    <valid initial="string.printable">
                        <remove value="&apos;"/>
                    </valid>
                </sanitizer>
            </param>
        </section>

        <section name="search_opts" title="Search Options" expanded="true">
            <param format="tabular" name="template" type="data" optional="true"
                   label="Specify an experimental design template (if needed). For detailed
                          instructions see the help text." />
            <param type="integer" name="missed_cleavages"
	           label="missed cleavages" value="1"/>
            <param type="integer" name="min_peptide_len"
	           label="minimum peptide length" value="7"/>
            <param type="integer" name="max_peptide_mass"
	           label="maximum peptide mass" value="4600"/>
            <param type="integer" name="min_unique_pep"
	           label="minimum unique peptides" value="1" />
            <param name="calc_peak_properties" type="boolean" checked="false"
	           label="Calculate peak properties?"
	           truevalue="--calc_peak_properties" falsevalue="" />
            <param name="match_between_runs" type="boolean" checked="false"
	           label="Match between runs?"
	           truevalue="--match_between_runs" falsevalue="" />
            <param name="fixed_mods" type="select" label="fixed modifications"
	           multiple="true" help="select zero or more fixed modifications">
	        <expand macro="modification"/>
            </param>
            <param name="var_mods" type="select" label="variable modifications"
	           multiple="true" help="select zero or more variable modifications">
	        <expand macro="modification"/>
            </param>
            <param name="proteases" type="select" label="proteases"
	           multiple="true" help="select zero or more proteases">
	        <expand macro="proteases"/>
            </param>
            <section title="label based quantitation" name="silac" expanded="false">
	        <param name="light_mods" type="select" label="light labels"
		       multiple="true" help="select zero or more light modifications">
	            <expand macro="label"/>
	        </param>
	        <param name="medium_mods" type="select" label="medium labels"
		       multiple="true" help="select zero or more medium modifications">
	            <expand macro="label"/>
	        </param>
	        <param name="heavy_mods" type="select" label="heavy labels"
		       multiple="true" help="select zero or more heavy modifications">
	            <expand macro="label"/>
	        </param>
            </section>
            <section title="label free quantification" name="lfq" expanded="false">
	        <conditional name="do_lfq">
                    <param name="lfq_mode" type="select" label="Perform LFQ?">
                        <option value="">No</option>
                        <option value="--lfq_mode=1">Yes</option>
		    </param>
                    <when value="--lfq_mode=1">
		        <param type="integer" name="lfq_min_ratio_count"
		               label="LFQ minimum ratio count" value="2"/>
		        <param type="integer" name="lfq_min_edges_per_node"
			       label="LFQ minimum number of neighbours" value="3"/>
		        <param type="integer" name="lfq_avg_edges_per_node"
			       label="LFQ average number of neighbours" value="6"/>
		        <param name="lfq_skip_norm" type="boolean" checked="false"
			       label="Skip normalization?"
			       truevalue="--lfq_skip_norm" falsevalue="" />
		        <param name="separate_lfq" type="boolean" checked="false"
			       label="Separate LFQ in parameter Groups?"
			       truevalue="--separate_lfq" falsevalue="" />
		        <param name="lfq_stabilize_large_ratios" type="boolean" checked="true"
			       label="Stabilize large LFQ ratios?"
			       truevalue="--lfq_stabilize_large_ratios" falsevalue="" />
		        <param name="lfq_require_msms" type="boolean" checked="true"
			       label="Require MS/MS for LFQ comparisons?"
			       truevalue="--lfq_require_msms" falsevalue="" />
		        <conditional name="do_ibaq">
                            <param name="ibaq" type="select" label="iBAQ?">
                                <option value="">No</option>
                                <option value="--ibaq">Yes</option>
		            </param>
                            <when value="--ibaq">
                                <param name="ibaq_log_fit" type="boolean" checked="true"
                                       label="Logarithmic fit?"
                                       truevalue="--ibaq_log_fit" falsevalue="" />
                            </when>
                            <when value="">
                            </when>
		        </conditional>
		        <param name="advanced_site_intensities" type="boolean" checked="true"
			       label="Advanced site intensities?"
			       truevalue="--advanced_site_intensities" falsevalue="" />
		    </when>
		    <when value="">
	            </when>
	        </conditional>    
            </section>
        </section>

        <section title="Output Options" name="output_opts" expanded="true">
            <param name="write_mztab" type="boolean" checked="false"
	           label="Write mztab file?"
	           truevalue="--write_mztab" falsevalue="" />
            <param type="select" name="output" label="Select the desired outputs."
                   multiple="true" optional="false">
                <expand macro="output_option" name="proteinGroups" label="Protein Groups"/>
                <expand macro="output_option" name="mqpar_out" label="mqpar.xml"/>
                <expand macro="output_option" name="peptides" label="Peptides"/>
                <expand macro="output_option" name="evidence" label="Evidence"/>
                <expand macro="output_option" name="parameters" label="Tabular Paramters"/>
                <expand macro="output_option" name="msms" label="MSMS"/>
                <expand macro="output_option" name="mzTab" label="mzTab"/>
                <expand macro="output_option" name="allPeptides" label="all peptides"/>
                <expand macro="output_option" name="libraryMatch" label="library match"/>
                <expand macro="output_option" name="matchedFeatures" label="matched features"/>
                <expand macro="output_option" name="modificationSpecificPeptides" label="modification specific peptides"/>
                <expand macro="output_option" name="ms3Scans" label="ms3 scans"/>
                <expand macro="output_option" name="msmsScans" label="msms scans"/>
                <expand macro="output_option" name="mzRange" label="mz range"/>
                <expand macro="output_option" name="peptideSection" label="peptide section"/>
                <expand macro="output_option" name="summary" label="summary"/>
                <expand macro="output_option" name="output_all" label="complete 'combined/txt/' directory (compressed)"/>
                <expand macro="output_option" name="log" label="MaxQuant log"/>
            </param>
        </section>
    </inputs>

    <outputs>
        <expand macro="output" name="proteinGroups" label="MaxQuant Protein Groups"/>
        <expand macro="output" name="mqpar_out" label="mqpar.xml" format="xml"/>
        <expand macro="output" name="peptides" label="MaxQuant Peptides"/>
        <expand macro="output" name="evidence" label="MaxQuant Evidence"/>
        <expand macro="output" name="parameters" label="MaxQuant Tabular Parameters"/>
        <expand macro="output" name="msms" label="MaxQuant MSMS"/>
        <expand macro="output" name="mzTab" label="mzTab"/>
        <expand macro="output" name="allPeptides" label="all peptides"/>
        <expand macro="output" name="libraryMatch" label="library match"/>
        <expand macro="output" name="matchedFeatures" label="matched features"/>
        <expand macro="output" name="modificationSpecificPeptides" label="modification specific peptides"/>
        <expand macro="output" name="ms3Scans" label="ms3 scans"/>
        <expand macro="output" name="msmsScans" label="msms Scans"/>
        <expand macro="output" name="mzRange" label="mz range"/>
        <expand macro="output" name="peptideSection" label="peptide section"/>
        <expand macro="output" name="summary" label="MaxQuant summary"/>
        <expand macro="output" format="tar" name="output_all" label="'combined/txt/' directory"/>
        <expand macro="output" name="log" format="txt" label="log"/>
    </outputs>

    <tests>
        <test>
            <param name="select" value="mzxml_files" />
            <param name="mzxml_files" value="BSA_min_23.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="min_unique_pep" value="0" />
            <param name="fixed_mods" value="Carbamidomethyl (C)" />
            <param name="var_mods" value="Oxidation (M)" />
            <param name="proteases" value="Trypsin/P" />
            <param name="write_mztab" value="true" />
            <param name="output" value="evidence,msms,allPeptides,msmsScans,mzTab,mzRange,parameters,peptides,peptideSection,proteinGroups,summary,modificationSpecificPeptides" />
            <output name="evidence" file="single/combined/txt/evidence.txt" />
            <output name="msms" file="single/combined/txt/msms.txt" />
            <output name="mzTab" file="single/combined/txt/mzTab.mzTab" lines_diff="4"/>
            <output name="allPeptides" file="single/combined/txt/allPeptides.txt" />
            <output name="msmsScans" file="single/combined/txt/msmsScans.txt" />
            <output name="mzRange" file="single/combined/txt/mzRange.txt" />
            <output name="parameters" file="single/combined/txt/parameters.txt" lines_diff="10"/>
            <output name="peptides" file="single/combined/txt/peptides.txt" />
            <output name="peptideSection" file="single/combined/txt/peptideSection.txt" />
            <output name="proteinGroups" file="single/combined/txt/proteinGroups.txt" />
            <output name="summary" file="single/combined/txt/summary.txt" />
            <output name="modificationSpecificPeptides" file="single/combined/txt/modificationSpecificPeptides.txt" />
        </test>
    </tests>

    <help><![CDATA[
MaxQuant is a quantitative proteomics software package designed for analyzing large mass-spectrometric data sets. 

This tool is a wrapper for MaxQuant v@VERSION@. The current version of the wrapper only supports a very reduced set of search parameters, but another version of the tool that gets its parameters directly from a mqpar.xml file is available, too. If possible, this tool should be preferred. 

**Input files**

- Thermo raw file or mzXML file
    - The datatype has to be 'thermo.raw' or 'mzXML'. Make sure to specify the correct datatype either during upload to Galaxy or afterwards (edit attributes --> datatypes)
- Optional files:
    - Tabular file with experimental design template:
        - Currently four columns are needed: Name, Fraction, Experiment and PTM. The headers must have this exact naming. Name and Experiment are abitrary strings, Fraction is an integer or emtpy, PTM is either 'True', 'False' or empty. Consider you uploaded files named File1.mzxml, ..., File5.mzxml. This is a (syntactically) correct experimental design template:

                ::

                    Name     Fraction    Experiment   PTM
                    File1        1          E1       False
                    File2        2          E1       False
                    ghost       234        none
                    File3        3          E1       False
                    File4                   E2       true
                    File5                   E1

        - This is the counter-example with one error per line:

                ::

                    Name     Fraction    Experiment   PTM
                    File1       1           E1        no  (wrong PTM value)
                    File2.mzxml 1           E2            (filename with extension)
                    File3       f3          E1            (fraction not an integer)
                    File4       1                         (missing experiment)
                                                          (File5 misssing)

**Parameter Options**

- Quantification options
    - label based: 
        - for two channels: choose options from light and heavy sections, for three channels choose options from light, medium and heavy sections
    - label-free

**Output files**

Different output file options are available, most of them are part of the MaxQuant txt directory. 
    ]]></help>
    <citations>
        <citation type="bibtex">
        @article{cox2008maxquant,
        title={MaxQuant enables high peptide identification rates, individualized
        ppb-range mass accuracies and proteome-wide protein quantification},
        author={Cox, J{\"u}rgen and Mann, Matthias},
        journal={Nature biotechnology},
        volume={26},
        number={12},
        pages={1367},
        year={2008},
        publisher={Nature Publishing Group}
        }
        </citation>
        <citation type="bibtex">
        @article{tyanova2016maxquant,
        title={The MaxQuant computational platform for mass
        spectrometry-based shotgun proteomics},
        author={Tyanova, Stefka and Temu, Tikira and Cox, J{\"u}rgen},
        journal={Nature protocols},
        volume={11},
        number={12},
        pages={2301},
        year={2016},
        publisher={Nature Publishing Group}
        }
        </citation>
    </citations>
</tool>