changeset 10:86daefc0e88d draft

Uploaded
author iracooke
date Fri, 13 Jun 2014 18:36:52 -0400
parents e0a1e8a0500a
children deb61a965680
files README README.md msgfplus_search.xml repository_dependencies.xml tool-data/msgfplus_mods.loc.sample tool-data/pepxml_databases.loc.sample
diffstat 6 files changed, 261 insertions(+), 8 deletions(-) [+]
line wrap: on
line diff
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/README	Fri Jun 13 18:36:52 2014 -0400
@@ -0,0 +1,6 @@
+This package is a galaxy wrapper for the MSGF+ search tool.
+
+Requirements:
+This package uses protk, msgfplus and proteowizard, which must be installed separately. 
+
+For instructions please see: https://github.com/iracooke/protk/#galaxy-integration
\ No newline at end of file
--- a/README.md	Fri Jun 13 18:36:33 2014 -0400
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,8 +0,0 @@
-## What is it?
-Galaxy tool definition file and wrapper scripts for the [MSGF+ Search Engine](http://proteomics.ucsd.edu/Software/MSGFPlus.html).
-
-## Installation
-Install from the main galaxy toolshed at http://toolshed.g2.bx.psu.edu/
-
-Depends on command-line scripts and databases available in the [protk ruby gem](https://bitbucket.org/iracooke/protk). 
-
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/msgfplus_search.xml	Fri Jun 13 18:36:52 2014 -0400
@@ -0,0 +1,188 @@
+<tool id="proteomics_search_msgfplus_1" name="MSGF+ MSMS Search" version="1.0.3">
+    <description>Run an MSGF+ Search</description>
+    <requirements>
+        <requirement type="package" version="1.3">protk</requirement>
+        <requirement type="package" version="20140210">msgfplus</requirement>
+        <requirement type="package" version="3_0_4388">proteowizard</requirement>
+    </requirements>
+    <command>
+        msgfplus_search.rb
+        #if $database.source_select=="built_in":
+         --galaxy -d $database.dbkey
+        #else
+        --galaxy -d $database.fasta_file
+        #end if
+
+        --var-mods='
+        $variable_mods
+        #for $custom_variable_mod in $custom_variable_mods:
+        ,${custom_variable_mod.custom_mod}
+        #end for
+        '
+
+        --fix-mods='
+        $fixed_mods
+        #for $custom_fix_mod in $custom_fix_mods:
+        ,${custom_fix_mod.custom_mod}
+        #end for
+        '
+
+        $input_file 
+        -o $output 
+        -r 
+        --enzyme=$enzyme 
+        --precursor-ion-tol-units=$precursor_tolu 
+        -v $missed_cleavages
+        $cleavage_semi
+        -f $fragment_ion_tol 
+        -p $precursor_ion_tol 
+        --instrument=$instrument
+        --isotope-error-range=$isotope_error_range
+        --fragment-method=$fragment_method
+        --protocol=$protocol
+        --min-pep-len=$min_pep_len
+        --max-pep-len=$max_pep_len
+        --max-pep-charge=$max_pep_charge
+        --min-pep-charge=$min_pep_charge
+        --num-reported-matches=$num_reported_matches
+        --java-mem=$java_mem
+        #unless $pepxml_output_use:
+        --no-pepxml
+        #end unless
+    </command>
+
+    <inputs>
+        <conditional name="database">
+            <param name="source_select" type="select" label="Database source">
+                <option value="built_in">Built-In</option>
+                <option value="input_ref" selected="true">Your Upload File</option>
+            </param>
+            <when value="built_in">
+                <param name="dbkey" type="select" format="text" >
+                    <label>Database</label>
+                    <options from_file="pepxml_databases.loc">
+                        <column name="name" index="0" />
+                        <column name="value" index="2" />
+                    </options>
+                </param>
+            </when>
+            <when value="input_ref">
+                <param name="fasta_file" type="data" format="fasta" label="Uploaded FASTA file" />
+            </when>
+        </conditional>
+        <param name="input_file" type="data" format="mzml" multiple="false" label="MSMS File" help="An mzML file with MS/MS data"/>
+        <param name="variable_mods" format="text" type="select" multiple="true" label="Variable Modifications" help="Multiple Selection Allowed">
+            <options from_file="msgfplus_mods.loc">
+                <column name="name" index="0" />
+                <column name="value" index="2" />
+            </options>
+        </param>
+        <repeat name="custom_variable_mods" title="Custom Variable Modifications" 
+            help="See https://bix-lab.ucsd.edu/pages/viewpage.action?pageId=13533355 for details on how to create these">
+            <param name="custom_mod" type="text" />
+        </repeat>
+        <param name="fixed_mods" format="text" type="select" multiple="true" label="Fixed Modifications" help="Multiple Selection Allowed">
+            <options from_file="msgfplus_mods.loc">
+                <column name="name" index="0" />
+                <column name="value" index="2" />
+            </options>
+        </param>
+        <repeat name="custom_fix_mods" title="Custom Fixed Modifications" help="See https://bix-lab.ucsd.edu/pages/viewpage.action?pageId=13533355 for details on how to create these">
+            <param name="custom_mod" type="text">
+            </param>
+        </repeat>
+        <param name="missed_cleavages" type="select" format="text" help="Allow peptides to contain up to this many missed enzyme cleavage sites">
+            <label>Missed Cleavages Allowed</label>
+            <option value="0">0</option>
+            <option value="1">1</option>
+            <option value="2">2</option>
+        </param>
+        
+        <param name="cleavage_semi" type="boolean" label="Allow semi-cleaved peptides" help="This can increase search time dramatically" truevalue="" falsevalue="--no-cleavage-semi" />
+
+        <param name="enzyme" type="select" format="text">
+            <label>Enzyme</label>
+            <option value="0">unspecific cleavage</option>
+            <option value="1">Trypsin</option>
+            <option value="2">Chymotrypsin</option>
+            <option value="3">Lys-C</option>
+            <option value="4">Lys-N</option>
+            <option value="5">glutamyl endopeptidase</option>
+            <option value="6">Arg-C</option>
+            <option value="7">Asp-N</option>
+            <option value="8">alphaLP</option>
+            <option value="9">no cleavage</option>
+        </param>
+        
+        <param name="instrument" type="select" format="text">
+            <label>Instrument Type</label>
+            <option value="2">TOF</option>
+            <option value="0">Low-res LCQ/LTQ</option>
+            <option value="1">High-res LTQ</option>
+        </param>
+
+        <param name="fragment_method" type="select" format="text">
+            <label>Fragmentation Method</label>
+            <option value="0">Respect Input File</option>
+            <option value="1">CID</option>
+            <option value="2">ETD</option>
+            <option value="3">HCD</option>
+            <option value="4">Merge spectra from same precursor</option>
+        </param>
+
+        <param name="protocol" type="select" format="text">
+            <label>Protocol</label>
+            <option value="0">NoProtocol</option>
+            <option value="1">Phosphorylation</option>
+            <option value="2">iTRAQ</option>
+            <option value="3">iTRAQPhospho</option>
+        </param>
+
+        <param name="fragment_ion_tol" help="Fragment Ion Tolerance in Daltons" type="float" value="0.65" min="0" max="10000" label="Fragment ion tolerance"/>
+
+        <param name="precursor_ion_tol" help="Precursor Ion Tolerance (Da or ppm)" type="float" value="100" min="0" max="10000" label="Precursor ion tolerance"/>
+        <param name="precursor_tolu" type="select" format="text">
+            <label>Precursor Ion Tolerance Units</label>
+            <option value="ppm">ppm</option>
+            <option value="Da">Da</option>
+        </param>
+
+        <param name="isotope_error_range" help="Takes into account of the error introduced by chooosing a non-monoisotopic peak for fragmentation." type="text" size="80" value="0,1" label="Isotope Error Range"/>
+        <param name="min_pep_len" help="" type="integer" value="6" label="Minimum Peptide Length"/>
+        <param name="max_pep_len" help="" type="integer" value="40" label="Maximum Peptide Length"/>
+        <param name="min_pep_charge" help="" type="integer" value="2" label="Minimum Peptide Charge"/>
+        <param name="max_pep_charge" help="" type="integer" value="3" label="Maximum Peptide Charge"/>
+        <param name="num_reported_matches" help="Number of matches per spectrum to be reported" type="integer" value="1" label="Num reported matches"/>
+        <param name="java_mem" help="Increase this value if you get out of memory errors" type="text" size="80" value="3500M" label="Java Memory Limit"/>
+        <param name="pepxml_output_use" type="boolean" label="Convert results to pepXML" help="" truevalue="true" falsevalue="false" />
+    </inputs>
+    <outputs>
+        <data format="mzid" name="output" metadata_source="input_file" label="MSGF+_vs_${database.dbkey if $database.has_key('dbkey') else $database.fasta_file.display_name}.${input_file.display_name}.${input_file.display_name}">
+            <change_format>
+                <when input="pepxml_output_use" value="true" format="raw_pepxml" metadata_source="input_file" 
+                    label="MSGF+_vs_${database.dbkey if $database.has_key('dbkey') else $database.fasta_file.display_name}.${input_file.display_name}.${input_file.display_name}"/>
+            </change_format>
+        </data>
+    </outputs>
+    <tests>
+        <test>
+            <param name="source_select" value="input_ref"/>
+              <param name="fasta_file" value="bsa.fasta"/>
+                  <param name="input_file" value="bsa.mzML"/>
+              <output name="output" file="bsa.mzid" compare="sim_size" delta="600" /> 
+        </test>
+    </tests>
+    <help>
+
+**What it does**
+
+Runs an MS/MS database search using the MSGFPlus search engine. Output is in the form of a pepXML file containing identified peptides along with their raw search scores.
+
+----
+
+**References**
+
+Please see http://proteomics.ucsd.edu/Software/MSGFPlus.html for details of the MSGFPlus search engine and references describing its algorithm
+
+    </help>
+</tool>
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/repository_dependencies.xml	Fri Jun 13 18:36:52 2014 -0400
@@ -0,0 +1,4 @@
+<?xml version="1.0"?>
+<repositories description="Proteomics datatypes">
+    <repository changeset_revision="f66f8ca7b7b9" name="proteomics_datatypes" owner="iracooke" toolshed="http://toolshed.g2.bx.psu.edu" />
+ </repositories>
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/tool-data/msgfplus_mods.loc.sample	Fri Jun 13 18:36:52 2014 -0400
@@ -0,0 +1,50 @@
+#This file lists the names of inbuilt chemical modifications accepted by msgfplus
+#Each entry consists of 4 tab separated fields like this
+#<Displayed Name>	<DBKey>	<Modification String>	<DBKey>
+#
+#Modification strings should conform to the standard MSGFPlus syntax with the following exception
+#The ModType field is overridden by the msgfplus_search.rb tool. In other words any of these mods
+#May be passed to the tool as a variable or fixed mod and the tool will substitute the appropriate ModType
+#value
+#
+#Standard MSGFPlus syntax is
+#
+# To input a modification, use the following command:
+# Mass or CompositionStr, Residues, ModType, Position, Name (all the five fields are required).
+# CompositionStr (C[Num]H[Num]N[Num]O[Num]S[Num]P[Num])
+# 	- C (Carbon), H (Hydrogen), N (Nitrogen), O (Oxygen), S (Sulfer) and P (Phosphorus) are allowed.
+# 	- Atom can be omitted. The sequence of atoms must be followed. 
+# 	- Negative numbers are allowed.
+# 	- E.g. C2H2O1 (valid), H2C1O1 (invalid) 
+# Mass can be used instead of CompositionStr. It is important to specify accurate masses (integer masses are insufficient).
+# 	- E.g. 15.994915 
+# Residues: affected amino acids (must be upper letters)
+# 	- Must be uppor letters or *
+# 	- Use * if this modification is applicable to any residue. 
+# 	- * should not be "anywhere" modification (e.g. "15.994915, *, opt, any, Oxidation" is not allowed.) 
+# 	- E.g. NQ, *
+# ModType: "fix" for fixed modifications, "opt" for variable modifications (case insensitive)
+# Position: position in the peptide where the modification can be attached. 
+# 	- One of the following five values should be used:
+# 	- any (anywhere), N-term (peptide N-term), C-term (peptide C-term), Prot-N-term (protein N-term), Prot-C-term (protein C-term) 
+# 	- Case insensitive
+# 	- "-" can be omitted
+# 	- E.g. any, Any, Prot-n-Term, ProtNTerm => all valid
+# Name: name of the modification (Unimod PSI-MS name)
+# 	- For proper mzIdentML output, this name should be the same as the Unimod PSI-MS name
+# 	- E.g. Phospho, Acetyl
+#C2H3N1O1,C,fix,any,Carbamidomethyl 		# Fixed Carbamidomethyl C
+# Variable Modifications (default: none)
+#O1,M,opt,any,Oxidation				# Oxidation M
+#15.994915,M,opt,any,Oxidation			# Oxidation M (mass is used instead of CompositionStr)
+#H-1N-1O1,NQ,opt,any,Deamidated			# Negative numbers are allowed.
+#C2H3NO,*,opt,N-term,Carbamidomethyl		# Variable Carbamidomethyl N-term
+#H-2O-1,E,opt,N-term,Pyro_glu			# Pyro-glu from E
+#H-3N-1,Q,opt,N-term,Pyro-glu			# Pyro-glu from Q
+#C2H2O,*,opt,Prot-N-term,Acetyl			# Acetylation Protein N-term
+#C2H2O1,K,opt,any,Acetyl			# Acetylation K
+#CH2,K,opt,any,Methy				# Methylation K
+#HO3P,STY,opt,any,Phospho			# Phosphorylation STY
+
+Carbamidomethyl C	carbamidomethyl_c_	C2H3N1O1,C,opt,any,Carbamidomethyl	carbamidomethyl_c_
+Oxidation M	oxidation_m_	O1,M,opt,any,Oxidation	oxidation_m_
\ No newline at end of file
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/tool-data/pepxml_databases.loc.sample	Fri Jun 13 18:36:52 2014 -0400
@@ -0,0 +1,13 @@
+#This file lists the names of protein databases installed locally in protk. 
+# These are used by omssa and x!tandem as well as the "mascot to pepxml" tool
+# In order to combine search results with Interprophet searches must be run against an identical database
+#
+# Entries should follow the be structured as follows
+# Display_name omssa_tandem_dbname dbkey
+#
+#
+Swissprot	spall_	spall	spall_
+Combined PlasmboDB (falciparum) and Swissprot Human	plasmodb_pfalciparum_sphuman_	plasmodb_pfalciparum_sphuman	plasmodb_pfalciparum_sphuman_
+Swissprot Human	sphuman_	sphuman	sphuman_
+Combined Swissprot/TRembl Human	sptrhuman_	sptrhuman	sptrhuman_
+Swissprot Mouse	spmouse_	spmouse	spmouse_