view macros.xml @ 1:975f857ad9b8 draft default tip

"planemo upload for repository https://github.com/galaxyproteomics/tools-galaxyp/tree/master/tools/metamorpheus commit 7a40b99b4124b0c032a16067741fd55a60b48cb0"
author galaxyp
date Wed, 26 May 2021 16:10:35 +0000
parents e8d7b7dc55fc
children
line wrap: on
line source

<macros>
    <token name="@PROFILE@">21.05</token>
    <token name="@TOOL_VERSION@">0.0.316</token>
    <token name="@VERSION_SUFFIX@">0</token>
    <xml name="requirements">
        <requirements>
            <requirement type="package" version="@TOOL_VERSION@">metamorpheus</requirement>
            <yield/>
        </requirements>
    </xml>

    <token name="@DEFAULT_COMMON_TOML@">
[CommonParameters]
# MaxThreadsToUsePerFile = 11
ListOfModsFixed = "Common Fixed\tCarbamidomethyl on C\t\tCommon Fixed\tCarbamidomethyl on U"
ListOfModsVariable = "Common Variable\tOxidation on M"
DoPrecursorDeconvolution = true # Calibration false
UseProvidedPrecursorInfo = true
DeconvolutionIntensityRatio = 3.0
DeconvolutionMaxAssumedChargeState = 12
DeconvolutionMassTolerance = "±4.0000 PPM"
TotalPartitions = 1
ProductMassTolerance = "±20.0000 PPM" # Calibration 25.0000
PrecursorMassTolerance = "±5.0000 PPM" # Calibration 15.0000
AddCompIons = false
ScoreCutoff = 5.0
ReportAllAmbiguity = true
NumberOfPeaksToKeepPerWindow = 200
MinimumAllowedIntensityRatioToBasePeak = 0.01
NormalizePeaksAccrossAllWindows = false
TrimMs1Peaks = false
TrimMsMsPeaks = true # Calibration false
UseDeltaScore = false
QValueOutputFilter = 1.0
CustomIons = []
AssumeOrphanPeaksAreZ1Fragments = true
MaxHeterozygousVariants = 4
MinVariantDepth = 1
DissociationType = "HCD"
SeparationType = "HPLC"
MS2ChildScanDissociationType = "Unknown"
MS3ChildScanDissociationType = "Unknown"
</token>

    <token name="@DEFAULT_DIGESTION_TOML@">
