changeset 0:9cbe178a3e3c draft

Uploaded
author jjohnson
date Tue, 29 Aug 2017 14:30:36 -0400
parents
children a2e41fca9e39
files msfragger.xml
diffstat 1 files changed, 588 insertions(+), 0 deletions(-) [+]
line wrap: on
line diff
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/msfragger.xml	Tue Aug 29 14:30:36 2017 -0400
@@ -0,0 +1,588 @@
+<tool id="msfragger" name="MSFragger" version="1.0.0">
+    <description>search for peptide identifications in mass spectrometry proteomics</description>
+    <command>
+<![CDATA[
+#import re
+## Is file naming going to be a problem? May need to have a name param
+#set $param_file = 'fragger.params'
+cat $fragger_params >  '$param_file'
+##
+&& echo " " >> '$param_file'
+&& echo "num_threads = \$GALAXY_SLOTS" >> '$param_file'
+&& cat $param_file > '$output_params'
+&& cat /Users/jj/gxt/gxt/database/files/009/dataset_9448.dat > Uniprot.20151009.Hs.revDecoys.fa
+#if $input.extension == 'mzml':
+#set $file_ext = 'mzML'
+#elif $input.extension == 'mzxml':
+#set $file_ext = 'mzXML'
+#elif $input.extension == 'mgf':
+#set $file_ext = 'mgf'
+#end if
+#if $input_prefix and len($input_prefix.strip()) > 0:
+#set $input_path = $input_prefix.__str__ + "_rep" + str($i + 1) + "." + $file_ext
+#else:
+#set $input_path = $re.sub('\.[mM]\w+$','',$re.sub('[^-a-zA-Z0-9_.]','_',$input.name)) + "." + $file_ext
+#end if
+&& ln -s '${input}' '$input_path'
+&& java -Xmx8G -jar $__tool_directory__/MSFragger.jar fragger.params '$input_path'
+## && cat *.log 
+>> "$logfile"
+#if $output_format == 'pepXML':
+&& cat *.pep.xml > $output_pepxml
+#else 
+&& cat *.tsv > $output_tsv
+#end if
+]]>
+    </command>
+  <configfiles>
+    <configfile name="fragger_params"><![CDATA[#slurp
+#import re
+database_name = $database ## Uniprot.20151009.Hs.revDecoys.fa 
+## num_threads = 0  ## 0=poll CPU to set num threads; else specify num threads directly (max 64)
+
+## Search Tolerances
+
+precursor_mass_tolerance = #if str( $search_tolerances.mass.precursor_mass_tolerance ) then $search_tolerances.mass.precursor_mass_tolerance else 500.00#
+precursor_mass_units = #if $search_tolerances.mass.units == 'Da' then 0 else 1#  ## 0=Daltons, 1=ppm
+precursor_true_tolerance =  #if str( $search_tolerances.mass.precursor_true_tolerance ) then $search_tolerances.mass.precursor_true_tolerance else 20.00#
+precursor_true_units = #if $search_tolerances.mass.units == 'Da' then 0 else 1#  ## 0=Daltons, 1=ppm
+fragment_mass_tolerance = #if str( $search_tolerances.mass.fragment_mass_tolerance ) then $search_tolerances.mass.fragment_mass_tolerance else 20.00#
+fragment_mass_units = #if $search_tolerances.mass.units == 'Da' then 0 else 1#   ## 0=Daltons, 1=ppm
+isotope_error = $search_tolerances.isotope_error                      ## 0=off, 0/1/2 (standard C13 error)
+
+## digest parameters
+
+search_enzyme_name = #if $digestion.search_enzyme_name then $digestion.search_enzyme_name else 'Trypsin'# ## Trypsin
+search_enzyme_cutafter = #if $digestion.search_enzyme_cutafter then $digestion.search_enzyme_cutafter else 'KR'# ##KR
+search_enzyme_butnotafter =  #if $digestion.search_enzyme_butnotafter then $digestion.search_enzyme_butnotafter else 'P'# ##P
+
+num_enzyme_termini = $digestion.num_enzyme_termini                 ## 2 for enzymatic, 1 for semi-enzymatic, 0 for nonspecific digestion
+allowed_missed_cleavage = #if $digestion.allowed_missed_cleavage then $digestion.allowed_missed_cleavage else 1#            ## maximum value is 5
+
+digest_min_length = #if $digestion.digest_min_length then $digestion.digest_min_length else 7#
+digest_max_length = #if $digestion.digest_max_length then $digestion.digest_max_length else 50#
+digest_mass_range = #if str( $digestion.digest_mass_range_min ) then $digestion.digest_mass_range_min else 500.0# #if $digestion.digest_mass_range_max is not None then $digestion.digest_mass_range_max else 5000.0#   ## MH+ peptide mass range to analyze
+
+
+## Variable Modification Parameters
+
+clip_nTerm_M = $variable_modification.clip_nTerm_M
+
+##maximum of 7 mods - amino acid codes, * for any amino acid, [ and ] specifies protein termini, n and c specifies peptide termini
+##variable_mod_01 = 15.9949 M
+##variable_mod_02 = 42.0106 [*
+##variable_mod_03 = 79.96633 STY
+##variable_mod_03 = -17.0265 nQnC
+##variable_mod_04 = -18.0106 nE 
+
+allow_multiple_variable_mods_on_residue = $variable_modification.allow_multiple_variable_mods_on_residue ## static mods are not considered
+max_variable_mods_per_mod = #if str( $variable_modification.max_variable_mods_per_mod ) then $variable_modification.max_variable_mods_per_mod else 3# ## maximum of 5
+max_variable_mods_combinations = #if str( $variable_modification.max_variable_mods_combinations ) then $variable_modification.max_variable_mods_combinations else 1000# ## maximum of 65534, limits number of modified peptides generated from sequence
+
+#set $vmods = $re.findall('([+-]?\d+[.]\d+\s\S+)',str($variable_modification.variable_mods))
+#for i,vmod in enumerate($vmods):
+variable_mod_0${int(i)+1} = $vmod
+#end for
+
+##open search parameters
+track_zero_topN = #if str( $open_search.track_zero_topN ) then $open_search.track_zero_topN else 0#  ## in addition to topN results, keep track of top results in zero bin
+zero_bin_accept_expect = #if str( $open_search.zero_bin_accept_expect ) then $open_search.zero_bin_accept_expect else 0# ## boost top zero bin entry to top if it has expect under 0.01 - set to 0 to disable
+zero_bin_mult_expect = #if str( $open_search.zero_bin_mult_expect ) then $open_search.zero_bin_mult_expect else 1# ## disabled if above passes - multiply expect of zero bin for ordering purposes (does not affect reported expect)
+add_topN_complementary = #if str( $open_search.add_topN_complementary ) then $open_search.add_topN_complementary else 0#
+
+## spectral processing
+
+minimum_peaks = #if str( $spectrum_processing.minimum_peaks ) then $spectrum_processing.minimum_peaks else 15# ## required minimum number of peaks in spectrum to search (default 10)
+use_topN_peaks = #if str( $spectrum_processing.use_topN_peaks ) then $spectrum_processing.use_topN_peaks else 100#
+
+
+minimum_ratio = #if str($spectrum_processing.minimum_ratio) then $spectrum_processing.minimum_ratio else 0.01# ## filter peaks below this fraction of strongest peak
+
+override_charge = $spectrum_processing.precursor.override_charge
+#if  $spectrum_processing.precursor.override_charge == 1
+precursor_charge = $spectrum_processing.precursor.precursor_charge_min $spectrum_processing.precursor.precursor_charge_max ## precursor charge range to analyze; does not override any existing charge; 0 as 1st entry ignores parameter
+#end if
+max_fragment_charge = #if str( $spectrum_processing.max_fragment_charge ) then $spectrum_processing.max_fragment_charge else 2# ## set maximum fragment charge state to analyze (allowed max 5)
+#if  str( $spectrum_processing.clear.clear_mz_range_min ) or str( $spectrum_processing.clear.clear_mz_range_max )
+clear_mz_range = #if str( $spectrum_processing.clear.clear_mz_range_min ) then $spectrum_processing.clear.clear_mz_range_min else 0.0# #if str( $spectrum_processing.clear.clear_mz_range_max ) then $spectrum_processing.clear.clear_mz_range_max else 0.0# 
+#else
+clear_mz_range = 0.0 0.0             ## for iTRAQ/TMT type data; will clear out all peaks in the specified m/z range
+#end if
+
+
+min_fragments_modelling = #if str( $modeling_output.min_fragments_modelling ) then $modeling_output.min_fragments_modelling else 3#
+min_matched_fragments = #if str( $modeling_output.min_matched_fragments ) then $modeling_output.min_matched_fragments else 6#
+output_report_topN = #if $modeling_output.output_report_topN  is not None then $modeling_output.output_report_topN else 1# 
+output_max_expect = #if str( $modeling_output.output_max_expect ) then $modeling_output.output_max_expect else 50.0#
+
+output_file_extension = #if $output_format == 'pepXML' then 'pep.xml' else 'tsv'#	       ##pepXML
+output_format = $output_format	       ##pepXML or tsv
+
+## additional modifications
+static_modification
+s/^\(add_[^ ]*\) = \([0-9.]*\)/\1 = #if str( $static_modification.\1 ) then  $static_modification.\1 else \2#/
+
+add_Cterm_peptide = #if str( $static_modification.add_Cterm_peptide ) then  $static_modification.add_Cterm_peptide else 0.0#
+add_Nterm_peptide = #if str( $static_modification.add_Nterm_peptide ) then  $static_modification.add_Nterm_peptide else 0.0#
+add_Cterm_protein = #if str( $static_modification.add_Cterm_protein ) then  $static_modification.add_Cterm_protein else 0.0#
+add_Nterm_protein = #if str( $static_modification.add_Nterm_protein ) then  $static_modification.add_Nterm_protein else 0.0#
+add_G_glycine = #if str( $static_modification.add_G_glycine ) then  $static_modification.add_G_glycine else 0.0000#                 ## added to G - avg.  57.0513, mono.  57.02146
+add_A_alanine = #if str( $static_modification.add_A_alanine ) then  $static_modification.add_A_alanine else 0.0000#                 ## added to A - avg.  71.0779, mono.  71.03711
+add_S_serine = #if str( $static_modification.add_S_serine ) then  $static_modification.add_S_serine else 0.0000#                  ## added to S - avg.  87.0773, mono.  87.03203
+add_P_proline = #if str( $static_modification.add_P_proline ) then  $static_modification.add_P_proline else 0.0000#                 ## added to P - avg.  97.1152, mono.  97.05276
+add_V_valine = #if str( $static_modification.add_V_valine ) then  $static_modification.add_V_valine else 0.0000#                  ## added to V - avg.  99.1311, mono.  99.06841
+add_T_threonine = #if str( $static_modification.add_T_threonine ) then  $static_modification.add_T_threonine else 0.0000#               ## added to T - avg. 101.1038, mono. 101.04768
+add_C_cysteine = #if str( $static_modification.add_C_cysteine ) then  $static_modification.add_C_cysteine else 0.0000#             ## added to C - avg. 103.1429, mono. 103.00918
+add_L_leucine = #if str( $static_modification.add_L_leucine ) then  $static_modification.add_L_leucine else 0.0000#                 ## added to L - avg. 113.1576, mono. 113.08406
+add_I_isoleucine = #if str( $static_modification.add_I_isoleucine ) then  $static_modification.add_I_isoleucine else 0.0000#              ## added to I - avg. 113.1576, mono. 113.08406
+add_N_asparagine = #if str( $static_modification.add_N_asparagine ) then  $static_modification.add_N_asparagine else 0.0000#              ## added to N - avg. 114.1026, mono. 114.04293
+add_D_aspartic_acid = #if str( $static_modification.add_D_aspartic_acid ) then  $static_modification.add_D_aspartic_acid else 0.0000#           ## added to D - avg. 115.0874, mono. 115.02694
+add_Q_glutamine = #if str( $static_modification.add_Q_glutamine ) then  $static_modification.add_Q_glutamine else 0.0000#               ## added to Q - avg. 128.1292, mono. 128.05858
+add_K_lysine = #if str( $static_modification.add_K_lysine ) then  $static_modification.add_K_lysine else 0.0000#                  ## added to K - avg. 128.1723, mono. 128.09496
+add_E_glutamic_acid = #if str( $static_modification.add_E_glutamic_acid ) then  $static_modification.add_E_glutamic_acid else 0.0000#           ## added to E - avg. 129.1140, mono. 129.04259
+add_M_methionine = #if str( $static_modification.add_M_methionine ) then  $static_modification.add_M_methionine else 0.0000#              ## added to M - avg. 131.1961, mono. 131.04048
+add_H_histidine = #if str( $static_modification.add_H_histidine ) then  $static_modification.add_H_histidine else 0.0000#               ## added to H - avg. 137.1393, mono. 137.05891
+add_F_phenylalanine = #if str( $static_modification.add_F_phenylalanine ) then  $static_modification.add_F_phenylalanine else 0.0000#           ## added to F - avg. 147.1739, mono. 147.06841
+add_R_arginine = #if str( $static_modification.add_R_arginine ) then  $static_modification.add_R_arginine else 0.0000#                ## added to R - avg. 156.1857, mono. 156.10111
+add_Y_tyrosine = #if str( $static_modification.add_Y_tyrosine ) then  $static_modification.add_Y_tyrosine else 0.0000#                ## added to Y - avg. 163.0633, mono. 163.06333
+add_W_tryptophan = #if str( $static_modification.add_W_tryptophan ) then  $static_modification.add_W_tryptophan else 0.0000#              ## added to W - avg. 186.0793, mono. 186.07931
+#*
+add_B_user_amino_acid = #if str( $static_modification.add_B_user_amino_acid ) then  $static_modification.add_B_user_amino_acid else 0.0000#         ## added to B - avg.   0.0000, mono.   0.00000
+add_J_user_amino_acid = #if str( $static_modification.add_J_user_amino_acid ) then  $static_modification.add_J_user_amino_acid else 0.0000#         ## added to J - avg.   0.0000, mono.   0.00000
+add_O_user_amino_acid = #if str( $static_modification.add_O_user_amino_acid ) then  $static_modification.add_O_user_amino_acid else 0.0000#         ## added to O - avg.   0.0000, mono    0.00000
+add_U_user_amino_acid = #if str( $static_modification.add_U_user_amino_acid ) then  $static_modification.add_U_user_amino_acid else 0.0000#         ## added to U - avg.   0.0000, mono.   0.00000
+add_X_user_amino_acid = #if str( $static_modification.add_X_user_amino_acid ) then  $static_modification.add_X_user_amino_acid else 0.0000#         ## added to X - avg.   0.0000, mono.   0.00000
+add_Z_user_amino_acid = #if str( $static_modification.add_Z_user_amino_acid ) then  $static_modification.add_Z_user_amino_acid else 0.0000#         ## added to Z - avg.   0.0000, mono.   0.00000
+*#
+#slurp]]>
+    </configfile>
+  </configfiles>
+
+    <inputs>
+        <param name="input" type="data" format="mzml,mzxml" label="Proteomics Spectrum files in mzML or mzXML format"/>
+        <param name="input_prefix" type="text" value="" optional="true" label="File name prefix" help="Names inputs: prefix_rep#.mzXML Leave blank to use History names of inputs">
+              <validator type="regex" message="">[a-zA-Z][a-zA-Z0-9_-]*</validator>
+        </param>
+        <param name="database" type="data" format="fasta" label="Proteomics Search Database in FASTA format"/>
+        <section name="search_tolerances" expanded="false" title="Search Tolerances">
+            <conditional name="mass">
+                <param name="units" type="select" label="Set Mass tolerances" help="Sets default parameters">
+                    <option value="Da">Daltons</option>
+                    <option value="ppm">ppm</option>
+                </param>
+                <when value="Da">
+                    <!-- Need to get correct defaults for Daltions -->
+                    <param name="precursor_mass_tolerance" type="float" value="20" min="1" max="100" optional="true" label="Precursor mass tolerance"
+                        help="Precursor mass tolerance (window is +/- this value) Default: 20"/>
+                    <param name="precursor_true_tolerance" type="float" value="0" min="1" max="100" optional="true" label="Precursor true tolerance"
+                        help="True precursor mass tolerance (window is +/- this value). Used for tie breaker of results (in spectrally ambiguous cases) and zero bin boosting in open searches (0 disables these features). This option is STRONGLY recommended for open searches.  Default: 0"/>
+                    <param name="fragment_mass_tolerance" type="float" value="20" min="1" max="100" optional="true" label="Fragment mass tolerance"
+                        help="Fragment mass tolerance (window is +/- this value) Default: 20"/>
+                </when>
+                <when value="ppm">
+                    <!-- Should these be integer for ppm? -->
+                    <param name="precursor_mass_tolerance" type="float" value="20" min="1" max="100" optional="true" label="Precursor mass tolerance"
+                        help="Precursor mass tolerance (window is +/- this value) Default: 20"/>
+                    <param name="precursor_true_tolerance" type="float" value="0.0" min="0.0" max="100" optional="true" label="Precursor true tolerance"
+                        help="True precursor mass tolerance (window is +/- this value). Used for tie breaker of results (in spectrally ambiguous cases) and zero bin boosting in open searches (0 disables these features). This option is STRONGLY recommended for open searches.  Default: 0"/>
+                    <param name="fragment_mass_tolerance" type="float" value="20" min="1" max="100" optional="true" label="Fragment mass tolerance"
+                        help="Fragment mass tolerance (window is +/- this value) Default: 20"/>
+                </when>
+            </conditional>
+            <param name="isotope_error" type="select" label="isotope_error">
+                <help>
+Isotope correction for MS/MS events triggered on isotopic peaks. Should be set to 0 (disabled) for open search or 0/1/2 for correction of narrow window searches. Shifts the precursor mass window to multiples of this value multiplied by the mass of C13-C12.
+                </help>
+                <option value="0">0 - Disabled (for open search)</option>
+                <option value="0/1/2">0/1/2 - (Correction for narrow window searches)</option>
+            </param>
+        </section>
+
+        <section name="digestion" expanded="false" title="In-silico Digestion Parameters">
+            <param name="search_enzyme_name" type="text" value="Trypsin" optional="true" 
+                label="Digestion Enzyme" help="Name of enzyme to be written to the pepXML file."/>
+            <param name="search_enzyme_cutafter" type="text" value="" optional="true" 
+                label="Residues after which the enzyme cuts" help="search_enzyme_cutafter Residues after which the enzyme cuts Default: KR"/>
+            <param name="search_enzyme_butnotafter" type="text" value="" optional="true" 
+                label="Residues that the enzyme will not cut before" help="search_enzyme_butnotafter - (misnomer: should really be called butnotbefore) Default: P"/>
+            <param name="num_enzyme_termini" type="select" label="Number of enzyme termini">
+                <option value="0">0 - non-enzymatic</option>
+                <option value="1">1 - semi-enzymatic</option>
+                <option value="2">2 - fully-enzymatic</option>
+            </param>
+
+            <param name="allowed_missed_cleavage" type="integer" value="2" min="0" max="5" optional="true" 
+                label="Allowed number of missed cleavages"/>
+            <param name="digest_min_length" type="integer" value="7" min="1" max="30" optional="true" 
+                label="Minimum length of peptides to be generated during in-silico digestion"/>
+            <param name="digest_max_length" type="integer" value="64" min="10" max="100" optional="true" 
+                label="Maximum length of peptides to be generated during in-silico digestion"/>
+            <param name="digest_mass_range_min" type="float" value="500.0" min="0.0" optional="true" 
+                label="Minimum Mass of peptides to be generated during in-silico digestion in Daltons" />
+            <param name="digest_mass_range_max" type="float" value="5000.0" min="0.0" optional="true" 
+                label="Maximum Mass of peptides to be generated during in-silico digestion in Daltons" />
+
+        </section>
+
+        <section name="variable_modification" expanded="false" title="Variable Modifications">
+            <param name="variable_mods" type="text" area="True" size="120x7" value="" optional="true" 
+                label="">
+                <help><![CDATA[
+Sets variable modifications. (variable_mod_01 to variable_mod_07). Space separated values with 1st value being the modification mass and the second being the residues (specified consecutively as a string) it modifies.
+* is used to represent any amino acid [ is a modifier for protein N-terminal
+] is a modifier for protein C-terminal
+n is a modifier for peptide N-terminal c is a modifier for peptide C-terminal
+Syntax Examples:
+15.9949 M (for oxidation on methionine)
+79.66331 STY (for phosphorylation)
+-17.0265 nQnC (for pyro-Glu or loss of ammonia at peptide N-terminal)
+Example (M oxidation and N-terminal acetylation):
+variable_mod_01 = 15.9949 M variable_mod_02 = 42.0106 [*
+                ]]></help>
+                <!-- regex working in python, but not webform -->
+                <validator type="regex">^(?ms)(([+-]?\d+[.]\d+\s\S+)(\s+[+-]?\d+[.]\d+\s\S+)*)?$</validator>
+                <sanitizer sanitize="False"/>
+            </param>
+            <param name="clip_nTerm_M" type="boolean" truevalue="1" falsevalue="0" checked="false" 
+                 label="Trim protein N-terminal methionine as a variable modification"/>
+            <param name="allow_multiple_variable_mods_on_residue" type="boolean" truevalue="1" falsevalue="0" checked="true" 
+                 label="Allow each amino acid to be modified by multiple variable modifications"/>
+            <param name="max_variable_mods_per_mod" type="integer" value="2" min="0" max="5" optional="true" 
+                label="Maximum number of residues that can be occupied by each variable modification"/>
+            <param name="max_variable_mods_combinations" type="integer" value="5000" min="0" max="65534" optional="true" 
+                label="Maximum allowed number of modified variably modified peptides from each peptide sequence"
+                help="If a greater number than the maximum is generated, only the unmodified peptide is considered."/>
+        </section>
+        <section name="static_modification" expanded="false" title="Static Modifications">
+            <param name="add_Cterm_peptide" type="float" value="" optional="true" 
+                label="Statically add mass in Da to C-terminal of peptide Default: 0.0" />
+            <param name="add_Nterm_peptide" type="float" value="" optional="true" 
+                label="Statically add mass in Da to N-terminal of peptide Default: 0.0" />
+            <param name="add_Cterm_protein" type="float" value="" optional="true" 
+                label="Statically add mass in Da to C-terminal of protein Default: 0.0" />
+            <param name="add_Nterm_protein" type="float" value="" optional="true" 
+                label="Statically add mass in Da to N-terminal of protein Default: 0.0" />
+            <param name="add_A_alanine" type="float" value="" optional="true"
+                label="Statically add mass in Da to A (alanine) Default: 0.0" />
+            <param name="add_R_arginine" type="float" value="" optional="true"
+                label="Statically add mass in Da to R (arginine) Default: 0.0" />
+            <param name="add_N_asparagine" type="float" value="" optional="true"
+                label="Statically add mass in Da to N (asparagine) Default: 0.0" />
+            <param name="add_D_aspartic_acid" type="float" value="" optional="true"
+                label="Statically add mass in Da to D (aspartic_acid) Default: 0.0" />
+            <param name="add_C_cysteine" type="float" value="" optional="true"
+                label="Statically add mass in Da to C (cysteine) Default: 0.0" />
+            <param name="add_E_glutamic_acid" type="float" value="" optional="true"
+                label="Statically add mass in Da to E (glutamic_acid) Default: 0.0" />
+            <param name="add_Q_glutamine" type="float" value="" optional="true"
+                label="Statically add mass in Da to Q (glutamine) Default: 0.0" />
+            <param name="add_G_glycine" type="float" value="" optional="true"
+                label="Statically add mass in Da to G (glycine) Default: 0.0" />
+            <param name="add_H_histidine" type="float" value="" optional="true"
+                label="Statically add mass in Da to H (histidine) Default: 0.0" />
+            <param name="add_I_isoleucine" type="float" value="" optional="true"
+                label="Statically add mass in Da to I (isoleucine) Default: 0.0" />
+            <param name="add_L_leucine" type="float" value="" optional="true"
+                label="Statically add mass in Da to L (leucine) Default: 0.0" />
+            <param name="add_K_lysine" type="float" value="" optional="true"
+                label="Statically add mass in Da to K (lysine) Default: 0.0" />
+            <param name="add_M_methionine" type="float" value="" optional="true"
+                label="Statically add mass in Da to M (methionine) Default: 0.0" />
+            <param name="add_F_phenylalanine" type="float" value="" optional="true"
+                label="Statically add mass in Da to F (phenylalanine) Default: 0.0" />
+            <param name="add_P_proline" type="float" value="" optional="true"
+                label="Statically add mass in Da to P (proline) Default: 0.0" />
+            <param name="add_S_serine" type="float" value="" optional="true"
+                label="Statically add mass in Da to S (serine) Default: 0.0" />
+            <param name="add_T_threonine" type="float" value="" optional="true"
+                label="Statically add mass in Da to T (threonine) Default: 0.0" />
+            <param name="add_W_tryptophan" type="float" value="" optional="true"
+                label="Statically add mass in Da to W (tryptophan) Default: 0.0" />
+            <param name="add_Y_tyrosine" type="float" value="" optional="true"
+                label="Statically add mass in Da to Y (tyrosine) Default: 0.0" />
+            <param name="add_V_valine" type="float" value="" optional="true"
+                label="Statically add mass in Da to V (valine) Default: 0.0" />
+        </section>
+        <section name="spectrum_processing" expanded="false" title="Spectrum Processing">
+            <param name="minimum_peaks" type="integer" value="10" min="0" optional="true" 
+                label="Minimum number of peaks in experimental spectrum for matching" />
+            <param name="use_topN_peaks" type="integer" value="50" min="0" optional="true" 
+                label="Pre-process experimental spectrum to only use top N peaks" />
+            <param name="minimum_ratio" type="float" value="" min="0.0" optional="true"
+                label="Filter peaks by minimum_ratio of base peak"
+                help="Filters out all peaks in experimental spectrum less intense than this multiple of the base peak intensit Default: 0.0" />
+
+            <param name="max_fragment_charge" type="integer" value="2" min="1" max="4" optional="true" 
+                label="Maximum charge state for theoretical fragments to match (1-4)" />
+            
+            <conditional name="precursor">
+                <param name="override_charge" type="select" label="Precursor Charge">
+                    <option value="0">Use precursor charge</option>
+                    <option value="1">Ignore precursor charge and set range</option>
+                </param>
+                <when value="0"/>
+                <when value="1">
+                    <param name="precursor_charge_min" type="integer" value="1" min="0" max="6"
+                        label="Minimum Potential Precursor Charge" />
+                    <param name="precursor_charge_max" type="integer" value="4" min="0" max="8"
+                        label="Maximum Potential Precursor Charge" />
+                </when>
+            </conditional>
+            <section name="clear" expanded="false" title="Clear mz range for iTRAQ/TMT experiments">
+                <param name="clear_mz_range_min" type="float" value="0.0" min="0.0" optional="true" label="Minimum of m/z range to remove" />
+                <param name="clear_mz_range_max" type="float" value="0.0" min="0.0" optional="true" label="Maximum of m/z range to remove" />
+            </section>
+        </section>
+        <section name="open_search" expanded="false" title="Open Search">
+            <param name="track_zero_topN" type="integer" value="" min="0" optional="true" 
+                label="Track top N unmodified peptide results" >
+                <help>
+                    Track top N unmodified peptide results separately from main results internally for boosting features. 
+                    Should be set to a number greater than output_report_topN if zero bin boosting is desired.
+                    Default: 0
+                </help>
+            </param>
+            <param name="zero_bin_accept_expect" type="float" value="" min="0.0" optional="true"
+                label="Ranks a zero-bin hit above all non-zero-bin hit if it has expectation less than this value."
+                help="Default: 0.0" />
+            <param name="zero_bin_mult_expect" type="float" value="" min="0.0" optional="true"
+                label="Multiplies expect value of PSMs in the zero-bin during results ordering"
+                help="(set to less than 1 for boosting) Default: 1.0" />
+            <param name="add_topN_complementary" type="integer" value="" min="0" optional="true" 
+                label="Insert complementary ions corresponding to the top N most intense fragments in each experimental spectra." >
+                <help>
+                    Useful for recovery of modified peptides near C-terminal in open search. 
+                    Should be set to 0 (disabled) otherwise.
+                    Default: 0
+                </help>
+            </param>
+
+        </section>
+        <section name="modeling_output" expanded="false" title="Modeling and Output">
+            <param name="min_fragments_modelling" type="integer" value="3" min="1" optional="true" 
+                label="Minimum number of matched peaks in PSM for inclusion in statistical modeling Default:3" />
+            <param name="min_matched_fragments" type="integer" value="4" min="1" optional="true" 
+                label="Minimum number of matched peaks for PSM to be reported Default:3" 
+                help="recommend a minimum of 4 for narrow window searching and 6 for open searches"/>
+            <param name="output_report_topN" type="integer" value="1" min="1" optional="true" 
+                label="Reports top N PSMs per input spectrum  Default:1" />
+            <param name="output_max_expect" type="float" value="50.0" min="0.0" optional="true"
+                label="Suppresses reporting of PSM if top hit has expectation greater than this threshold" />
+        </section>
+        <param name="output_format" type="select" label="output format">
+            <option value="pepXML">pepXML</option>
+            <option value="tsv">Tabular</option>
+        </param>
+    </inputs>
+
+    <outputs>
+        <data format="txt" name="output_params" label="${tool.name}.params"/>
+        <data format="txt" name="logfile" label="${tool.name} log"/>
+        <data format="tsv" name="output_tsv" label="${tool.name}.tsv ${on_string}" >
+            <filter>output_format == 'tsv'</filter>
+        </data>
+        <data format="pepxml" name="output_pepxml" label="${tool.name}.pep.xml ${on_string}" >
+            <filter>output_format == 'pepXML'</filter>
+        </data>
+    </outputs>
+    <tests>
+        <test>
+        </test>
+    </tests>
+    <help>
+<![CDATA[
+=============
+**MSFragger**
+=============
+
+MSFragger is an ultrafast database search tool for peptide identifications in mass spectrometry-based proteomics. It differs from conventional search engines by computing similarity scores in a fragment-centric fashion using a theoretical fragment index of candidate peptides. The speed of MSFragger makes it particularly suitable for `open' database searches, where the precursor mass tolerance is set to hundreds of Daltons, for the identification of modified peptides. MSFragger is implemented in the cross-platform Java programming language and is compatible with standard proteomics file formats such as MGF/mzXML/mzML/pepXML.
+
+
+**Common Static Modifications**
+
+  ::
+
+    - methylation of K : 14.015650
+    - oxidation of M : 15.994915
+    - carboxymethyl C : 58.005479
+    - carbamidomethyl C : 57.021464
+    - deamidation of N and Q : 0.984016
+    - propionamide C : 71.037114
+    - phosphorylation of S : 79.966331
+    - phosphorylation of T : 79.966331
+    - phosphorylation of Y : 79.966331
+    - M cleavage from protein n-term : -131.040485
+    - acetylation of protein n-term : 42.010565
+    - methylation of protein n-term : 14.015650
+    - tri-methylation of protein n-term : 42.046950
+    - beta methythiolation of D : 45.987721
+    - methylation of Q : 14.015650
+    - tri-methylation of K : 42.046950
+    - methylation of D : 14.015650
+    - methylation of E : 14.015650
+    - methylation of peptide c-term : 14.015650
+    - tri-deuteromethylation of D : 17.034480
+    - tri-deuteromethylation of E : 17.034480
+    - tri-deuteromethylation of peptide c-term : 17.034480
+    - n-formyl met addition : 159.035399
+    - 2-amino-3-oxo-butanoic acid T : -2.015650
+    - acetylation of K : 42.010565
+    - amidation of peptide c-term : -0.984016
+    - beta-methylthiolation of D (duplicate of 13) : 45.987721
+    - carboxyamidomethylation of K : 57.021464
+    - carboxyamidomethylation of H : 57.021464
+    - carboxyamidomethylation of D : 57.021464
+    - carboxyamidomethylation of E : 57.021464
+    - carbamylation of K : 43.005814
+    - carbamylation of n-term peptide : 43.005814
+    - citrullination of R : 0.984016
+    - oxidation of C to cysteic acid : 47.984744
+    - di-iodination of Y : 251.793296
+    - di-methylation of K : 28.031300
+    - di-methylation of R : 28.031300
+    - di-methylation of peptide n-term : 28.031300
+    - oxidation of F to dihydroxyphenylalanine : 31.989829
+    - gammathiopropionylation of K : 87.998285
+    - gammathiopropionylation of peptide n-term : 87.998285
+    - farnesylation of C : 204.187801
+    - formylation of K : 27.994915
+    - formylation of peptide n-term : 27.994915
+    - oxidation of W to formylkynurenin : 31.989829
+    - fluorophenylalanine : 17.990578
+    - beta-carboxylation of D : 43.989829
+    - gamma-carboxylation of E : 43.989829
+    - geranyl-geranyl : 272.250401
+    - glucuronylation of protein n-term : 176.032088
+    - glutathione disulfide : 305.068156
+    - ubiquitinylation residue : 114.042927
+    - guanidination of K : 42.021798
+    - oxidation of H to N : -23.015984
+    - oxidation of H to D : -22.031969
+    - homoserine : -29.992806
+    - homoserine lactone : -48.003371
+    - oxidation of W to hydroxykynurenin : 19.989829
+    - hydroxylation of D : 15.994915
+    - hydroxylation of K : 15.994915
+    - hydroxylation of N : 15.994915
+    - hydroxylation of P : 15.994915
+    - hydroxylation of F : 15.994915
+    - hydroxylation of Y : 15.994915
+    - iodination of Y : 125.896648
+    - oxidation of W to kynurenin : 3.994915
+    - lipoyl K : 188.032956
+    - methyl ester of peptide c-term (duplicate of 18) : 14.015650
+    - methyl ester of D : 14.015650
+    - methyl ester of E (duplicate of 17) : 14.015650
+    - methyl ester of S : 14.015650
+    - methyl ester of Y : 14.015650
+    - methyl C : 14.015650
+    - methyl H : 14.015650
+    - methyl N : 14.015650
+    - methylation of peptide n-term : 14.015650
+    - methyl R : 14.015650
+    - myristoleylation of G : 208.182715
+    - myristoyl-4H of G : 206.167065
+    - myristoylation of peptide n-term G : 210.198366
+    - myristoylation of K : 210.198366
+    - formylation of protein n-term : 27.994915
+    - NEM C : 125.047679
+    - NIPCAM : 99.068414
+    - oxidation of W to nitro : 44.985078
+    - oxidation of Y to nitro : 44.985078
+    - O18 on peptide n-term : 2.004246
+    - di-O18 on peptide n-term : 4.008490
+    - oxidation of H : 15.994915
+    - oxidation of W : 15.994915
+    - phosphopantetheine S : 340.085794
+    - palmitoylation of C : 238.229666
+    - palmitoylation of K : 238.229666
+    - palmitoylation of S : 238.229666
+    - palmitoylation of T : 238.229666
+    - phosphorylation of S with prompt loss : -18.010565
+    - phosphorylation of T with prompt loss : -18.010565
+    - phosphorylation with prompt loss on Y : -18.010565
+    - phosphorylation with neutral loss on C : 79.966331
+    - phosphorylation with neutral loss on D : 79.966331
+    - phosphorylation with neutral loss on H : 79.966331
+    - propionyl light K : 56.026215
+    - propionyl light on peptide n-term : 56.026215
+    - propionyl heavy K : 59.036279
+    - propionyl heavy peptide n-term : 59.036279
+    - pyridyl K : 119.037114
+    - pyridyl peptide n-term : 119.037114
+    - pyro-cmC : -17.026549
+    - pyro-glu from n-term E : -18.010565
+    - pyro-glu from n-term Q : -17.026549
+    - oxidation of P to pyroglutamic acid : 13.979265
+    - s-pyridylethylation of C : 105.057849
+    - SeMet : 47.944449
+    - sulfation of Y : 79.956815
+    - sulphone of M : 31.989829
+    - tri-iodination of Y : 377.689944
+    - tri-methylation of R : 42.046950
+    - n-acyl diglyceride cysteine : 788.725777
+    - ICAT light : 227.126991
+    - ICAT heavy : 236.157185
+    - CAMthiopropanoyl K : 145.019749
+    - phosphorylation with neutral loss on S : 79.966331
+    - phosphorylation with neutral loss on T : 79.966331
+    - phosphorylation of S with ETD loss : 79.966331
+    - phosphorylation of T with ETD loss : 79.966331
+    - heavy arginine-13C6 : 6.020129
+    - heavy arginine-13C6-15N4 : 10.008269
+    - heavy lysine-13C6 : 6.020129
+    - PNGasF in O18 water : 2.988261
+    - beta elimination of S : -18.010565
+    - beta elimination of T : -18.010565
+    - oxidation of C to sulfinic acid : 31.989829
+    - arginine to ornithine : -42.021798
+    - dehydro of S and T : -18.010565
+    - carboxykynurenin of W : 47.984744
+    - sumoylation of K : 484.228200
+    - iTRAQ114 on nterm : 144.105918
+    - iTRAQ114 on K : 144.105918
+    - iTRAQ114 on Y : 144.105918
+    - iTRAQ115 on nterm : 144.099599
+    - iTRAQ115 on K : 144.099599
+    - iTRAQ115 on Y : 144.099599
+    - iTRAQ116 on nterm : 144.102063
+    - iTRAQ116 on K : 144.102063
+    - iTRAQ116 on Y : 144.102063
+    - iTRAQ117 on nterm : 144.102063
+    - iTRAQ117 on K : 144.102063
+    - iTRAQ117 on Y : 144.102063
+    - MMTS on C : 45.987721
+    - heavy lysine - 2H4 : 4.025107
+    - heavy lysine - 13C6 15N2 : 8.014199
+    - Asparagine HexNAc : 203.079373
+    - Asparagine dHexHexNAc : 349.137281
+    - Serine HexNAc : 203.079373
+    - Threonine HexNAc : 203.079373
+    - palmitoleyl of S : 236.214016
+    - palmitoleyl of C : 236.214016
+    - palmitoleyl of T : 236.214016
+    - CHD2-di-methylation of K : 32.056407
+    - CHD2-di-methylation of peptide n-term : 32.056407
+    - Maleimide-PEO2-Biotin of C : 525.225719
+    - phosphorylation of H : 79.966331
+    - oxidation of C : 15.994915
+    - oxidation of Y (duplicate of 64) : 15.994915
+    - Uniblue A on K : 484.039891
+    - deamidation of N : 0.984016
+    - trideuteration of L (SILAC) : 3.018830
+    - TMT duplex on K : 225.155833
+    - TMT duplex on n-term peptide : 225.155833
+    - TMT 6-plex on K : 229.162932
+    - TMT 6-plex on n-term peptide : 229.162932
+    - iTRAQ8plex:13C(7)15N(1) on nterm : 304.205360
+    - iTRAQ8plex:13C(7)15N(1) on K : 304.205360
+    - iTRAQ8plex:13C(7)15N(1) on Y : 304.205360
+    - iTRAQ8plex:13C(6)15N(2) on nterm : 304.199040
+    - iTRAQ8plex:13C(6)15N(2) on K : 304.199040
+    - iTRAQ8plex:13C(6)15N(2) on Y : 304.199040
+    - selenocysteine : 47.944449
+    - carboxymethylated selenocysteine : 105.949928
+
+]]>
+    </help>
+</tool>