Mercurial > repos > galaxyp > cardinal_preprocessing
comparison preprocessing.xml @ 6:cbd9e4df377d draft
"planemo upload for repository https://github.com/galaxyproteomics/tools-galaxyp/tree/master/tools/cardinal commit 15e24b1f0143679647906bc427654f66b417a45c"
| author | galaxyp |
|---|---|
| date | Wed, 25 Mar 2020 09:25:47 +0000 |
| parents | 84f422579d39 |
| children | 173070dafe95 |
comparison
equal
deleted
inserted
replaced
| 5:84f422579d39 | 6:cbd9e4df377d |
|---|---|
| 1 <tool id="cardinal_preprocessing" name="MSI preprocessing" version="@VERSION@.3"> | 1 <tool id="cardinal_preprocessing" name="MSI preprocessing" version="2.4.0.0"> |
| 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 <requirements> |
| 9 <requirement type="package" version="2.4.0">bioconductor-cardinal</requirement> | |
| 10 <requirement type="package" version="3.6.1">r-base</requirement> | |
| 9 <requirement type="package" version="2.3">r-gridextra</requirement> | 11 <requirement type="package" version="2.3">r-gridextra</requirement> |
| 10 <requirement type="package" version="3.0">r-ggplot2</requirement> | 12 <requirement type="package" version="3.2.1">r-ggplot2</requirement> |
| 11 <requirement type="package" version="0.20_35">r-lattice</requirement> | 13 <requirement type="package" version="0.20_38">r-lattice</requirement> |
| 12 </expand> | 14 </requirements> |
| 13 <command detect_errors="exit_code"> | 15 <command detect_errors="exit_code"> |
| 14 <![CDATA[ | 16 <![CDATA[ |
| 15 | 17 |
| 16 @INPUT_LINKING@ | 18 @INPUT_LINKING@ |
| 17 cat '${cardinal_preprocessing}' && | 19 cat '${cardinal_preprocessing}' && |
| 18 Rscript '${cardinal_preprocessing}' && | 20 Rscript '${cardinal_preprocessing}' && |
| 19 | 21 |
| 20 #if str($imzml_output) == "imzml_format": | |
| 21 mkdir $outfile_imzml.files_path && | 22 mkdir $outfile_imzml.files_path && |
| 22 mv ./out.imzML "${os.path.join($outfile_imzml.files_path, 'imzml')}" | true && | 23 mv ./out.imzML "${os.path.join($outfile_imzml.files_path, 'imzml')}" | true && |
| 23 mv ./out.ibd "${os.path.join($outfile_imzml.files_path, 'ibd')}" | true && | 24 mv ./out.ibd "${os.path.join($outfile_imzml.files_path, 'ibd')}" | true && |
| 24 #end if | |
| 25 echo "imzML file:" > $outfile_imzml && | 25 echo "imzML file:" > $outfile_imzml && |
| 26 ls -l "$outfile_imzml.files_path" >> $outfile_imzml | 26 ls -l "$outfile_imzml.files_path" >> $outfile_imzml |
| 27 | 27 |
| 28 ]]> | 28 ]]> |
| 29 </command> | 29 </command> |
| 35 library(Cardinal) | 35 library(Cardinal) |
| 36 library(gridExtra) | 36 library(gridExtra) |
| 37 library(lattice) | 37 library(lattice) |
| 38 library(ggplot2) | 38 library(ggplot2) |
| 39 | 39 |
| 40 @READING_MSIDATA@ | 40 |
| 41 | 41 ## function to read RData files independent of filename |
| 42 @READING_MSIDATA_INRAM@ ###change out | 42 loadRData <- function(fileName){ |
| 43 load(fileName) | |
| 44 get(ls()[ls() != "fileName"]) | |
| 45 } | |
| 46 | |
| 47 #if $infile.ext == 'imzml' | |
| 48 #if str($processed_cond.processed_file) == "processed": | |
| 49 msidata <- readImzML('infile', resolution=$processed_cond.accuracy, units = "$processed_cond.units") | |
| 50 centroided(msidata) = $centroids | |
| 51 #else | |
| 52 msidata <- readImzML('infile') | |
| 53 centroided(msidata) = $centroids | |
| 54 #end if | |
| 55 #elif $infile.ext == 'analyze75' | |
| 56 msidata = readAnalyze('infile') | |
| 57 centroided(msidata) = $centroids | |
| 58 #else | |
| 59 msidata = loadRData('infile.RData') | |
| 60 msidata = as(msidata, "MSImagingExperiment") | |
| 61 #end if | |
| 62 | |
| 43 | 63 |
| 44 ## remove duplicated coordinates, otherwise peak picking and log2 transformation will fail | 64 ## remove duplicated coordinates, otherwise peak picking and log2 transformation will fail |
| 45 msidata <- msidata[,!duplicated(coord(msidata)[,1:2])] | 65 msidata <- msidata[,!duplicated(coord(msidata)[,1:2])] |
| 66 | |
| 67 ## set variable to False | |
| 68 #set $used_peak_picking = False | |
| 69 #set $used_peak_alignment = False | |
| 70 #set $continuous_format = False | |
| 46 | 71 |
| 47 | 72 |
| 48 if (ncol(msidata)>0 & nrow(msidata) >0){ | 73 if (ncol(msidata)>0 & nrow(msidata) >0){ |
| 49 | 74 |
| 50 ## start QC report | 75 ## start QC report |
| 61 maxmz = round(max(mz(msidata)), digits=2) | 86 maxmz = round(max(mz(msidata)), digits=2) |
| 62 QC_numbers= data.frame(inputdata = c(minmz, maxmz,maxfeatures, pixelcount)) | 87 QC_numbers= data.frame(inputdata = c(minmz, maxmz,maxfeatures, pixelcount)) |
| 63 vectorofactions = "inputdata" | 88 vectorofactions = "inputdata" |
| 64 ## Choose random spectra for QC plots | 89 ## Choose random spectra for QC plots |
| 65 random_spectra = sample(pixels(msidata), 4, replace=FALSE) | 90 random_spectra = sample(pixels(msidata), 4, replace=FALSE) |
| 66 par(mfrow = c(2, 2), oma=c(0,0,2,0)) | 91 par(oma=c(0,0,2,0)) |
| 67 for (random_sample in 1:length(random_spectra)){ | 92 print(plot(msidata, pixel=random_spectra)) |
| 68 plot(msidata, pixel=random_spectra[random_sample], main=paste0("spectrum ", names(random_spectra)[random_sample]))} | |
| 69 title("Input spectra", outer=TRUE, line=0) | 93 title("Input spectra", outer=TRUE, line=0) |
| 70 | |
| 71 | 94 |
| 72 ############################### Preprocessing steps ########################### | 95 ############################### Preprocessing steps ########################### |
| 73 ############################################################################### | 96 ############################################################################### |
| 74 | 97 |
| 75 #for $method in $methods: | 98 #for $method in $methods: |
| 78 | 101 |
| 79 #if str( $method.methods_conditional.preprocessing_method ) == 'Normalization': | 102 #if str( $method.methods_conditional.preprocessing_method ) == 'Normalization': |
| 80 print('Normalization') | 103 print('Normalization') |
| 81 ##normalization | 104 ##normalization |
| 82 | 105 |
| 106 if (class(msidata) == "MSProcessedImagingExperiment"){ | |
| 107 msidata = as(msidata, "MSContinuousImagingExperiment") | |
| 108 } | |
| 109 | |
| 83 msidata = normalize(msidata, method="tic") | 110 msidata = normalize(msidata, method="tic") |
| 111 msidata <- process(msidata, BPPARAM=MulticoreParam()) | |
| 112 | |
| 84 | 113 |
| 85 ############################### QC ########################### | 114 ############################### QC ########################### |
| 86 | 115 |
| 87 maxfeatures =nrow(msidata) | 116 maxfeatures =nrow(msidata) |
| 88 pixelcount = ncol(msidata) | 117 pixelcount = ncol(msidata) |
| 89 minmz = round(min(mz(msidata)), digits=2) | 118 minmz = round(min(mz(msidata)), digits=2) |
| 90 maxmz = round(max(mz(msidata)), digits=2) | 119 maxmz = round(max(mz(msidata)), digits=2) |
| 91 normalized = c(minmz, maxmz,maxfeatures, pixelcount) | 120 normalized = c(minmz, maxmz,maxfeatures, pixelcount) |
| 92 QC_numbers= cbind(QC_numbers, normalized) | 121 QC_numbers= cbind(QC_numbers, normalized) |
| 93 vectorofactions = append(vectorofactions, "normalized") | 122 vectorofactions = append(vectorofactions, "normalized") |
| 94 par(mfrow = c(2, 2), oma=c(0,0,2,0)) | 123 print(plot(msidata, pixel=random_spectra)) |
| 95 for (random_sample in 1:length(random_spectra)){ | |
| 96 plot(msidata, pixel=random_spectra[random_sample], main=paste0("spectrum ", names(random_spectra)[random_sample]))} | |
| 97 title("Spectra after normalization", outer=TRUE, line=0) | 124 title("Spectra after normalization", outer=TRUE, line=0) |
| 98 | 125 |
| 99 ############################### Baseline reduction ########################### | 126 ############################### Baseline reduction ########################### |
| 100 | 127 |
| 101 #elif str( $method.methods_conditional.preprocessing_method ) == 'Baseline_reduction': | 128 #elif str( $method.methods_conditional.preprocessing_method ) == 'Baseline_reduction': |
| 102 print('Baseline_reduction') | 129 print('Baseline_reduction') |
| 103 ##baseline reduction | 130 ##baseline reduction |
| 104 | 131 |
| 132 if (class(msidata) == "MSProcessedImagingExperiment"){ | |
| 133 msidata = as(msidata, "MSContinuousImagingExperiment") | |
| 134 } | |
| 135 | |
| 105 msidata = reduceBaseline(msidata, method="median", blocks=$method.methods_conditional.blocks_baseline, spar=$method.methods_conditional.spar_baseline) | 136 msidata = reduceBaseline(msidata, method="median", blocks=$method.methods_conditional.blocks_baseline, spar=$method.methods_conditional.spar_baseline) |
| 137 msidata <- process(msidata, BPPARAM=MulticoreParam()) | |
| 106 | 138 |
| 107 ############################### QC ########################### | 139 ############################### QC ########################### |
| 108 | 140 |
| 109 maxfeatures =nrow(msidata) | 141 maxfeatures =nrow(msidata) |
| 110 pixelcount = ncol(msidata) | 142 pixelcount = ncol(msidata) |
| 111 minmz = round(min(mz(msidata)), digits=2) | 143 minmz = round(min(mz(msidata)), digits=2) |
| 112 maxmz = round(max(mz(msidata)), digits=2) | 144 maxmz = round(max(mz(msidata)), digits=2) |
| 113 baseline = c(minmz, maxmz,maxfeatures, pixelcount) | 145 baseline = c(minmz, maxmz,maxfeatures, pixelcount) |
| 114 QC_numbers= cbind(QC_numbers, baseline) | 146 QC_numbers= cbind(QC_numbers, baseline) |
| 115 vectorofactions = append(vectorofactions, "baseline red.") | 147 vectorofactions = append(vectorofactions, "baseline red.") |
| 116 for (random_sample in 1:length(random_spectra)){ | 148 print(plot(msidata, pixel=random_spectra)) |
| 117 plot(msidata, pixel=random_spectra[random_sample], main=paste0("spectrum ", names(random_spectra)[random_sample]))} | |
| 118 title("Spectra after baseline reduction", outer=TRUE, line=0) | 149 title("Spectra after baseline reduction", outer=TRUE, line=0) |
| 119 | 150 |
| 120 ############################### Smoothing ########################### | 151 ############################### Smoothing ########################### |
| 121 | 152 |
| 122 #elif str( $method.methods_conditional.preprocessing_method ) == 'Smoothing': | 153 #elif str( $method.methods_conditional.preprocessing_method ) == 'Smoothing': |
| 123 print('Smoothing') | 154 print('Smoothing') |
| 124 ## Smoothing | 155 ## Smoothing |
| 156 | |
| 157 if (class(msidata) == "MSProcessedImagingExperiment"){ | |
| 158 msidata = as(msidata, "MSContinuousImagingExperiment") | |
| 159 } | |
| 160 | |
| 125 | 161 |
| 126 #if str( $method.methods_conditional.methods_for_smoothing.smoothing_method) == 'gaussian': | 162 #if str( $method.methods_conditional.methods_for_smoothing.smoothing_method) == 'gaussian': |
| 127 print('gaussian smoothing') | 163 print('gaussian smoothing') |
| 128 | 164 |
| 129 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) | 165 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) |
| 142 print('moving average smoothing') | 178 print('moving average smoothing') |
| 143 | 179 |
| 144 msidata = smoothSignal(msidata, method="$method.methods_conditional.methods_for_smoothing.smoothing_method", window=$method.methods_conditional.window_smoothing, coef = $method.methods_conditional.methods_for_smoothing.coefficients_ma_filter) | 180 msidata = smoothSignal(msidata, method="$method.methods_conditional.methods_for_smoothing.smoothing_method", window=$method.methods_conditional.window_smoothing, coef = $method.methods_conditional.methods_for_smoothing.coefficients_ma_filter) |
| 145 | 181 |
| 146 #end if | 182 #end if |
| 183 msidata <- process(msidata, BPPARAM=MulticoreParam()) | |
| 147 | 184 |
| 148 ############################### QC ########################### | 185 ############################### QC ########################### |
| 149 | 186 |
| 150 maxfeatures =nrow(msidata) | 187 maxfeatures =nrow(msidata) |
| 151 pixelcount = ncol(msidata) | 188 pixelcount = ncol(msidata) |
| 152 minmz = round(min(mz(msidata)), digits=2) | 189 minmz = round(min(mz(msidata)), digits=2) |
| 153 maxmz = round(max(mz(msidata)), digits=2) | 190 maxmz = round(max(mz(msidata)), digits=2) |
| 154 smoothed = c(minmz, maxmz,maxfeatures, pixelcount) | 191 smoothed = c(minmz, maxmz,maxfeatures, pixelcount) |
| 155 QC_numbers= cbind(QC_numbers, smoothed) | 192 QC_numbers= cbind(QC_numbers, smoothed) |
| 156 vectorofactions = append(vectorofactions, "smoothed") | 193 vectorofactions = append(vectorofactions, "smoothed") |
| 157 for (random_sample in 1:length(random_spectra)){ | 194 print(plot(msidata, pixel=random_spectra)) |
| 158 plot(msidata, pixel=random_spectra[random_sample], main=paste0("spectrum ", names(random_spectra)[random_sample]))} | |
| 159 title("Spectra after smoothing", outer=TRUE, line=0) | 195 title("Spectra after smoothing", outer=TRUE, line=0) |
| 160 | 196 |
| 161 ############################### Peak picking ########################### | 197 ############################### Peak picking ########################### |
| 162 | 198 |
| 163 #elif str( $method.methods_conditional.preprocessing_method) == 'Peak_picking': | 199 #elif str( $method.methods_conditional.preprocessing_method) == 'Peak_picking': |
| 200 #set $used_peak_picking = True | |
| 164 print('Peak_picking') | 201 print('Peak_picking') |
| 165 ## Peakpicking | 202 ## Peakpicking |
| 166 | 203 |
| 167 #if str( $method.methods_conditional.methods_for_picking.picking_method) == 'adaptive': | 204 #if str( $method.methods_conditional.methods_for_picking.picking_method) == 'adaptive': |
| 168 print('adaptive peakpicking') | 205 print('adaptive peakpicking') |
| 169 | 206 |
| 170 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) | 207 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) |
| 171 | 208 |
| 172 #elif str( $method.methods_conditional.methods_for_picking.picking_method) == 'limpic': | 209 #elif str( $method.methods_conditional.methods_for_picking.picking_method) == 'mad': |
| 173 print('limpic peakpicking') | 210 print('mad peakpicking') |
| 174 | 211 |
| 175 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, thresh=$method.methods_conditional.methods_for_picking.tresh_picking) | 212 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) |
| 176 | 213 |
| 177 #elif str( $method.methods_conditional.methods_for_picking.picking_method) == 'simple': | 214 #elif str( $method.methods_conditional.methods_for_picking.picking_method) == 'simple': |
| 178 print('simple peakpicking') | 215 print('simple peakpicking') |
| 179 | 216 |
| 180 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) | 217 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) |
| 181 | 218 |
| 182 #end if | 219 #end if |
| 220 msidata <- process(msidata, BPPARAM=MulticoreParam()) | |
| 221 | |
| 222 #if str($method.methods_conditional.imzml_output) == "cont_format": | |
| 223 #set $continuous_format = True | |
| 224 #end if | |
| 225 | |
| 183 | 226 |
| 184 ############################### QC ########################### | 227 ############################### QC ########################### |
| 185 | 228 |
| 186 maxfeatures =nrow(msidata) | 229 maxfeatures =nrow(msidata) |
| 187 pixelcount = ncol(msidata) | 230 pixelcount = ncol(msidata) |
| 188 minmz = round(min(mz(msidata)), digits=2) | 231 minmz = round(min(mz(msidata)), digits=2) |
| 189 maxmz = round(max(mz(msidata)), digits=2) | 232 maxmz = round(max(mz(msidata)), digits=2) |
| 190 picked = c(minmz, maxmz,maxfeatures, pixelcount) | 233 picked = c(minmz, maxmz,maxfeatures, pixelcount) |
| 191 QC_numbers= cbind(QC_numbers, picked) | 234 QC_numbers= cbind(QC_numbers, picked) |
| 192 vectorofactions = append(vectorofactions, "picked") | 235 vectorofactions = append(vectorofactions, "picked") |
| 193 for (random_sample in 1:length(random_spectra)){ | 236 print(plot(msidata, pixel=random_spectra)) |
| 194 plot(msidata, pixel=random_spectra[random_sample], main=paste0("spectrum ", names(random_spectra)[random_sample]))} | |
| 195 title("Spectra after peak picking", outer=TRUE, line=0) | 237 title("Spectra after peak picking", outer=TRUE, line=0) |
| 196 | 238 |
| 197 ############################### Peak alignment ########################### | 239 ############################### Peak alignment ########################### |
| 198 | 240 |
| 199 #elif str( $method.methods_conditional.preprocessing_method ) == 'Peak_alignment': | 241 #elif str( $method.methods_conditional.preprocessing_method ) == 'Peak_alignment': |
| 242 #set $used_peak_alignment = True | |
| 200 print('Peak_alignment') | 243 print('Peak_alignment') |
| 201 ## Peakalignment | 244 ## Peakalignment |
| 202 | 245 |
| 203 #if str( $method.methods_conditional.align_ref_type.align_reference_datatype) == 'align_noref': | 246 #if str( $method.methods_conditional.align_ref_type.align_reference_datatype) == 'align_table': |
| 204 | |
| 205 align_peak_reference = msidata | |
| 206 | |
| 207 #elif str( $method.methods_conditional.align_ref_type.align_reference_datatype) == 'align_table': | |
| 208 | 247 |
| 209 align_reference_table = read.delim("$method.methods_conditional.align_ref_type.mz_tabular", header = $method.methods_conditional.align_ref_type.feature_header, stringsAsFactors = FALSE) | 248 align_reference_table = read.delim("$method.methods_conditional.align_ref_type.mz_tabular", header = $method.methods_conditional.align_ref_type.feature_header, stringsAsFactors = FALSE) |
| 249 | |
| 210 align_reference_column = align_reference_table[,$method.methods_conditional.align_ref_type.feature_column] | 250 align_reference_column = align_reference_table[,$method.methods_conditional.align_ref_type.feature_column] |
| 211 align_peak_reference = align_reference_column[align_reference_column>=min(mz(msidata)) & align_reference_column<=max(mz(msidata))] | 251 |
| 252 align_peak_reference = as.numeric(align_reference_column[align_reference_column>=min(mz(msidata)) & align_reference_column<=max(mz(msidata))]) | |
| 212 if (length(align_peak_reference) == 0) | 253 if (length(align_peak_reference) == 0) |
| 213 {align_peak_reference = 0} | 254 {align_peak_reference = 0} |
| 214 | 255 |
| 215 #elif str( $method.methods_conditional.align_ref_type.align_reference_datatype) == 'align_msidata_ref': | 256 msidata = peakAlign(msidata,tolerance =$method.methods_conditional.value_diffalignment, units = "$method.methods_conditional.units_diffalignment", ref=align_peak_reference) |
| 216 | 257 |
| 217 align_peak_reference = loadRData('$method.methods_conditional.align_ref_type.align_peaks_msidata') | 258 |
| 218 | 259 #elif str( $method.methods_conditional.align_ref_type.align_reference_datatype) == 'align_noref': |
| 219 #end if | 260 |
| 220 | 261 msidata = peakAlign(msidata,tolerance =$method.methods_conditional.value_diffalignment, units = "$method.methods_conditional.units_diffalignment") |
| 221 #if str( $method.methods_conditional.methods_for_alignment.alignment_method) == 'diff': | 262 |
| 222 print('diff peakalignment') | 263 #end if |
| 223 | 264 |
| 224 msidata = peakAlign(msidata, method='$method.methods_conditional.methods_for_alignment.alignment_method',diff.max =$method.methods_conditional.methods_for_alignment.value_diffalignment, units = "$method.methods_conditional.methods_for_alignment.units_diffalignment", ref=align_peak_reference) | 265 msidata <- process(msidata, BPPARAM=MulticoreParam()) |
| 225 | 266 |
| 226 #elif str( $method.methods_conditional.methods_for_alignment.alignment_method) == 'DP': | 267 #if str($method.methods_conditional.imzml_output) == "cont_format": |
| 227 print('DPpeakalignment') | 268 #set $continuous_format = True |
| 228 | 269 #end if |
| 229 msidata = peakAlign(msidata, method='$method.methods_conditional.methods_for_alignment.alignment_method',gap = $method.methods_conditional.methods_for_alignment.gap_DPalignment, ref=align_peak_reference) | |
| 230 | |
| 231 #end if | |
| 232 | 270 |
| 233 ############################### QC ########################### | 271 ############################### QC ########################### |
| 234 | 272 |
| 235 maxfeatures =nrow(msidata) | 273 maxfeatures =nrow(msidata) |
| 236 pixelcount = ncol(msidata) | 274 pixelcount = ncol(msidata) |
| 237 minmz = round(min(mz(msidata)), digits=2) | 275 minmz = round(min(mz(msidata)), digits=2) |
| 238 maxmz = round(max(mz(msidata)), digits=2) | 276 maxmz = round(max(mz(msidata)), digits=2) |
| 239 aligned = c(minmz, maxmz,maxfeatures, pixelcount) | 277 aligned = c(minmz, maxmz,maxfeatures, pixelcount) |
| 240 QC_numbers= cbind(QC_numbers, aligned) | 278 QC_numbers= cbind(QC_numbers, aligned) |
| 241 vectorofactions = append(vectorofactions, "aligned") | 279 vectorofactions = append(vectorofactions, "aligned") |
| 242 for (random_sample in 1:length(random_spectra)){ | 280 print(plot(msidata, pixel=random_spectra)) |
| 243 plot(msidata, pixel=random_spectra[random_sample], main=paste0("spectrum ", names(random_spectra)[random_sample]))} | |
| 244 title("Spectra after alignment", outer=TRUE, line=0) | 281 title("Spectra after alignment", outer=TRUE, line=0) |
| 245 | 282 |
| 246 ############################### Peak filtering ########################### | 283 ############################### Peak filtering ########################### |
| 247 | 284 |
| 248 #elif str( $method.methods_conditional.preprocessing_method) == 'Peak_filtering': | 285 #elif str( $method.methods_conditional.preprocessing_method) == 'Peak_filtering': |
| 249 print('Peak_filtering') | 286 print('Peak_filtering') |
| 250 | 287 |
| 251 msidata = peakFilter(msidata, method='freq', freq.min = $method.methods_conditional.frequ_filtering) | 288 msidata = peakFilter(msidata, freq.min = $method.methods_conditional.frequ_filtering) |
| 289 msidata <- process(msidata, BPPARAM=MulticoreParam()) | |
| 252 | 290 |
| 253 ############################### QC ########################### | 291 ############################### QC ########################### |
| 254 | 292 |
| 255 maxfeatures =nrow(msidata) | 293 maxfeatures =nrow(msidata) |
| 256 pixelcount = ncol(msidata) | 294 pixelcount = ncol(msidata) |
| 257 minmz = round(min(mz(msidata)), digits=2) | 295 minmz = round(min(mz(msidata)), digits=2) |
| 258 maxmz = round(max(mz(msidata)), digits=2) | 296 maxmz = round(max(mz(msidata)), digits=2) |
| 259 filtered = c(minmz, maxmz,maxfeatures, pixelcount) | 297 filtered = c(minmz, maxmz,maxfeatures, pixelcount) |
| 260 QC_numbers= cbind(QC_numbers, filtered) | 298 QC_numbers= cbind(QC_numbers, filtered) |
| 261 vectorofactions = append(vectorofactions, "filtered") | 299 vectorofactions = append(vectorofactions, "filtered") |
| 262 for (random_sample in 1:length(random_spectra)){ | 300 print(plot(msidata, pixel=random_spectra)) |
| 263 plot(msidata, pixel=random_spectra[random_sample], main=paste0("spectrum ", names(random_spectra)[random_sample]))} | |
| 264 title("Spectra after filtering", outer=TRUE, line=0) | 301 title("Spectra after filtering", outer=TRUE, line=0) |
| 265 | 302 |
| 266 ############################### Data reduction ########################### | 303 ############################### Data reduction ########################### |
| 267 | 304 |
| 268 #elif str( $method.methods_conditional.preprocessing_method) == 'Data_reduction': | 305 #elif str( $method.methods_conditional.preprocessing_method) == 'Data_reduction': |
| 269 print('Data_reduction') | 306 print('Data_reduction') |
| 307 | |
| 308 ## these functions only work on MSImageSet | |
| 309 msidata = as(msidata, "MSImageSet") | |
| 270 | 310 |
| 271 #if str( $method.methods_conditional.methods_for_reduction.reduction_method) == 'bin': | 311 #if str( $method.methods_conditional.methods_for_reduction.reduction_method) == 'bin': |
| 272 print('bin reduction') | 312 print('bin reduction') |
| 273 | 313 |
| 274 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) | 314 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) |
| 300 | 340 |
| 301 #end if | 341 #end if |
| 302 | 342 |
| 303 msidata = reduceDimension(msidata, method="peaks", ref=peak_reference, type="$method.methods_conditional.methods_for_reduction.peaks_type") | 343 msidata = reduceDimension(msidata, method="peaks", ref=peak_reference, type="$method.methods_conditional.methods_for_reduction.peaks_type") |
| 304 #end if | 344 #end if |
| 345 | |
| 346 ## coercition into new format | |
| 347 msidata = as(msidata, "MSImagingExperiment") | |
| 348 | |
| 305 ############################### QC ########################### | 349 ############################### QC ########################### |
| 306 | 350 |
| 307 maxfeatures =nrow(msidata) | 351 maxfeatures =nrow(msidata) |
| 308 pixelcount = ncol(msidata) | 352 pixelcount = ncol(msidata) |
| 309 minmz = round(min(mz(msidata)), digits=2) | 353 minmz = round(min(mz(msidata)), digits=2) |
| 310 maxmz = round(max(mz(msidata)), digits=2) | 354 maxmz = round(max(mz(msidata)), digits=2) |
| 311 reduced = c(minmz, maxmz,maxfeatures, pixelcount) | 355 reduced = c(minmz, maxmz,maxfeatures, pixelcount) |
| 312 QC_numbers= cbind(QC_numbers, reduced) | 356 QC_numbers= cbind(QC_numbers, reduced) |
| 313 vectorofactions = append(vectorofactions, "reduced") | 357 vectorofactions = append(vectorofactions, "reduced") |
| 314 for (random_sample in 1:length(random_spectra)){ | 358 print(plot(msidata, pixel=random_spectra)) |
| 315 plot(msidata, pixel=random_spectra[random_sample], main=paste0("spectrum ", names(random_spectra)[random_sample]))} | |
| 316 title("Spectra after data reduction", outer=TRUE, line=0) | 359 title("Spectra after data reduction", outer=TRUE, line=0) |
| 317 | 360 |
| 318 ############################### Transformation ########################### | 361 ############################### Transformation ########################### |
| 319 | 362 |
| 320 #elif str( $method.methods_conditional.preprocessing_method) == 'Transformation': | 363 #elif str( $method.methods_conditional.preprocessing_method) == 'Transformation': |
| 321 print('Transformation') | 364 print('Transformation') |
| 322 | 365 |
| 323 ## convert data into R matrix what brings it automatically into memory and can take some take but next steps need R matrix | 366 if (class(msidata) == "MSProcessedImagingExperiment"){ |
| 324 ##iData(msidata) <- iData(msidata)[] | 367 msidata = as(msidata, "MSContinuousImagingExperiment") |
| 368 } | |
| 325 | 369 |
| 326 #if str( $method.methods_conditional.transf_conditional.trans_type) == 'log2': | 370 #if str( $method.methods_conditional.transf_conditional.trans_type) == 'log2': |
| 327 print('log2 transformation') | 371 print('log2 transformation') |
| 328 | 372 |
| 329 ## replace 0 with NA to prevent Inf | 373 ## replace 0 with NA to prevent Inf |
| 330 spectra_df = spectra(msidata)[] ## convert into R matrix | 374 spectra_df = spectra(msidata) ## convert into R matrix |
| 331 spectra_df[spectra_df ==0] = NA | 375 spectra_df[spectra_df ==0] = NA |
| 332 print(paste0("Number of 0 which were converted into NA:",sum(is.na(spectra_df)))) | 376 print(paste0("Number of 0 which were converted into NA:",sum(is.na(spectra_df)))) |
| 333 spectra(msidata) = spectra_df | 377 spectra(msidata) = spectra_df |
| 334 ## log transformation | 378 ## log transformation |
| 335 spectra(msidata) = log2(spectra(msidata)) | 379 spectra(msidata) = log2(spectra(msidata)) |
| 339 #end if | 383 #end if |
| 340 | 384 |
| 341 #elif str( $method.methods_conditional.transf_conditional.trans_type) == 'sqrt': | 385 #elif str( $method.methods_conditional.transf_conditional.trans_type) == 'sqrt': |
| 342 print('squareroot transformation') | 386 print('squareroot transformation') |
| 343 | 387 |
| 344 spectra(msidata) = sqrt(spectra(msidata)[]) | 388 spectra(msidata) = sqrt(spectra(msidata)) |
| 345 | 389 |
| 346 #end if | 390 #end if |
| 347 | 391 |
| 348 ############################### QC ########################### | 392 ############################### QC ########################### |
| 349 | 393 |
| 352 minmz = round(min(mz(msidata)), digits=2) | 396 minmz = round(min(mz(msidata)), digits=2) |
| 353 maxmz = round(max(mz(msidata)), digits=2) | 397 maxmz = round(max(mz(msidata)), digits=2) |
| 354 transformed = c(minmz, maxmz,maxfeatures, pixelcount) | 398 transformed = c(minmz, maxmz,maxfeatures, pixelcount) |
| 355 QC_numbers= cbind(QC_numbers, transformed) | 399 QC_numbers= cbind(QC_numbers, transformed) |
| 356 vectorofactions = append(vectorofactions, "transformed") | 400 vectorofactions = append(vectorofactions, "transformed") |
| 357 for (random_sample in 1:length(random_spectra)){ | 401 print(plot(msidata, pixel=random_spectra)) |
| 358 plot(msidata, pixel=random_spectra[random_sample], main=paste0("spectrum ", names(random_spectra)[random_sample]))} | |
| 359 title("Spectra after transformation", outer=TRUE, line=0) | 402 title("Spectra after transformation", outer=TRUE, line=0) |
| 360 | 403 |
| 361 #end if | 404 #end if |
| 362 #end for | 405 #end for |
| 363 | 406 |
| 364 ############# Outputs: RData, imzml and QC report ############# | 407 ############# Outputs: RData, imzml and QC report ############# |
| 365 ################################################################################ | 408 ################################################################################ |
| 366 | 409 |
| 367 ## save msidata as imzML file, will only work if there is at least 1 m/z left | 410 ## save msidata as imzML file, will only work if there is at least 1 m/z left |
| 368 | 411 |
| 369 #if str($imzml_output) == "imzml_format": | |
| 370 if (nrow(msidata) > 0){ | 412 if (nrow(msidata) > 0){ |
| 371 ## make sure that coordinates are integers | 413 ## make sure that coordinates are integers |
| 372 coord(msidata)\$y = as.integer(coord(msidata)\$y) | 414 coord(msidata)\$y = as.integer(coord(msidata)\$y) |
| 373 coord(msidata)\$x = as.integer(coord(msidata)\$x) | 415 coord(msidata)\$x = as.integer(coord(msidata)\$x) |
| 374 writeImzML(msidata, "out")} | 416 #if $used_peak_picking: |
| 375 #elif str($imzml_output) == "rdata_format": | 417 #if $continuous_format: |
| 376 ## save as (.RData) | 418 msidata = as(msidata, "MSContinuousImagingExperiment") |
| 377 iData(msidata) = iData(msidata)[] | 419 #end if |
| 378 save(msidata, file="$outfile_rdata") | 420 #elif $used_peak_alignment |
| 379 #end if | 421 #if $continuous_format: |
| 422 msidata = as(msidata, "MSContinuousImagingExperiment") | |
| 423 #end if | |
| 424 #end if | |
| 425 writeImzML(msidata, "out") | |
| 426 } | |
| 380 | 427 |
| 381 plot(0,type='n',axes=FALSE,ann=FALSE) | 428 plot(0,type='n',axes=FALSE,ann=FALSE) |
| 382 rownames(QC_numbers) = c("min m/z", "max mz", "# features", "# spectra") | 429 rownames(QC_numbers) = c("min m/z", "max mz", "# features", "# spectra") |
| 383 grid.table(t(QC_numbers)) | 430 grid.table(t(QC_numbers)) |
| 384 | |
| 385 dev.off() | 431 dev.off() |
| 386 | 432 |
| 387 }else{ | 433 }else{ |
| 388 print("inputfile has no intensities > 0") | 434 print("inputfile has no intensities > 0") |
| 389 } | 435 } |
| 393 <inputs> | 439 <inputs> |
| 394 <expand macro="reading_msidata"/> | 440 <expand macro="reading_msidata"/> |
| 395 <repeat name="methods" title="Preprocessing" min="1" max="50"> | 441 <repeat name="methods" title="Preprocessing" min="1" max="50"> |
| 396 <conditional name="methods_conditional"> | 442 <conditional name="methods_conditional"> |
| 397 <param name="preprocessing_method" type="select" label="Preprocessing methods"> | 443 <param name="preprocessing_method" type="select" label="Preprocessing methods"> |
| 398 <option value="Normalization" selected="True">Intensity Normalization (TIC)</option> | 444 <option value="Normalization" selected="True">Intensity Normalization</option> |
| 399 <option value="Baseline_reduction">Baseline Reduction</option> | 445 <option value="Baseline_reduction">Baseline Reduction</option> |
| 400 <option value="Smoothing">Peak smoothing</option> | 446 <option value="Smoothing">Peak smoothing</option> |
| 401 <option value="Peak_picking">Peak picking</option> | 447 <option value="Peak_picking">Peak picking</option> |
| 402 <option value="Peak_alignment">Peak alignment</option> | 448 <option value="Peak_alignment">Peak alignment</option> |
| 403 <option value="Peak_filtering">Peak filtering</option> | 449 <option value="Peak_filtering">Peak filtering</option> |
| 404 <option value="Data_reduction">Data reduction</option> | 450 <option value="Data_reduction">Data reduction</option> |
| 405 <option value="Transformation">Transformation</option> | 451 <option value="Transformation">Transformation</option> |
| 406 </param> | 452 </param> |
| 407 <when value="Normalization"/> | 453 <when value="Normalization"> |
| 454 <conditional name="methods_for_normalization"> | |
| 455 <param name="normalization_method" type="select" label="Normalization method"> | |
| 456 <option value="tic" selected="True">TIC</option> | |
| 457 <option value="rms">RMS</option> | |
| 458 </param> | |
| 459 <when value="tic"/> | |
| 460 <when value="rms"/> | |
| 461 </conditional> | |
| 462 </when> | |
| 408 <when value="Baseline_reduction"> | 463 <when value="Baseline_reduction"> |
| 409 <param name="blocks_baseline" type="integer" value="500" | 464 <param name="blocks_baseline" type="integer" value="500" |
| 410 label="Blocks"/> | 465 label="Blocks"/> |
| 411 <param name="spar_baseline" type="float" value="1.0" label="Spar value" | 466 <param name="spar_baseline" type="float" value="1.0" label="Spar value" |
| 412 help = "Smoothing parameter for the spline smoothing | 467 help = "Smoothing parameter for the spline smoothing |
| 436 </conditional> | 491 </conditional> |
| 437 <param name="window_smoothing" type="float" value="8" | 492 <param name="window_smoothing" type="float" value="8" |
| 438 label="Window size"/> | 493 label="Window size"/> |
| 439 </when> | 494 </when> |
| 440 <when value="Peak_picking"> | 495 <when value="Peak_picking"> |
| 441 <param name="SNR_picking_method" type="integer" value="6" | 496 <param name="SNR_picking_method" type="float" value="6" |
| 442 label="Signal to noise ratio" | 497 label="Signal to noise ratio" |
| 443 help="The minimal signal to noise ratio for peaks to be considered as a valid peak."/> | 498 help="The minimal signal to noise ratio for peaks to be considered as a valid peak."/> |
| 444 <param name="blocks_picking" type="integer" value="100" label = "Number of blocks" | 499 <param name="blocks_picking" type="integer" value="100" label = "Number of blocks" |
| 445 help="Number of blocks in which to divide mass spectrum to calculate noise"/> | 500 help="Number of blocks in which to divide mass spectrum to calculate noise"/> |
| 446 <param name="window_picking" type="float" value="5" label= "Window size" help="Window width for seeking local maxima"/> | 501 <param name="window_picking" type="float" value="5" label= "Window size" help="Window width for seeking local maxima"/> |
| 447 <conditional name="methods_for_picking"> | 502 <conditional name="methods_for_picking"> |
| 448 <param name="picking_method" type="select" label="Peak picking method" help="only simple works for processed imzML files"> | 503 <param name="picking_method" type="select" label="Peak picking method"> |
| 449 <option value="adaptive" selected="True">adaptive</option> | 504 <option value="adaptive" selected="True">adaptive</option> |
| 450 <option value="limpic">limpic</option> | 505 <option value="mad">mad</option> |
| 451 <option value="simple">simple</option> | 506 <option value="simple">simple</option> |
| 452 </param> | 507 </param> |
| 453 <when value="adaptive"> | 508 <when value="adaptive"> |
| 454 <param name="spar_picking" type="float" value="1.0" | 509 <param name="spar_picking" type="float" value="1.0" |
| 455 label="Spar value" | 510 label="Spar value" |
| 456 help = "Smoothing parameter for the spline smoothing | 511 help = "Smoothing parameter for the spline smoothing |
| 457 applied to the spectrum in order to decide the cutoffs | 512 applied to the spectrum in order to decide the cutoffs |
| 458 for throwing away false noise spikes that might occur inside peaks"/> | 513 for throwing away false noise spikes that might occur inside peaks"/> |
| 459 </when> | 514 </when> |
| 460 <when value="limpic"> | 515 <when value="mad"/> |
| 461 <param name="tresh_picking" type="float" value="0.75" | |
| 462 label="thresh value" help="The thresholding quantile to use when comparing slopes in order to throw away peaks that are too flat"/> | |
| 463 </when> | |
| 464 <when value="simple"/> | 516 <when value="simple"/> |
| 465 </conditional> | 517 </conditional> |
| 518 <param name="imzml_output" type="boolean" label="imzML output in processed format" truevalue="proc_format" falsevalue="cont_format" help= "Processed imzML works only in MALDIquant tools, not yet in MSI tools (Cardinal)"/> | |
| 466 </when> | 519 </when> |
| 467 <when value="Peak_alignment"> | 520 <when value="Peak_alignment"> |
| 468 <conditional name="methods_for_alignment"> | 521 <param name="value_diffalignment" type="float" value="200" |
| 469 <param name="alignment_method" type="select" label="Alignment method"> | 522 label="tolerance" help="Peaks that differ less than this value will be aligned together"/> |
| 470 <option value="diff" selected="True">diff</option> | 523 <param name="units_diffalignment" type="select" display="radio" optional="False" label="units"> |
| 471 <option value="DP">DP</option> | 524 <option value="ppm" selected="True">ppm</option> |
| 472 </param> | 525 <option value="mz">m/z</option> |
| 473 <when value="diff"> | 526 </param> |
| 474 <param name="value_diffalignment" type="float" value="200" | |
| 475 label="diff.max" help="Peaks that differ less than this value will be aligned together"/> | |
| 476 <param name="units_diffalignment" type="select" display="radio" optional="False" label="units"> | |
| 477 <option value="ppm" selected="True">ppm</option> | |
| 478 <option value="mz">m/z</option> | |
| 479 </param> | |
| 480 </when> | |
| 481 <when value="DP"> | |
| 482 <param name="gap_DPalignment" type="float" value="0" | |
| 483 label="Gap" help="The gap penalty for the dynamic programming sequence alignment"/> | |
| 484 </when> | |
| 485 </conditional> | |
| 486 <conditional name="align_ref_type"> | 527 <conditional name="align_ref_type"> |
| 487 <param name="align_reference_datatype" type="select" label="Choose reference"> | 528 <param name="align_reference_datatype" type="select" label="Choose reference"> |
| 488 <option value="align_noref" selected="True">no reference</option> | 529 <option value="align_noref" selected="True">no reference</option> |
| 489 <option value="align_table" >tabular file as reference</option> | 530 <option value="align_table" >tabular file as reference</option> |
| 490 <option value="align_msidata_ref">msidata file as reference</option> | |
| 491 </param> | 531 </param> |
| 492 <when value="align_noref"/> | 532 <when value="align_noref"/> |
| 493 <when value="align_table"> | 533 <when value="align_table"> |
| 494 <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."/> | 534 <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."/> |
| 495 </when> | 535 </when> |
| 496 <when value="align_msidata_ref"> | 536 </conditional> |
| 497 <param name="align_peaks_msidata" type="data" format="rdata" label="Picked and aligned Cardinal MSImageSet saved as RData"/> | 537 <param name="imzml_output" type="boolean" label="imzML output in processed format" truevalue="proc_format" falsevalue="cont_format" help= "Processed imzML works only in MALDIquant tools, not yet in MSI tools (Cardinal)"/> |
| 498 </when> | |
| 499 </conditional> | |
| 500 </when> | 538 </when> |
| 501 <when value="Peak_filtering"> | 539 <when value="Peak_filtering"> |
| 502 <param name="frequ_filtering" type="integer" value="1000" | 540 <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)"/> |
| 503 label="Freq.min" help="Peaks that occur in the dataset fewer times than this will be removed. Number should be between 1 (no filtering) and number of spectra (pixel)"/> | |
| 504 </when> | 541 </when> |
| 505 <when value="Data_reduction"> | 542 <when value="Data_reduction"> |
| 506 <conditional name="methods_for_reduction"> | 543 <conditional name="methods_for_reduction"> |
| 507 <param name="reduction_method" type="select" label="Reduction method"> | 544 <param name="reduction_method" type="select" label="Reduction method"> |
| 508 <option value="bin" selected="True">bin</option> | 545 <option value="bin" selected="True">bin</option> |
| 561 <when value="sqrt"/> | 598 <when value="sqrt"/> |
| 562 </conditional> | 599 </conditional> |
| 563 </when> | 600 </when> |
| 564 </conditional> | 601 </conditional> |
| 565 </repeat> | 602 </repeat> |
| 566 <param name="imzml_output" type="select" display = "radio" optional = "False" | |
| 567 label="Output format" help= "Choose the output format"> | |
| 568 <option value="imzml_format" >imzML</option> | |
| 569 <option value="rdata_format" selected="True" >RData</option> | |
| 570 </param> | |
| 571 </inputs> | 603 </inputs> |
| 572 <outputs> | 604 <outputs> |
| 573 <data format="imzml" name="outfile_imzml" label="${tool.name} on ${on_string}: imzML"> | 605 <data format="imzml" name="outfile_imzml" label="${tool.name} on ${on_string}: imzML"/> |
| 574 <filter>imzml_output=='imzml_format'</filter> | |
| 575 </data> | |
| 576 <data format="rdata" name="outfile_rdata" label="${tool.name} on ${on_string}: RData"> | |
| 577 <filter>imzml_output == 'rdata_format'</filter> | |
| 578 </data> | |
| 579 <data format="pdf" name="QC_overview" from_work_dir="Preprocessing.pdf" label = "${tool.name} on ${on_string}: QC"/> | 606 <data format="pdf" name="QC_overview" from_work_dir="Preprocessing.pdf" label = "${tool.name} on ${on_string}: QC"/> |
| 580 </outputs> | 607 </outputs> |
| 581 <tests> | 608 <tests> |
| 582 <test> | 609 <test> |
| 583 <expand macro="infile_imzml"/> | 610 <expand macro="infile_imzml"/> |
| 584 <repeat name="methods"> | 611 <repeat name="methods"> |
| 585 <conditional name="methods_conditional"> | 612 <conditional name="methods_conditional"> |
| 586 <param name="preprocessing_method" value="Normalization"/> | 613 <param name="preprocessing_method" value="Normalization"/> |
| 587 <conditional name="methods_for_normalization"> | 614 <conditional name="methods_for_normalization"> |
| 588 <param name="normalization_method" value="median"/> | 615 <param name="normalization_method" value="tic"/> |
| 589 </conditional> | 616 </conditional> |
| 590 </conditional> | 617 </conditional> |
| 591 </repeat> | 618 </repeat> |
| 592 <repeat name="methods"> | 619 <repeat name="methods"> |
| 593 <conditional name="methods_conditional"> | 620 <conditional name="methods_conditional"> |
| 611 </conditional> | 638 </conditional> |
| 612 </repeat> | 639 </repeat> |
| 613 <repeat name="methods"> | 640 <repeat name="methods"> |
| 614 <conditional name="methods_conditional"> | 641 <conditional name="methods_conditional"> |
| 615 <param name="preprocessing_method" value="Peak_alignment"/> | 642 <param name="preprocessing_method" value="Peak_alignment"/> |
| 616 <conditional name="methods_for_alignment"> | |
| 617 <param name="alignment_method" value="diff"/> | |
| 618 </conditional> | |
| 619 </conditional> | 643 </conditional> |
| 620 </repeat> | 644 </repeat> |
| 621 <repeat name="methods"> | 645 <repeat name="methods"> |
| 622 <conditional name="methods_conditional"> | 646 <conditional name="methods_conditional"> |
| 623 <param name="preprocessing_method" value="Peak_filtering"/> | 647 <param name="preprocessing_method" value="Peak_filtering"/> |
| 624 <param name="frequ_filtering" value="2"/> | 648 <param name="frequ_filtering" value="0.3"/> |
| 625 </conditional> | 649 </conditional> |
| 626 </repeat> | 650 </repeat> |
| 627 <repeat name="methods"> | 651 <repeat name="methods"> |
| 628 <conditional name="methods_conditional"> | 652 <conditional name="methods_conditional"> |
| 629 <param name="preprocessing_method" value="Transformation"/> | 653 <param name="preprocessing_method" value="Transformation"/> |
| 630 <conditional name="transf_conditional"> | 654 <conditional name="transf_conditional"> |
| 631 <param name="trans_type" value="sqrt"/> | 655 <param name="trans_type" value="sqrt"/> |
| 632 </conditional> | 656 </conditional> |
| 633 </conditional> | 657 </conditional> |
| 634 </repeat> | 658 </repeat> |
| 635 <param name="imzml_output" value="imzml_format"/> | |
| 636 <output name="QC_overview" file="preprocessing_results1.pdf" compare="sim_size"/> | 659 <output name="QC_overview" file="preprocessing_results1.pdf" compare="sim_size"/> |
| 637 <output name="outfile_imzml" ftype="imzml" file="preprocessing_results1.imzml.txt" compare="sim_size"> | 660 <output name="outfile_imzml" ftype="imzml" file="preprocessing_results1.imzml.txt" compare="sim_size"> |
| 638 <extra_files type="file" file="preprocessing_results1.imzml" name="imzml" lines_diff="4"/> | 661 <extra_files type="file" file="preprocessing_results1.imzml" name="imzml" lines_diff="6"/> |
| 639 <extra_files type="file" file="preprocessing_results1.ibd" name="ibd" compare="sim_size"/> | 662 <extra_files type="file" file="preprocessing_results1.ibd" name="ibd" compare="sim_size"/> |
| 640 </output> | 663 </output> |
| 641 </test> | 664 </test> |
| 642 <test> | 665 <test> |
| 643 <param name="infile" value="3_files_combined.RData" ftype="rdata"/> | 666 <param name="infile" value="3_files_combined.RData" ftype="rdata"/> |
| 653 </conditional> | 676 </conditional> |
| 654 </repeat> | 677 </repeat> |
| 655 <repeat name="methods"> | 678 <repeat name="methods"> |
| 656 <conditional name="methods_conditional"> | 679 <conditional name="methods_conditional"> |
| 657 <param name="preprocessing_method" value="Peak_alignment"/> | 680 <param name="preprocessing_method" value="Peak_alignment"/> |
| 658 <conditional name="methods_for_alignment"> | 681 </conditional> |
| 659 <param name="alignment_method" value="DP"/> | 682 </repeat> |
| 660 </conditional> | |
| 661 </conditional> | |
| 662 </repeat> | |
| 663 <param name="imzml_output" value="imzml_format"/> | |
| 664 <output name="QC_overview" file="preprocessing_results2.pdf" compare="sim_size"/> | 683 <output name="QC_overview" file="preprocessing_results2.pdf" compare="sim_size"/> |
| 665 <output name="outfile_imzml" ftype="imzml" file="preprocessing_results2.imzml.txt" compare="sim_size"> | 684 <output name="outfile_imzml" ftype="imzml" file="preprocessing_results2.imzml.txt" compare="sim_size"> |
| 666 <extra_files type="file" file="preprocessing_results2.imzml" name="imzml" lines_diff="4"/> | 685 <extra_files type="file" file="preprocessing_results2.imzml" name="imzml" lines_diff="6"/> |
| 667 <extra_files type="file" file="preprocessing_results2.ibd" name="ibd" compare="sim_size"/> | 686 <extra_files type="file" file="preprocessing_results2.ibd" name="ibd" compare="sim_size"/> |
| 668 </output> | 687 </output> |
| 669 </test> | 688 </test> |
| 670 <test> | 689 <test> |
| 671 <expand macro="infile_analyze75"/> | 690 <expand macro="infile_analyze75"/> |
| 672 <repeat name="methods"> | 691 <repeat name="methods"> |
| 673 <conditional name="methods_conditional"> | 692 <conditional name="methods_conditional"> |
| 674 <param name="preprocessing_method" value="Normalization"/> | 693 <param name="preprocessing_method" value="Normalization"/> |
| 675 <conditional name="methods_for_normalization"> | 694 <conditional name="methods_for_normalization"> |
| 676 <param name="normalization_method" value="median"/> | 695 <param name="normalization_method" value="rms"/> |
| 677 </conditional> | 696 </conditional> |
| 678 </conditional> | 697 </conditional> |
| 679 </repeat> | 698 </repeat> |
| 680 <repeat name="methods"> | 699 <repeat name="methods"> |
| 681 <conditional name="methods_conditional"> | 700 <conditional name="methods_conditional"> |
| 682 <param name="preprocessing_method" value="Peak_picking"/> | 701 <param name="preprocessing_method" value="Peak_picking"/> |
| 683 <param name="blocks_picking" value="100"/> | 702 <param name="blocks_picking" value="100"/> |
| 684 <param name="window_picking" value="5"/> | 703 <param name="window_picking" value="5"/> |
| 685 <param name="SNR_picking_method" value="3"/> | 704 <param name="SNR_picking_method" value="3"/> |
| 686 <param name="picking_method" value="limpic"/> | 705 <conditional name="methods_for_picking"> |
| 687 </conditional> | 706 <param name="picking_method" value="mad"/> |
| 707 </conditional> | |
| 708 </conditional> | |
| 709 <param name="imzml_output" value="proc_format"/> | |
| 688 </repeat> | 710 </repeat> |
| 689 <repeat name="methods"> | 711 <repeat name="methods"> |
| 690 <conditional name="methods_conditional"> | 712 <conditional name="methods_conditional"> |
| 691 <param name="preprocessing_method" value="Peak_alignment"/> | 713 <param name="preprocessing_method" value="Peak_alignment"/> |
| 692 <conditional name="methods_for_alignment"> | 714 </conditional> |
| 693 <param name="alignment_method" value="diff"/> | 715 <param name="imzml_output" value="proc_format"/> |
| 694 </conditional> | 716 </repeat> |
| 695 </conditional> | 717 <repeat name="methods"> |
| 696 </repeat> | 718 <conditional name="methods_conditional"> |
| 697 <param name="imzml_output" value="imzml_format"/> | 719 <param name="preprocessing_method" value="Transformation"/> |
| 720 <conditional name="transf_conditional"> | |
| 721 <param name="trans_type" value="log2"/> | |
| 722 </conditional> | |
| 723 </conditional> | |
| 724 </repeat> | |
| 698 <output name="QC_overview" file="preprocessing_results3.pdf" compare="sim_size"/> | 725 <output name="QC_overview" file="preprocessing_results3.pdf" compare="sim_size"/> |
| 699 <output name="outfile_imzml" ftype="imzml" file="preprocessing_results3.imzml.txt" compare="sim_size"> | 726 <output name="outfile_imzml" ftype="imzml" file="preprocessing_results3.imzml.txt" compare="sim_size"> |
| 700 <extra_files type="file" file="preprocessing_results3.imzml" name="imzml" lines_diff="4"/> | 727 <extra_files type="file" file="preprocessing_results3.imzml" name="imzml" lines_diff="6"/> |
| 701 <extra_files type="file" file="preprocessing_results3.ibd" name="ibd" compare="sim_size"/> | 728 <extra_files type="file" file="preprocessing_results3.ibd" name="ibd" compare="sim_size"/> |
| 702 </output> | 729 </output> |
| 703 </test> | 730 </test> |
| 704 <test> | 731 <test> |
| 705 <expand macro="infile_analyze75"/> | 732 <expand macro="infile_analyze75"/> |
| 706 <repeat name="methods"> | 733 <repeat name="methods"> |
| 707 <conditional name="methods_conditional"> | 734 <conditional name="methods_conditional"> |
| 708 <param name="preprocessing_method" value="Normalization"/> | 735 <param name="preprocessing_method" value="Normalization"/> |
| 736 <param name="normalization_method" value="tic"/> | |
| 709 </conditional> | 737 </conditional> |
| 710 </repeat> | 738 </repeat> |
| 711 <repeat name="methods"> | 739 <repeat name="methods"> |
| 712 <conditional name="methods_conditional"> | 740 <conditional name="methods_conditional"> |
| 713 <param name="preprocessing_method" value="Data_reduction"/> | 741 <param name="preprocessing_method" value="Data_reduction"/> |
| 714 <param name="bin_width" value="0.1"/> | 742 <conditional name="methods_for_reduction"> |
| 715 </conditional> | 743 <param name="reduction_method" value="bin"/> |
| 716 </repeat> | 744 <param name="bin_width" value="0.1"/> |
| 717 <param name="imzml_output" value="imzml_format"/> | 745 </conditional> |
| 746 </conditional> | |
| 747 </repeat> | |
| 718 <output name="QC_overview" file="preprocessing_results4.pdf" compare="sim_size"/> | 748 <output name="QC_overview" file="preprocessing_results4.pdf" compare="sim_size"/> |
| 719 <output name="outfile_imzml" ftype="imzml" file="preprocessing_results4.imzml.txt" compare="sim_size"> | 749 <output name="outfile_imzml" ftype="imzml" file="preprocessing_results4.imzml.txt" compare="sim_size"> |
| 720 <extra_files type="file" file="preprocessing_results4.imzml" name="imzml" lines_diff="4"/> | 750 <extra_files type="file" file="preprocessing_results4.imzml" name="imzml" lines_diff="6"/> |
| 721 <extra_files type="file" file="preprocessing_results4.ibd" name="ibd" compare="sim_size"/> | 751 <extra_files type="file" file="preprocessing_results4.ibd" name="ibd" compare="sim_size"/> |
| 722 </output> | 752 </output> |
| 723 </test> | 753 </test> |
| 724 <test> | 754 <test> |
| 725 <expand macro="infile_imzml"/> | 755 <expand macro="processed_infile_imzml"/> |
| 726 <repeat name="methods"> | 756 <conditional name="processed_cond"> |
| 727 <conditional name="methods_conditional"> | 757 <param name="processed_file" value="processed"/> |
| 728 <param name="preprocessing_method" value="Data_reduction"/> | 758 <param name="accuracy" value="100"/> |
| 729 <conditional name="methods_for_reduction"> | 759 <param name="units" value="ppm"/> |
| 730 <param name="reduction_method" value="resample"/> | 760 </conditional> |
| 731 <param name="step_width" value="0.1"/> | 761 <repeat name="methods"> |
| 762 <conditional name="methods_conditional"> | |
| 763 <param name="preprocessing_method" value="Transformation"/> | |
| 764 <conditional name="transf_conditional"> | |
| 765 <param name="trans_type" value="sqrt"/> | |
| 732 </conditional> | 766 </conditional> |
| 733 </conditional> | 767 </conditional> |
| 734 </repeat> | 768 </repeat> |
| 735 <param name="imzml_output" value="rdata_format"/> | 769 <repeat name="methods"> |
| 736 <output name="outfile_rdata" file="preprocessing_results5.RData" compare="sim_size"/> | 770 <conditional name="methods_conditional"> |
| 771 <param name="preprocessing_method" value="Baseline_reduction"/> | |
| 772 </conditional> | |
| 773 </repeat> | |
| 737 <output name="QC_overview" file="preprocessing_results5.pdf" compare="sim_size"/> | 774 <output name="QC_overview" file="preprocessing_results5.pdf" compare="sim_size"/> |
| 775 <output name="outfile_imzml" ftype="imzml" file="preprocessing_results5.imzml.txt" compare="sim_size"> | |
| 776 <extra_files type="file" file="preprocessing_results5.imzml" name="imzml" lines_diff="6"/> | |
| 777 <extra_files type="file" file="preprocessing_results5.ibd" name="ibd" compare="sim_size"/> | |
| 778 </output> | |
| 738 </test> | 779 </test> |
| 739 </tests> | 780 </tests> |
| 740 <help> | 781 <help> |
| 741 <![CDATA[ | 782 <![CDATA[ |
| 742 | 783 |
| 750 - 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. | 791 - 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. |
| 751 @MZ_TABULAR_INPUT_DESCRIPTION@ | 792 @MZ_TABULAR_INPUT_DESCRIPTION@ |
| 752 | 793 |
| 753 **Options** | 794 **Options** |
| 754 | 795 |
| 755 - Normalization: Normalization of intensities to total ion current (TIC) | 796 - Normalization: Normalization of intensities to total ion current (TIC) or to root-mean-square (RMS) |
| 756 - Baseline reduction: Baseline reduction removes background intensity generated by chemical noise (common in MALDI datasets) | 797 - Baseline reduction: Baseline reduction removes background intensity generated by chemical noise (common in MALDI datasets) |
| 757 - Smoothing: Smoothing of the peaks reduces noise and improves peak detection | 798 - Smoothing: Smoothing of the peaks reduces noise and improves peak detection |
| 758 - Peak picking: relevant peaks are picked while noise-peaks are removed (needs peak alignment afterwards) | 799 - Peak picking: relevant peaks are picked while noise-peaks are removed (needs peak alignment afterwards) |
| 759 - Peak alignment: only possible after peak picking, m/z inaccuracies are removed by alignment of same peaks to a common m/z value; if no reference is given the peaks are aligned to the local maxima of the mean spectrum of the current dataset; external reference data can be used from another MSI data file or a tabular file with m/z values, but then only the m/z from the reference will be kept | 800 - Peak alignment: only possible after peak picking, m/z inaccuracies are removed by alignment of same peaks to a common m/z value; if no reference is given the peaks are aligned to the local maxima of the mean spectrum of the current dataset; external reference data can be used from another MSI data file or a tabular file with m/z values, but then only the m/z from the reference will be kept |
| 760 - Peak filtering: removes peaks that occur only in a small proportion of pixels. If not sure which cut off to choose run quality control tool first and decide according to the number of peaks per m/z plot | 801 - Peak filtering: removes peaks that occur only in a small proportion of pixels. If not sure which cut off to choose run quality control tool first and decide according to the number of peaks per m/z plot |
| 761 - Data reduction: binning, resampling or peak filtering to reduce data | 802 - Data reduction: binning, resampling or peak filtering to reduce data |
| 762 - Transformation: log2 or squareroot transformation of all intensities; when using log2 transformation zero intensities will become NA, this can lead to compatibility problems. | 803 - Transformation: log2 or squareroot transformation of all intensities; when using log2 transformation zero intensities will become NA, this can lead to compatibility problems. |
| 763 | 804 |
| 764 **Tips** | |
| 765 | |
| 766 - Peak alignment works only after peak picking | |
| 767 - Peak filtering works only on centroided data (peak picking and alignment or Data reduction peaks | |
| 768 | |
| 769 **Output** | 805 **Output** |
| 770 | 806 |
| 771 - MSI data as imzML file or .RData (can be read with the Cardinal package in R) | 807 - MSI data as continuous imzML file (option to output processed imzML file only after peak picking/peak alignment; but is not yet compatible with other MSI tools) |
| 772 - pdf with key values and four random mass spectra after each processing step | 808 - pdf with key values and four random mass spectra after each processing step |
| 773 | 809 |
| 774 ]]> | 810 ]]> |
| 775 </help> | 811 </help> |
| 776 <expand macro="citations"/> | 812 <expand macro="citations"/> |