[CommonParameters.DigestionParams]
MaxMissedCleavages = 2
InitiatorMethionineBehavior = "Variable"
MinPeptideLength = 7
MaxPeptideLength = 2147483647
MaxModificationIsoforms = 1024
MaxModsForPeptide = 2
Protease = "trypsin"
SearchModeType = "Full"
FragmentationTerminus = "Both"
SpecificProtease = "trypsin"
GeneratehUnlabeledProteinsForSilac = true
</token>

    <token name="@DEFAULT_CALIBRATION_TOML@"><![CDATA[
TaskType = "Calibrate"

[CalibrationParameters]
WriteIntermediateFiles = false
WriteIndexedMzml = true
MinMS1IsotopicPeaksNeededForConfirmedIdentification = 3
MinMS2IsotopicPeaksNeededForConfirmedIdentification = 2
NumFragmentsNeededForEveryIdentification = 10

[CommonParameters]
MaxThreadsToUsePerFile = 11
ListOfModsFixed = "Common Fixed\tCarbamidomethyl on C\t\tCommon Fixed\tCarbamidomethyl on U"
ListOfModsVariable = "Common Variable\tOxidation on M"
DoPrecursorDeconvolution = false
UseProvidedPrecursorInfo = true
DeconvolutionIntensityRatio = 3.0
DeconvolutionMaxAssumedChargeState = 12
DeconvolutionMassTolerance = "±4.0000 PPM"
TotalPartitions = 1
ProductMassTolerance = "±25.0000 PPM"
PrecursorMassTolerance = "±15.0000 PPM"
AddCompIons = false
ScoreCutoff = 5.0
ReportAllAmbiguity = true
NumberOfPeaksToKeepPerWindow = 200
MinimumAllowedIntensityRatioToBasePeak = 0.01
NormalizePeaksAccrossAllWindows = false
TrimMs1Peaks = false
TrimMsMsPeaks = false
UseDeltaScore = false
QValueOutputFilter = 1.0
CustomIons = []
AssumeOrphanPeaksAreZ1Fragments = true
MaxHeterozygousVariants = 4
MinVariantDepth = 1
DissociationType = "HCD"
SeparationType = "HPLC"
MS2ChildScanDissociationType = "Unknown"
MS3ChildScanDissociationType = "Unknown"

@DEFAULT_DIGESTION_TOML@
]]></token>

    <token name="@DEFAULT_GPTMD_TOML@"><![CDATA[
TaskType = "Gptmd"

[GptmdParameters]
ListOfModsGptmd = "Common Biological\tAcetylation on K\t\tCommon Biological\tAcetylation on X\t\tCommon Biological\tADP-ribosylation on S\t\tCommon Artifact\tAmmonia loss on C\t\tCommon Artifact\tAmmonia loss on N\t\tCommon Biological\tButyrylation on K\t\tMetal\tCalcium on D\t\tMetal\tCalcium on E\t\tCommon Artifact\tCarbamyl on C\t\tCommon Artifact\tCarbamyl on K\t\tCommon Artifact\tCarbamyl on M\t\tCommon Artifact\tCarbamyl on R\t\tCommon Artifact\tCarbamyl on X\t\tCommon Biological\tCarboxylation on D\t\tCommon Biological\tCarboxylation on E\t\tCommon Biological\tCarboxylation on K\t\tCommon Biological\tCitrullination on R\t\tCommon Biological\tCrotonylation on K\t\tMetal\tCu[I] on D\t\tMetal\tCu[I] on E\t\tCommon Artifact\tDeamidation on N\t\tCommon Artifact\tDeamidation on Q\t\tCommon Biological\tDimethylation on K\t\tCommon Biological\tDimethylation on R\t\tMetal\tFe[II] on D\t\tMetal\tFe[II] on E\t\tMetal\tFe[III] on D\t\tMetal\tFe[III] on E\t\tCommon Biological\tFormylation on K\t\tCommon Biological\tGlu to PyroGlu on Q\t\tCommon Biological\tGlutarylation on K\t\tCommon Biological\tHexNAc on Nxs\t\tCommon Biological\tHexNAc on Nxt\t\tCommon Biological\tHexNAc on S\t\tCommon Biological\tHexNAc on T\t\tCommon Biological\tHydroxybutyrylation on K\t\tCommon Biological\tHydroxylation on K\t\tCommon Biological\tHydroxylation on N\t\tCommon Biological\tHydroxylation on P\t\tMetal\tMagnesium on D\t\tMetal\tMagnesium on E\t\tCommon Biological\tMalonylation on K\t\tCommon Biological\tMethylation on K\t\tCommon Biological\tMethylation on R\t\tCommon Biological\tNitrosylation on C\t\tCommon Biological\tNitrosylation on Y\t\tCommon Biological\tPhosphorylation on S\t\tCommon Biological\tPhosphorylation on T\t\tCommon Biological\tPhosphorylation on Y\t\tMetal\tPotassium on D\t\tMetal\tPotassium on E\t\tCommon Biological\tPyridoxal phosphate on K\t\tMetal\tSodium on D\t\tMetal\tSodium on E\t\tCommon Biological\tSuccinylation on K\t\tCommon Biological\tSulfonation on Y\t\tCommon Biological\tTrimethylation on K\t\tCommon Artifact\tWater Loss on E\t\tMetal\tZinc on D\t\tMetal\tZinc on E"

@DEFAULT_COMMON_TOML@

@DEFAULT_DIGESTION_TOML@
]]></token>

    <token name="@DEFAULT_SEARCH_TOML@"><![CDATA[
TaskType = "Search"

[SearchParameters]
DisposeOfFileWhenDone = true
DoParsimony = true
ModPeptidesAreDifferent = false
NoOneHitWonders = false
MatchBetweenRuns = false
Normalize = false
QuantifyPpmTol = 5.0
DoHistogramAnalysis = false
SearchTarget = true
DecoyType = "Reverse"
MassDiffAcceptorType = "OneMM"
WritePrunedDatabase = false
KeepAllUniprotMods = true
DoLocalizationAnalysis = true
DoQuantification = true
SearchType = "Classic"
LocalFdrCategories = ["FullySpecific"]
MaxFragmentSize = 30000.0
HistogramBinTolInDaltons = 0.003
MaximumMassThatFragmentIonScoreIsDoubled = 0.0
WriteMzId = true
WritePepXml = false
WriteDecoys = true
WriteContaminants = true
WriteIndividualFiles = true
CompressIndividualFiles = false
TCAmbiguity = "RemoveContaminant"

[SearchParameters.ModsToWriteSelection]
'N-linked glycosylation' = 3
'O-linked glycosylation' = 3
'Other glycosylation' = 3
'Common Biological' = 3
'Less Common' = 3
Metal = 3
'2+ nucleotide substitution' = 3
'1 nucleotide substitution' = 3
UniProt = 2

@DEFAULT_COMMON_TOML@

@DEFAULT_DIGESTION_TOML@
]]></token>

    <xml name="input_spectrums" token_multiple="false" token_filetype="Spectrum">
        <param name="spectrums" type="data" format="mzml" multiple="@MULTIPLE@" label="MS/MS @FILETYPE@ files"/>
    </xml>
    <xml name="calib_toml">
        <param name="calib_tomls" type="data" format="toml" multiple="true" optional="true" label="Calibrated Spectrum TOML files"/>
    </xml>
    <xml name="input_databases">
        <param name="databases" type="data" format="uniprotxml,fasta" multiple="true" label="Reference Protein Databases"/>
    </xml>
    <xml name="input_toml">
        <param name="input_toml" type="data" format="toml" optional="true" label="Optional Config toml from history"/>
    </xml>
    <token name="@CMD_IMPORTS@">
#import re
#def identifier_or_name($input1)
    #if hasattr($input1, 'element_identifier')
        #return $input1.element_identifier
    #else
        #return $input1.name
    #end if
