comparison preprocessing.xml @ 10:5abc3ab4792c draft

"planemo upload for repository https://github.com/galaxyproteomics/tools-galaxyp/tree/master/tools/cardinal commit ca89f8e007c6b17f7c30066729e05b8686ab975a"
author galaxyp
date Sun, 27 Sep 2020 11:10:30 +0000
parents ca727a6dede6
children e86a8be551b9
comparison
equal deleted inserted replaced
9:ca727a6dede6 10:5abc3ab4792c
72 QC_numbers= data.frame(inputdata = c(minmz, maxmz,maxfeatures, pixelcount)) 72 QC_numbers= data.frame(inputdata = c(minmz, maxmz,maxfeatures, pixelcount))
73 vectorofactions = "inputdata" 73 vectorofactions = "inputdata"
74 ## Choose random spectra for QC plots 74 ## Choose random spectra for QC plots
75 random_spectra = sample(pixels(msidata), 4, replace=FALSE) 75 random_spectra = sample(pixels(msidata), 4, replace=FALSE)
76 par(oma=c(0,0,2,0)) 76 par(oma=c(0,0,2,0))
77 print(plot(msidata, pixel=random_spectra)) 77 print(plot(msidata, pixel=random_spectra, col="black"))
78 title("Input spectra", outer=TRUE, line=0) 78 title("Input spectra", outer=TRUE, line=0)
79 79
80 ############################### Preprocessing steps ########################### 80 ############################### Preprocessing steps ###########################
81 ############################################################################### 81 ###############################################################################
82 82
86 86
87 #if str( $method.methods_conditional.preprocessing_method ) == 'Normalization': 87 #if str( $method.methods_conditional.preprocessing_method ) == 'Normalization':
88 print('Normalization') 88 print('Normalization')
89 ##normalization 89 ##normalization
90 90
91 if (class(msidata) == "MSProcessedImagingExperiment"){
92 msidata = as(msidata, "MSContinuousImagingExperiment")
93 }
94
95 msidata = normalize(msidata, method="$method.methods_conditional.methods_for_normalization.normalization_method") 91 msidata = normalize(msidata, method="$method.methods_conditional.methods_for_normalization.normalization_method")
96 msidata <- process(msidata, BPPARAM=MulticoreParam(workers=number_cpu)) 92 msidata <- process(msidata, BPPARAM=MulticoreParam(workers=number_cpu))
97 93
98 94
99 ############################### QC ########################### 95 ############################### QC ###########################
103 minmz = round(min(mz(msidata)), digits=2) 99 minmz = round(min(mz(msidata)), digits=2)
104 maxmz = round(max(mz(msidata)), digits=2) 100 maxmz = round(max(mz(msidata)), digits=2)
105 normalized = c(minmz, maxmz,maxfeatures, pixelcount) 101 normalized = c(minmz, maxmz,maxfeatures, pixelcount)
106 QC_numbers= cbind(QC_numbers, normalized) 102 QC_numbers= cbind(QC_numbers, normalized)
107 vectorofactions = append(vectorofactions, "normalized") 103 vectorofactions = append(vectorofactions, "normalized")
108 print(plot(msidata, pixel=random_spectra)) 104 print(plot(msidata, pixel=random_spectra, col="black"))
109 title("Spectra after normalization", outer=TRUE, line=0) 105 title("Spectra after normalization", outer=TRUE, line=0)
110 106
111 ############################### Baseline reduction ########################### 107 ############################### Baseline reduction ###########################
112 108
113 #elif str( $method.methods_conditional.preprocessing_method ) == 'Baseline_reduction': 109 #elif str( $method.methods_conditional.preprocessing_method ) == 'Baseline_reduction':
114 print('Baseline_reduction') 110 print('Baseline_reduction')
115 ##baseline reduction 111 ##baseline reduction
116 112
117 if (class(msidata) == "MSProcessedImagingExperiment"){
118 msidata = as(msidata, "MSContinuousImagingExperiment")
119 }
120
121 msidata = reduceBaseline(msidata, method="median", blocks=$method.methods_conditional.blocks_baseline, spar=$method.methods_conditional.spar_baseline) 113 msidata = reduceBaseline(msidata, method="median", blocks=$method.methods_conditional.blocks_baseline, spar=$method.methods_conditional.spar_baseline)
122 msidata <- process(msidata, BPPARAM=MulticoreParam(workers=number_cpu)) 114 msidata <- process(msidata, BPPARAM=MulticoreParam(workers=number_cpu))
123 115
124 ############################### QC ########################### 116 ############################### QC ###########################
125 117
128 minmz = round(min(mz(msidata)), digits=2) 120 minmz = round(min(mz(msidata)), digits=2)
129 maxmz = round(max(mz(msidata)), digits=2) 121 maxmz = round(max(mz(msidata)), digits=2)
130 baseline = c(minmz, maxmz,maxfeatures, pixelcount) 122 baseline = c(minmz, maxmz,maxfeatures, pixelcount)
131 QC_numbers= cbind(QC_numbers, baseline) 123 QC_numbers= cbind(QC_numbers, baseline)
132 vectorofactions = append(vectorofactions, "baseline red.") 124 vectorofactions = append(vectorofactions, "baseline red.")
133 print(plot(msidata, pixel=random_spectra)) 125 print(plot(msidata, pixel=random_spectra, col="black"))
134 title("Spectra after baseline reduction", outer=TRUE, line=0) 126 title("Spectra after baseline reduction", outer=TRUE, line=0)
135 127
136 ############################### Smoothing ########################### 128 ############################### Smoothing ###########################
137 129
138 #elif str( $method.methods_conditional.preprocessing_method ) == 'Smoothing': 130 #elif str( $method.methods_conditional.preprocessing_method ) == 'Smoothing':
139 print('Smoothing') 131 print('Smoothing')
140 ## Smoothing 132 ## Smoothing
141
142 if (class(msidata) == "MSProcessedImagingExperiment"){
143 msidata = as(msidata, "MSContinuousImagingExperiment")
144 }
145
146 133
147 #if str( $method.methods_conditional.methods_for_smoothing.smoothing_method) == 'gaussian': 134 #if str( $method.methods_conditional.methods_for_smoothing.smoothing_method) == 'gaussian':
148 print('gaussian smoothing') 135 print('gaussian smoothing')
149 136
150 msidata = smoothSignal(msidata, method="$method.methods_conditional.methods_for_smoothing.smoothing_method", window=$method.methods_conditional.window_smoothing, sd = $method.methods_conditional.methods_for_smoothing.sd_gaussian) 137 msidata = smoothSignal(msidata, method="$method.methods_conditional.methods_for_smoothing.smoothing_method", window=$method.methods_conditional.window_smoothing, sd = $method.methods_conditional.methods_for_smoothing.sd_gaussian)
174 minmz = round(min(mz(msidata)), digits=2) 161 minmz = round(min(mz(msidata)), digits=2)
175 maxmz = round(max(mz(msidata)), digits=2) 162 maxmz = round(max(mz(msidata)), digits=2)
176 smoothed = c(minmz, maxmz,maxfeatures, pixelcount) 163 smoothed = c(minmz, maxmz,maxfeatures, pixelcount)
177 QC_numbers= cbind(QC_numbers, smoothed) 164 QC_numbers= cbind(QC_numbers, smoothed)
178 vectorofactions = append(vectorofactions, "smoothed") 165 vectorofactions = append(vectorofactions, "smoothed")
179 print(plot(msidata, pixel=random_spectra)) 166 print(plot(msidata, pixel=random_spectra, col="black"))
180 title("Spectra after smoothing", outer=TRUE, line=0) 167 title("Spectra after smoothing", outer=TRUE, line=0)
181 168
182 169
183 ############################### Mz alignment ########################### 170 ############################### Mz alignment ###########################
184 171
209 minmz = round(min(mz(msidata)), digits=2) 196 minmz = round(min(mz(msidata)), digits=2)
210 maxmz = round(max(mz(msidata)), digits=2) 197 maxmz = round(max(mz(msidata)), digits=2)
211 mz_aligned = c(minmz, maxmz,maxfeatures, pixelcount) 198 mz_aligned = c(minmz, maxmz,maxfeatures, pixelcount)
212 QC_numbers= cbind(QC_numbers, mz_aligned) 199 QC_numbers= cbind(QC_numbers, mz_aligned)
213 vectorofactions = append(vectorofactions, "mz aligned") 200 vectorofactions = append(vectorofactions, "mz aligned")
214 print(plot(msidata, pixel=random_spectra)) 201 print(plot(msidata, pixel=random_spectra, col="black"))
215 title("Spectra after m/z alignment", outer=TRUE, line=0) 202 title("Spectra after m/z alignment", outer=TRUE, line=0)
216 203
217 204
218 ############################### Peak picking ########################### 205 ############################### Peak picking ###########################
219 206
238 msidata = peakPick(msidata, window = $method.methods_conditional.window_picking, blocks = $method.methods_conditional.blocks_picking, method='$method.methods_conditional.methods_for_picking.picking_method', SNR=$method.methods_conditional.SNR_picking_method) 225 msidata = peakPick(msidata, window = $method.methods_conditional.window_picking, blocks = $method.methods_conditional.blocks_picking, method='$method.methods_conditional.methods_for_picking.picking_method', SNR=$method.methods_conditional.SNR_picking_method)
239 226
240 #end if 227 #end if
241 msidata <- process(msidata, BPPARAM=MulticoreParam(workers=number_cpu)) 228 msidata <- process(msidata, BPPARAM=MulticoreParam(workers=number_cpu))
242 229
243 #if str($method.methods_conditional.imzml_output) == "cont_format":
244 #set $continuous_format = True
245 #end if
246
247 230
248 ############################### QC ########################### 231 ############################### QC ###########################
249 232
250 maxfeatures =nrow(msidata) 233 maxfeatures =nrow(msidata)
251 pixelcount = ncol(msidata) 234 pixelcount = ncol(msidata)
252 minmz = round(min(mz(msidata)), digits=2) 235 minmz = round(min(mz(msidata)), digits=2)
253 maxmz = round(max(mz(msidata)), digits=2) 236 maxmz = round(max(mz(msidata)), digits=2)
254 picked = c(minmz, maxmz,maxfeatures, pixelcount) 237 picked = c(minmz, maxmz,maxfeatures, pixelcount)
255 QC_numbers= cbind(QC_numbers, picked) 238 QC_numbers= cbind(QC_numbers, picked)
256 vectorofactions = append(vectorofactions, "picked") 239 vectorofactions = append(vectorofactions, "picked")
257 print(plot(msidata, pixel=random_spectra)) 240 print(plot(msidata, pixel=random_spectra, col="black"))
258 title("Spectra after peak picking", outer=TRUE, line=0) 241 title("Spectra after peak picking", outer=TRUE, line=0)
259 242
260 ############################### Peak alignment ########################### 243 ############################### Peak alignment ###########################
261 244
262 #elif str( $method.methods_conditional.preprocessing_method ) == 'Peak_alignment': 245 #elif str( $method.methods_conditional.preprocessing_method ) == 'Peak_alignment':
283 266
284 #end if 267 #end if
285 268
286 msidata <- process(msidata, BPPARAM=MulticoreParam(workers=number_cpu)) 269 msidata <- process(msidata, BPPARAM=MulticoreParam(workers=number_cpu))
287 270
288 #if str($method.methods_conditional.imzml_output) == "cont_format":
289 #set $continuous_format = True
290 #end if
291 271
292 ############################### QC ########################### 272 ############################### QC ###########################
293 273
294 maxfeatures =nrow(msidata) 274 maxfeatures =nrow(msidata)
295 pixelcount = ncol(msidata) 275 pixelcount = ncol(msidata)
296 minmz = round(min(mz(msidata)), digits=2) 276 minmz = round(min(mz(msidata)), digits=2)
297 maxmz = round(max(mz(msidata)), digits=2) 277 maxmz = round(max(mz(msidata)), digits=2)
298 aligned = c(minmz, maxmz,maxfeatures, pixelcount) 278 aligned = c(minmz, maxmz,maxfeatures, pixelcount)
299 QC_numbers= cbind(QC_numbers, aligned) 279 QC_numbers= cbind(QC_numbers, aligned)
300 vectorofactions = append(vectorofactions, "aligned") 280 vectorofactions = append(vectorofactions, "aligned")
301 print(plot(msidata, pixel=random_spectra)) 281 print(plot(msidata, pixel=random_spectra, col="black"))
302 title("Spectra after alignment", outer=TRUE, line=0) 282 title("Spectra after alignment", outer=TRUE, line=0)
303 283
304 ############################### Peak filtering ########################### 284 ############################### Peak filtering ###########################
305 285
306 #elif str( $method.methods_conditional.preprocessing_method) == 'Peak_filtering': 286 #elif str( $method.methods_conditional.preprocessing_method) == 'Peak_filtering':
316 minmz = round(min(mz(msidata)), digits=2) 296 minmz = round(min(mz(msidata)), digits=2)
317 maxmz = round(max(mz(msidata)), digits=2) 297 maxmz = round(max(mz(msidata)), digits=2)
318 filtered = c(minmz, maxmz,maxfeatures, pixelcount) 298 filtered = c(minmz, maxmz,maxfeatures, pixelcount)
319 QC_numbers= cbind(QC_numbers, filtered) 299 QC_numbers= cbind(QC_numbers, filtered)
320 vectorofactions = append(vectorofactions, "filtered") 300 vectorofactions = append(vectorofactions, "filtered")
321 print(plot(msidata, pixel=random_spectra)) 301 print(plot(msidata, pixel=random_spectra, col="black"))
322 title("Spectra after filtering", outer=TRUE, line=0) 302 title("Spectra after filtering", outer=TRUE, line=0)
323 303
324 ############################### Peak binning ########################### 304 ############################### Peak binning ###########################
325 305
326 #elif str( $method.methods_conditional.preprocessing_method) == 'Peak_binning': 306 #elif str( $method.methods_conditional.preprocessing_method) == 'Peak_binning':
341 minmz = round(min(mz(msidata)), digits=2) 321 minmz = round(min(mz(msidata)), digits=2)
342 maxmz = round(max(mz(msidata)), digits=2) 322 maxmz = round(max(mz(msidata)), digits=2)
343 peak_binned = c(minmz, maxmz,maxfeatures, pixelcount) 323 peak_binned = c(minmz, maxmz,maxfeatures, pixelcount)
344 QC_numbers= cbind(QC_numbers, peak_binned) 324 QC_numbers= cbind(QC_numbers, peak_binned)
345 vectorofactions = append(vectorofactions, "peak binned") 325 vectorofactions = append(vectorofactions, "peak binned")
346 print(plot(msidata, pixel=random_spectra)) 326 print(plot(msidata, pixel=random_spectra, col="black"))
347 title("Spectra after peak binning", outer=TRUE, line=0) 327 title("Spectra after peak binning", outer=TRUE, line=0)
348 328
349 329
350 ############################### Mass binning ########################### 330 ############################### Mass binning ###########################
351 331
385 minmz = round(min(mz(msidata)), digits=2) 365 minmz = round(min(mz(msidata)), digits=2)
386 maxmz = round(max(mz(msidata)), digits=2) 366 maxmz = round(max(mz(msidata)), digits=2)
387 reduced = c(minmz, maxmz,maxfeatures, pixelcount) 367 reduced = c(minmz, maxmz,maxfeatures, pixelcount)
388 QC_numbers= cbind(QC_numbers, reduced) 368 QC_numbers= cbind(QC_numbers, reduced)
389 vectorofactions = append(vectorofactions, "reduced") 369 vectorofactions = append(vectorofactions, "reduced")
390 print(plot(msidata, pixel=random_spectra)) 370 print(plot(msidata, pixel=random_spectra, col="black"))
391 title("Spectra after m/z binning", outer=TRUE, line=0) 371 title("Spectra after m/z binning", outer=TRUE, line=0)
392 372
393 ############################### Transformation ########################### 373 ############################### Transformation ###########################
394 374
395 #elif str( $method.methods_conditional.preprocessing_method) == 'Transformation': 375 #elif str( $method.methods_conditional.preprocessing_method) == 'Transformation':
428 minmz = round(min(mz(msidata)), digits=2) 408 minmz = round(min(mz(msidata)), digits=2)
429 maxmz = round(max(mz(msidata)), digits=2) 409 maxmz = round(max(mz(msidata)), digits=2)
430 transformed = c(minmz, maxmz,maxfeatures, pixelcount) 410 transformed = c(minmz, maxmz,maxfeatures, pixelcount)
431 QC_numbers= cbind(QC_numbers, transformed) 411 QC_numbers= cbind(QC_numbers, transformed)
432 vectorofactions = append(vectorofactions, "transformed") 412 vectorofactions = append(vectorofactions, "transformed")
433 print(plot(msidata, pixel=random_spectra)) 413 print(plot(msidata, pixel=random_spectra, col="black"))
434 title("Spectra after transformation", outer=TRUE, line=0) 414 title("Spectra after transformation", outer=TRUE, line=0)
435 415
436 #end if 416 #end if
437 #end for 417 #end for
438 418
439 ############# Outputs: RData, imzml and QC report ############# 419 ############# Outputs: RData, imzml and QC report #############
440 ################################################################################ 420 ################################################################################
441 421
442 ## save msidata as imzML file, will only work if there is at least 1 m/z left 422 ## save msidata as imzML file, will only work if there is at least 1 m/z left
423
424 #if str($imzml_output) == "cont_format":
425 #set $continuous_format = True
426 #end if
443 427
444 if (nrow(msidata) > 0){ 428 if (nrow(msidata) > 0){
445 ## make sure that coordinates are integers 429 ## make sure that coordinates are integers
446 coord(msidata)\$y = as.integer(coord(msidata)\$y) 430 coord(msidata)\$y = as.integer(coord(msidata)\$y)
447 coord(msidata)\$x = as.integer(coord(msidata)\$x) 431 coord(msidata)\$x = as.integer(coord(msidata)\$x)
576 for throwing away false noise spikes that might occur inside peaks"/> 560 for throwing away false noise spikes that might occur inside peaks"/>
577 </when> 561 </when>
578 <when value="mad"/> 562 <when value="mad"/>
579 <when value="simple"/> 563 <when value="simple"/>
580 </conditional> 564 </conditional>
581 <param name="imzml_output" type="boolean" label="imzML output in processed format" checked="True" truevalue="proc_format" falsevalue="cont_format"/>
582 </when> 565 </when>
583 <when value="Peak_alignment"> 566 <when value="Peak_alignment">
584 <param name="value_diffalignment" type="float" value="200" 567 <param name="value_diffalignment" type="float" value="200"
585 label="tolerance" help="Peaks that differ less than this value will be aligned together"/> 568 label="tolerance" help="Peaks that differ less than this value will be aligned together"/>
586 <param name="units_diffalignment" type="select" display="radio" optional="False" label="units"> 569 <param name="units_diffalignment" type="select" display="radio" optional="False" label="units">
595 <when value="align_noref"/> 578 <when value="align_noref"/>
596 <when value="align_table"> 579 <when value="align_table">
597 <expand macro="reading_1_column_mz_tabular" label="Tabular file with m/z features to use for alignment. Only the m/z values from the tabular file will be kept."/> 580 <expand macro="reading_1_column_mz_tabular" label="Tabular file with m/z features to use for alignment. Only the m/z values from the tabular file will be kept."/>
598 </when> 581 </when>
599 </conditional> 582 </conditional>
600 <param name="imzml_output" type="boolean" label="imzML output in processed format" checked="True" truevalue="proc_format" falsevalue="cont_format" help= "Processed imzML works only in MALDIquant tools, not yet in MSI tools (Cardinal)"/>
601 </when> 583 </when>
602 <when value="Peak_filtering"> 584 <when value="Peak_filtering">
603 <param name="frequ_filtering" type="float" value="0.01" max="1" min="0" label="Minimum frequency" help="Peaks that occur in the dataset in lesser proportion than this will be dropped (0.01 --> filtering for 1% of spectra)"/> 585 <param name="frequ_filtering" type="float" value="0.01" max="1" min="0" label="Minimum frequency" help="Peaks that occur in the dataset in lesser proportion than this will be dropped (0.01 --> filtering for 1% of spectra)"/>
604 </when> 586 </when>
605 <when value="Peak_binning"> 587 <when value="Peak_binning">
659 <when value="sqrt"/> 641 <when value="sqrt"/>
660 </conditional> 642 </conditional>
661 </when> 643 </when>
662 </conditional> 644 </conditional>
663 </repeat> 645 </repeat>
646 <param name="imzml_output" type="boolean" label="imzML output in processed format" checked="True" truevalue="proc_format" falsevalue="cont_format"/>
664 </inputs> 647 </inputs>
665 <outputs> 648 <outputs>
666 <data format="imzml" name="outfile_imzml" label="${tool.name} on ${on_string}: imzML"/> 649 <data format="imzml" name="outfile_imzml" label="${tool.name} on ${on_string}: imzML"/>
667 <data format="pdf" name="QC_overview" from_work_dir="Preprocessing.pdf" label = "${tool.name} on ${on_string}: QC"/> 650 <data format="pdf" name="QC_overview" from_work_dir="Preprocessing.pdf" label = "${tool.name} on ${on_string}: QC"/>
668 </outputs> 651 </outputs>
694 <param name="picking_method" value="adaptive"/> 677 <param name="picking_method" value="adaptive"/>
695 </conditional> 678 </conditional>
696 <param name="blocks_picking" value="3"/> 679 <param name="blocks_picking" value="3"/>
697 <param name="window_picking" value="3"/> 680 <param name="window_picking" value="3"/>
698 <param name="SNR_picking_method" value="3"/> 681 <param name="SNR_picking_method" value="3"/>
699 <param name="imzml_output" value="cont_format"/>
700 </conditional> 682 </conditional>
701 </repeat> 683 </repeat>
702 <repeat name="methods"> 684 <repeat name="methods">
703 <conditional name="methods_conditional"> 685 <conditional name="methods_conditional">
704 <param name="preprocessing_method" value="Peak_alignment"/> 686 <param name="preprocessing_method" value="Peak_alignment"/>
705 <param name="imzml_output" value="cont_format"/>
706 </conditional> 687 </conditional>
707 </repeat> 688 </repeat>
708 <repeat name="methods"> 689 <repeat name="methods">
709 <conditional name="methods_conditional"> 690 <conditional name="methods_conditional">
710 <param name="preprocessing_method" value="Peak_filtering"/> 691 <param name="preprocessing_method" value="Peak_filtering"/>
717 <conditional name="transf_conditional"> 698 <conditional name="transf_conditional">
718 <param name="trans_type" value="sqrt"/> 699 <param name="trans_type" value="sqrt"/>
719 </conditional> 700 </conditional>
720 </conditional> 701 </conditional>
721 </repeat> 702 </repeat>
703 <param name="imzml_output" value="cont_format"/>
722 <output name="QC_overview" file="preprocessing_results1.pdf" compare="sim_size"/> 704 <output name="QC_overview" file="preprocessing_results1.pdf" compare="sim_size"/>
723 <output name="outfile_imzml" ftype="imzml" file="preprocessing_results1.imzml.txt" compare="sim_size"> 705 <output name="outfile_imzml" ftype="imzml" file="preprocessing_results1.imzml.txt" compare="sim_size">
724 <extra_files type="file" file="preprocessing_results1.imzml" name="imzml" lines_diff="6"/> 706 <extra_files type="file" file="preprocessing_results1.imzml" name="imzml" lines_diff="6"/>
725 <extra_files type="file" file="preprocessing_results1.ibd" name="ibd" compare="sim_size"/> 707 <extra_files type="file" file="preprocessing_results1.ibd" name="ibd" compare="sim_size"/>
726 </output> 708 </output>
734 <param name="window_picking" value="5"/> 716 <param name="window_picking" value="5"/>
735 <param name="SNR_picking_method" value="2"/> 717 <param name="SNR_picking_method" value="2"/>
736 <conditional name="methods_for_picking"> 718 <conditional name="methods_for_picking">
737 <param name="picking_method" value="adaptive"/> 719 <param name="picking_method" value="adaptive"/>
738 </conditional> 720 </conditional>
739 <param name="imzml_output" value="cont_format"/>
740 </conditional> 721 </conditional>
741 </repeat> 722 </repeat>
742 <repeat name="methods"> 723 <repeat name="methods">
743 <conditional name="methods_conditional"> 724 <conditional name="methods_conditional">
744 <param name="preprocessing_method" value="Peak_alignment"/> 725 <param name="preprocessing_method" value="Peak_alignment"/>
745 <param name="imzml_output" value="cont_format"/> 726 </conditional>
746 </conditional> 727 </repeat>
747 </repeat> 728 <param name="imzml_output" value="cont_format"/>
748 <output name="QC_overview" file="preprocessing_results2.pdf" compare="sim_size"/> 729 <output name="QC_overview" file="preprocessing_results2.pdf" compare="sim_size"/>
749 <output name="outfile_imzml" ftype="imzml" file="preprocessing_results2.imzml.txt" compare="sim_size"> 730 <output name="outfile_imzml" ftype="imzml" file="preprocessing_results2.imzml.txt" compare="sim_size">
750 <extra_files type="file" file="preprocessing_results2.imzml" name="imzml" lines_diff="6"/> 731 <extra_files type="file" file="preprocessing_results2.imzml" name="imzml" lines_diff="6"/>
751 <extra_files type="file" file="preprocessing_results2.ibd" name="ibd" compare="sim_size"/> 732 <extra_files type="file" file="preprocessing_results2.ibd" name="ibd" compare="sim_size"/>
752 </output> 733 </output>