19
|
1 <tool id="tagrecon" name="TagRecon" version="0.1.0">
|
|
2 <description></description>
|
|
3 <command>
|
|
4 #set $db_name = $input_database.display_name.replace(".fasta", "") + ".fasta"
|
|
5 #if $output_type.value == "mzid"
|
|
6 #set $output_ext="mzid"
|
|
7 #set $output_format="mzIdentML"
|
|
8 #else
|
|
9 #set $output_ext="pepXML"
|
|
10 #set $output_format="pepXML"
|
|
11 #end if
|
|
12 #set $input_name = $input.display_name
|
|
13 #set $tags_name = $input_name.split(".")[0] + ".tags"
|
|
14 #set $output_name = $input_name.split(".")[0] + "." + $output_ext
|
|
15 #set $static_mods_str = ""
|
|
16 #for $static_mod in $static_mods
|
|
17 #set $static_mods_str = $static_mods_str + "" + str($static_mod.aa) + " " + str($static_mod.mass)
|
|
18 #end for
|
|
19 #set $dynamic_mods_str = ""
|
|
20 #set $dynamic_mod_index = 0
|
|
21 #for $dynamic_mod in $dynamic_mods
|
|
22 #set $dynamic_mods_str = $dynamic_mods_str + "" + str($dynamic_mod.motif) + " " + $mod_rep_chars[$dynamic_mod_index] + " " + str($dynamic_mod.mass)
|
|
23 #set $dynamic_mod_index = $dynamic_mod_index + 1
|
|
24 #end for
|
|
25 ln -s '$input' '${input_name}';
|
|
26 ln -s '$input_database' '${db_name}';
|
|
27 cp \${TAGRECON_UNIMOD_PATH:-${GALAXY_DATA_INDEX_DIR}/unimod.xml} .;
|
|
28 cp \${TAGRECON_BLOSUM_PATH:-${GALAXY_DATA_INDEX_DIR}/blosum62.fas} .;
|
|
29 directag '${input_name}' \
|
|
30 -StaticMods '${static_mods_str}' \
|
|
31 -DynamicMods '${dynamic_mods_str}' \
|
|
32 -MaxDynamicMods '$max_dynamic_mods' \
|
|
33 -MaxResults ${max_tags} \
|
|
34 -FragmentMzTolerance ${tag_mz_tolerance} \
|
|
35 #if $advanced_charge_options.specify
|
|
36 -UseChargeStateFromMS $advanced_charge_options.use_ms_charge_state \
|
|
37 #end if
|
|
38 #if $tag_weights.specify
|
|
39 -IntensityScoreWeight $tag_weights.intensity \
|
|
40 -MzFidelityScoreWeight $tag_weights.mz \
|
|
41 -ComplementScoreWeight $tag_weights.complement \
|
|
42 #end if
|
|
43 ;
|
|
44 tagrecon -DecoyPrefix '${decoy_prefix}' \
|
|
45 -ProteinDatabase '${db_name}' \
|
|
46 -OutputFormat '${$output_format}' \
|
|
47 -StaticMods '${static_mods_str}' \
|
|
48 -DynamicMods '${dynamic_mods_str}' \
|
|
49 -MaxDynamicMods '$max_dynamic_mods' \
|
|
50 -CleavageRules '${protease}' \
|
|
51 -MaxMissedCleavages ${max_missed_cleavages} \
|
|
52 #if $advanced_cleavage_options.specify
|
|
53 -MinTerminiCleavages $advanced_cleavage_options.min_termini_cleavages \
|
|
54 -UseNETAdjustment $advanced_cleavage_options.use_net_adjustment \
|
|
55 #end if
|
|
56 #if $advanced_charge_options.specify
|
|
57 -UseChargeStateFromMS $advanced_charge_options.use_ms_charge_state \
|
|
58 #end if
|
|
59 #if $search_untagged.search
|
|
60 -SearchUntaggedSpectra true \
|
|
61 -UntaggedSpectraPrecMZTol $search_untagged.precursor_mz_tolerance
|
|
62 #end if
|
|
63 '${tags_name}';
|
|
64 mv '$output_name' output
|
|
65 </command>
|
|
66 <stdio>
|
|
67 <exit_code range="1:" level="fatal" description="Job Failed" />
|
|
68 <regex match="^Could not find the default configuration file.*$"
|
|
69 source="both"
|
|
70 level="warning" />
|
|
71 </stdio>
|
|
72 <inputs>
|
|
73 <conditional name="type">
|
|
74 <param name="input_type" type="select" label="Input Type">
|
|
75 <option value="mzml">mzML</option>
|
|
76 <option value="mzxml">mzXML</option>
|
|
77 <option value="mgf">mgf</option>
|
|
78 <option value="ms2">ms2</option>
|
|
79 </param>
|
|
80 <when value="mzml">
|
|
81 <param format="mzml" name="input" type="data" label="Input mzML"/>
|
|
82 </when>
|
|
83 <when value="mzxml">
|
|
84 <param format="mzxml" name="input" type="data" label="Input mzXML"/>
|
|
85 </when>
|
|
86 <when value="mgf">
|
|
87 <param format="mgf" name="input" type="data" label="Input mgf"/>
|
|
88 </when>
|
|
89 <when value="ms2">
|
|
90 <param format="ms2" name="input" type="data" label="Input ms2"/>
|
|
91 </when>
|
|
92 </conditional>
|
|
93 <param name="output_type" type="select" label="Output Type">
|
|
94 <option value="raw_pepxml">pepXML</option>
|
|
95 <option value="mzid">mzIdentML</option>
|
|
96 </param>
|
|
97 <param format="fasta" name="input_database" type="data" label="Protein Database"/>
|
|
98 <param name="decoy_prefix" type="text" label="Decoy Prefix"/>
|
|
99 <repeat name="static_mods" title="Static Modifications (used by both directag and tagrecon) ">
|
|
100 <param name="aa" type="text" label="Amino Acid" />
|
|
101 <param name="mass" type="float" label="Mass" value="0" />
|
|
102 </repeat>
|
|
103 <repeat name="dynamic_mods" title="Dynamic Modifications (used by both directag and tagrecon)" max="7">
|
|
104 <param name="motif" type="text" label="Amino Acid Motif" />
|
|
105 <param name="mass" type="float" label="Mass" value="0" />
|
|
106 </repeat>
|
|
107 <param name="max_dynamic_mods" type="integer" label="Maximum Dynamic Mods per Sequence" value="2" />
|
|
108 <param name="tag_length" type="integer" label="Tag Length" value="3" help="A sequence tag is generated from the gaps between a number of peaks equal to this parameter plus one. Longer tag lengths are more specific, but harder to find because many consecutive ion fragments are rare." />
|
|
109 <param name="max_tags" type="integer" label="Maximum Number of Tags per Spectrum" value="20" />
|
|
110 <param name="tag_mz_tolerance" type="float" label="Fragment m/z Tolerance during Tag Generation (Da/z)" value=".5" />
|
|
111 <param name="protease" type="select" label="Protease">
|
|
112 <options from_file="proteases.loc">
|
|
113 <column name="name" index="0" />
|
|
114 <column name="value" index="1" />
|
|
115 </options>
|
|
116 </param>
|
|
117 <param name="max_missed_cleavages" label="Maximum Number of Missed Cleavages" type="integer" value="-1" />
|
|
118 <conditional name="advanced_cleavage_options">
|
|
119 <param name="specify" type="boolean" label="Specify advanced cleavage options" help="" truevalue="true" falsevalue="false" />
|
|
120 <when value="false" />
|
|
121 <when value="true">
|
|
122 <param name="min_termini_cleavages" type="select" label="Minimum Termini Cleavages" value="2" help="A peptide must start after a cleavage and end before a cleavage. Setting this parameter to 0 or 1 will reduce that requirement, so that neither terminus or only one terminus of the peptide must match one of the cleavage rules specified above.">
|
|
123 <option value="2">2</option>
|
|
124 <option value="1">1</option>
|
|
125 <option value="0">0</option>
|
|
126 </param>
|
|
127 <param name="use_net_adjustment" type="boolean" label="Use NET Adjustment" help="When enabled, TagRecon adds a probabilistic bonus to peptide scores depending on whether the peptides are fully-enzymatic, semi-enzymatic, or non-enzymatic." truevalue="true" falsevalue="false" />
|
|
128 </when>
|
|
129 </conditional>
|
|
130 <conditional name="advanced_charge_options">
|
|
131 <param name="specify" type="boolean" label="Specify Advanced Charge State Handling Options" help="" truevalue="true" falsevalue="false" />
|
|
132 <when value="false" />
|
|
133 <when value="true">
|
|
134 <param name="use_ms_charge_state" type="boolean" label="Use Charge State from MS" truevalue="true" falsevalue="false" help="When enabled, DirecTag and TagRecon will not use their internal algorithm to determine charge state of a spectrum when it is available in the input file." />
|
|
135 <!-- TODO: Add DuplicateSpectra, NumChargeStates -->
|
|
136 </when>
|
|
137 </conditional>
|
|
138 <!-- TODO: Advanced Peptide Filtering: Min/Max Peptide Mass/Length -->
|
|
139 <conditional name="tag_weights">
|
|
140 <param name="specify" type="boolean" label="Override Default Tag Weighting" help="By default equal weights are assigned to intensity, m/z fidelity, and complement scores." truevalue="true" falsevalue="false" />
|
|
141 <when value="false" />
|
|
142 <when value="true">
|
|
143 <param name="intensity" type="float" label="Intensity Score Weight" help="" value="1.0" />
|
|
144 <param name="mz" type="float" label="m/z Fidelity Score Weight" help="" value="1.0" />
|
|
145 <param name="complement" type="float" label="Complement Score Weight" help="" value="1.0" />
|
|
146 </when>
|
|
147 </conditional>
|
|
148 <conditional name="search_untagged">
|
|
149 <param name="search" type="boolean" label="Search Untagged Spectra" help="Search untagged spectra like a database search." truevalue="true" falsevalue="false" />
|
|
150 <when value="false" />
|
|
151 <when value="true">
|
|
152 <param name="precursor_mz_tolerance" type="float" label="Untagged Spectra Precursor m/z Tolerance" value="1.25" />
|
|
153 </when>
|
|
154 </conditional>
|
|
155 <conditional name="unknown_mass_shifts">
|
|
156 <param name="how" type="select" label="Explaination for Unknown Mass Shifts">
|
|
157 <option value="">None, disable delta mass interpretation by TagRecon</option>
|
|
158 <option value="blindptms">Blind PTMs</option>
|
|
159 <option value="mutations">Mutations</option>
|
|
160 <!-- TODO: Add preferredptms -->
|
|
161 </param>
|
|
162 <when value="blindptms">
|
|
163 <!-- BlindPTMResidues ??? -->
|
|
164 </when>
|
|
165 <when value="mutations">
|
|
166 <!-- BlosumScoreThreshold ??? BlosumThreshold ???-->
|
|
167 </when>
|
|
168 <when value="" />
|
|
169 </conditional>
|
|
170 </inputs>
|
|
171 <!--
|
|
172 Both:
|
|
173 AdjustPrecursorMass (defaults to false)
|
|
174
|
|
175 TagRecon:
|
|
176 Skip for now: ComputeXCorr
|
|
177 Skip forever: ProteinSampleSize
|
|
178
|
|
179 TO ADD:
|
|
180
|
|
181 Both: Advanced, ClassSizeMultiplier, float 2.0.
|
|
182 -->
|
|
183 <outputs>
|
|
184 <data format="raw_pepxml" name="output" from_work_dir="output">
|
|
185 <change_format>
|
|
186 <when input="output_type" value="mzid" format="mzid" />
|
|
187 </change_format>
|
|
188 </data>
|
|
189 </outputs>
|
|
190
|
|
191 <requirements>
|
|
192 <requirement type="package" version="1.3.62">directag</requirement>
|
|
193 <requirement type="package" version="1.4.63">tagrecon</requirement>
|
|
194 </requirements>
|
|
195
|
|
196 <help>
|
|
197 **What it does**
|
|
198
|
|
199 Performs protein identification via Directag and TagRecon.
|
|
200
|
|
201 ------
|
|
202
|
|
203 **Citation**
|
|
204
|
|
205 For the underlying tool, please cite `TODO`.
|
|
206
|
|
207 If you use this tool in Galaxy, please cite TODO.
|
|
208 </help>
|
|
209 </tool>
|
|
210
|