#end def
#def clean($name1)
    #set $name_clean = $re.sub('[^\w\-_]', '_', $re.sub('(?i)[.](fa|fasta|xml|imzml|mzml|raw|mgf)$','', $re.sub('.*/','', $name1.rstrip('.gz'))))
    #return $name_clean
#end def
#def ln_name($ds)
    #set $ext = ''
    #if $ds.is_of_type('mzml') or $ds.is_of_type('imzml')
        #set $ext = ".mzML"
    #else if $ds.is_of_type('thermo.raw')
        #set $ext = ".raw"
    #else if $ds.is_of_type('toml')
        #set $ext = ".toml"
    #else if $ds.is_of_type('uniprotxml')
        #set $ext = ".xml"
    #else if $ds.is_of_type('fasta')
        #set $ext = ".fasta"
    #end if
    #set $name = "%s%s" % ($clean($identifier_or_name($ds)),$ext)
    #return $name
#end def
    </token>

    <token name="@PREPARE_INPUTS@"><![CDATA[
    @CMD_IMPORTS@
    #set $spectrum_names = []
    #set $database_names = []
    #set $inputs_dir = 'inputs'
    mkdir -p $inputs_dir &&
    #for $sf in $spectrums
      #set $i_name = $ln_name($sf)
      $spectrum_names.append($i_name)
      ln -s '${sf}' '${inputs_dir}/${i_name}' &&
    #end for
    #for $db in $databases
      #set $d_name = $ln_name($db)
      $database_names.append($d_name)
      ln -s '${db}' '${d_name}' &&
    #end for
]]></token>
    <token name="@LN_CALIB_TOML@"><![CDATA[
    #for $tf in $calib_tomls
      #set $t_name = $ln_name($tf)
      ln -s '${tf}' '${inputs_dir}/${t_name}' &&
    #end for
]]></token>
    
    <token name="@MERGE_TOMLS@"><![CDATA[
#def merge_tomls($tomls, $merged):
    #import re
    #set $config = dict()
    #set $config['categories'] = []
    #set $category = ' ' 
    #for $toml in $tomls
        #set $fh = open(toml,'r')
        #for $line in $fh:
            #set $entry = $line.rstrip()
            #if $entry.strip() == '':
                #continue
            #end if
            #set $m = $re.match('^((TaskType)\s*=\s*(.*))$', $entry)
            #if $m:
                #if $m.groups()[0] not in $config:
                    #set $config['TaskType'] = $entry
                    #continue
                #end if 
            #end if
            #set $m = $re.match('^(\[.+\])$', $entry)
            #if $m:
                #set $category = $m.groups()[0]
                #if $category not in $config['categories']:
                    $config['categories'].append($category)
                    #set $config[$category] = []
                    #continue
                #end if
            #end if
            #set $m = $re.match('^(\S+)\s*=\s*(.*)$',$entry)
            #if $m:
                #set $pname = $m.groups()[0]
                #set $pval = $m.groups()[1]
                #if $pname not in $config[$category]:
                    $config[$category].append($pname)
                #end if
                #set $config[$pname] = $pval
            #end if
#*
*#
        #end for
        $fh.close()
    #end for
    #set $wfh = open($merged,'w')
    #if 'TaskType' in $config:
        #silent $wfh.write('%s\n' % $config['TaskType'])
    #end if
    #for $category in $config['categories']:
        #silent $wfh.write('\n')
        #silent $wfh.write('%s\n' % $category)
        #for $pname in $config[$category]:
            #set $pval = $config[$pname]
            #silent $wfh.write('%s = %s\n' % ($pname, $pval))
        #end for
    #end for
    $wfh.close()
#*
*#
#*
    #echo $config 
*#
#end def
#if $input_toml 
    $merge_tomls([$default_toml,str($input_toml),$user_toml], $task_settings_toml)
#else
    $merge_tomls([$default_toml,$user_toml], $task_settings_toml)
#end if
ln -s '$task_settings_toml' tasksettings.toml &&

]]></token>

    <xml name="calibrate_params">
        <conditional name="calibration">
            <param name="set_calibration" type="select" label="Set Calibration Parameters">
                <option value="no">no</option>
                <option value="yes">yes</option>
            </param>
            <when value="no"/>
            <when value="yes">
                <param argument="MinMS1IsotopicPeaksNeededForConfirmedIdentification" type="integer" value="3" label="MinMS1IsotopicPeaksNeededForConfirmedIdentification"/>
                <param argument="MinMS2IsotopicPeaksNeededForConfirmedIdentification" type="integer" value="2" label="MinMS2IsotopicPeaksNeededForConfirmedIdentification"/>
                <param argument="NumFragmentsNeededForEveryIdentification" type="integer" value="10" label="NumFragmentsNeededForEveryIdentification"/>
            </when>
        </conditional>
    </xml>
    <token name="@CALIBRATE_CONFIG@"><![CDATA[
#if $calibration.set_calibration == 'yes'
[CalibrationParameters]
WriteIntermediateFiles = false
MinMS1IsotopicPeaksNeededForConfirmedIdentification = $calibration.MinMS1IsotopicPeaksNeededForConfirmedIdentification
MinMS2IsotopicPeaksNeededForConfirmedIdentification = $calibration.MinMS2IsotopicPeaksNeededForConfirmedIdentification
NumFragmentsNeededForEveryIdentification = $calibration.NumFragmentsNeededForEveryIdentification
#end if
]]></token>
    <xml name="gptmd_params">

    </xml>
    <token name="@GPTMD_CONFIG@">
