comparison preprocessing.xml @ 1:1b22c1e7bfe7 draft

planemo upload for repository https://github.com/galaxyproteomics/tools-galaxyp/tree/master/tools/cardinal commit d2f311f7fff24e54c565127c40414de708e31b3c
author galaxyp
date Thu, 25 Oct 2018 07:29:29 -0400
parents 8c05a34f160a
children 1b875f0b8024
comparison
equal deleted inserted replaced
0:8c05a34f160a 1:1b22c1e7bfe7
1 <tool id="cardinal_preprocessing" name="MSI preprocessing" version="@VERSION@.0"> 1 <tool id="cardinal_preprocessing" name="MSI preprocessing" version="@VERSION@.1">
2 <description> 2 <description>
3 mass spectrometry imaging preprocessing 3 mass spectrometry imaging preprocessing
4 </description> 4 </description>
5 <macros> 5 <macros>
6 <import>macros.xml</import> 6 <import>macros.xml</import>
7 </macros> 7 </macros>
8 <expand macro="requirements"> 8 <expand macro="requirements">
9 <requirement type="package" version="2.2.1">r-gridextra</requirement> 9 <requirement type="package" version="2.3">r-gridextra</requirement>
10 <requirement type="package" version="0.20-35">r-lattice</requirement> 10 <requirement type="package" version="3.0">r-ggplot2</requirement>
11 <requirement type="package" version="2.2.1">r-ggplot2</requirement> 11 <requirement type="package" version="0.20_35">r-lattice</requirement>
12 </expand> 12 </expand>
13 <command detect_errors="exit_code"> 13 <command detect_errors="exit_code">
14 <![CDATA[ 14 <![CDATA[
15 15
16 @INPUT_LINKING@ 16 @INPUT_LINKING@
17 cat '${cardinal_preprocessing}' && 17 cat '${cardinal_preprocessing}' &&
18 Rscript '${cardinal_preprocessing}' 18 Rscript '${cardinal_preprocessing}' &&
19
20 #if $imzml_output:
21 mkdir $outfile_imzml.files_path &&
22 ls -l &&
23 mv ./out.imzML "${os.path.join($outfile_imzml.files_path, 'imzml')}" | true &&
24 mv ./out.ibd "${os.path.join($outfile_imzml.files_path, 'ibd')}" | true &&
25 #end if
26 echo "imzML file:" > $outfile_imzml &&
27 ls -l "$outfile_imzml.files_path" >> $outfile_imzml
28
19 29
20 ]]> 30 ]]>
21 </command> 31 </command>
22 <configfiles> 32 <configfiles>
23 <configfile name="cardinal_preprocessing"><![CDATA[ 33 <configfile name="cardinal_preprocessing"><![CDATA[
28 library(gridExtra) 38 library(gridExtra)
29 library(lattice) 39 library(lattice)
30 library(ggplot2) 40 library(ggplot2)
31 41
32 @READING_MSIDATA@ 42 @READING_MSIDATA@
43
44
45 ## remove duplicated coordinates, otherwise peak picking and log2 transformation will fail
46 print(paste0(sum(duplicated(coord(msidata))), " duplicated coordinates were removed"))
47 msidata <- msidata[,!duplicated(coord(msidata))]
33 48
34 print(paste0("Number of NA in input file: ",sum(is.na(spectra(msidata)[])))) 49 print(paste0("Number of NA in input file: ",sum(is.na(spectra(msidata)[]))))
35 50
36 51
37 if (sum(spectra(msidata)[]>0, na.rm=TRUE)> 0){ 52 if (sum(spectra(msidata)[]>0, na.rm=TRUE)> 0){
125 140
126 #elif str( $method.methods_conditional.preprocessing_method) == 'Peak_picking': 141 #elif str( $method.methods_conditional.preprocessing_method) == 'Peak_picking':
127 print('Peak_picking') 142 print('Peak_picking')
128 ## Peakpicking 143 ## Peakpicking
129 144
130 ## remove duplicated coordinates, otherwise peak picking will fail
131 print(paste0(sum(duplicated(coord(msidata))), " duplicated coordinates were removed"))
132 msidata <- msidata[,!duplicated(coord(msidata))]
133
134 #if str( $method.methods_conditional.methods_for_picking.picking_method) == 'adaptive': 145 #if str( $method.methods_conditional.methods_for_picking.picking_method) == 'adaptive':
135 print('adaptive peakpicking') 146 print('adaptive peakpicking')
136 147
137 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, spar=$method.methods_conditional.methods_for_picking.spar_picking) 148 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, spar=$method.methods_conditional.methods_for_picking.spar_picking)
138 149
232 #if str( $method.methods_conditional.methods_for_reduction.reduction_method) == 'bin': 243 #if str( $method.methods_conditional.methods_for_reduction.reduction_method) == 'bin':
233 print('bin reduction') 244 print('bin reduction')
234 245
235 msidata = reduceDimension(msidata, method="bin", width=$method.methods_conditional.methods_for_reduction.bin_width, units="$method.methods_conditional.methods_for_reduction.bin_units", fun=$method.methods_conditional.methods_for_reduction.bin_fun) 246 msidata = reduceDimension(msidata, method="bin", width=$method.methods_conditional.methods_for_reduction.bin_width, units="$method.methods_conditional.methods_for_reduction.bin_units", fun=$method.methods_conditional.methods_for_reduction.bin_fun)
236 247
248 ## optional: replace NA with 0
249 #if $method.methods_conditional.methods_for_reduction.replace_NA_bin:
250 print(paste0("Number of NA that were set to zero after binning:",sum(is.na(spectra(msidata)[]))))
251 spectra(msidata)[][is.na(spectra(msidata)[])] = 0
252 #end if
253
237 #elif str( $method.methods_conditional.methods_for_reduction.reduction_method) == 'resample': 254 #elif str( $method.methods_conditional.methods_for_reduction.reduction_method) == 'resample':
238 print('resample reduction') 255 print('resample reduction')
239 256
240 msidata = reduceDimension(msidata, method="resample", step=$method.methods_conditional.methods_for_reduction.resample_step) 257 msidata = reduceDimension(msidata, method="resample", step=$method.methods_conditional.methods_for_reduction.resample_step)
241 258
273 print('Transformation') 290 print('Transformation')
274 291
275 #if str( $method.methods_conditional.transf_conditional.trans_type) == 'log2': 292 #if str( $method.methods_conditional.transf_conditional.trans_type) == 'log2':
276 print('log2 transformation') 293 print('log2 transformation')
277 294
278 spectra(msidata)[][spectra(msidata)[] ==0] = NA 295 ## replace 0 with NA
279 print(paste0("Number of 0 which were converted into NA:",sum(is.na(spectra(msidata)[])))) 296 spectra_df = spectra(msidata)[]
280 spectra(msidata)[] = log2(spectra(msidata)[]) 297 spectra_df[spectra_df ==0] = NA
298 print(paste0("Number of 0 which were converted into NA:",sum(is.na(spectra_df))))
299 spectra(msidata) = spectra_df
300 ## log transformation
301 spectra(msidata) = log2(spectra(msidata))
302 ## optional: replace NA with 0
303 #if $method.methods_conditional.transf_conditional.replace_NA_trans:
304 spectra(msidata)[][is.na(spectra(msidata)[])] = 0
305 #end if
281 306
282 #elif str( $method.methods_conditional.transf_conditional.trans_type) == 'sqrt': 307 #elif str( $method.methods_conditional.transf_conditional.trans_type) == 'sqrt':
283 print('squareroot transformation') 308 print('squareroot transformation')
284 309
285 spectra(msidata)[] = sqrt(spectra(msidata)[]) 310 spectra(msidata)[] = sqrt(spectra(msidata)[])
298 vectorofactions = append(vectorofactions, "transformed") 323 vectorofactions = append(vectorofactions, "transformed")
299 324
300 #end if 325 #end if
301 #end for 326 #end for
302 327
303 ############# Outputs: RData and QC report ############# 328 ############# Outputs: RData, imzml and QC report #############
304 ################################################################################ 329 ################################################################################
305 330
306 print(paste0("Number of NA in output file: ",sum(is.na(spectra(msidata)[])))) 331 print(paste0("Number of NA in output file: ",sum(is.na(spectra(msidata)[]))))
307 332
308 ## save as (.RData) 333 ## save as (.RData)
309 save(msidata, file="$msidata_preprocessed") 334 save(msidata, file="$msidata_preprocessed")
335
336 ## save msidata as imzML file, will only work if there is at least 1 m/z left
337 #if $imzml_output:
338 if (nrow(msidata) > 0){
339 print("write outputfile")
340 writeImzML(msidata, "out")}
341 #end if
310 342
311 ## save QC report 343 ## save QC report
312 344
313 pdf("Preprocessing.pdf", fonts = "Times", pointsize = 12) 345 pdf("Preprocessing.pdf", fonts = "Times", pointsize = 12)
314 plot(0,type='n',axes=FALSE,ann=FALSE) 346 plot(0,type='n',axes=FALSE,ann=FALSE)
453 <param name="bin_fun" type="select" display="radio" 485 <param name="bin_fun" type="select" display="radio"
454 label="Calculate sum or mean intensity for ions of the same bin"> 486 label="Calculate sum or mean intensity for ions of the same bin">
455 <option value="mean" selected="True">mean</option> 487 <option value="mean" selected="True">mean</option>
456 <option value="sum">sum</option> 488 <option value="sum">sum</option>
457 </param> 489 </param>
490 <param name="replace_NA_bin" type="boolean" label="Replace NA with 0" truevalue="TRUE" falsevalue="FALSE" help="Binning can introduce NAs, should they be replaced with 0"/>
458 </when> 491 </when>
459 <when value="resample"> 492 <when value="resample">
460 <param name="resample_step" type="float" value="1" 493 <param name="resample_step" type="float" value="1"
461 label="The step size in m/z" help="Step size must be greater than range of m/z values divided by number of m/z features"/> 494 label="The step size in m/z" help="Step size must be greater than range of m/z values divided by number of m/z features"/>
462 </when> 495 </when>
485 <conditional name="transf_conditional"> 518 <conditional name="transf_conditional">
486 <param name="trans_type" type="select" label="Intensity transformations" help="logarithm base 2 (log2) or squareroot (sqrt)"> 519 <param name="trans_type" type="select" label="Intensity transformations" help="logarithm base 2 (log2) or squareroot (sqrt)">
487 <option value="log2" selected="True">log2</option> 520 <option value="log2" selected="True">log2</option>
488 <option value="sqrt">sqrt</option> 521 <option value="sqrt">sqrt</option>
489 </param> 522 </param>
490 <when value="log2"/> 523 <when value="log2">
524 <param name="replace_NA_trans" type="boolean" label="Replace NA with 0" truevalue="TRUE" falsevalue="FALSE" help="0 values are set to NA before log2 transformation, after transformation they can be set back to 0"/>
525 </when>
491 <when value="sqrt"/> 526 <when value="sqrt"/>
492 </conditional> 527 </conditional>
493 </when> 528 </when>
494 </conditional> 529 </conditional>
495 </repeat> 530 </repeat>
531 <param name="imzml_output" type="boolean" label="Output of imzML file" truevalue="TRUE" falsevalue="FALSE"/>
496 </inputs> 532 </inputs>
497 <outputs> 533 <outputs>
498 <data format="rdata" name="msidata_preprocessed" label="${tool.name} on ${on_string}"/> 534 <data format="rdata" name="msidata_preprocessed" label="${tool.name} on ${on_string}"/>
499 <data format="pdf" name="QC_overview" from_work_dir="Preprocessing.pdf" label = "${tool.name} on ${on_string}: QC"/> 535 <data format="pdf" name="QC_overview" from_work_dir="Preprocessing.pdf" label = "${tool.name} on ${on_string}: QC"/>
536 <data format="imzml" name="outfile_imzml" label="${tool.name} on ${on_string}: imzML">
537 <filter>imzml_output</filter>
538 </data>
500 </outputs> 539 </outputs>
501 <tests> 540 <tests>
502 <test> 541 <test>
503 <expand macro="infile_imzml"/> 542 <expand macro="infile_imzml"/>
504 <repeat name="methods"> 543 <repeat name="methods">
648 ----- 687 -----
649 688
650 This tool provides multiple Cardinal functions to preprocess mass spectrometry imaging data. 689 This tool provides multiple Cardinal functions to preprocess mass spectrometry imaging data.
651 690
652 @MSIDATA_INPUT_DESCRIPTION@ 691 @MSIDATA_INPUT_DESCRIPTION@
653 - Coordinates stored as decimals rather than integers will be rounded to obtain a regular pixel grid. This might lead to duplicated coordinates which will be automatically removed before peak picking. 692 - Coordinates stored as decimals rather than integers will be rounded to obtain a regular pixel grid. This might lead to duplicated coordinates which will be automatically removed after the data is read by the tool.
654 @MZ_TABULAR_INPUT_DESCRIPTION@ 693 @MZ_TABULAR_INPUT_DESCRIPTION@
655 694
656 **Options** 695 **Options**
657 696
658 - Normalization: Normalization of intensities to total ion current (TIC) 697 - Normalization: Normalization of intensities to total ion current (TIC)
669 - Peak alignment works only after peak picking 708 - Peak alignment works only after peak picking
670 - Peak filtering works only on centroided data (peak picking and alignment or Data reduction peaks 709 - Peak filtering works only on centroided data (peak picking and alignment or Data reduction peaks
671 710
672 **Output** 711 **Output**
673 712
674 - imzML file, preprocessed 713 - MSI data as .RData output (can be read with the Cardinal package in R)
714 - optional: MSI data as imzML file
675 - pdf with key values after each processing step 715 - pdf with key values after each processing step
676 716
677 ]]> 717 ]]>
678 </help> 718 </help>
679 <expand macro="citations"/> 719 <expand macro="citations"/>