view maxquant.xml @ 1:8bac3cc5c5de draft

planemo upload for repository https://github.com/galaxyproteomics/tools-galaxyp/tree/master/tools/maxquant commit ab4e4f1817080cbe8a031a82cb180610ff140847
author galaxyp
date Sat, 20 Jul 2019 05:01:05 -0400
parents d4b6c9eae635
children 175e062b6a17
line wrap: on
line source

<tool id="maxquant" name="MaxQuant" version="@VERSION@">
    <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 Fraction are abitrary strings, Experiment is an integer, PTM is either True or False.

                ::

                    Name     Fraction    Experiment   PTM
                    File1        1          E1       False
                    File2        2          E1       False
                    File3        3          E1       False
                    ...
                    ...

**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>