comparison msstatstmt.xml @ 2:782bd55b000b draft

"planemo upload for repository https://github.com/galaxyproteomics/tools-galaxyp/tree/master/tools/msstatstmt commit 1272b32052ad8b986c1d3bd14f7cb9e3e921c74f"
author galaxyp
date Sat, 27 Feb 2021 10:54:25 +0000
parents b79d4c961009
children 5667ff6f7a40
comparison
equal deleted inserted replaced
1:b79d4c961009 2:782bd55b000b
1 <tool id="msstatstmt" name="MSstatsTMT" version="@TOOL_VERSION@+galaxy@GALAXY_VERSION@"> 1 <tool id="msstatstmt" name="MSstatsTMT" version="@TOOL_VERSION@+galaxy@GALAXY_VERSION@">
2 <description>protein significance analysis in shotgun mass spectrometry-based proteomic experiments with tandem mass tag (TMT) labeling</description> 2 <description>protein significance analysis in shotgun mass spectrometry-based proteomic experiments with tandem mass tag (TMT) labeling</description>
3 <macros> 3 <macros>
4 <token name="@TOOL_VERSION@">1.8.0</token> 4 <token name="@TOOL_VERSION@">1.8.2</token>
5 <token name="@GALAXY_VERSION@">0</token> 5 <token name="@GALAXY_VERSION@">1</token>
6 <xml name="input_options_shared"> 6 <xml name="input_options_shared">
7 <param name="useUniquePeptide" type="boolean" truevalue="TRUE" falsevalue="FALSE" checked="true" label="Use unique peptide" help="Yes (default) removes peptides that are assigned for more than one protein. We assume to use unique peptide for each protein." /> 7 <param name="useUniquePeptide" type="boolean" truevalue="TRUE" falsevalue="FALSE" checked="true" label="Use unique peptide" help="Yes (default) removes peptides that are assigned for more than one protein. We assume to use unique peptide for each protein." />
8 <param name="rmPSM_withMissing_withinRun" type="boolean" truevalue="TRUE" falsevalue="FALSE" checked="false" label="Remove PSM with missing value within run" help="Yes will remove PSM with any missing value within each run. Default is No." /> 8 <param name="rmPSM_withMissing_withinRun" type="boolean" truevalue="TRUE" falsevalue="FALSE" checked="false" label="Remove PSM with missing value within run" help="Yes will remove PSM with any missing value within each run. Default is No." />
9 <param name="rmPSM_withfewMea_withinRun" type="boolean" truevalue="TRUE" falsevalue="FALSE" checked="true" label="Remove PSM with few measurements within run" help="Only for 'Remove PSM with missing value within run = No'. Yes (default) will remove the features that have 1 or 2 measurements within each run." /> 9 <param name="rmPSM_withfewMea_withinRun" type="boolean" truevalue="TRUE" falsevalue="FALSE" checked="true" label="Remove PSM with few measurements within run" help="Only for 'Remove PSM with missing value within run = No'. Yes (default) will remove the features that have 1 or 2 measurements within each run." />
10 <param name="rmProtein_with1Feature" type="boolean" truevalue="TRUE" falsevalue="FALSE" checked="false" label="Remove proteins with one feature" help="Yes will remove the proteins which have only 1 peptide and charge. Default is No." /> 10 <param name="rmProtein_with1Feature" type="boolean" truevalue="TRUE" falsevalue="FALSE" checked="false" label="Remove proteins with one feature" help="Yes will remove the proteins which have only 1 peptide and charge. Default is No." />
20 && cat msstatstmt.log > '$out_msstatstmt_log' 20 && cat msstatstmt.log > '$out_msstatstmt_log'
21 ]]></command> 21 ]]></command>
22 <configfiles> 22 <configfiles>
23 <configfile name="msstatstmt_script"><![CDATA[ 23 <configfile name="msstatstmt_script"><![CDATA[
24 library(MSstatsTMT, warn.conflicts = F, quietly = T, verbose = F) 24 library(MSstatsTMT, warn.conflicts = F, quietly = T, verbose = F)
25 library(MSstats)
25 26
26 #if $input.input_src == 'MSstatsTMT' 27 #if $input.input_src == 'MSstatsTMT'
27 input <- read.table("$input.msstatstmt_input", sep="\t", header=TRUE) 28 input <- read.table("$input.msstatstmt_input", sep="\t", header=TRUE)
28 29
29 #elif $input.input_src == 'MaxQuant' 30 #elif $input.input_src == 'MaxQuant'
49 useUniquePeptide = $input.input_options.useUniquePeptide, 50 useUniquePeptide = $input.input_options.useUniquePeptide,
50 rmPSM_withMissing_withinRun = $input.input_options.rmPSM_withMissing_withinRun, 51 rmPSM_withMissing_withinRun = $input.input_options.rmPSM_withMissing_withinRun,
51 rmPSM_withfewMea_withinRun = $input.input_options.rmPSM_withfewMea_withinRun, 52 rmPSM_withfewMea_withinRun = $input.input_options.rmPSM_withfewMea_withinRun,
52 rmProtein_with1Feature = $input.input_options.rmProtein_with1Feature, 53 rmProtein_with1Feature = $input.input_options.rmProtein_with1Feature,
53 summaryforMultiplePSMs = $input.input_options.summaryforMultiplePSMs) 54 summaryforMultiplePSMs = $input.input_options.summaryforMultiplePSMs)
55
56 #elif $input.input_src == 'PD'
57 PSM.pd <- read.table("$input.PSM", sep="\t", header=TRUE)
58 annotation.pd <- read.table("$input.annotation", sep="\t", header=TRUE)
59
60 input <- PDtoMSstatsTMTFormat(PSM.pd,
61 annotation = annotation.pd,
62 which.proteinid = "$input.proteinID",
63 useNumProteinsColumn = $input.input_options.useNumProteinsColumn,
64 useUniquePeptide = $input.input_options.useUniquePeptide,
65 rmPSM_withMissing_withinRun = $input.input_options.rmPSM_withMissing_withinRun,
66 rmPSM_withfewMea_withinRun = $input.input_options.rmPSM_withfewMea_withinRun,
67 rmProtein_with1Feature = $input.input_options.rmProtein_with1Feature,
68 summaryforMultipleRows = $input.input_options.summaryforMultipleRows)
69
54 #end if 70 #end if
55 71
56 quant <- proteinSummarization(input, 72 quant <- proteinSummarization(input,
57 method = "$proteinSummarization.method", 73 method = "$proteinSummarization.method",
58 global_norm = $proteinSummarization.global_norm, 74 global_norm = $proteinSummarization.global_norm,
69 #for $plot_type in $selected_outputs 85 #for $plot_type in $selected_outputs
70 #if $plot_type[-4:] == "Plot" 86 #if $plot_type[-4:] == "Plot"
71 dataProcessPlotsTMT(input, 87 dataProcessPlotsTMT(input,
72 quant, 88 quant,
73 type = '$plot_type', 89 type = '$plot_type',
74 ylimUp = $out_plots_opt.ylimUp, 90 ylimUp = $out_plots_opt.adv.ylimUp,
75 ylimDown = $out_plots_opt.ylimDown, 91 ylimDown = $out_plots_opt.adv.ylimDown,
76 x.axis.size = $out_plots_opt.x_axis_size, 92 x.axis.size = $out_plots_opt.adv.x_axis_size,
77 y.axis.size = $out_plots_opt.y_axis_size, 93 y.axis.size = $out_plots_opt.adv.y_axis_size,
78 text.size = $out_plots_opt.text_size, 94 text.size = $out_plots_opt.adv.text_size,
79 text.angle = $out_plots_opt.text_angle, 95 text.angle = $out_plots_opt.adv.text_angle,
80 legend.size = $out_plots_opt.legend_size, 96 legend.size = $out_plots_opt.adv.legend_size,
81 dot.size.profile = $out_plots_opt.dot_size_profile, 97 dot.size.profile = $out_plots_opt.adv.dot_size_profile,
82 ncol.guide = $out_plots_opt.ncol_guide, 98 ncol.guide = $out_plots_opt.adv.ncol_guide,
83 width = $out_plots_opt.width, 99 width = $out_plots_opt.width,
84 height = $out_plots_opt.height, 100 height = $out_plots_opt.height,
85 #if $out_plots_opt.which_Protein.select != 'list' 101 #if $out_plots_opt.which_Protein.select != 'list'
86 which.Protein = "$out_plots_opt.which_Protein.select", 102 which.Protein = "$out_plots_opt.which_Protein.select",
87 #else 103 #else
88 which.Protein = unlist(read.table("$out_plots_opt.which_Protein.protein_list", sep = "\n", header = FALSE), use.names = FALSE), 104 which.Protein = unlist(read.table("$out_plots_opt.which_Protein.protein_list", sep = "\n", header = FALSE), use.names = FALSE),
89 #end if 105 #end if
90 originalPlot = $out_plots_opt.originalPlot, 106 originalPlot = $out_plots_opt.adv.originalPlot,
91 summaryPlot = $out_plots_opt.summaryPlot) 107 summaryPlot = $out_plots_opt.adv.summaryPlot)
108 #elif $plot_type == "quant"
109 write.table(quant,
110 "Quant.tsv",
111 sep = "\t",
112 quote = F,
113 row.names = F,
114 dec = ".")
92 #end if 115 #end if
93 #end for 116 #end for
94 117
95 #if $group.group_comparison == 'true' 118 #if $group.group_comparison == 'true'
96 #if $group.use_comp_matrix.select == 'true' 119 #if $group.use_comp_matrix.select == 'true'
114 "ComparisonResult.tsv", 137 "ComparisonResult.tsv",
115 sep = "\t", 138 sep = "\t",
116 quote = F, 139 quote = F,
117 row.names = F, 140 row.names = F,
118 dec = ".") 141 dec = ".")
142
143 #for $plot_type in $group.selected_group_outputs
144 #if $plot_type == "VolcanoPlot" or $plot_type == "Heatmap" or $plot_type == "ComparisonPlot"
145 groupComparisonPlots(data = comparisons,
146 type = "$plot_type",
147 sig = $group.comparison_plots_opt.sig,
148 #if $group.comparison_plots_opt.FCcutoff:
149 FCcutoff = $group.comparison_plots_opt.FCcutoff,
150 #end if
151 logBase.pvalue = $group.comparison_plots_opt.logBase_pvalue,
152 #if $group.comparison_plots_opt.ylimUp:
153 ylimUp = $group.comparison_plots_opt.ylimUp,
154 #end if
155 #if $group.comparison_plots_opt.ylimDown:
156 ylimDown = $group.comparison_plots_opt.ylimDown,
157 #end if
158 x.axis.size = $group.comparison_plots_opt.x_axis_size,
159 y.axis.size = $group.comparison_plots_opt.y_axis_size,
160 dot.size = $group.comparison_plots_opt.dot_size,
161 text.size = $group.comparison_plots_opt.text_size,
162 text.angle = $group.comparison_plots_opt.text_angle,
163 legend.size = $group.comparison_plots_opt.legend_size,
164 ProteinName = $group.comparison_plots_opt.ProteinName,
165 colorkey = $group.comparison_plots_opt.colorkey,
166 numProtein = $group.comparison_plots_opt.numProtein,
167 clustering = "$group.comparison_plots_opt.clustering",
168 width = $group.comparison_plots_opt.width,
169 height = $group.comparison_plots_opt.height,
170 #if $group.comparison_plots_opt.which_Protein.select != 'list'
171 which.Protein = "$group.comparison_plots_opt.which_Protein.select",
172 #else
173 which.Protein = unlist(read.table("$group.comparison_plots_opt.which_Protein.protein_list", sep = "\n", header = FALSE), use.names = FALSE),
174 #end if
175 #if $group.comparison_plots_opt.which_Comparison.select != 'list'
176 which.Comparison = "$group.comparison_plots_opt.which_Comparison.select",
177 #else
178 which.Comparison = unlist(read.table("$group.comparison_plots_opt.which_Comparison.comparison_list", sep = "\n", header = FALSE), use.names = FALSE),
179 #end if
180 address="MSstats_group_")
181 #end if
182 #end for
119 #end if 183 #end if
120 ]]></configfile> 184 ]]></configfile>
121 </configfiles> 185 </configfiles>
122 <inputs> 186 <inputs>
123 <conditional name="input"> 187 <conditional name="input">
124 <param name="input_src" type="select" label="Input Source"> 188 <param name="input_src" type="select" label="Input Source">
125 <option value="MSstatsTMT">MStatsTMT (11 column format)</option> 189 <option value="MSstatsTMT">MStatsTMT (11 column format)</option>
126 <option value="MaxQuant">MaxQuant</option> 190 <option value="MaxQuant">MaxQuant</option>
127 <option value="OpenMS">OpenMS</option> 191 <option value="OpenMS">OpenMS</option>
192 <option value="PD">Proteome Discoverer</option>
128 </param> 193 </param>
129 <when value="MSstatsTMT"> 194 <when value="MSstatsTMT">
130 <param name="msstatstmt_input" type="data" format="tabular" label="MStatsTMT (11 column format)"/> 195 <param name="msstatstmt_input" type="data" format="tabular" label="MStatsTMT (11 column format)"/>
131 </when> 196 </when>
132 <when value="MaxQuant"> 197 <when value="MaxQuant">
154 <option value="max">max</option> 219 <option value="max">max</option>
155 <option value="sum" selected="true">sum</option> 220 <option value="sum" selected="true">sum</option>
156 </param> 221 </param>
157 </section> 222 </section>
158 </when> 223 </when>
224 <when value="PD">
225 <param name="PSM" type="data" format="tabular" label="PSM output" help=""/>
226 <param name="annotation" type="data" format="tabular" label="annotation" help="Data frame contains column Run, Fraction, TechRepMixture, Mixture, Channel, BioReplicate, Condition." />
227 <param name="proteinID" type="select" label="Select Protein ID">
228 <option value="Protein.Accessions">Protein.Accessions column</option>
229 <option value="Master.Protein.Accessions">Master.Protein.Accessions</option>
230 </param>
231 <section name="input_options" title="PDtoMSstatsTMTFormat Options" expanded="false">
232 <param name="useNumProteinsColumn" type="boolean" truevalue="TRUE" falsevalue="FALSE" checked="true" label="Remove shared peptides by information of # Proteins column in PSM sheet." help="" />
233 <expand macro="input_options_shared"/>
234 <param name="summaryforMultipleRows" type="select" label="Summary for multiple rows" help="When there are multiple measurements for certain feature in certain run, select the feature with the largest summation or maximal value.">
235 <option value="max">max</option>
236 <option value="sum" selected="true">sum</option>
237 </param>
238 </section>
239 </when>
159 </conditional> 240 </conditional>
160 <section name="proteinSummarization" title="proteinSummarization Options" expanded="false"> 241 <section name="proteinSummarization" title="Summarize peptides into proteins" expanded="false">
161 <param name="method" type="select" multiple="false" label="Select method"> 242 <param name="method" type="select" multiple="false" label="Select method">
162 <option value="msstats" selected="true">msstats</option> 243 <option value="msstats" selected="true">msstats</option>
163 <option value="MedianPolish">MedianPolish</option> 244 <option value="MedianPolish">MedianPolish</option>
164 <option value="Median">Median</option> 245 <option value="Median">Median</option>
165 <option value="LogSum">LogSum</option> 246 <option value="LogSum">LogSum</option>
168 <param name="reference_norm" type="boolean" truevalue="TRUE" falsevalue="FALSE" checked="true" label="Reference channel based normalization" help="Reference channel based normalization between MS runs on protein level data. Yes (default) needs at least one reference channel in each MS run, annotated by ’Norm’ in condition column. It will be performed after protein-level summarization. No will not perform this normalization step. If data only has one run, then use No"/> 249 <param name="reference_norm" type="boolean" truevalue="TRUE" falsevalue="FALSE" checked="true" label="Reference channel based normalization" help="Reference channel based normalization between MS runs on protein level data. Yes (default) needs at least one reference channel in each MS run, annotated by ’Norm’ in condition column. It will be performed after protein-level summarization. No will not perform this normalization step. If data only has one run, then use No"/>
169 <param name="remove_norm_channel" type="boolean" truevalue="TRUE" falsevalue="FALSE" checked="true" label="Remove ’Norm’ channels from protein level data."/> 250 <param name="remove_norm_channel" type="boolean" truevalue="TRUE" falsevalue="FALSE" checked="true" label="Remove ’Norm’ channels from protein level data."/>
170 <param name="remove_empty_channel" type="boolean" truevalue="TRUE" falsevalue="FALSE" checked="true" label="Remove ’Empty’ channels from protein level data"/> 251 <param name="remove_empty_channel" type="boolean" truevalue="TRUE" falsevalue="FALSE" checked="true" label="Remove ’Empty’ channels from protein level data"/>
171 <param name="MBimpute" type="boolean" truevalue="TRUE" falsevalue="FALSE" checked="true" label="MBimpute" help="Only for 'method = msstats'. Yes (default) imputes missing values by accelerated failure time (AFT) model. No uses minimum value to impute the missing value for each peptide precursor ion."/> 252 <param name="MBimpute" type="boolean" truevalue="TRUE" falsevalue="FALSE" checked="true" label="MBimpute" help="Only for 'method = msstats'. Yes (default) imputes missing values by accelerated failure time (AFT) model. No uses minimum value to impute the missing value for each peptide precursor ion."/>
172 <param name="maxQuantileforCensored" type="float" optional="true" min="0" max="0.999" value="" label="Maximum quantile for deciding censored missing value" help="We assume missing values are censored. maxQuantileforCensored is maximum quantile for deciding censored missing value, for instance, 0.999. Default is empty"/> 253 <param name="maxQuantileforCensored" type="float" optional="true" min="0" max="0.999" value="" label="Maximum quantile for deciding censored missing value" help="We assume missing values are censored. maxQuantileforCensored is maximum quantile for deciding censored missing value, for instance, 0.999. Default is empty"/>
254 </section>
255 <section name="out_plots_opt" title="Plot Output Options" expanded="false">
256 <conditional name="which_Protein">
257 <param name="select" type="select" label="Select protein IDs to draw plots">
258 <option value="all" selected="true">generate all plots for each protein</option>
259 <option value="allonly">Option for QC plot: "allonly" will generate one QC plot with all proteins</option>
260 <option value="list">Protein IDs as tabular input</option>
261 </param>
262 <when value="all"/>
263 <when value="allonly"/>
264 <when value="list">
265 <param name="protein_list" type="data" format="tabular" label="List of proteins"/>
266 </when>
267 </conditional>
268 <param name="width" type="integer" min="1" value="10" label="Width of the saved pdf file"/>
269 <param name="height" type="integer" min="1" value="10" label="Height of the saved pdf file"/>
270 <section name="adv" title="Advanced options" expanded="false">
271 <param name="ylimUp" type="boolean" truevalue="TRUE" falsevalue="FALSE" checked="false" label="Upper limit for y-axis in the log scale" help="No (Default) for Profile Plot and QC Plot uses the upper limit as rounded off maximum of log2(intensities) after normalization + 3."/>
272 <param name="ylimDown" type="boolean" truevalue="TRUE" falsevalue="FALSE" checked="false" label="Lower limit for y-axis in the log scale" help="No (Default) for Profile Plot and QCPlot uses 0."/>
273 <param name="x_axis_size" type="integer" min="1" value="10" label="Size of x-axis labeling"/>
274 <param name="y_axis_size" type="integer" min="1" value="10" label="Size of y-axis labeling"/>
275 <param name="text_size" type="integer" min="1" value="4" label="Size of labels represented each condition at the top"/>
276 <param name="text_angle" type="integer" min="0" max="360" value="90" label="Angle of labels represented each condition at the top"/>
277 <param name="legend_size" type="integer" min="1" value="7" label="Size of legend above Profile plot"/>
278 <param name="dot_size_profile" type="integer" min="1" value="2" label="Size of dots in Profile plot"/>
279 <param name="ncol_guide" type="integer" min="1" value="5" label="Number of columns for legends at the top of plot"/>
280 <param name="originalPlot" type="boolean" truevalue="TRUE" falsevalue="FALSE" checked="true" label="Draw original profile plots without normalization"/>
281 <param name="summaryPlot" type="boolean" truevalue="TRUE" falsevalue="FALSE" checked="true" label="Draw profile plots with protein summarization for each channel and MS run"/>
282 </section>
173 </section> 283 </section>
174 <conditional name="group"> 284 <conditional name="group">
175 <param name="group_comparison" type="select" label="Compare Groups"> 285 <param name="group_comparison" type="select" label="Compare Groups">
176 <option value="false">No</option> 286 <option value="false">No</option>
177 <option value="true">Yes</option> 287 <option value="true">Yes</option>
199 <option value="fdr">fdr</option> 309 <option value="fdr">fdr</option>
200 <option value="none">none</option> 310 <option value="none">none</option>
201 </param> 311 </param>
202 <param name="remove_norm_channel" type="boolean" truevalue="TRUE" falsevalue="FALSE" checked="true" label="Remove ’Norm’ channels from protein level data"/> 312 <param name="remove_norm_channel" type="boolean" truevalue="TRUE" falsevalue="FALSE" checked="true" label="Remove ’Norm’ channels from protein level data"/>
203 <param name="remove_empty_channel" type="boolean" truevalue="TRUE" falsevalue="FALSE" checked="true" label="Remove ’Empty’ channels from protein level data"/> 313 <param name="remove_empty_channel" type="boolean" truevalue="TRUE" falsevalue="FALSE" checked="true" label="Remove ’Empty’ channels from protein level data"/>
314 <param name="selected_group_outputs" type="select" multiple="true" label="Select outputs">
315 <help>Heatmap requires more than one comparison</help>
316 <option value="comparison_result" selected="true">Group Comparison</option>
317 <option value="VolcanoPlot" selected="true">MSstats Volcano Plot</option>
318 <option value="Heatmap" selected="false">MSstats Heatmap</option>
319 <option value="ComparisonPlot" selected="true">MSstats Comparison Plot</option>
320 </param>
321 <section name="comparison_plots_opt" title="Comparison Plot Options" expanded="false">
322 <param name="sig" type="float" min="0" max="1" value="0.05" label="FDR cutoff for the adjusted p-values in heatmap and volcano plot" help="Level of significance for comparison plot. 100(1-sig)% confidence interval will be drawn."/>
323 <param name="FCcutoff" type="float" optional="true" label="Involve fold change cutoff or not for volcano plot or heatmap." help="Empty (default) means no fold change cutoff is applied for significance analysis. Specific value means specific fold change cutoff is applied"/>
324 <param name="logBase_pvalue" type="select" label="For volcano plot or heatmap, logarithm transformation of adjusted p-valuewith base 2 or 10">
325 <option value="2">2</option>
326 <option value="10" selected="true">10</option>
327 </param>
328 <param name="ylimUp" type="float" optional="true" label="For all three plots, upper limit for y-axis." help="Empty (default) for volcano plot/heatmap use maximum of -log2 (adjusted p-value) or -log10 (adjusted p-value), for comparison plot uses maximum of log-fold change + CI. Alternatively, insert specific value of y-axis limit. "/>
329 <param name="ylimDown" type="float" optional="true" label="For all tree plots, lower limit for y-axis in the log scale" help="Empty (default) for volcano plot/heatmap use minimum of -log2 (adjusted p-value) or -log10 (adjusted p-value), for comparison plot uses minimum of log-fold change - CI. Alternatively, insert specific value of y-axis limit. "/>
330 <param name="xlimUp" type="float" optional="true" label="For Volcano plot, the limit for x-axis" help="Empty (default) for use maximum for absolute value of log-fold change or 3 as default if maximum for absolute value of log-fold change is less than 3. Alternatively, insert specific value of y-axis limit."/>
331 <param name="axis_size" type="integer" min="1" value="10" label="Size of axes labels for Residual and QQ Plots"/>
332 <param name="x_axis_size" type="integer" min="1" value="10" label="Size of x-axis labeling"/>
333 <param name="y_axis_size" type="integer" min="1" value="10" label="Size of y-axis labeling"/>
334 <param name="dot_size" type="integer" min="1" value="3" label="Size of dots in residual plots, QQPlots, volcano plot and comparison plot."/>
335 <param name="text_size" type="integer" min="1" value="4" label="Size of Protein Name label in the graph for Volcano Plot."/>
336 <param name="text_angle" type="integer" min="0" max="360" value="90" label="Angle of x-axis labels represented each comparison at the bottom of graph incomparison plot."/>
337 <param name="legend_size" type="integer" min="1" value="7" label="Size of legend for color at the bottom of volcano plot. "/>
338 <param name="ProteinName" type="boolean" truevalue="TRUE" falsevalue="FALSE" checked="true" label="Display protein names in Volcano Plot." help="Yes (default) means protein names, which are significant, are displayed next to the points. No means no protein names are displayed."/>
339 <param name="colorkey" type="boolean" truevalue="TRUE" falsevalue="FALSE" checked="true" label="Show colour key"/>
340 <param name="numProtein" type="integer" min="1" value="100" max="180" label="Number of proteins which will be presented in each heatmap."/>
341 <param name="clustering" type="select" label="Determines how to order proteins and comparisons. Hierarchical cluster analysis with Ward method(minimum variance) is performed.">
342 <help>’protein’ means that protein dendrogram is computed and reordered based on protein means (the order of row is changed). ’comparison’ means comparison dendrogram is computed and reordered based on comparison means (the order of comparison is changed). ’both’ means to reorder both protein and comparison.</help>
343 <option value="protein" selected="true">protein</option>
344 <option value="comparison">comparison</option>
345 <option value="both">both</option>
346 </param>
347 <param name="width" type="integer" min="1" value="8" label="Width of the saved pdf file"/>
348 <param name="height" type="integer" min="1" value="5" label="Height of the saved pdf file"/>
349 <conditional name="which_Protein">
350 <param name="select" type="select" label="Select protein IDs to draw plots">
351 <option value="all" selected="true">generate all plots for each protein</option>
352 <option value="list">Protein IDs as tabular input</option>
353 </param>
354 <when value="all"/>
355 <when value="list">
356 <param name="protein_list" type="data" format="tabular" label="List of proteins"/>
357 </when>
358 </conditional>
359 <conditional name="which_Comparison">
360 <param name="select" type="select" label="Select comparisons to draw plots">
361 <option value="all" selected="true">Generate all plots for each comparison</option>
362 <option value="list">Comparison names as tabular input</option>
363 </param>
364 <when value="all"/>
365 <when value="list">
366 <param name="comparison_list" type="data" format="tabular" label="List of comparisons"/>
367 </when>
368 </conditional>
369 </section>
204 </when> 370 </when>
205 </conditional> 371 </conditional>
206 <param name="selected_outputs" type="select" multiple="true" optional="false" label="Select Outputs"> 372 <param name="selected_outputs" type="select" multiple="true" optional="false" label="Select Outputs">
207 <option value="msstats_log" selected="true">MSstats log</option> 373 <option value="msstats_log" selected="true">MSstats log</option>
208 <option value="msstatstmt_log" selected="true">MSstatsTMT log</option> 374 <option value="msstatstmt_log" selected="true">MSstatsTMT log</option>
209 <option value="r_script" selected="false">MSstats Rscript</option> 375 <option value="r_script" selected="false">MSstats Rscript</option>
376 <option value="quant" selected="true">Protein abundance</option>
210 <option value="ProfilePlot" selected="false">Profile Plot</option> 377 <option value="ProfilePlot" selected="false">Profile Plot</option>
211 <option value="QCPlot" selected="false">QC Plot</option> 378 <option value="QCPlot" selected="false">QC Plot</option>
212 </param> 379 </param>
213 <section name="out_plots_opt" title="Plot Output Options" expanded="false">
214 <param name="ylimUp" type="boolean" truevalue="TRUE" falsevalue="FALSE" checked="false" label="Upper limit for y-axis in the log scale" help="No (Default) for Profile Plot and QC Plot uses the upper limit as rounded off maximum of log2(intensities) after normalization + 3."/>
215 <param name="ylimDown" type="boolean" truevalue="TRUE" falsevalue="FALSE" checked="false" label="Lower limit for y-axis in the log scale" help="No (Default) for Profile Plot and QCPlot uses 0."/>
216 <param name="x_axis_size" type="integer" min="1" value="10" label="Size of x-axis labeling"/>
217 <param name="y_axis_size" type="integer" min="1" value="10" label="Size of y-axis labeling"/>
218 <param name="text_size" type="integer" min="1" value="4" label="Size of labels represented each condition at the top"/>
219 <param name="text_angle" type="integer" min="0" max="360" value="90" label="Angle of labels represented each condition at the top"/>
220 <param name="legend_size" type="integer" min="1" value="7" label="Size of legend above Profile plot"/>
221 <param name="dot_size_profile" type="integer" min="1" value="2" label="Size of dots in Profile plot"/>
222 <param name="ncol_guide" type="integer" min="1" value="5" label="Number of columns for legends at the top of plot"/>
223 <param name="width" type="integer" min="1" value="10" label="Width of the saved pdf file"/>
224 <param name="height" type="integer" min="1" value="10" label="Height of the saved pdf file"/>
225 <conditional name="which_Protein">
226 <param name="select" type="select" label="Select protein IDs to draw plots">
227 <option value="all" selected="true">generate all plots for each protein</option>
228 <option value="allonly">Option for QC plot: "allonly" will generate one QC plot with all proteins</option>
229 <option value="list">Protein IDs as tabular input</option>
230 </param>
231 <when value="all"/>
232 <when value="allonly"/>
233 <when value="list">
234 <param name="protein_list" type="data" format="tabular" label="List of proteins"/>
235 </when>
236 </conditional>
237 <param name="originalPlot" type="boolean" truevalue="TRUE" falsevalue="FALSE" checked="true" label="Draw original profile plots without normalization"/>
238 <param name="summaryPlot" type="boolean" truevalue="TRUE" falsevalue="FALSE" checked="true" label="Draw profile plots with protein summarization for each channel and MS run"/>
239 </section>
240 </inputs> 380 </inputs>
241 <outputs> 381 <outputs>
242 <data name="out_msstats_log" format="txt" label="${tool.name} on ${on_string}: MSstats log"> 382 <data name="out_msstats_log" from_work_dir="msstats.log" format="txt" label="${tool.name} on ${on_string}: MSstats log">
243 <filter>'msstats_log' in selected_outputs</filter> 383 <filter>'msstats_log' in selected_outputs</filter>
244 </data> 384 </data>
245 <data name="out_msstatstmt_log" format="txt" label="${tool.name} on ${on_string}: MSstatsTMT log"> 385 <data name="out_msstatstmt_log" from_work_dir="msstatstmt.log" format="txt" label="${tool.name} on ${on_string}: MSstatsTMT log">
246 <filter>'msstatstmt_log' in selected_outputs</filter> 386 <filter>'msstatstmt_log' in selected_outputs</filter>
247 </data> 387 </data>
248 <data name="out_r_script" format="txt" label="${tool.name} on ${on_string}: Rscript"> 388 <data name="out_r_script" format="txt" label="${tool.name} on ${on_string}: Rscript">
249 <filter>'r_script' in selected_outputs</filter> 389 <filter>'r_script' in selected_outputs</filter>
250 </data> 390 </data>
391 <data name="out_quant" from_work_dir="Quant.tsv" format="tabular" label="${tool.name} on ${on_string}: Protein abundance">
392 <filter>'quant' in selected_outputs</filter>
393 </data>
251 <data name="out_profile_plot" from_work_dir="ProfilePlot.pdf" format="pdf" label="${tool.name} on ${on_string}: Profile Plot"> 394 <data name="out_profile_plot" from_work_dir="ProfilePlot.pdf" format="pdf" label="${tool.name} on ${on_string}: Profile Plot">
252 <filter>'ProfilePlot' in selected_outputs</filter> 395 <filter>'ProfilePlot' in selected_outputs</filter>
253 </data> 396 </data>
254 <data name="out_qc_plot" from_work_dir="QCPlot.pdf" format="pdf" label="${tool.name} on ${on_string}: QC Plot"> 397 <data name="out_qc_plot" from_work_dir="QCPlot.pdf" format="pdf" label="${tool.name} on ${on_string}: QC Plot">
255 <filter>'QCPlot' in selected_outputs</filter> 398 <filter>'QCPlot' in selected_outputs</filter>
256 </data> 399 </data>
257 <data name="out_group_comp" from_work_dir="ComparisonResult.tsv" format="tsv" label="${tool.name} on ${on_string}: Group Comparison"> 400 <data name="out_group_comp" from_work_dir="ComparisonResult.tsv" format="tabular" label="${tool.name} on ${on_string}: Group Comparison">
258 <filter>group['group_comparison'] == 'true'</filter> 401 <filter>group['group_comparison'] == 'true' and 'comparison_result' in group['selected_group_outputs']</filter>
402 </data>
403 <data name="out_group_volcano_plot" from_work_dir="MSstats_group_VolcanoPlot.pdf" format="pdf" label="${tool.name} on ${on_string}: Group Comparison - Volcano Plot">
404 <filter>group['group_comparison'] == 'true' and 'VolcanoPlot' in group['selected_group_outputs']</filter>
405 </data>
406 <data name="out_group_heatmap" from_work_dir="MSstats_group_Heatmap.pdf" format="pdf" label="${tool.name} on ${on_string}: Group Comparison - Heatmap">
407 <filter>group['group_comparison'] == 'true' and 'Heatmap' in group['selected_group_outputs']</filter>
408 </data>
409 <data name="out_group_comp_plot" from_work_dir="MSstats_group_ComparisonPlot.pdf" format="pdf" label="${tool.name} on ${on_string}: Group Comparison - Comparison Plot">
410 <filter>group['group_comparison'] == 'true' and 'ComparisonPlot' in group['selected_group_outputs']</filter>
259 </data> 411 </data>
260 </outputs> 412 </outputs>
261 <tests> 413 <tests>
262 <test expect_num_outputs="5"> 414 <test expect_num_outputs="5">
263 <conditional name="input"> 415 <conditional name="input">
275 <has_text text="MSstatsTMT - proteinSummarization function" /> 427 <has_text text="MSstatsTMT - proteinSummarization function" />
276 </assert_contents> 428 </assert_contents>
277 </output> 429 </output>
278 <output name="out_r_script"> 430 <output name="out_r_script">
279 <assert_contents> 431 <assert_contents>
280 <has_n_lines n="51" /> 432 <has_n_lines n="52" />
281 </assert_contents> 433 </assert_contents>
282 </output> 434 </output>
283 <output name="out_profile_plot" file="ProfilePlot.pdf" compare="sim_size"/> 435 <output name="out_profile_plot" file="ProfilePlot.pdf" compare="sim_size"/>
284 <output name="out_qc_plot" file="QCPlot.pdf" compare="sim_size"/> 436 <output name="out_qc_plot" file="QCPlot.pdf" compare="sim_size"/>
285 </test> 437 </test>
286 <test expect_num_outputs="2"> 438 <test expect_num_outputs="4">
287 <conditional name="input"> 439 <conditional name="input">
288 <param name="input_src" value="MaxQuant"/> 440 <param name="input_src" value="MaxQuant"/>
289 <param name="evidence" ftype="tabular" value="evidence.txt"/> 441 <param name="evidence" ftype="tabular" value="evidence.txt"/>
290 <param name="annotation" ftype="tabular" value="annotation.txt"/> 442 <param name="annotation" ftype="tabular" value="annotation.txt"/>
291 <param name="proteinGroups" ftype="tabular" value="proteinGroups.txt"/> 443 <param name="proteinGroups" ftype="tabular" value="proteinGroups.txt"/>
294 <param name="group_comparison" value="true"/> 446 <param name="group_comparison" value="true"/>
295 <conditional name="use_comp_matrix"> 447 <conditional name="use_comp_matrix">
296 <param name="select" value="true"/> 448 <param name="select" value="true"/>
297 <param name="comparison_matrix" ftype="tabular" value="comparison_matrix.txt"/> 449 <param name="comparison_matrix" ftype="tabular" value="comparison_matrix.txt"/>
298 </conditional> 450 </conditional>
451 <param name="selected_group_outputs" value="comparison_result,VolcanoPlot,ComparisonPlot"/>
299 </conditional> 452 </conditional>
300 <param name="selected_outputs" value="ProfilePlot"/> 453 <param name="selected_outputs" value="ProfilePlot"/>
301 <conditional name="which_Protein"> 454 <conditional name="which_Protein">
302 <param name="select" value="list"/> 455 <param name="select" value="list"/>
303 <param name="protein_list" ftype="tabular" value="proteinIDs.txt"/> 456 <param name="protein_list" ftype="tabular" value="proteinIDs.txt"/>
310 <has_text text="A0AVT1" /> 463 <has_text text="A0AVT1" />
311 <has_text text="O43324" /> 464 <has_text text="O43324" />
312 </assert_contents> 465 </assert_contents>
313 </output> 466 </output>
314 <output name="out_profile_plot" file="ProfilePlot_list.pdf" compare="sim_size"/> 467 <output name="out_profile_plot" file="ProfilePlot_list.pdf" compare="sim_size"/>
468 <output name="out_group_volcano_plot" file="MSstats_group_VolcanoPlot.pdf" compare="sim_size"/>
469 <output name="out_group_comp_plot" file="MSstats_group_ComparisonPlot.pdf" compare="sim_size"/>
315 </test> 470 </test>
316 <test expect_num_outputs="2"> 471 <test expect_num_outputs="3">
317 <conditional name="input"> 472 <conditional name="input">
318 <param name="input_src" value="OpenMS"/> 473 <param name="input_src" value="OpenMS"/>
319 <param name="oms_input" ftype="tabular" value="input.oms.txt"/> 474 <param name="oms_input" ftype="tabular" value="input.oms.txt"/>
320 </conditional> 475 </conditional>
321 <conditional name="group"> 476 <conditional name="group">
322 <param name="group_comparison" value="true"/> 477 <param name="group_comparison" value="true"/>
323 </conditional> 478 <param name="selected_group_outputs" value="comparison_result,Heatmap"/>
324 <param name="selected_outputs" value="msstats_log"/> 479 </conditional>
480 <param name="selected_outputs" value="r_script"/>
481 <output name="out_r_script">
482 <assert_contents>
483 <has_n_lines n="58" />
484 </assert_contents>
485 </output>
325 <output name="out_group_comp"> 486 <output name="out_group_comp">
326 <assert_contents> 487 <assert_contents>
327 <has_n_lines n="51" /> 488 <has_n_lines n="51" />
328 <has_n_columns n="8" /> 489 <has_n_columns n="8" />
329 <has_text text="Long_LF-Short_HF" /> 490 <has_text text="Long_LF-Short_HF" />
330 <has_text text="sp|O35226|PSMD4_MOUSE" /> 491 <has_text text="sp|O35226|PSMD4_MOUSE" />
492 </assert_contents>
493 </output>
494 <output name="out_group_heatmap" file="MSstats_group_Heatmap.pdf" compare="sim_size"/>
495 </test>
496 <test expect_num_outputs="1">
497 <conditional name="input">
498 <param name="input_src" value="PD"/>
499 <param name="PSM" ftype="tabular" value="input.pd.txt"/>
500 <param name="annotation" ftype="tabular" value="annotation.pd.txt"/>
501 </conditional>
502 <param name="selected_outputs" value="quant"/>
503 <output name="out_quant">
504 <assert_contents>
505 <has_n_lines n="1575" />
506 <has_n_columns n="8" />
507 <has_text text="PAMI-176_Mouse_A-J_1" />
508 <has_text text="Long_LF" />
331 </assert_contents> 509 </assert_contents>
332 </output> 510 </output>
333 </test> 511 </test>
334 </tests> 512 </tests>
335 <help><![CDATA[ 513 <help><![CDATA[