TaskType = "Gptmd"

[GptmdParameters]
ListOfModsGptmd = "Common Biological\tAcetylation on K\t\tCommon Biological\tAcetylation on X\t\tCommon Biological\tADP-ribosylation on S\t\tCommon Biological\tButyrylation on K\t\tCommon Biological\tCarboxylation on D\t\tCommon Biological\tCarboxylation on E\t\tCommon Biological\tCarboxylation on K\t\tCommon Biological\tCitrullination on R\t\tCommon Biological\tCrotonylation on K\t\tCommon Biological\tDimethylation on K\t\tCommon Biological\tDimethylation on R\t\tCommon Biological\tFormylation on K\t\tCommon Biological\tGlu to PyroGlu on Q\t\tCommon Biological\tGlutarylation on K\t\tCommon Biological\tHexNAc on Nxs\t\tCommon Biological\tHexNAc on Nxt\t\tCommon Biological\tHexNAc on S\t\tCommon Biological\tHexNAc on T\t\tCommon Biological\tHydroxybutyrylation on K\t\tCommon Biological\tHydroxylation on K\t\tCommon Biological\tHydroxylation on N\t\tCommon Biological\tHydroxylation on P\t\tCommon Biological\tMalonylation on K\t\tCommon Biological\tMethylation on K\t\tCommon Biological\tMethylation on R\t\tCommon Biological\tNitrosylation on C\t\tCommon Biological\tNitrosylation on Y\t\tCommon Biological\tPhosphorylation on S\t\tCommon Biological\tPhosphorylation on T\t\tCommon Biological\tPhosphorylation on Y\t\tCommon Biological\tPyridoxal phosphate on K\t\tCommon Biological\tSuccinylation on K\t\tCommon Biological\tSulfonation on Y\t\tCommon Biological\tTrimethylation on K\t\tCommon Artifact\tAmmonia loss on C\t\tCommon Artifact\tAmmonia loss on N\t\tCommon Artifact\tCarbamyl on C\t\tCommon Artifact\tCarbamyl on K\t\tCommon Artifact\tCarbamyl on M\t\tCommon Artifact\tCarbamyl on R\t\tCommon Artifact\tCarbamyl on X\t\tCommon Artifact\tDeamidation on N\t\tCommon Artifact\tDeamidation on Q\t\tCommon Artifact\tWater Loss on E\t\tMetal\tCalcium on D\t\tMetal\tCalcium on E\t\tMetal\tCu[I] on D\t\tMetal\tCu[I] on E\t\tMetal\tFe[II] on D\t\tMetal\tFe[II] on E\t\tMetal\tFe[III] on D\t\tMetal\tFe[III] on E\t\tMetal\tMagnesium on D\t\tMetal\tMagnesium on E\t\tMetal\tPotassium on D\t\tMetal\tPotassium on E\t\tMetal\tSodium on D\t\tMetal\tSodium on E\t\tMetal\tZinc on D\t\tMetal\tZinc on E"
    </token>

    <xml name="search_params">
        <conditional name="search_params">
            <param name="set_search_params" type="select" label="Set Search Parameters">
                <option value="no">no</option>
                <option value="yes">yes</option>
            </param>
            <when value="no"/>
            <when value="yes">
                <param argument="DoParsimony" type="boolean" truevalue="true" falsevalue="false" checked="true" label="DoParsimony"/>
                <param argument="ModPeptidesAreDifferent" type="boolean" truevalue="true" falsevalue="false" checked="false" label="ModPeptidesAreDifferent"/>
                <param argument="NoOneHitWonders" type="boolean" truevalue="true" falsevalue="false" checked="false" label="NoOneHitWonders"/>
                <param argument="MatchBetweenRuns" type="boolean" truevalue="true" falsevalue="false" checked="false" label="MatchBetweenRuns"/>
                <param argument="Normalize" type="boolean" truevalue="true" falsevalue="false" checked="false" label="Normalize"/>
                <param argument="QuantifyPpmTol" type="float" value="5.0" label="QuantifyPpmTol"/>
                <param argument="DoHistogramAnalysis" type="boolean" truevalue="true" falsevalue="false" checked="false" label="DoHistogramAnalysis"/>
                <param argument="SearchTarget" type="boolean" truevalue="true" falsevalue="false" checked="true" label="SearchTarget"/>
                <param argument="DecoyType" type="select" label="DecoyType">
                    <option value="Reverse" selected="true">Reverse</option>
                    <option value="Slide">Slide</option>
                    <option value="None">None</option>
                </param>
                <param argument="MassDiffAcceptorType" type="select" label="MassDiffAcceptorType">
                    <option value="Exact">Exact</option>
                    <option value="OneMM" selected="true">OneMM</option>
                    <option value="TwoMM">TwoMM</option>
                    <option value="ThreeMM">ThreeMM</option>
                    <option value="PlusOrMinusThreeMM">PlusOrMinusThreeMM</option>
                    <option value="ModOpen">ModOpen</option>
                    <option value="Open">Open</option>
                </param>
                <param argument="KeepAllUniprotMods" type="boolean" truevalue="true" falsevalue="false" checked="true" label="KeepAllUniprotMods"/>
                <param argument="DoLocalizationAnalysis" type="boolean" truevalue="true" falsevalue="false" checked="true" label="DoLocalizationAnalysis"/>
                <param argument="DoQuantification" type="boolean" truevalue="true" falsevalue="false" checked="true" label="DoQuantification"/>
                <param argument="SearchType" type="select" label="SearchType">
                    <option value="Classic" selected="true">Classic</option>
                    <option value="Modern">Modern</option>
                    <option value="NonSpecific">NonSpecific</option>
                </param>
                <param argument="LocalFdrCategories" type="select" label="LocalFdrCategories">
                    <option value="FullySpecific" selected="true">FullySpecific</option>
                    <option value="SemiSpecific">SemiSpecific</option>
                    <option value="NonSpecific">NonSpecific</option>
                </param>
                <param argument="MaxFragmentSize" type="float" value="30000.0" label="MaxFragmentSize"/>
                <param argument="HistogramBinTolInDaltons" type="float" value="0.003" label="HistogramBinTolInDaltons"/>
                <param argument="MaximumMassThatFragmentIonScoreIsDoubled" type="float" value="0.0" label="MaximumMassThatFragmentIonScoreIsDoubled"/>
            </when>
        </conditional>
        <param name="search_outputs" type="select" multiple="true" label="Select Optional Search Outputs">
            <option value="WriteMzId" selected="true">WriteMzId</option>
            <option value="WritePepXml" selected="false">WritePepXml</option>
            <option value="WritePrunedDatabase" selected="true">WritePrunedDatabase</option>
            <option value="WriteDecoys" selected="false">WriteDecoys</option>
            <option value="WriteContaminants" selected="false">WriteContaminants</option>
        </param> 
    </xml>
    <token name="@SEARCH_CONFIG@"><![CDATA[
[SearchParameters]
#if $search_params.set_search_params == 'yes'
DisposeOfFileWhenDone = true
DoParsimony = $search_params.DoParsimony
ModPeptidesAreDifferent = $search_params.ModPeptidesAreDifferent
NoOneHitWonders = $search_params.NoOneHitWonders
MatchBetweenRuns = $search_params.MatchBetweenRuns
Normalize = $search_params.Normalize
QuantifyPpmTol = $search_params.QuantifyPpmTol
DoHistogramAnalysis = $search_params.DoHistogramAnalysis
SearchTarget = $search_params.SearchTarget
DecoyType = "$search_params.DecoyType"
MassDiffAcceptorType = "$search_params.MassDiffAcceptorType"
KeepAllUniprotMods = $search_params.KeepAllUniprotMods
DoLocalizationAnalysis = $search_params.DoLocalizationAnalysis
DoQuantification = $search_params.DoQuantification
SearchType = "$search_params.SearchType"
LocalFdrCategories = ["$search_params.LocalFdrCategories"]
MaxFragmentSize = $search_params.MaxFragmentSize
HistogramBinTolInDaltons = $search_params.HistogramBinTolInDaltons
MaximumMassThatFragmentIonScoreIsDoubled = $search_params.MaximumMassThatFragmentIonScoreIsDoubled
#end if
WritePrunedDatabase = #echo str('WritePrunedDatabase' in $search_outputs).lower()
WriteMzId = #echo str('WriteMzId' in $search_outputs).lower()
WritePepXml = #echo str('WritePepXml' in $search_outputs).lower()
WritePepXml = #echo str('WritePepXml' in $search_outputs).lower()
WriteDecoys = #echo str('WriteDecoys' in $search_outputs).lower()
WriteContaminants = #echo str('WriteContaminants' in $search_outputs).lower()

[SearchParameters.ModsToWriteSelection]
'N-linked glycosylation' = 3
'O-linked glycosylation' = 3
'Other glycosylation' = 3
'Common Biological' = 3
'Less Common' = 3
Metal = 3
'2+ nucleotide substitution' = 3
'1 nucleotide substitution' = 3
UniProt = 2
]]></token>

    <xml name="dissociation_options">
                    <option value="Any">Any</option>
                    <option value="CID">CID</option>
                    <option value="LowCID">LowCID</option>
                    <option value="ISCID">ISCID</option>
                    <option value="MPD">MPD</option>
                    <option value="ECD">ECD</option>
                    <option value="PQD">PQD</option>
                    <option value="ETD">ETD</option>
                    <option value="HCD" selected="true">HCD</option>
                    <option value="EThcD">EThcD</option>
                    <option value="Custom">Custom</option>
    </xml>

    <xml name="common_params">
        <conditional name="common">
            <param name="set_common" type="select" label="Set Common Parameters">
                <option value="no">no</option>
                <option value="yes">yes</option>
            </param>
            <when value="no"/>
            <when value="yes">
                <param argument="UseProvidedPrecursorInfo" type="boolean" truevalue="true" falsevalue="false" checked="true" label="Use Provided Precursor"/>
                <param argument="DoPrecursorDeconvolution" type="boolean" truevalue="true" falsevalue="false" checked="true" label="Deconvolute Precursor"/>
                <param argument="DeconvolutionMaxAssumedChargeState" type="integer" value="12" label="Deconvolution Max Assumed Charge State"/>
                <param argument="DeconvolutionIntensityRatio" type="float" value="3.0" label="DeconvolutionIntensityRatio"/>
                <param argument="DeconvolutionMassTolerance" type="float" value="4.0000" label="DeconvolutionMassTolerance in PPM"/>
                <param argument="TotalPartitions" type="integer" value="1" label="TotalPartitions"/>
                <param argument="PrecursorMassTolerance" type="float" value="15.0000" label="PrecursorMassTolerance in PPM"/>
                <param argument="ProductMassTolerance" type="float" value="25.0000" label="ProductMassTolerance in PPM"/>
                <param argument="AddCompIons" type="boolean" truevalue="true" falsevalue="false" checked="false" label="AddCompIons"/>
                <param argument="ScoreCutoff" type="float" value="5.0" label="ScoreCutoff"/>
                <param argument="ReportAllAmbiguity" type="boolean" truevalue="true" falsevalue="false" checked="true" label="ReportAllAmbiguity"/>
                <param argument="NumberOfPeaksToKeepPerWindow" type="integer" value="200" label="NumberOfPeaksToKeepPerWindow"/>
                <param argument="MinimumAllowedIntensityRatioToBasePeak" type="float" value="0.01" label="MinimumAllowedIntensityRatioToBasePeak"/>
                <param argument="NormalizePeaksAccrossAllWindows" type="boolean" truevalue="true" falsevalue="false" checked="false" label="NormalizePeaksAccrossAllWindows"/>
                <param argument="TrimMs1Peaks" type="boolean" truevalue="true" falsevalue="false" checked="false" label="TrimMs1Peaks"/>
                <param argument="TrimMsMsPeaks" type="boolean" truevalue="true" falsevalue="false" checked="true" label="TrimMsMsPeaks"/>
                <param argument="UseDeltaScore" type="boolean" truevalue="true" falsevalue="false" checked="false" label="UseDeltaScore"/>
                <param argument="QValueOutputFilter" type="float" value="1.0" label="QValueOutputFilter"/>
                <param argument="MaxHeterozygousVariants" type="integer" value="4" label="MaxHeterozygousVariants"/>
                <param argument="MinVariantDepth" type="integer" value="1" label="MinVariantDepth"/>
                <param argument="SeparationType" type="select" label="SeparationType">
                    <option value="HPLC" selected="true">HPLC</option>
                    <option value="CZE">CZE</option>
                </param>
                <param argument="DissociationType" type="select" label="DissociationType">
                    <expand macro="dissociation_options"/>
                </param>
                <param argument="MS2ChildScanDissociationType" type="select" label="MS2ChildScanDissociationType">
                    <expand macro="dissociation_options"/>
                </param>
                <param argument="MS3ChildScanDissociationType" type="select" label="MS2ChildScanDissociationType">
                    <expand macro="dissociation_options"/>
                </param>
            </when>
        </conditional>
    </xml>
    <token name="@COMMON_CONFIG@">
