Mercurial > repos > galaxyp > msi_qualitycontrol
comparison msi_qualitycontrol.xml @ 4:f44e887bd5b7 draft
planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/msi_qualitycontrol commit edbf2a6cb50fb04d0db56a7557a64e3bb7a0806a
| author | galaxyp |
|---|---|
| date | Thu, 01 Mar 2018 08:24:22 -0500 |
| parents | 62cd51699137 |
| children | ae98f109ba68 |
comparison
equal
deleted
inserted
replaced
| 3:62cd51699137 | 4:f44e887bd5b7 |
|---|---|
| 1 <tool id="mass_spectrometry_imaging_qc" name="MSI Qualitycontrol" version="1.7.0.2"> | 1 <tool id="mass_spectrometry_imaging_qc" name="MSI Qualitycontrol" version="1.7.0.3"> |
| 2 <description> | 2 <description> |
| 3 mass spectrometry imaging QC | 3 mass spectrometry imaging QC |
| 4 </description> | 4 </description> |
| 5 <requirements> | 5 <requirements> |
| 6 <requirement type="package" version="1.7.0">bioconductor-cardinal</requirement> | 6 <requirement type="package" version="1.7.0">bioconductor-cardinal</requirement> |
| 32 library(ggplot2) | 32 library(ggplot2) |
| 33 library(RColorBrewer) | 33 library(RColorBrewer) |
| 34 library(gridExtra) | 34 library(gridExtra) |
| 35 library(KernSmooth) | 35 library(KernSmooth) |
| 36 | 36 |
| 37 ## Read MALDI Imagind dataset | 37 ## Read MALDI Imaging dataset |
| 38 | 38 |
| 39 #if $infile.ext == 'imzml' | 39 #if $infile.ext == 'imzml' |
| 40 msidata <- readMSIData('infile.imzML') | 40 msidata = readMSIData('infile.imzML') |
| 41 #elif $infile.ext == 'analyze75' | 41 #elif $infile.ext == 'analyze75' |
| 42 msidata <- readMSIData('infile.hdr') | 42 msidata = readMSIData('infile.hdr') |
| 43 | 43 |
| 44 #else | 44 #else |
| 45 load('infile.RData') | 45 load('infile.RData') |
| 46 #end if | 46 #end if |
| 47 | 47 |
| 48 #if $inputpeptidefile: | |
| 49 ### Read tabular file with peptide masses for plots and heatmap images: | |
| 50 input_list = read.delim("$inputpeptidefile", header = FALSE, na.strings=c("","NA", "#NUM!", "#ZAHL!"), stringsAsFactors = FALSE) | |
| 51 if (ncol(input_list) == 1) | |
| 52 { | |
| 53 input_list = cbind(input_list, input_list) | |
| 54 } | |
| 55 #else | |
| 56 input_list = data.frame(0, 0) | |
| 57 #end if | |
| 58 colnames(input_list)[1:2] = c("mz", "name") | |
| 59 | |
| 60 #if $inputcalibrants: | |
| 61 ### Read tabular file with calibrant masses: | |
| 62 calibrant_list = read.delim("$inputcalibrants", header = FALSE, na.strings=c("","NA", "#NUM!", "#ZAHL!"), stringsAsFactors = FALSE) | |
| 63 if (ncol(calibrant_list) == 1) | |
| 64 { | |
| 65 calibrant_list = cbind(calibrant_list, calibrant_list) | |
| 66 } | |
| 67 #else | |
| 68 calibrant_list = data.frame(0,0) | |
| 69 #end if | |
| 70 | |
| 71 colnames(calibrant_list)[1:2] = c("mz", "name") | |
| 72 | 48 |
| 73 | 49 |
| 74 ###################################### file properties in numbers ###################### | 50 ###################################### file properties in numbers ###################### |
| 75 | 51 |
| 76 ## Number of features (mz) | 52 ## Number of features (mz) |
| 129 peakpickinginfo='FALSE' | 105 peakpickinginfo='FALSE' |
| 130 } else { | 106 } else { |
| 131 peakpickinginfo=processinginfo@peakPicking | 107 peakpickinginfo=processinginfo@peakPicking |
| 132 } | 108 } |
| 133 | 109 |
| 134 ### calculate how many input peptide masses are valid: | 110 ### Read tabular file with peptide masses for plots and heatmap images: |
| 135 inputpeptides = input_list[input_list[,1]>minmz & input_list[,1]<maxmz,] | 111 |
| 136 | 112 #if $peptide_file: |
| 137 ### calculate how many input calibrant masses are valid: | 113 |
| 138 inputcalibrants = calibrant_list[calibrant_list[,1]>minmz & calibrant_list[,1]<maxmz,] | 114 input_list = read.delim("$peptide_file", header = FALSE, na.strings=c("","NA"), stringsAsFactors = FALSE) |
| 115 if (ncol(input_list) == 1) | |
| 116 { | |
| 117 input_list = cbind(input_list, input_list) | |
| 118 } | |
| 119 | |
| 120 ### calculate how many input peptide masses are valid: | |
| 121 inputpeptides = input_list[input_list[,1]>minmz & input_list[,1]<maxmz,] | |
| 122 number_peptides_in = length(input_list[,1]) | |
| 123 number_peptides_valid = length(inputpeptides) | |
| 124 | |
| 125 #else | |
| 126 inputpeptides = data.frame(0,0) | |
| 127 number_peptides_in = 0 | |
| 128 number_peptides_valid = 0 | |
| 129 #end if | |
| 130 | |
| 131 colnames(inputpeptides) = c("mz", "name") | |
| 132 | |
| 133 #if $calibrant_file: | |
| 134 ### Read tabular file with calibrant masses: | |
| 135 calibrant_list = read.delim("$calibrant_file", header = FALSE, na.strings=c("","NA"), stringsAsFactors = FALSE) | |
| 136 if (ncol(calibrant_list) == 1) | |
| 137 { | |
| 138 calibrant_list = cbind(calibrant_list, calibrant_list) | |
| 139 } | |
| 140 ### calculate how many input calibrant masses are valid: | |
| 141 inputcalibrants = calibrant_list[calibrant_list[,1]>minmz & calibrant_list[,1]<maxmz,] | |
| 142 number_calibrants_in = length(calibrant_list[,1]) | |
| 143 number_calibrants_valid = length(inputcalibrants) | |
| 144 #else | |
| 145 inputcalibrants = data.frame(0,0) | |
| 146 number_calibrants_in = 0 | |
| 147 number_calibrants_valid = 0 | |
| 148 #end if | |
| 149 | |
| 150 colnames(inputcalibrants) = c("mz", "name") | |
| 139 | 151 |
| 140 ### bind inputcalibrants and inputpeptides together, to make heatmap on both lists | 152 ### bind inputcalibrants and inputpeptides together, to make heatmap on both lists |
| 141 | 153 |
| 142 inputs_all = rbind(inputcalibrants[,1:2], inputpeptides[,1:2]) | 154 inputs_all = rbind(inputcalibrants[,1:2], inputpeptides[,1:2]) |
| 143 inputmasses = inputs_all[,1] | 155 inputmasses = inputs_all[,1] |
| 157 "Normalization", | 169 "Normalization", |
| 158 "Smoothing", | 170 "Smoothing", |
| 159 "Baseline reduction", | 171 "Baseline reduction", |
| 160 "Peak picking", | 172 "Peak picking", |
| 161 "Centroided", | 173 "Centroided", |
| 162 paste0("# valid masses in ", "$filename")) | 174 paste0("# peptides in ", "$peptide_file.display_name"), |
| 175 paste0("# calibrants in ", "$calibrant_file.display_name")) | |
| 163 | 176 |
| 164 values = c(paste0(maxfeatures), | 177 values = c(paste0(maxfeatures), |
| 165 paste0(minmz, " - ", maxmz), | 178 paste0(minmz, " - ", maxmz), |
| 166 paste0(pixelcount), | 179 paste0(pixelcount), |
| 167 paste0(minimumx, " - ", maximumx), | 180 paste0(minimumx, " - ", maximumx), |
| 174 paste0(normalizationinfo), | 187 paste0(normalizationinfo), |
| 175 paste0(smoothinginfo), | 188 paste0(smoothinginfo), |
| 176 paste0(baselinereductioninfo), | 189 paste0(baselinereductioninfo), |
| 177 paste0(peakpickinginfo), | 190 paste0(peakpickinginfo), |
| 178 paste0(centroidedinfo), | 191 paste0(centroidedinfo), |
| 179 paste0(length(inputmasses), "/", length(calibrant_list[,1])+length(input_list[,1]))) | 192 paste0(number_peptides_valid, " / " , number_peptides_in), |
| 193 paste0(number_calibrants_valid, " / ", number_calibrants_in)) | |
| 180 | 194 |
| 181 | 195 |
| 182 property_df = data.frame(properties, values) | 196 property_df = data.frame(properties, values) |
| 183 | 197 |
| 184 ######################################## PDF ############################################# | 198 ######################################## PDF ############################################# |
| 205 plot_colorByDensity = function(x1,x2, | 219 plot_colorByDensity = function(x1,x2, |
| 206 ylim=c(min(x2),max(x2)), | 220 ylim=c(min(x2),max(x2)), |
| 207 xlim=c(min(x1),max(x1)), | 221 xlim=c(min(x1),max(x1)), |
| 208 xlab="",ylab="",main=""){ | 222 xlab="",ylab="",main=""){ |
| 209 | 223 |
| 210 df <- data.frame(x1,x2) | 224 df = data.frame(x1,x2) |
| 211 x <- densCols(x1,x2, colramp=colorRampPalette(c("black", "white"))) | 225 x = densCols(x1,x2, colramp=colorRampPalette(c("black", "white"))) |
| 212 df\$dens <- col2rgb(x)[1,] + 1L | 226 df\$dens = col2rgb(x)[1,] + 1L |
| 213 cols <- colorRampPalette(c("#000099", "#00FEFF", "#45FE4F","#FCFF00", "#FF9400", "#FF3100"))(256) | 227 cols = colorRampPalette(c("#000099", "#00FEFF", "#45FE4F","#FCFF00", "#FF9400", "#FF3100"))(256) |
| 214 df\$col <- cols[df\$dens] | 228 df\$col = cols[df\$dens] |
| 215 plot(x2~x1, data=df[order(df\$dens),], | 229 plot(x2~x1, data=df[order(df\$dens),], |
| 216 ylim=ylim,xlim=xlim,pch=20,col=col, | 230 ylim=ylim,xlim=xlim,pch=20,col=col, |
| 217 cex=1,xlab=xlab,ylab=ylab,las=1, | 231 cex=1,xlab=xlab,ylab=ylab,las=1, |
| 218 main=main) | 232 main=main) |
| 219 } | 233 } |
| 220 | 234 |
| 221 ## Variables for plots | |
| 222 xrange = 1 | |
| 223 yrange = 1 | |
| 224 maxx = max(coord(msidata)[,1])+xrange | |
| 225 minx = min(coord(msidata)[,1])-xrange | |
| 226 maxy = max(coord(msidata)[,2])+yrange | |
| 227 miny = min(coord(msidata)[,2])-yrange | |
| 228 | 235 |
| 229 ############################################################################ | 236 ############################################################################ |
| 230 | 237 |
| 231 ## 1) Acquisition image | 238 ## 1) Acquisition image |
| 232 | 239 |
| 247 | 254 |
| 248 if (length(inputcalibrantmasses) != 0) | 255 if (length(inputcalibrantmasses) != 0) |
| 249 { for (calibrantnr in 1:length(inputcalibrantmasses)) | 256 { for (calibrantnr in 1:length(inputcalibrantmasses)) |
| 250 { | 257 { |
| 251 calibrantmz = inputcalibrantmasses[calibrantnr] | 258 calibrantmz = inputcalibrantmasses[calibrantnr] |
| 252 calibrantfeaturemin = features(msidata, mz=calibrantmz-$plusminusinDalton) | 259 calibrantfeaturemin = features(msidata, mz=calibrantmz-$plusminus_dalton) |
| 253 calibrantfeaturemax = features(msidata, mz=calibrantmz+$plusminusinDalton) | 260 calibrantfeaturemax = features(msidata, mz=calibrantmz+$plusminus_dalton) |
| 254 | 261 |
| 255 if (calibrantfeaturemin == calibrantfeaturemax) | 262 if (calibrantfeaturemin == calibrantfeaturemax) |
| 256 { | 263 { |
| 257 | 264 |
| 258 calibrantintensity = spectra(msidata)[calibrantfeaturemin,] | 265 calibrantintensity = spectra(msidata)[calibrantfeaturemin,] |
| 265 pixelmatrix = rbind(pixelmatrix, calibrantintensity) | 272 pixelmatrix = rbind(pixelmatrix, calibrantintensity) |
| 266 } | 273 } |
| 267 | 274 |
| 268 countvector= as.factor(colSums(pixelmatrix>0)) | 275 countvector= as.factor(colSums(pixelmatrix>0)) |
| 269 countdf= cbind(coord(msidata), countvector) | 276 countdf= cbind(coord(msidata), countvector) |
| 270 mycolours = c("black","grey", "darkblue", "blue", "green" , "red", "yellow", "magenta", "olivedrap1", "lightseagreen") | 277 mycolours = c("black","grey", "darkblue", "blue", "green" , "red", "yellow", "magenta", "olivedrab1", "lightseagreen") |
| 271 | 278 |
| 272 print(ggplot(countdf, aes(x=x, y=y, fill=countvector)) | 279 print(ggplot(countdf, aes(x=x, y=y, fill=countvector)) |
| 273 + geom_tile() + coord_fixed() | 280 + geom_tile() + coord_fixed() |
| 274 + ggtitle("2) Number of calibrants per pixel") | 281 + ggtitle("2) Number of calibrants per pixel") |
| 275 + theme_bw() | 282 + theme_bw() |
| 276 + theme(text=element_text(family="ArialMT", face="bold", size=12)) | 283 + theme(text=element_text(family="ArialMT", face="bold", size=12)) |
| 277 + scale_fill_manual(values = mycolours[1:length(countvector)], | 284 + scale_fill_manual(values = mycolours[1:length(countvector)], |
| 278 na.value = "black", name = "# calibrants")) | 285 na.value = "black", name = "# calibrants")) |
| 279 }else{print("2) The inputcalibrant masses were outside the mass range")} | 286 }else{print("2) The inputcalibrant masses were not provided or outside the mass range")} |
| 280 | 287 |
| 281 | 288 |
| 282 ############# new 2b) image of foldchanges (log2 intensity ratios) between two masses in the same spectrum | 289 ############# new 2b) image of foldchanges (log2 intensity ratios) between two masses in the same spectrum |
| 283 | 290 |
| 284 #if $calibrantratio: | 291 #if $calibrantratio: |
| 304 mzdown1 = features(msidata, mz = mass1-2) | 311 mzdown1 = features(msidata, mz = mass1-2) |
| 305 mzup1 = features(msidata, mz = mass1+3) | 312 mzup1 = features(msidata, mz = mass1+3) |
| 306 mzdown2 = features(msidata, mz = mass2-2) | 313 mzdown2 = features(msidata, mz = mass2-2) |
| 307 mzup2 = features(msidata, mz = mass2+3) | 314 mzup2 = features(msidata, mz = mass2+3) |
| 308 | 315 |
| 309 ### plot the part which was chosen, with chosen value in blue, distance in blue, maxmass in red, xlim fixed to 5 Da window | 316 ### find mass in the given range with the highest intensity (will be plotted in red) |
| 310 | 317 |
| 311 if (mzrowdown1 == mzrowup1) | 318 if (mzrowdown1 == mzrowup1) |
| 312 { | 319 { |
| 313 maxmassrow1 = spectra(msidata)[mzrowup1,] | 320 maxmass1 = mz(msidata)[ mzrowdown1] |
| 314 maxmass1 = mz(msidata)[mzrowup1][which.max(maxmassrow1)] | 321 }else{ ### for all masses in the massrange calculate mean intensity over all pixels and take mass which has highest mean |
| 315 }else{ | |
| 316 maxmassrow1 = rowMeans(spectra(msidata)[mzrowdown1:mzrowup1,]) | 322 maxmassrow1 = rowMeans(spectra(msidata)[mzrowdown1:mzrowup1,]) |
| 317 maxmass1 = mz(msidata)[mzrowdown1:mzrowup1][which.max(maxmassrow1)] | 323 maxmass1 = mz(msidata)[mzrowdown1:mzrowup1][which.max(maxmassrow1)] |
| 318 } | 324 } |
| 319 if (mzrowdown2 == mzrowup2) | 325 if (mzrowdown2 == mzrowup2) |
| 320 { | 326 { |
| 321 maxmassrow2 = spectra(msidata)[mzrowup2,] | 327 maxmass2 = mz(msidata)[mzrowup2] |
| 322 maxmass2 = mz(msidata)[mzrowup2][which.max(maxmassrow2)] | |
| 323 }else{ | 328 }else{ |
| 324 maxmassrow2 = rowMeans(spectra(msidata)[mzrowdown2:mzrowup2,]) | 329 maxmassrow2 = rowMeans(spectra(msidata)[mzrowdown2:mzrowup2,]) |
| 325 maxmass2 = mz(msidata)[mzrowdown2:mzrowup2][which.max(maxmassrow2)] | 330 maxmass2 = mz(msidata)[mzrowdown2:mzrowup2][which.max(maxmassrow2)] |
| 326 } | 331 } |
| 327 | 332 |
| 333 ### plot the part which was chosen, with chosen value in blue, distance in blue, maxmass in red, xlim fixed to 5 Da window | |
| 328 par(mfrow=c(2,1), oma=c(0,0,2,0)) | 334 par(mfrow=c(2,1), oma=c(0,0,2,0)) |
| 329 plot(msidata[mzdown1:mzup1,], pixel = 1:pixelcount, main=paste0("average spectrum ", mass1, " Da")) | 335 plot(msidata[mzdown1:mzup1,], pixel = 1:pixelcount, main=paste0("average spectrum ", mass1, " Da")) |
| 330 abline(v=c(mass1-distance, mass1, mass1+distance), col="blue",lty=c(3,5,3)) | 336 abline(v=c(mass1-distance, mass1, mass1+distance), col="blue",lty=c(3,5,3)) |
| 331 abline(v=maxmass1, col="red", lty=5) | 337 abline(v=maxmass1, col="red", lty=5) |
| 332 | 338 |
| 337 | 343 |
| 338 ### filter spectra for maxmass to have two vectors, which can be divided | 344 ### filter spectra for maxmass to have two vectors, which can be divided |
| 339 | 345 |
| 340 mass1vector = spectra(msidata)[features(msidata, mz = maxmass1),] | 346 mass1vector = spectra(msidata)[features(msidata, mz = maxmass1),] |
| 341 mass2vector = spectra(msidata)[features(msidata, mz = maxmass2),] | 347 mass2vector = spectra(msidata)[features(msidata, mz = maxmass2),] |
| 342 | |
| 343 foldchange = log2(mass1vector/mass2vector) | 348 foldchange = log2(mass1vector/mass2vector) |
| 344 | 349 |
| 345 ratiomatrix = cbind(foldchange, coord(msidata)) | 350 ratiomatrix = cbind(foldchange, coord(msidata)) |
| 346 | 351 |
| 347 print(ggplot(ratiomatrix, aes(x=x, y=y, fill=foldchange), colour=colo) | 352 print(ggplot(ratiomatrix, aes(x=x, y=y, fill=foldchange), colour=colo) |
| 358 | 363 |
| 359 par(mfrow=c(1,1), mar=c(5.1, 4.1, 4.1, 2.1), mgp=c(3, 1, 0), las=0) | 364 par(mfrow=c(1,1), mar=c(5.1, 4.1, 4.1, 2.1), mgp=c(3, 1, 0), las=0) |
| 360 if (length(inputmasses) != 0) | 365 if (length(inputmasses) != 0) |
| 361 { for (mass in 1:length(inputmasses)) | 366 { for (mass in 1:length(inputmasses)) |
| 362 { | 367 { |
| 363 image(msidata, mz=inputmasses[mass], plusminus=$plusminusinDalton, | 368 image(msidata, mz=inputmasses[mass], plusminus=$plusminus_dalton, |
| 364 main= paste0("3", LETTERS[mass], ") ", inputnames[mass], " (", round(inputmasses[mass], digits = 2)," ± ", $plusminusinDalton, " Da)"), | 369 main= paste0("3", LETTERS[mass], ") ", inputnames[mass], " (", round(inputmasses[mass], digits = 2)," ± ", $plusminus_dalton, " Da)"), |
| 365 contrast.enhance = "histogram", ylim=c(maxy+1, 0)) | 370 contrast.enhance = "histogram", ylim=c(maximumy+2, 0)) |
| 366 } | 371 } |
| 367 } else {print("3) The inputpeptide masses were outside the mass range")} | 372 } else {print("3) The inputpeptide masses were outside the mass range")} |
| 368 | 373 |
| 369 ## 4) Number of peaks per pixel - image | 374 ## 4) Number of peaks per pixel - image |
| 370 | 375 |
| 379 + scale_fill_gradientn(colours = c("blue", "purple" , "red","orange") | 384 + scale_fill_gradientn(colours = c("blue", "purple" , "red","orange") |
| 380 ,space = "Lab", na.value = "black", name = "# peaks")) | 385 ,space = "Lab", na.value = "black", name = "# peaks")) |
| 381 | 386 |
| 382 ## 5) TIC image | 387 ## 5) TIC image |
| 383 TICcoordarray=cbind(coord(msidata), TICs) | 388 TICcoordarray=cbind(coord(msidata), TICs) |
| 384 colo <- colorRampPalette( | 389 colo = colorRampPalette( |
| 385 c("blue", "cyan", "green", "yellow","red")) | 390 c("blue", "cyan", "green", "yellow","red")) |
| 386 print(ggplot(TICcoordarray, aes(x=x, y=y, fill=TICs), colour=colo) | 391 print(ggplot(TICcoordarray, aes(x=x, y=y, fill=TICs), colour=colo) |
| 387 + geom_tile() + coord_fixed() | 392 + geom_tile() + coord_fixed() |
| 388 + ggtitle("5) Total Ion Chromatogram") | 393 + ggtitle("5) Total Ion Chromatogram") |
| 389 + theme_bw() | 394 + theme_bw() |
| 412 | 417 |
| 413 secondhighestmz = names(sort(table(round(highestmz_matrix\$highestmzinDa, digits=0)), decreasing=TRUE)[2]) | 418 secondhighestmz = names(sort(table(round(highestmz_matrix\$highestmzinDa, digits=0)), decreasing=TRUE)[2]) |
| 414 secondhighestmz_pixel = which(round(highestmz_matrix\$highestmzinDa, digits=0) == secondhighestmz)[1] | 419 secondhighestmz_pixel = which(round(highestmz_matrix\$highestmzinDa, digits=0) == secondhighestmz)[1] |
| 415 | 420 |
| 416 ## 7) pca image for two components | 421 ## 7) pca image for two components |
| 417 pca <- PCA(msidata, ncomp=2) | 422 pca = PCA(msidata, ncomp=2) |
| 418 par(mfrow = c(2,1)) | 423 par(mfrow = c(2,1)) |
| 419 plot(pca, col=c("black", "darkgrey"), main="7) PCA for two components") | 424 plot(pca, col=c("black", "darkgrey"), main="7) PCA for two components") |
| 420 image(pca, col=c("black", "white"),ylim=c(maxy+1, 0)) | 425 image(pca, col=c("black", "white"),ylim=c(maximumy+2, 0)) |
| 421 | 426 |
| 422 | 427 |
| 423 ############################# III) properties over acquisition (spectra index)########## | 428 ############################# III) properties over acquisition (spectra index)########## |
| 424 ############################################################################## | 429 ############################################################################## |
| 425 | 430 |
| 434 hist(peaksperpixel, main="", las=1, xlab = "Number of peaks per spectrum", ylab="") | 439 hist(peaksperpixel, main="", las=1, xlab = "Number of peaks per spectrum", ylab="") |
| 435 title(main="8b) Number of peaks per spectrum", line=2) | 440 title(main="8b) Number of peaks per spectrum", line=2) |
| 436 title(ylab="Frequency = # spectra", line=4) | 441 title(ylab="Frequency = # spectra", line=4) |
| 437 abline(v=median(peaksperpixel), col="blue") | 442 abline(v=median(peaksperpixel), col="blue") |
| 438 | 443 |
| 439 ## 9a) TIC per spectrum - density scatterplot | 444 ## 9a) TIC per spectrum - density scatterplot |
| 440 zero=0 | 445 zero=0 |
| 441 par(mfrow = c(2,1), mar=c(5,6,4,2)) | 446 par(mfrow = c(2,1), mar=c(5,6,4,2)) |
| 442 plot_colorByDensity(pixels(msidata), TICs, ylab = "", xlab = "", main="9a) TIC per pixel") | 447 plot_colorByDensity(pixels(msidata), TICs, ylab = "", xlab = "", main="9a) TIC per pixel") |
| 443 title(xlab="Spectra index \n (= Acquisition time)", line=3) | 448 title(xlab="Spectra index \n (= Acquisition time)", line=3) |
| 444 title(ylab = "Total ion chromatogram intensity", line=4) | 449 title(ylab = "Total ion chromatogram intensity", line=4) |
| 531 plot(msidata, pixel =round(length(pixelnumber)/2, digits=0), main="Spectrum in middle of acquisition") | 536 plot(msidata, pixel =round(length(pixelnumber)/2, digits=0), main="Spectrum in middle of acquisition") |
| 532 plot(msidata, pixel = highestmz_pixel, main= paste0("Spectrum at ", rownames(coord(msidata)[highestmz_pixel,]))) | 537 plot(msidata, pixel = highestmz_pixel, main= paste0("Spectrum at ", rownames(coord(msidata)[highestmz_pixel,]))) |
| 533 plot(msidata, pixel = secondhighestmz_pixel, main= paste0("Spectrum at ", rownames(coord(msidata)[secondhighestmz_pixel,]))) | 538 plot(msidata, pixel = secondhighestmz_pixel, main= paste0("Spectrum at ", rownames(coord(msidata)[secondhighestmz_pixel,]))) |
| 534 | 539 |
| 535 ## 15) Zoomed in mass spectra for calibrants | 540 ## 15) Zoomed in mass spectra for calibrants |
| 536 plusminusvalue = $plusminusinDalton | 541 plusminusvalue = $plusminus_dalton |
| 537 x = 1 | 542 x = 1 |
| 538 if (length(inputcalibrantmasses) != 0) | 543 if (length(inputcalibrantmasses) != 0) |
| 539 { | 544 { |
| 540 | 545 |
| 541 for (calibrant in inputcalibrantmasses) | 546 for (calibrant in inputcalibrantmasses) |
| 543 minmasspixel = features(msidata, mz=calibrant-1) | 548 minmasspixel = features(msidata, mz=calibrant-1) |
| 544 maxmasspixel = features(msidata, mz=calibrant+3) | 549 maxmasspixel = features(msidata, mz=calibrant+3) |
| 545 par(mfrow = c(2, 2), oma=c(0,0,2,0)) | 550 par(mfrow = c(2, 2), oma=c(0,0,2,0)) |
| 546 plot(msidata[minmasspixel:maxmasspixel,], pixel = 1:length(pixelnumber), main= "average spectrum") | 551 plot(msidata[minmasspixel:maxmasspixel,], pixel = 1:length(pixelnumber), main= "average spectrum") |
| 547 abline(v=c(calibrant-plusminusvalue, calibrant,calibrant+plusminusvalue), col="blue", lty=c(3,5,3)) | 552 abline(v=c(calibrant-plusminusvalue, calibrant,calibrant+plusminusvalue), col="blue", lty=c(3,5,3)) |
| 548 plot(msidata[minmasspixel:maxmasspixel,], pixel =round(pixelnumber/2, digits=0), main="pixel in middle of acquisition") | 553 plot(msidata[minmasspixel:maxmasspixel,], pixel =round(length(pixelnumber)/2, digits=0), main="pixel in middle of acquisition") |
| 549 abline(v=c(calibrant-plusminusvalue, calibrant,calibrant+plusminusvalue), col="blue", lty=c(3,5,3)) | 554 abline(v=c(calibrant-plusminusvalue, calibrant,calibrant+plusminusvalue), col="blue", lty=c(3,5,3)) |
| 550 plot(msidata[minmasspixel:maxmasspixel,], pixel = highestmz_pixel,main= paste0("Spectrum at ", rownames(coord(msidata)[highestmz_pixel,]))) | 555 plot(msidata[minmasspixel:maxmasspixel,], pixel = highestmz_pixel,main= paste0("Spectrum at ", rownames(coord(msidata)[highestmz_pixel,]))) |
| 551 abline(v=c(calibrant-plusminusvalue, calibrant,calibrant+plusminusvalue), col="blue", lty=c(3,5,3)) | 556 abline(v=c(calibrant-plusminusvalue, calibrant,calibrant+plusminusvalue), col="blue", lty=c(3,5,3)) |
| 552 plot(msidata[minmasspixel:maxmasspixel,], pixel = secondhighestmz_pixel, main= paste0("Spectrum at ", rownames(coord(msidata)[secondhighestmz_pixel,]))) | 557 plot(msidata[minmasspixel:maxmasspixel,], pixel = secondhighestmz_pixel, main= paste0("Spectrum at ", rownames(coord(msidata)[secondhighestmz_pixel,]))) |
| 553 abline(v=c(calibrant-plusminusvalue, calibrant,calibrant+plusminusvalue), col="blue", lty=c(3,5,3)) | 558 abline(v=c(calibrant-plusminusvalue, calibrant,calibrant+plusminusvalue), col="blue", lty=c(3,5,3)) |
| 567 </configfiles> | 572 </configfiles> |
| 568 <inputs> | 573 <inputs> |
| 569 <param name="infile" type="data" format="imzml,rdata,analyze75" label="Inputfile as imzML, Analyze7.5 or Cardinal MSImageSet saved as RData" | 574 <param name="infile" type="data" format="imzml,rdata,analyze75" label="Inputfile as imzML, Analyze7.5 or Cardinal MSImageSet saved as RData" |
| 570 help="Upload composite datatype imzml (ibd+imzML) or analyze75 (hdr+img+t2m) or regular upload .RData (Cardinal MSImageSet)"/> | 575 help="Upload composite datatype imzml (ibd+imzML) or analyze75 (hdr+img+t2m) or regular upload .RData (Cardinal MSImageSet)"/> |
| 571 <param name="filename" type="text" value="" optional="true" label="Title" help="will appear in the quality report. If nothing given it will take the dataset name."/> | 576 <param name="filename" type="text" value="" optional="true" label="Title" help="will appear in the quality report. If nothing given it will take the dataset name."/> |
| 572 <param name="inputpeptidefile" type="data" optional="true" format="txt, csv" label="Text file with peptidemasses and names" | 577 <param name="peptide_file" type="data" optional="true" format="tabular" label="Text file with peptidemasses and names" |
| 573 help="first column peptide m/z, second column peptide name, tab separated file"/> | 578 help="first column peptide m/z, second column peptide name, tab separated file"/> |
| 574 <param name="inputcalibrants" type="data" optional="true" format="txt,csv" | 579 <param name="calibrant_file" type="data" optional="true" format="tabular" |
| 575 label="Internal calibrants" | 580 label="Internal calibrants" |
| 576 help="Used for plot number of calibrant per spectrum and for zoomed in mass spectra"/> | 581 help="Used for plot number of calibrant per spectrum and for zoomed in mass spectra"/> |
| 577 <param name="plusminusinDalton" value="0.25" type="text" label="Mass range" help="plusminus mass window in Dalton"/> | 582 <param name="plusminus_dalton" value="0.25" type="text" label="Mass range" help="plusminus mass window in Dalton"/> |
| 578 <repeat name="calibrantratio" title="Plot fold change of two masses for each spectrum" min="0" max="10"> | 583 <repeat name="calibrantratio" title="Plot fold change of two masses for each spectrum" min="0" max="10"> |
| 579 <param name="mass1" value="1111" type="float" label="Mass 1" help="First mass in Dalton"/> | 584 <param name="mass1" value="1111" type="float" label="Mass 1" help="First mass in Dalton"/> |
| 580 <param name="mass2" value="2222" type="float" label="Mass 2" help="Second mass in Dalton"/> | 585 <param name="mass2" value="2222" type="float" label="Mass 2" help="Second mass in Dalton"/> |
| 581 <param name="distance" value="0.25" type="float" label="Distance in Dalton" help="Distance in Da used to find peak maximum from input masses in both directions"/> | 586 <param name="distance" value="0.25" type="float" label="Distance in Dalton" help="Distance in Da used to find peak maximum from input masses in both directions"/> |
| 582 <param name="filenameratioplot" type="text" optional="true" label="Title" help="Optional title for fold change plot."/> | 587 <param name="filenameratioplot" type="text" optional="true" label="Title" help="Optional title for fold change plot."/> |
| 590 <test> | 595 <test> |
| 591 <param name="infile" value="" ftype="imzml"> | 596 <param name="infile" value="" ftype="imzml"> |
| 592 <composite_data value="Example_Continuous.imzML" /> | 597 <composite_data value="Example_Continuous.imzML" /> |
| 593 <composite_data value="Example_Continuous.ibd" /> | 598 <composite_data value="Example_Continuous.ibd" /> |
| 594 </param> | 599 </param> |
| 595 <param name="inputpeptidefile" value="inputpeptides.csv" ftype="csv"/> | 600 <param name="peptide_file" value="inputpeptides.csv" ftype="csv"/> |
| 596 <param name="inputcalibrants" ftype="txt" value="inputcalibrantfile1.txt"/> | 601 <param name="calibrant_file" ftype="txt" value="inputcalibrantfile1.txt"/> |
| 597 <param name="plusminusinDalton" value="0.25"/> | 602 <param name="plusminus_dalton" value="0.25"/> |
| 598 <param name="filename" value="Testfile_imzml"/> | 603 <param name="filename" value="Testfile_imzml"/> |
| 599 <repeat name="calibrantratio"> | 604 <repeat name="calibrantratio"> |
| 600 <param name="mass1" value="111"/> | 605 <param name="mass1" value="111"/> |
| 601 <param name="mass2" value="222"/> | 606 <param name="mass2" value="222"/> |
| 602 <param name="distance" value="0.25"/> | 607 <param name="distance" value="0.25"/> |
| 608 <param name="filenameratioplot" value = "Ratio of mass1 (111) / mass2 (222)"/> | |
| 603 </repeat> | 609 </repeat> |
| 604 <output name="plots" file="Testfile_qualitycontrol_imzml.pdf" compare="sim_size" delta="20000"/> | 610 <output name="plots" file="Testfile_qualitycontrol_imzml.pdf" compare="sim_size" delta="20000"/> |
| 605 </test> | 611 </test> |
| 606 | 612 |
| 607 <test> | 613 <test> |
| 608 <param name="infile" value="" ftype="analyze75"> | 614 <param name="infile" value="" ftype="analyze75"> |
| 609 <composite_data value="Analyze75.hdr"/> | 615 <composite_data value="Analyze75.hdr"/> |
| 610 <composite_data value="Analyze75.img"/> | 616 <composite_data value="Analyze75.img"/> |
| 611 <composite_data value="Analyze75.t2m"/> | 617 <composite_data value="Analyze75.t2m"/> |
| 612 </param> | 618 </param> |
| 613 <param name="inputpeptidefile" value="inputpeptides.txt" ftype="txt"/> | 619 <param name="peptide_file" value="inputpeptides.txt" ftype="txt"/> |
| 614 <param name="inputcalibrants" ftype="txt" value="inputcalibrantfile2.txt"/> | 620 <param name="calibrant_file" ftype="txt" value="inputcalibrantfile2.txt"/> |
| 615 <param name="plusminusinDalton" value="0.5"/> | 621 <param name="plusminus_dalton" value="0.5"/> |
| 616 <param name="filename" value="Testfile_analyze75"/> | 622 <param name="filename" value="Testfile_analyze75"/> |
| 617 <output name="plots" file="Testfile_qualitycontrol_analyze75.pdf" compare="sim_size" delta="20000"/> | 623 <output name="plots" file="Testfile_qualitycontrol_analyze75.pdf" compare="sim_size" delta="20000"/> |
| 618 </test> | 624 </test> |
| 619 | 625 |
| 620 <test> | 626 <test> |
| 621 <param name="infile" value="preprocessing_results1.RData" ftype="rdata"/> | 627 <param name="infile" value="preprocessing_results1.RData" ftype="rdata"/> |
| 622 <param name="inputpeptidefile" value="inputpeptides.csv" ftype="txt"/> | 628 <param name="peptide_file" value="inputpeptides.csv" ftype="txt"/> |
| 623 <param name="inputcalibrants" ftype="txt" value="inputcalibrantfile1.txt"/> | 629 <param name="calibrant_file" ftype="txt" value="inputcalibrantfile1.txt"/> |
| 624 <param name="plusminusinDalton" value="0.1"/> | 630 <param name="plusminus_dalton" value="0.1"/> |
| 625 <param name="filename" value="Testfile_rdata"/> | 631 <param name="filename" value="Testfile_rdata"/> |
| 626 <output name="plots" file="Testfile_qualitycontrol_rdata.pdf" compare="sim_size" delta="20000"/> | 632 <output name="plots" file="Testfile_qualitycontrol_rdata.pdf" compare="sim_size" delta="20000"/> |
| 627 </test> | 633 </test> |
| 628 <test> | 634 <test> |
| 629 <param name="infile" value="LM8_file16.rdata" ftype="rdata"/> | 635 <param name="infile" value="LM8_file16.rdata" ftype="rdata"/> |
| 630 <param name="inputpeptidefile" value="inputpeptides.txt" ftype="txt"/> | 636 <param name="peptide_file" value="inputpeptides.txt" ftype="txt"/> |
| 631 <param name="inputcalibrants" ftype="txt" value="inputcalibrantfile2.txt"/> | 637 <param name="calibrant_file" ftype="txt" value="inputcalibrantfile2.txt"/> |
| 632 <param name="plusminusinDalton" value="0.1"/> | 638 <param name="plusminus_dalton" value="0.1"/> |
| 633 <param name="filename" value="Testfile_rdata"/> | 639 <param name="filename" value="Testfile_rdata"/> |
| 634 <output name="plots" file="LM8_file16output.pdf" compare="sim_size" delta="20000"/> | 640 <output name="plots" file="LM8_file16output.pdf" compare="sim_size" delta="20000"/> |
| 635 </test> | 641 </test> |
| 636 </tests> | 642 </tests> |
| 637 <help> | 643 <help> |
| 638 <![CDATA[ | 644 <![CDATA[ |
| 639 Quality control for maldi imaging mass spectrometry data. | 645 Quality control for maldi imaging mass spectrometry data. The output of this tool contains key values and plots of the imaging data as pdf. |
| 640 | 646 For additional beautiful heatmap images use the MSI ion images tool and to plot more mass spectra use the MSI massspectra tool. |
| 641 | 647 |
| 642 Input data: 3 types of input data can be used: | 648 Input data: 3 types of input data can be used: |
| 643 | 649 |
| 644 - imzml file (upload imzml and ibd file via the "composite" function) `Introduction to the imzml format <http://ms-imaging.org/wp/introduction/>`_ | 650 - imzml file (upload imzml and ibd file via the "composite" function) `Introduction to the imzml format <http://ms-imaging.org/wp/introduction/>`_ |
| 645 - Analyze7.5 (upload hdr, img and t2m file via the "composite" function) | 651 - Analyze7.5 (upload hdr, img and t2m file via the "composite" function) |
| 646 - Cardinal "MSImageSet" data (with variable name "msidata", saved as .RData) | 652 - Cardinal "MSImageSet" data (with variable name "msidata", saved as .RData) |
| 647 | 653 |
| 648 The output of this tool contains key values and plots of the imaging data as pdf. | 654 |
| 649 | 655 |
| 650 ]]> | 656 ]]> |
| 651 </help> | 657 </help> |
| 652 <citations> | 658 <citations> |
| 653 <citation type="doi">10.1093/bioinformatics/btv146</citation> | 659 <citation type="doi">10.1093/bioinformatics/btv146</citation> |
