comparison maldi_quant_peakdetection.xml @ 0:01212bf66f61 draft

planemo upload for repository https://github.com/galaxyproteomics/tools-galaxyp/tree/master/tools/MALDIquant commit 5feaf3d0e0da8cef1241fecc1f4d6f81324594e6
author galaxyp
date Wed, 22 Aug 2018 11:49:29 -0400
parents
children eaaa73b043e6
comparison
equal deleted inserted replaced
-1:000000000000 0:01212bf66f61
1 <tool id="maldi_quant_peak_detection" name="MALDIquant peak detection" version="1.18.0.0">
2 <description>
3 Peak detection, binning and filtering for mass-spectrometry imaging data
4 </description>
5 <macros>
6 <import>maldi_macros.xml</import>
7 </macros>
8 <expand macro="requirements"/>
9 <command detect_errors="exit_code">
10 <![CDATA[
11 #if $infile.ext == 'imzml'
12 cp '${infile.extra_files_path}/imzml' infile.imzML &&
13 cp '${infile.extra_files_path}/ibd' infile.ibd &&
14 #elif $infile.ext == 'analyze75'
15 cp '${infile.extra_files_path}/hdr' infile.hdr &&
16 cp '${infile.extra_files_path}/img' infile.img &&
17 cp '${infile.extra_files_path}/t2m' infile.t2m &&
18 #end if
19 Rscript '${maldi_quant_peak_detection}'&&
20 mkdir $outfile_imzml.files_path &&
21 mv ./out.imzMl "${os.path.join($outfile_imzml.files_path, 'imzml')}" | true &&
22 mv ./out.ibd "${os.path.join($outfile_imzml.files_path, 'ibd')}" | true &&
23 echo "imzML file:" > $outfile_imzml &&
24 ls -l "$outfile_imzml.files_path" >> $outfile_imzml
25 ]]>
26 </command>
27 <configfiles>
28 <configfile name="maldi_quant_peak_detection"><![CDATA[
29
30 @R_IMPORTS@
31
32 summarized_spectra = FALSE
33
34 #if $restriction_conditional.restriction == 'restrict':
35
36 print('Reading mask region')
37 ## Import imzML file
38 coordinate_matrix = as.matrix(read.delim("$restriction_conditional.coordinates_file", header = FALSE, stringsAsFactors = FALSE))[,1:2]
39
40 maldi_data <- importImzMl('infile.imzML',
41 coordinates = coordinate_matrix, centroided = $centroids)
42 pixelnames = paste0("x = ", coordinates(maldi_data)[,1],", y = ", coordinates(maldi_data)[,2])
43
44 #else:
45
46 print('Reading entire file')
47 ## Import imzML file
48
49
50 #if $infile.ext == 'imzml'
51
52 #if str($centroids) == "TRUE"
53 peaks <- importImzMl('infile.imzML', centroided = $centroids)
54 pixelnames = paste0("x = ", coordinates(peaks)[,1],", y = ", coordinates(peaks)[,2])
55
56 #else
57 maldi_data <- importImzMl('infile.imzML', centroided = $centroids)
58 pixelnames = paste0("x = ", coordinates(maldi_data)[,1],", y = ", coordinates(maldi_data)[,2])
59 #end if
60 #elif $infile.ext == 'tabular'
61
62 peak_tabular = read.delim("$infile", header = TRUE, stringsAsFactors = FALSE)
63 peak_list = split(peak_tabular, f = peak_tabular\$spectrum) ## will be ordered according to spectrum
64 pixelnames = unique(peak_tabular\$spectrum)
65
66 peaks = list()
67 for (spectra in 1:length(peak_list))
68 {
69 single_peaks = createMassPeaks(peak_list[[spectra]]\$mass, peak_list[[spectra]]\$intensity, snr=peak_list[[spectra]]\$snr)
70 peaks[[spectra]] = single_peaks
71 }
72
73 #end if
74
75
76 #end if
77
78 ## Quality control plots during peak detection
79
80 pdf("peaks_qc_plot.pdf", fonts = "Times", pointsize = 12)
81 plot(0,type='n',axes=FALSE,ann=FALSE)
82
83 ## if no filename is given, name of file in Galaxy history is used
84 #set $filename = $infile.display_name
85
86 title(main=paste("$filename"))
87
88 ## plot input file spectrum:
89 #if $infile.ext == 'imzml'
90
91 #if str($centroids) == "TRUE"
92 plot(peaks[[1]], main="First spectrum of input file")
93 #else
94 avgSpectra <- averageMassSpectra(maldi_data,method="mean")
95 plot(avgSpectra, main="Average spectrum of input file")
96 #end if
97 #elif $infile.ext == 'tabular'
98 plot(peaks[[1]], main="First spectrum of input file")
99 #end if
100
101
102 #if str($tabular_annotation.load_annotation) == 'yes_annotation':
103
104 ## read and extract x,y,annotation information
105 input_tabular = read.delim("$tabular_annotation.annotation_file", header = $tabular_annotation.tabular_header, stringsAsFactors = FALSE)
106 annotation_input = input_tabular[,c($tabular_annotation.column_x, $tabular_annotation.column_y, $tabular_annotation.column_names)]
107 colnames(annotation_input) = c("x", "y", "annotation") ## rename annotations header to default name "annotation"
108
109 ## merge with coordinate information of MSI data
110
111 coordinates_st = cbind(coordinates(maldi_data)[,1:2], c(1:length(maldi_data)))
112 colnames(coordinates_st)[3] = "pixel_index"
113 merged_annotation = merge(coordinates_st, annotation_input, by=c("x", "y"), all.x=TRUE)
114 merged_annotation[is.na(merged_annotation)] = "NA"
115 merged_annotation = merged_annotation[order(merged_annotation\$pixel_index),]
116 samples = as.factor(merged_annotation\$annotation)
117
118 ## print annotation overview into PDF output
119
120 ## the more annotation groups a file has the smaller will be the legend
121 number_combined = length(levels(as.factor(merged_annotation\$annotation)))
122 if (number_combined<20){
123 legend_size = 10
124 }else if (number_combined>20 && number_combined<40){
125 legend_size = 9
126 }else if (number_combined>40 && number_combined<60){
127 legend_size = 8
128 }else if (number_combined>60 && number_combined<100){
129 legend_size = 7
130 }else{
131 legend_size = 6
132 }
133
134 combine_plot = ggplot(merged_annotation, aes(x=x, y=y, fill=annotation))+
135 geom_tile() +
136 coord_fixed()+
137 ggtitle("Spatial orientation of annotated data")+
138 theme_bw()+
139 theme(plot.title = element_text(hjust = 0.5))+
140 theme(text=element_text(family="ArialMT", face="bold", size=12))+
141 theme(legend.position="bottom",legend.direction="vertical")+
142 theme(legend.key.size = unit(0.2, "line"), legend.text = element_text(size = legend_size))+
143 guides(fill=guide_legend(ncol=5,byrow=TRUE))
144
145 print(combine_plot)
146
147 #end if
148
149
150 #################### Preprocessing methods #####################################
151
152 #for $method in $methods:
153
154
155 #if str( $method.methods_conditional.method ) == 'Peak_detection':
156 print('peak detection')
157 ##peak detection
158
159 #if $method.methods_conditional.use_annotations:
160 maldi_data <- averageMassSpectra(maldi_data, labels=samples,method="mean") ## use average spectra for peak picking
161 pixelnames = merged_annotation\$annotation
162 summarized_spectra = TRUE
163
164 #end if
165
166 peaks <- detectPeaks(maldi_data, method="$method.methods_conditional.peak_method",
167 halfWindowSize=$method.methods_conditional.halfWindowSize,SNR=$method.methods_conditional.snr)
168
169 ## QC plot
170 plot(peaks[[1]], main="First spectrum after peak detection")
171
172 if (length(peaks[!sapply(peaks, isEmpty)])>0){
173 #if $infile.ext == 'imzml'
174 #if str($centroids) == "FALSE"
175 featureMatrix <- intensityMatrix(peaks, maldi_data)
176 #end if
177 #else
178 featureMatrix <- intensityMatrix(peaks)
179 #end if
180 featureMatrix2 =cbind(pixelnames, featureMatrix)
181 colnames(featureMatrix2)[1] = c("mz | spectra")
182 featureMatrix2 = t(featureMatrix2)
183 write.table(featureMatrix2, file="$intensity_matrix", quote = FALSE, row.names = TRUE, col.names=FALSE, sep = "\t")
184 }else{print("There are no spectra with peaks left")}
185
186
187 #elif str( $method.methods_conditional.method ) == 'monoisotopic_peaks':
188
189 print('monoisotopic peaks')
190 ##monoisotopic peaks
191
192 peaks = monoisotopicPeaks(peaks, minCor=$method.methods_conditional.minCor, tolerance=$method.methods_conditional.tolerance, distance=$method.methods_conditional.distance, size=$method.methods_conditional.size)
193
194 ## QC plot
195 plot(peaks[[1]], main="First spectrum after monoisotopic peaks detection")
196
197 if (length(peaks[!sapply(peaks, isEmpty)])>0){
198 #if $infile.ext == 'imzml'
199 #if str($centroids) == "FALSE"
200 featureMatrix <- intensityMatrix(peaks, maldi_data)
201 #end if
202 #else
203 featureMatrix <- intensityMatrix(peaks)
204 #end if
205 featureMatrix2 =cbind(pixelnames, featureMatrix)
206 colnames(featureMatrix2)[1] = c("mz | spectra")
207 featureMatrix2 = t(featureMatrix2)
208 write.table(featureMatrix2, file="$intensity_matrix", quote = FALSE, row.names = TRUE, col.names=FALSE, sep = "\t")
209 }else{print("There are no spectra with peaks left")}
210
211 #elif str( $method.methods_conditional.method ) == 'Binning':
212
213 print('binning')
214 ##m/z binning
215
216 peaks <- binPeaks(peaks, tolerance=$method.methods_conditional.bin_tolerance)
217 ## QC plot
218 plot(peaks[[1]], main="First spectrum after binning")
219
220 if (length(peaks[!sapply(peaks, isEmpty)])>0){
221 #if $infile.ext == 'imzml'
222 #if str($centroids) == "FALSE"
223 featureMatrix <- intensityMatrix(peaks, maldi_data)
224 #end if
225 #if str($centroids) == "TRUE"
226 featureMatrix <- intensityMatrix(peaks)
227 #end if
228 #else
229 featureMatrix <- intensityMatrix(peaks)
230 #end if
231 featureMatrix2 =cbind(pixelnames, featureMatrix)
232 colnames(featureMatrix2)[1] = c("mz | spectra")
233 featureMatrix2 = t(featureMatrix2)
234 write.table(featureMatrix2, file="$intensity_matrix", quote = FALSE, row.names = TRUE, col.names=FALSE, sep = "\t")
235 }else{print("There are no spectra with peaks left")}
236
237
238 #elif str( $method.methods_conditional.method ) == 'Filtering':
239
240 print('filtering')
241 ##m/z filtering
242
243 ## filtering on all pixels or on pixel groups:
244 #if str($method.methods_conditional.filter_annot_groups ) == 'FALSE':
245
246 peaks <- filterPeaks(peaks,
247 minFrequency=$method.methods_conditional.minFrequency,
248 minNumber=$method.methods_conditional.minNumber,
249 mergeWhitelists=$method.methods_conditional.mergeWhitelists)
250
251 #elif str( $method.methods_conditional.filter_annot_groups ) == 'TRUE':
252
253 peaks <- filterPeaks(peaks,
254 minFrequency=$method.methods_conditional.minFrequency,
255 minNumber=$method.methods_conditional.minNumber,
256 mergeWhitelists=$method.methods_conditional.mergeWhitelists, label = samples)
257 #end if
258
259 ##QC plot
260 plot(peaks[[1]], main="First spectrum after m/z filtering")
261
262 if (length(peaks[!sapply(peaks, isEmpty)])>0){
263 #if $infile.ext == 'imzml'
264 #if str($centroids) == "FALSE"
265 featureMatrix <- intensityMatrix(peaks, maldi_data)
266 #end if
267 #else
268 featureMatrix <- intensityMatrix(peaks)
269 #end if
270 featureMatrix2 =cbind(pixelnames, featureMatrix)
271 colnames(featureMatrix2)[1] = c("mz | spectra")
272 featureMatrix2 = t(featureMatrix2)
273 write.table(featureMatrix2, file="$intensity_matrix", quote = FALSE, row.names = TRUE, col.names=FALSE, sep = "\t")
274 }else{print("There are no spectra with peaks left")}
275
276 #end if
277 #end for
278
279 if (length(peaks[!sapply(peaks, isEmpty)])>0){
280 ## mass peaks output
281 mass_peaks = data.frame(matrix(,ncol=3, nrow=0))
282 for (spectrum in 1:length(peaks)){
283 spectrum_df = data.frame(peaks[[spectrum]]@snr, peaks[[spectrum]]@mass, peaks[[spectrum]]@intensity)
284 spectrum_df\$spectrum_id = rep(pixelnames[[spectrum]], length(peaks[[spectrum]]@mass))
285 mass_peaks = rbind(mass_peaks,spectrum_df)
286 }
287 colnames(mass_peaks) = c("snr", "mass", "intensity", "spectrum")
288 write.table(mass_peaks, file="$masspeaks", quote = FALSE, row.names = FALSE, col.names=TRUE, sep = "\t")
289 }else{print("There are no spectra with peaks left")}
290
291 dev.off()
292
293 if (summarized_spectra == FALSE){
294 #if $infile.ext == 'imzml'
295 exportImzMl(peaks, file="out.imzMl", processed=$export_processed)
296 #elif $infile.ext == 'tabular'
297 masspeaks_coordinates = matrix(unlist(strsplit(as.character(pixelnames), "\\,")), ncol=2, byrow=TRUE)
298 ## extract x and y values and create the coordinate matrix in case tabular was input
299 peaklist_coordinates = unique(cbind(as.numeric(substring(masspeaks_coordinates[,1], 5, last = 1000000L)), as.numeric(substring(masspeaks_coordinates[,2], 5, last = 1000000L))))
300 exportImzMl(peaks, file="out.imzMl", processed=$export_processed, coordinates=peaklist_coordinates)
301 #end if
302 }
303
304 ]]>
305 </configfile>
306 </configfiles>
307 <inputs>
308 <param name="infile" type="data" format="imzml,tabular" label="MS metadata" help="This file is in imzML or tabular format (peak list, peak detection cannot be run again)"/>
309 <param name="centroids" type="boolean" label="Is the imzML data centroided (picked)" help="Choose Yes if peak detection has already been done. Peak detection cannot be run again on centroided data" truevalue="TRUE" falsevalue="FALSE"/>
310 <conditional name="restriction_conditional">
311 <param name="restriction" type="select" label="Restrict the preprocessing to coordinates of interest">
312 <option value="no_restriction" selected="True">Calculate on entire file</option>
313 <option value="restrict">Restrict to coordinates of interest</option>
314 </param>
315 <when value="restrict">
316 <param name="coordinates_file" type="data" format="tabular" label="Tabular file with coordinates which should be read" help="x-values in first column, y-values in second column"/>
317 </when>
318 <when value="no_restriction"/>
319 </conditional>
320
321 <conditional name="tabular_annotation">
322 <param name="load_annotation" type="select" label="Use pixel annotation from tabular file - select in peak detection or filtering step where you want to apply the annotation information">
323 <option value="no_annotation" selected="True">pixels belong into one group only</option>
324 <option value="yes_annotation">use pixel annotation from a tabular file</option>
325 </param>
326 <when value="yes_annotation">
327 <param name="annotation_file" type="data" format="tabular" label="Use annotations from tabular file"
328 help="Tabular file with three columns: x values, y values and pixel annotations"/>
329 <param name="column_x" data_ref="annotation_file" label="Column with x values" type="data_column"/>
330 <param name="column_y" data_ref="annotation_file" label="Column with y values" type="data_column"/>
331 <param name="column_names" data_ref="annotation_file" label="Column with pixel annotations" type="data_column"/>
332 <param name="tabular_header" type="boolean" label="Tabular file contains a header line" truevalue="TRUE" falsevalue="FALSE"/>
333 </when>
334 <when value="no_annotation"/>
335 </conditional>
336 <repeat name="methods" title="Method" min="1">
337 <conditional name="methods_conditional">
338 <param name="method" type="select" label="Select the method you want to apply">
339 <option value="Peak_detection">Peak detection</option>
340 <option value="monoisotopic_peaks">Keep only monoisotopic peaks</option>
341 <option value="Binning">Binning</option>
342 <option value="Filtering">Filtering</option>
343 </param>
344 <when value="Peak_detection">
345 <param name="peak_method" type="select" label="Noise estimation function">
346 <option value="MAD" selected="True">MAD</option>
347 <option value="SuperSmoother">SuperSmoother</option>
348 </param>
349 <param name="halfWindowSize" type="integer" value="20"
350 label="Half window size"
351 help="The resulting window reaches from
352 mass[currentIndex-halfWindowSize] to mass[currentIndex+halfWindowSize]
353 (window size is 2*halfWindowSize+1).
354 The best size differs depending on the selected smoothing method."/>
355 <param name="snr" type="integer" value="2" label="Signal-to-noise-ratio" help=""/>
356 <param name="use_annotations" type="boolean" label="Generate average mass spectra for each annotation group" help="Spectra with same annotation are summarized, no imzML export possible" truevalue="TRUE" falsevalue="FALSE"/>
357 </when>
358 <when value="monoisotopic_peaks">
359 <param name="minCor" type="float" value="0.95" label="minimal correlation"
360 help="double , minimal correlation between the peak pattern generated by the model and the experimental peaks in the MassPeaks object to be recognized as isotopic pattern"/>
361 <param name="tolerance" type="float" label="tolerance" value="0.0004"
362 help="double, maximal relative deviation of peaks position (mass) to be considered as isotopic distance"/>
363 <param name="distance" type="float" label="distance" value="1.00235" help="double, distance between two consecutive peaks in an isotopic pattern"/>
364 <param name="size" type="integer" label="size" value="3" help="double, size (length) of isotopic pattern, longer patterns are prefered over shorter ones"/>
365 </when>
366 <when value="Binning">
367 <param name="bin_tolerance" type="float" value="0.002" label="Peak binning tolerance"
368 help="After the alignment the peak positions (mass) are very similar but not identical. The binning is needed to make similar peak mass values identical."/>
369 </when>
370 <when value="Filtering">
371 <param name="minFrequency" type="float" value="0.25"
372 label="Remove all peaks which occur in less than minFrequency spectra" help="It is a relative threshold."/>
373 <param name="minNumber" type="float" value="1.0"
374 label="remove all peaks which occur in less than minNumber spectra" help="It is an absolute threshold."/>
375 <param name="filter_annot_groups" type="boolean" label="Group wise filtering with pixel annotations. If not specified a single group is assumed or when filtering has been done group wise it will automatically be group wise when selecting filtering on all pixel" truevalue="TRUE" falsevalue="FALSE"/>
376 <param name="mergeWhitelists" type="boolean" truevalue="TRUE" falsevalue="FALSE"
377 label="mergeWhitelists" help="if FALSE the filtering criteria are applied groupwise. If TRUE peaks that survive the filtering in one group (level of labels) these peaks are also kept in other groups even if their frequencies are below minFrequency"/>
378 </when>
379 </conditional>
380 </repeat>
381 <param name="export_processed" type="boolean" label="Export file as processed imzML" help="otherwise continuous imzML will be exported" checked="true" truevalue="TRUE" falsevalue="FALSE"/>
382 </inputs>
383 <outputs>
384 <data format="imzml" name="outfile_imzml" label="$infile.display_name peaks" />
385 <data format="pdf" name="plots" from_work_dir="peaks_qc_plot.pdf" label = "$infile.display_name peakdetection QC"/>
386 <data format="tabular" name="masspeaks" label="$infile.display_name mass_peaks"/>
387 <data format="tabular" name="intensity_matrix" label="intensity_matrix"/>
388 </outputs>
389 <tests>
390 <test>
391 <param name="infile" value="" ftype="imzml">
392 <composite_data value="Example_Continuous.imzML"/>
393 <composite_data value="Example_Continuous.ibd"/>
394 </param>
395 <conditional name="tabular_annotation">
396 <param name="load_annotation" value="yes_annotation"/>
397 <param name="annotation_file" value="pixel_annotations.tabular"/>
398 <param name="column_x" value="1"/>
399 <param name="column_y" value="2"/>
400 <param name="column_names" value="3"/>
401 <param name="tabular_header" value="TRUE"/>
402 </conditional>
403 <repeat name="methods">
404 <conditional name="methods_conditional">
405 <param name="method" value="Peak_detection"/>
406 <param name="peak_method" value="SuperSmoother"/>
407 <param name="halfWindowSize" value="1"/>
408 <param name="snr" value="5"/>
409 <param name="use_annotations" value="TRUE"/>
410 </conditional>
411 </repeat>
412 <output name="plots" file="peakdetection1_QC.pdf" compare="sim_size"/>
413 <output name="masspeaks" file="masspeaks1.tabular"/>
414 <output name="intensity_matrix" file="int1.tabular"/>
415 </test>
416 <test>
417 <param name="infile" value="masspeaks1_forinput.tabular"/>
418 <param name="centroids" value="TRUE"/>
419 <repeat name="methods">
420 <conditional name="methods_conditional">
421 <param name="method" value="monoisotopic_peaks"/>
422 <param name="minCor" value="0.60"/>
423 <param name="tolerance" value="0.0001"/>
424 </conditional>
425 </repeat>
426 <output name="plots" file="peakdetection2_QC.pdf" compare="sim_size"/>
427 <output name="masspeaks" file="masspeaks2.tabular"/>
428 <output name="intensity_matrix" file="int2.tabular"/>
429 </test>
430 <test>
431 <param name="infile" value="" ftype="imzml">
432 <composite_data value="Example_Continuous.imzML"/>
433 <composite_data value="Example_Continuous.ibd"/>
434 </param>
435 <conditional name="tabular_annotation">
436 <param name="load_annotation" value="yes_annotation"/>
437 <param name="annotation_file" value="pixel_annotations.tabular"/>
438 <param name="column_x" value="1"/>
439 <param name="column_y" value="2"/>
440 <param name="column_names" value="3"/>
441 <param name="tabular_header" value="TRUE"/>
442 </conditional>
443 <repeat name="methods">
444 <conditional name="methods_conditional">
445 <param name="method" value="Peak_detection"/>
446 <param name="peak_method" value="MAD"/>
447 <param name="halfWindowSize" value="1"/>
448 <param name="snr" value="2"/>
449 </conditional>
450 </repeat>
451 <repeat name="methods">
452 <conditional name="methods_conditional">
453 <param name="method" value="Binning"/>
454 <param name="bin_tolerance" value="0.01"/>
455 </conditional>
456 </repeat>
457 <repeat name="methods">
458 <conditional name="methods_conditional">
459 <param name="method" value="Filtering"/>
460 <param name="bin_tolerance" value="0.01"/>
461 <param name="minFrequency" value="0.5"/>
462 <param name="minNumber" value="3"/>
463 <param name="filter_annot_groups" value="TRUE"/>
464 <param name="mergeWhitelists" value="FALSE"/>
465 </conditional>
466 </repeat>
467 <output name="plots" file="peakdetection3_QC.pdf" compare="sim_size"/>
468 <output name="intensity_matrix" file="intensity_matrix3.tabular"/>
469 <output name="masspeaks" file="masspeaks3.tabular"/>
470 </test>
471 </tests>
472 <help>
473 <![CDATA[
474
475 MALDIquant_ provides a complete analysis pipeline for MALDI-TOF and other mass spectrometry data. So far we have only implemented the functionalities for mass spectrometry imaging data.
476
477 Input data:
478
479 - MSI data as imzML or file (upload via the "composite" function) `Introduction to the imzml format <https://ms-imaging.org/wp/imzml/>`_
480 - or MSI data as peak list (tabular file) with the columns named "snr", "mass", "intensity" and "spectrum". To obtain a valid imzML output file spectrum should contain the pixel coordinates in the format: "x = 1, y = 1"
481 - optinal tabular file with pixel coordinates to restrict reading of imzML file to coordinates of interest
482 - optional tabular file with pixel annotations. The annotations can be used to summarize pixels of an imzML file which belong to the same group and detect peaks on average spectra, further steps will be done on average spectra as well and average spectra are exported. If this option was not chosen the filtering tool can use the annotations to filter for peaks within pixel groups (select "Group wise filtering")
483
484
485 Options:
486
487 - Peak detection: detection of peaks, only possible with imzML input
488 - Monoisotopic peaks: detection of monoisotopic peaks
489 - Peak binning: After the alignment the peak positions (mass) are very similar but not identical. The binning is needed to make similar peak mass values identical.
490 - Peak filtering: Removal of less frequent peaks (either with a minimum ratio or with an absolute minimum number of spectra in which the peak has to occur)
491
492
493 Output:
494
495 - centroided processed or continuous imzML file
496 - pdf with mass spectra after each preprocessing step
497 - peak list (tabular file) with the columns "snr", "mass", "intensity" and "spectrum"
498 - tabular file with intensity matrix (m/z in rows and spectra in columns). If the input file was imzML in profile mode the intensities before peak picking are also stored in the matrix . For all other inputs not picked values are set to NA.
499
500 .. _MALDIquant: http://strimmerlab.org/software/maldiquant/
501
502 ]]>
503 </help>
504 <expand macro="citation"/>
505 </tool>