[CommonParameters]
TaskDescriptor = "CalibrateTask"
MaxThreadsToUsePerFile = 11
#if $common.set_common == 'yes' 
DoPrecursorDeconvolution = $common.DoPrecursorDeconvolution
UseProvidedPrecursorInfo = $common.UseProvidedPrecursorInfo
DeconvolutionIntensityRatio = $common.DeconvolutionIntensityRatio
DeconvolutionMaxAssumedChargeState = $common.DeconvolutionMaxAssumedChargeState
DeconvolutionMassTolerance = "±${common.DeconvolutionMassTolerance} PPM"
TotalPartitions = $common.TotalPartitions
ProductMassTolerance = "±${common.ProductMassTolerance} PPM"
PrecursorMassTolerance = "±${common.PrecursorMassTolerance} PPM"
AddCompIons = $common.AddCompIons
ScoreCutoff = $common.ScoreCutoff
ReportAllAmbiguity = $common.ReportAllAmbiguity
NumberOfPeaksToKeepPerWindow = $common.NumberOfPeaksToKeepPerWindow
MinimumAllowedIntensityRatioToBasePeak = $common.MinimumAllowedIntensityRatioToBasePeak
NormalizePeaksAccrossAllWindows = $common.NormalizePeaksAccrossAllWindows
TrimMs1Peaks = $common.TrimMs1Peaks
TrimMsMsPeaks = $common.TrimMsMsPeaks
UseDeltaScore = $common.UseDeltaScore
QValueOutputFilter = $common.QValueOutputFilter
## CustomIons = $common.CustomIons
AssumeOrphanPeaksAreZ1Fragments = $common.AssumeOrphanPeaksAreZ1Fragments
MaxHeterozygousVariants = $common.MaxHeterozygousVariants
MinVariantDepth = $common.MinVariantDepth
DissociationType = $common.DissociationType
SeparationType = $common.SeparationType
MS2ChildScanDissociationType = $common.MS2ChildScanDissociationType
MS3ChildScanDissociationType = $common.MS3ChildScanDissociationType
#else
DoPrecursorDeconvolution = true
UseProvidedPrecursorInfo = true
DeconvolutionIntensityRatio = 3.0
DeconvolutionMaxAssumedChargeState = 12
DeconvolutionMassTolerance = "±4.0000 PPM"
TotalPartitions = 1
ProductMassTolerance = "±25.0000 PPM"
PrecursorMassTolerance = "±15.0000 PPM"
AddCompIons = false
ScoreCutoff = 5.0
ReportAllAmbiguity = true
NumberOfPeaksToKeepPerWindow = 200
MinimumAllowedIntensityRatioToBasePeak = 0.01
NormalizePeaksAccrossAllWindows = false
TrimMs1Peaks = false
TrimMsMsPeaks = true
UseDeltaScore = false
QValueOutputFilter = 1.0
CustomIons = []
AssumeOrphanPeaksAreZ1Fragments = true
MaxHeterozygousVariants = 4
MinVariantDepth = 1
DissociationType = "HCD"
SeparationType = "HPLC"
MS2ChildScanDissociationType = "Unknown"
MS3ChildScanDissociationType = "Unknown"
#end if
    </token>
    <xml name="mods_params">
    </xml>
    <token name="@MODS_CONFIG@">
ListOfModsFixed = "Common Fixed\tCarbamidomethyl on C\t\tCommon Fixed\tCarbamidomethyl on U"
ListOfModsVariable = "Common Variable\tOxidation on M"
    </token>
    <xml name="digest_params">
        <conditional name="digest">
            <param name="set_digest" type="select" label="Set Digest Parameters">
                <option value="no">no</option>
                <option value="yes">yes</option>
            </param>
            <when value="no"/>
            <when value="yes">
                <param name="Protease" type="select" label="Protease">
                    <option value="Any">Any</option>
                    <option value="Arg-C">Arg-C</option>
                    <option value="Asp-N">Asp-N</option>
                    <option value="chymotrypsin (don't cleave before proline)">chymotrypsin (don't cleave before proline)</option>
                    <option value="chymotrypsin (cleave before proline)">chymotrypsin (cleave before proline)</option>
                    <option value="CNBr">CNBr</option>
                    <option value="Glu-C">Glu-C</option>
                    <option value="Glu-C (with asp)">Glu-C (with asp)</option>
                    <option value="Lys-C (don't cleave before proline)">Lys-C (don't cleave before proline)</option>
                    <option value="Lys-C (cleave before proline)">Lys-C (cleave before proline)</option>
                    <option value="Lys-N">Lys-N</option>
                    <option value="semi-trypsin">semi-trypsin</option>
                    <option value="trypsin" selected="true">trypsin</option>
                    <option value="tryptophan oxidation">tryptophan oxidation</option>
                    <option value="non-specific">non-specific</option>
                    <option value="top-down">top-down</option>
                    <option value="singleN">singleN</option>
                    <option value="singleC">singleC</option>
                    <option value="collagenase">collagenase</option>
                </param>
                <param name="SpecificProtease" type="select" label="SpecificProtease">
                    <option value="Any">Any</option>
                    <option value="Arg-C">Arg-C</option>
                    <option value="Asp-N">Asp-N</option>
                    <option value="chymotrypsin (don't cleave before proline)">chymotrypsin (don't cleave before proline)</option>
                    <option value="chymotrypsin (cleave before proline)">chymotrypsin (cleave before proline)</option>
                    <option value="CNBr">CNBr</option>
                    <option value="Glu-C">Glu-C</option>
                    <option value="Glu-C (with asp)">Glu-C (with asp)</option>
                    <option value="Lys-C (don't cleave before proline)">Lys-C (don't cleave before proline)</option>
                    <option value="Lys-C (cleave before proline)">Lys-C (cleave before proline)</option>
                    <option value="Lys-N">Lys-N</option>
                    <option value="semi-trypsin">semi-trypsin</option>
                    <option value="trypsin" selected="true">trypsin</option>
                    <option value="tryptophan oxidation">tryptophan oxidation</option>
                    <option value="non-specific">non-specific</option>
                    <option value="top-down">top-down</option>
                    <option value="singleN">singleN</option>
                    <option value="singleC">singleC</option>
                    <option value="collagenase">collagenase</option>
                </param>
                <param name="InitiatorMethionineBehavior" type="select" label="InitiatorMethionineBehavior">
                    <option value="Variable" selected="true">Variable</option>
                    <option value="Undefined">Undefined</option>
                    <option value="Retain">Retain</option>
                    <option value="Cleave">Cleave</option>
                </param>
                <param name="SearchModeType" type="select" label="SearchModeType">
                    <option value="Full" selected="true">Full</option>
                    <option value="None">None</option>
                    <option value="Semi">Semi</option>
                    <option value="SingleN">SingleN</option>
                    <option value="SingleC">SingleC</option>
                </param>
                <param name="FragmentationTerminus" type="select" label="FragmentationTerminus">
                    <option value="Both" selected="true">Both</option>
                    <option value="None">None</option>
                    <option value="N">N</option>
                    <option value="C">C</option>
                </param>
                <param name="MaxMissedCleavages" type="integer" value="2" min="0" max="5" label="MaxMissedCleavages"/>
                <param name="MinPeptideLength" type="integer" value="7" min="4" label="MinPeptideLength"/>
                <param name="MaxPeptideLength" type="integer" value="2147483647" max="2147483647" label="MaxPeptideLength"/>
                <param name="MaxModificationIsoforms" type="integer" value="1024" min="0" max="5000" label="MaxModificationIsoforms"/>
                <param name="MaxModsForPeptide" type="integer" value="2" min="0" max="10" label="MaxModsForPeptide"/>
                <param name="GeneratehUnlabeledProteinsForSilac" type="boolean" truevalue="true" falsevalue="false" checked="false" label="GeneratehUnlabeledProteinsForSilac"/>
            </when>
        </conditional>
    </xml>
    <token name="@DIGEST_CONFIG@">
[CommonParameters.DigestionParams]
#if $digest.set_digest == 'yes'
MaxMissedCleavages = $digest.MaxMissedCleavages
InitiatorMethionineBehavior = "$digest.InitiatorMethionineBehavior"
MinPeptideLength = $digest.MinPeptideLength
MaxPeptideLength = $digest.MaxPeptideLength
MaxModificationIsoforms = $digest.MaxModificationIsoforms
MaxModsForPeptide = $digest.MaxModsForPeptide
Protease = "$digest.Protease"
SearchModeType = "$digest.SearchModeType"
FragmentationTerminus = "$digest.FragmentationTerminus"
SpecificProtease = "$digest.SpecificProtease"
GeneratehUnlabeledProteinsForSilac = $digest.GeneratehUnlabeledProteinsForSilac
#else
MaxMissedCleavages = 2
InitiatorMethionineBehavior = "Variable"
MinPeptideLength = 7
MaxPeptideLength = 2147483647
MaxModificationIsoforms = 1024
MaxModsForPeptide = 2
Protease = "trypsin"
SearchModeType = "Full"
FragmentationTerminus = "Both"
SpecificProtease = "trypsin"
GeneratehUnlabeledProteinsForSilac = false
#end if
    </token>

    
    <xml name="output_settings_toml">
        <data name="settings_toml" format="toml" label="${tool.name} on ${on_string} tasksettings.toml" from_work_dir="tasksettings.toml" />
    </xml>
    <xml name="calibrated_outputs">
        <collection name="calibrated_scans" type="list" label="${tool.name} on ${on_string} Calibrated Spectrums">
            <discover_datasets pattern="^(?P&lt;name&gt;.+\.mzML)$" ext="mzml" directory="output/Task1CalibrationTask" />
        </collection>
        <collection name="calibratation_toml" type="list" label="${tool.name} on ${on_string} Calibration TOMLs">
            <discover_datasets pattern="^(?P&lt;name&gt;.+\.toml)$" ext="toml" directory="output/Task1CalibrationTask" />
        </collection>
    </xml>
    <xml name="search_collection_outputs">
        <collection name="mzids" type="list" label="${tool.name} on ${on_string} Spectrum Search mzIdent">
            <filter>search_outputs and 'WriteMzId' in search_outputs</filter>
            <discover_datasets pattern="^(?P&lt;name&gt;.+\.mzID)$" ext="mzid" directory="output/Task1SearchTask/Individual File Results" />
        </collection>
        <collection name="pepxmls" type="list" label="${tool.name} on ${on_string} Spectrum Search pep.xml">
            <filter>search_outputs and 'WritePepXml' in search_outputs</filter>
            <discover_datasets pattern="^(?P&lt;name&gt;.+\.pep\.XML)$" ext="pepxml" directory="output/Task1SearchTask/Individual File Results" />
        </collection>
    </xml>

    <token name="@METAMORPHEUS_HELP@"><![CDATA[
**MetaMorpheus**

MetaMorpheus_ is a bottom-up proteomics database search software with integrated post-translational modification (PTM) discovery capability. 
See the wiki page for details:  https://github.com/smith-chem-wisc/MetaMorpheus/wiki

Typical MetaMorpheus Workflow:

  1. MetaMorpheus Calibration - of MassSpec Spectrum files using a reference protein database (preferably in Uniprot XML format)
  2. MetaMorpheus G-PTM-D - Post-translational modification (PTM) discovery from the Calibrated Spectrum files
  3. MetaMorpheus Database Search - Proetomics Search using the Calibrated Spectrum files and the GPTMD protein database

.. image:: MetaMorpheusWorkflow.png
  :width: 823
  :height: 759

.. _MetaMorpheus: https://github.com/smith-chem-wisc/MetaMorpheus

]]></token>    

    <xml name="citations">
        <citations>
            <citation type="doi">10.1021/acs.jproteome.7b00873</citation>
            <yield />
        </citations>
    </xml>

</macros>