Mercurial > repos > galaxyp > cardinal_quality_report
comparison quality_report.xml @ 13:ada8dd18d4bf draft default tip
planemo upload for repository https://github.com/galaxyproteomics/tools-galaxyp/tree/master/tools/cardinal commit 91e77c139cb3b7c6d67727dc39140dd79355fa0c
| author | galaxyp |
|---|---|
| date | Thu, 04 Jul 2024 13:20:33 +0000 |
| parents | e4dda61bb5c8 |
| children |
comparison
equal
deleted
inserted
replaced
| 12:a28db61cc8ec | 13:ada8dd18d4bf |
|---|---|
| 1 <tool id="cardinal_quality_report" name="MSI Qualitycontrol" version="@VERSION@.0"> | 1 <tool id="cardinal_quality_report" name="MSI Qualitycontrol" version="@TOOL_VERSION@+galaxy@VERSION_SUFFIX@" profile="22.05"> |
| 2 <description> | 2 <description> |
| 3 mass spectrometry imaging QC | 3 mass spectrometry imaging QC |
| 4 </description> | 4 </description> |
| 5 <macros> | 5 <macros> |
| 6 <import>macros.xml</import> | 6 <import>macros.xml</import> |
| 7 </macros> | 7 </macros> |
| 8 <expand macro="requirements"> | 8 <expand macro="requirements"/> |
| 9 <requirement type="package" version="2.3">r-gridextra</requirement> | |
| 10 <requirement type="package" version="3.3.5">r-ggplot2</requirement> | |
| 11 <requirement type="package" version="1.1_2">r-rcolorbrewer</requirement> | |
| 12 <requirement type="package" version="2.23_20">r-kernsmooth</requirement> | |
| 13 <requirement type="package" version="1.1.1">r-scales</requirement> | |
| 14 <requirement type="package" version="1.0.12">r-pheatmap</requirement> | |
| 15 </expand> | |
| 16 <command detect_errors="exit_code"> | 9 <command detect_errors="exit_code"> |
| 17 <![CDATA[ | 10 <![CDATA[ |
| 18 @INPUT_LINKING@ | 11 @INPUT_LINKING@ |
| 19 cat '${cardinal_qualitycontrol_script}' && | 12 cat '${cardinal_qualitycontrol_script}' && |
| 20 Rscript '${cardinal_qualitycontrol_script}' | 13 Rscript '${cardinal_qualitycontrol_script}' |
| 39 if (class(msidata) == "MSImageSet"){ | 32 if (class(msidata) == "MSImageSet"){ |
| 40 msidata = as(msidata, "MSImagingExperiment") | 33 msidata = as(msidata, "MSImagingExperiment") |
| 41 run(msidata) = "infile" | 34 run(msidata) = "infile" |
| 42 } | 35 } |
| 43 | 36 |
| 37 | |
| 44 ## remove duplicated coordinates | 38 ## remove duplicated coordinates |
| 45 msidata <- msidata[,!duplicated(coord(msidata))] | 39 msidata <- msidata[,!duplicated(coord(msidata))] |
| 40 | |
| 46 | 41 |
| 47 ## optional annotation from tabular file to obtain pixel groups (otherwise all pixels are considered to be one sample) | 42 ## optional annotation from tabular file to obtain pixel groups (otherwise all pixels are considered to be one sample) |
| 48 | 43 |
| 49 #if str($tabular_annotation.load_annotation) == 'yes_annotation': | 44 #if str($tabular_annotation.load_annotation) == 'yes_annotation': |
| 50 | 45 |
| 78 NumemptyTIC = sum(TICs == 0) | 73 NumemptyTIC = sum(TICs == 0) |
| 79 ## Median und sd TIC | 74 ## Median und sd TIC |
| 80 medTIC = round(median(TICs), digits=1) | 75 medTIC = round(median(TICs), digits=1) |
| 81 sdTIC = round(sd(TICs), digits=0) | 76 sdTIC = round(sd(TICs), digits=0) |
| 82 ## Median and sd # peaks per spectrum | 77 ## Median and sd # peaks per spectrum |
| 83 medpeaks = round(median(colSums(spectra(msidata)>0, na.rm=TRUE), na.rm=TRUE), digits=0) | 78 medpeaks = round(median(colSums(as.matrix(spectra(msidata))>0, na.rm=TRUE), na.rm=TRUE), digits=0) |
| 84 sdpeaks = round(sd(colSums(spectra(msidata)>0, na.rm=TRUE), na.rm=TRUE), digits=0) | 79 sdpeaks = round(sd(colSums(as.matrix(spectra(msidata))>0, na.rm=TRUE), na.rm=TRUE), digits=0) |
| 85 ##max window size | 80 ## max window size |
| 86 max_window = round(mz(msidata)[nrow(msidata)]-mz(msidata)[nrow(msidata)-1], digits=2) | 81 max_window = round(mz(msidata)[nrow(msidata)]-mz(msidata)[nrow(msidata)-1], digits=2) |
| 87 ## Processing informations | 82 ## Processing informations |
| 88 centroidedinfo = centroided(msidata) | 83 centroidedinfo = centroided(msidata) |
| 89 | 84 |
| 85 | |
| 90 ############## Read and filter tabular file with m/z ########################### | 86 ############## Read and filter tabular file with m/z ########################### |
| 91 | 87 |
| 92 ### reading m/z input (calibrant) file: | 88 ### reading m/z input (calibrant) file: |
| 93 | 89 |
| 94 #if $calibrant_file: | 90 #if $calibrant_file: |
| 95 | 91 |
| 96 calibrant_list = read.delim("$calibrant_file", header = $calibrant_header, na.strings=c(" ","","NA"), stringsAsFactors = FALSE) | 92 calibrant_list = read.delim("$calibrant_file", header = $calibrant_header, na.strings=c(" ","","NA"), stringsAsFactors = FALSE) |
| 97 calibrant_list = calibrant_list[,c($mz_column, $name_column)] | 93 calibrant_list = calibrant_list[,c($mz_column, $name_column)] |
| 94 calibrant_list = calibrant_list[order(calibrant_list[,1]),] | |
| 98 | 95 |
| 99 ### calculate how many input calibrant m/z are valid: | 96 ### calculate how many input calibrant m/z are valid: |
| 100 | 97 |
| 101 inputcalibrants = calibrant_list[calibrant_list[,1]>minmz & calibrant_list[,1]<maxmz,] | 98 inputcalibrants = calibrant_list[calibrant_list[,1]>minmz & calibrant_list[,1]<maxmz,] |
| 102 number_calibrants_in = length(calibrant_list[,1]) | 99 number_calibrants_in = length(calibrant_list[,1]) |
| 242 | 239 |
| 243 ## matrix with calibrants in columns and in rows if there is peak intensity in range or not | 240 ## matrix with calibrants in columns and in rows if there is peak intensity in range or not |
| 244 pixelmatrix = matrix(ncol=ncol(msidata), nrow = 0) | 241 pixelmatrix = matrix(ncol=ncol(msidata), nrow = 0) |
| 245 | 242 |
| 246 ## plot only possible when there is at least one valid calibrant | 243 ## plot only possible when there is at least one valid calibrant |
| 244 | |
| 247 if (length(inputcalibrantmasses) != 0){ | 245 if (length(inputcalibrantmasses) != 0){ |
| 248 | 246 |
| 249 ## calculate plusminus values in m/z for each calibrant | 247 ## calculate plusminus values in m/z for each calibrant |
| 250 plusminusvalues = rep($plusminus_ppm/1000000, length(inputcalibrantmasses))*inputcalibrantmasses | 248 plusminusvalues = rep($plusminus_ppm/1000000, length(inputcalibrantmasses))*inputcalibrantmasses |
| 251 | 249 |
| 252 ## filter for m/z window of each calibrant and calculate if sum of peak intensities > 0 | 250 ## filter for m/z window of each calibrant and calculate if sum of peak intensities > 0 |
| 253 | 251 |
| 254 for (mass in 1:length(inputcalibrantmasses)){ | 252 for (mass in 1:length(inputcalibrantmasses)){ |
| 255 | 253 |
| 256 filtered_data = msidata[mz(msidata) >= inputcalibrantmasses[mass]-plusminusvalues[mass] & mz(msidata) <= inputcalibrantmasses[mass]+plusminusvalues[mass],] | 254 filtered_data = msidata[mz(msidata) >= inputcalibrantmasses[mass]-plusminusvalues[mass] & mz(msidata) <= inputcalibrantmasses[mass]+plusminusvalues[mass],] |
| 257 | 255 |
| 258 if (nrow(filtered_data) > 0 & sum(spectra(filtered_data),na.rm=TRUE) > 0){ | 256 if (nrow(filtered_data) > 0 & sum(as.matrix(spectra(filtered_data)),na.rm=TRUE) > 0){ |
| 259 | 257 |
| 260 ## intensity of all m/z > 0 | 258 ## intensity of all m/z > 0 |
| 261 intensity_sum = colSums(spectra(filtered_data), na.rm=TRUE) > 0 | 259 intensity_sum = colSums(as.matrix(spectra(filtered_data)[1,]), na.rm=TRUE) > 0 |
| 262 | 260 |
| 263 ###}else if(nrow(filtered_data) == 1 & sum(spectra(filtered_data), na.rm=TRUE) > 0){ | 261 ###}else if(nrow(filtered_data) == 1 & sum(as.matrix(spectra(filtered_data)), na.rm=TRUE) > 0){ |
| 264 | 262 |
| 265 ## intensity of only m/z > 0 | 263 ## intensity of only m/z > 0 |
| 266 intensity_sum = colSums(spectra(filtered_data), na.rm=TRUE) > 0 | 264 intensity_sum = colSums(as.matrix(spectra(filtered_data)[1,]), na.rm=TRUE) > 0 |
| 267 | 265 |
| 268 }else{ | 266 }else{ |
| 269 | 267 intensity_sum = rep(FALSE, ncol(filtered_data))} |
| 270 intensity_sum = rep(FALSE, ncol(filtered_data))} | 268 |
| 271 | 269 ## for each pixel add sum of intensities > 0 in the given m/z range |
| 272 ## for each pixel add sum of intensities > 0 in the given m/z range | 270 pixelmatrix = rbind(pixelmatrix, intensity_sum) |
| 273 pixelmatrix = rbind(pixelmatrix, intensity_sum) | |
| 274 } | 271 } |
| 272 | |
| 275 | 273 |
| 276 ## for each pixel count TRUE (each calibrant m/z range with intensity > 0 is TRUE) | 274 ## for each pixel count TRUE (each calibrant m/z range with intensity > 0 is TRUE) |
| 277 countvector= as.factor(colSums(pixelmatrix, na.rm=TRUE)) | 275 countvector= as.factor(colSums(pixelmatrix, na.rm=TRUE)) |
| 278 countdf= data.frame(coord(msidata)\$x, coord(msidata)\$y, countvector) ## add pixel coordinates to counts | 276 countdf= data.frame(coord(msidata)\$x, coord(msidata)\$y, countvector) ## add pixel coordinates to counts |
| 279 colnames(countdf) = c("x", "y", "countvector") | 277 colnames(countdf) = c("x", "y", "countvector") |
| 290 | 288 |
| 291 ## remove countdf to clean up RAM space | 289 ## remove countdf to clean up RAM space |
| 292 rm(countdf) | 290 rm(countdf) |
| 293 gc() | 291 gc() |
| 294 | 292 |
| 295 }else{print("2) The inputcalibrant m/z were not provided or outside the m/z range")} | 293 }else{plot.new() |
| 294 text(0.5, 0.5, "The input calibrant m/z were not provided \n or outside the m/z range.", cex = 1.5) | |
| 295 print("2) The input calibrant m/z were not provided or outside the m/z range")} | |
| 296 | 296 |
| 297 ########################## 3) fold change image ########################### | 297 ########################## 3) fold change image ########################### |
| 298 | 298 |
| 299 #if $calibrantratio: | 299 #if $calibrantratio: |
| 300 #for $foldchanges in $calibrantratio: | 300 #for $foldchanges in $calibrantratio: |
| 377 ## if there are not enough intensities in the mz range skip creating an image | 377 ## if there are not enough intensities in the mz range skip creating an image |
| 378 print(paste0("Not enough intensities > 0 for m/z ", inputcalibrants[,1][mass])) | 378 print(paste0("Not enough intensities > 0 for m/z ", inputcalibrants[,1][mass])) |
| 379 } | 379 } |
| 380 ) | 380 ) |
| 381 } | 381 } |
| 382 } else {print("4) The input peptide and calibrant m/z were not provided or outside the m/z range")} | 382 } else {plot.new() |
| 383 text(0.5, 0.5, "The input peptide and calibrant m/z were not \n provided or outside the m/z range.", cex = 1.5) | |
| 384 print("4) The input peptide and calibrant m/z were not provided or outside the m/z range")} | |
| 383 | 385 |
| 384 #end if | 386 #end if |
| 385 | 387 |
| 386 #################### 5) Number of peaks per pixel - image ################## | 388 #################### 5) Number of peaks per pixel - image ################## |
| 387 | 389 |
| 388 ## here every intensity value > 0 counts as peak | 390 ## here every intensity value > 0 counts as peak |
| 389 peaksperpixel = colSums(spectra(msidata)> 0, na.rm=TRUE) | 391 peaksperpixel = colSums(int_matrix> 0, na.rm=TRUE) |
| 390 peakscoordarray=data.frame(coord(msidata)\$x, coord(msidata)\$y, peaksperpixel) | 392 peakscoordarray=data.frame(coord(msidata)\$x, coord(msidata)\$y, peaksperpixel) |
| 391 colnames(peakscoordarray) = c("x", "y", "peaksperpixel") | 393 colnames(peakscoordarray) = c("x", "y", "peaksperpixel") |
| 392 | 394 |
| 393 print(ggplot(peakscoordarray, aes(x=x, y=y, fill=peaksperpixel))+ | 395 print(ggplot(peakscoordarray, aes(x=x, y=y, fill=peaksperpixel))+ |
| 394 geom_tile() + coord_fixed() + | 396 geom_tile() + coord_fixed() + |
| 493 gc() | 495 gc() |
| 494 | 496 |
| 495 #end if | 497 #end if |
| 496 | 498 |
| 497 ########################## 8) optional pca image for two components ################# | 499 ########################## 8) optional pca image for two components ################# |
| 498 | 500 ### PCA removed until next Update |
| 499 #if $do_pca: | 501 ####if $do_pca: |
| 500 | 502 |
| 501 set.seed(1) | 503 set.seed(1) |
| 502 pca = PCA(msidata, ncomp=2) | 504 ##pca = PCA(msidata, ncomp=2) |
| 503 | 505 |
| 504 ## plot overview image and plot and PC1 and 2 images | 506 ## plot overview image and plot and PC1 and 2 images |
| 505 print(plot(pca, col=c("black", "darkgrey"), main="PCA for two components", layout=c(2,1), strip=FALSE)) | 507 ##print(plot(pca, col=c("black", "darkgrey"), main="PCA for two components", layout=c(2,1), strip=FALSE)) |
| 506 print(image(pca, run="infile", col=c("black", "white"), strip=FALSE, ylim= c(maximumy+0.2*maximumy,minimumy-1), layout=FALSE)) | 508 ##print(image(pca, run="infile", col=c("black", "white"), strip=FALSE, ylim= c(maximumy+0.2*maximumy,minimumy-1), layout=FALSE)) |
| 507 | 509 |
| 508 par(oma=c(0,0,0,1))## margin for image legend | 510 ##par(oma=c(0,0,0,1))## margin for image legend |
| 509 print(image(pca, column = "PC1" , strip=FALSE, superpose = FALSE, main="PC1", col.regions = risk.colors(100), layout=c(2,1), ylim= c(maximumy+0.2*maximumy,minimumy-1))) | 511 ##print(image(pca, column = "PC1" , strip=FALSE, superpose = FALSE, main="PC1", col.regions = risk.colors(100), layout=c(2,1), ylim= c(maximumy+0.2*maximumy,minimumy-1))) |
| 510 print(image(pca, column = "PC2" , strip=FALSE, superpose = FALSE, main="PC2", col.regions = risk.colors(100), layout=FALSE, ylim= c(maximumy+0.2*maximumy,minimumy-1))) | 512 ##print(image(pca, column = "PC2" , strip=FALSE, superpose = FALSE, main="PC2", col.regions = risk.colors(100), layout=FALSE, ylim= c(maximumy+0.2*maximumy,minimumy-1))) |
| 511 ## remove pca to clean up space | 513 ## remove pca to clean up space |
| 512 rm(pca) | 514 ##rm(pca) |
| 513 gc() | 515 ##gc() |
| 514 | 516 |
| 515 #end if | 517 ####end if |
| 516 | 518 |
| 517 ################## III) properties over spectra index ###################### | 519 ################## III) properties over spectra index ###################### |
| 518 ############################################################################ | 520 ############################################################################ |
| 519 print("properties over pixels") | 521 print("properties over pixels") |
| 520 par(mfrow = c(2,1), mar=c(5,6,4,2)) | 522 par(mfrow = c(2,1), mar=c(5,6,4,2)) |
| 610 | 612 |
| 611 ########################## 12) Number of peaks per m/z ##################### | 613 ########################## 12) Number of peaks per m/z ##################### |
| 612 | 614 |
| 613 #if $report_depth: | 615 #if $report_depth: |
| 614 | 616 |
| 615 peakspermz = rowSums(spectra(msidata) > 0, na.rm=TRUE) | 617 peakspermz = rowSums(int_matrix > 0, na.rm=TRUE) |
| 616 | 618 |
| 617 par(mfrow = c(2,1), mar=c(5,6,4,4.5)) | 619 par(mfrow = c(2,1), mar=c(5,6,4,4.5)) |
| 618 ## 12a) scatterplot | 620 ## 12a) scatterplot |
| 619 plot_colorByDensity(mz(msidata),peakspermz, main= "Number of peaks per m/z", ylab ="") | 621 plot_colorByDensity(mz(msidata),peakspermz, main= "Number of peaks per m/z", ylab ="") |
| 620 title(xlab="m/z", line=2.5) | 622 title(xlab="m/z", line=2.5) |
| 663 ## 14b) histogram: | 665 ## 14b) histogram: |
| 664 hist(int_matrix, main="", xlab = "", ylab="", las=1) | 666 hist(int_matrix, main="", xlab = "", ylab="", las=1) |
| 665 title(main="Intensity histogram", line=2) | 667 title(main="Intensity histogram", line=2) |
| 666 title(xlab="intensities") | 668 title(xlab="intensities") |
| 667 title(ylab="Frequency", line=4) | 669 title(ylab="Frequency", line=4) |
| 668 abline(v=median(int_matrix)[(as.matrix(spectra(msidata))>0)], col="blue") | 670 abline(v=median(int_matrix)[(int_matrix>0)], col="blue") |
| 669 | 671 |
| 670 #end if | 672 #end if |
| 671 | 673 |
| 672 ## 14c) histogram to show contribution of annotation groups | 674 ## 14c) histogram to show contribution of annotation groups |
| 673 | 675 |
| 674 if (!is.null(unique(msidata\$annotation))){ | 676 if (!is.null(unique(msidata\$annotation))){ |
| 675 | 677 |
| 676 df_13 = data.frame(matrix(,ncol=2, nrow=0)) | 678 df_13 = data.frame(matrix(,ncol=2, nrow=0)) |
| 677 for (subsample in unique(msidata\$annotation)){ | 679 for (subsample in unique(msidata\$annotation)){ |
| 678 log2_int_subsample = spectra(msidata)[,msidata\$annotation==subsample] | 680 log2_int_subsample = int_matrix[,msidata\$annotation==subsample] |
| 679 df_subsample = data.frame(as.numeric(log2_int_subsample)) | 681 df_subsample = data.frame(as.numeric(log2_int_subsample)) |
| 680 df_subsample\$annotation = subsample | 682 df_subsample\$annotation = subsample |
| 681 df_13 = rbind(df_13, df_subsample)} | 683 df_13 = rbind(df_13, df_subsample)} |
| 682 df_13\$annotation = as.factor(df_13\$annotation) | 684 df_13\$annotation = as.factor(df_13\$annotation) |
| 683 colnames(df_13) = c("int", "annotation") | 685 colnames(df_13) = c("int", "annotation") |
| 696 ## 14d) boxplots to visualize in a different way the intensity distributions | 698 ## 14d) boxplots to visualize in a different way the intensity distributions |
| 697 par(mfrow = c(1,1), cex.axis=1.3, cex.lab=1.3, mar=c(10,4.1,5.1,2.1)) | 699 par(mfrow = c(1,1), cex.axis=1.3, cex.lab=1.3, mar=c(10,4.1,5.1,2.1)) |
| 698 | 700 |
| 699 mean_matrix = matrix(,ncol=0, nrow = nrow(msidata)) | 701 mean_matrix = matrix(,ncol=0, nrow = nrow(msidata)) |
| 700 for (subsample in unique(msidata\$annotation)){ | 702 for (subsample in unique(msidata\$annotation)){ |
| 701 mean_mz_sample = rowMeans(spectra(msidata)[,msidata\$annotation==subsample],na.rm=TRUE) | 703 mean_mz_sample = rowMeans(int_matrix[,msidata\$annotation==subsample],na.rm=TRUE) |
| 702 mean_matrix = cbind(mean_matrix, mean_mz_sample)} | 704 mean_matrix = cbind(mean_matrix, mean_mz_sample)} |
| 703 | 705 |
| 704 boxplot(log10(as.data.frame(mean_matrix)), ylab = "Log10 mean intensity per m/z", main="Log10 mean m/z intensities per annotation group", xaxt = "n") | 706 boxplot(log10(as.data.frame(mean_matrix)), ylab = "Log10 mean intensity per m/z", main="Log10 mean m/z intensities per annotation group", xaxt = "n") |
| 705 (axis(1, at = c(1:number_combined), cex.axis=0.9, labels=unique(msidata\$annotation), las=2)) | 707 (axis(1, at = c(1:number_combined), cex.axis=0.9, labels=unique(msidata\$annotation), las=2)) |
| 706 | 708 |
| 707 ## 14e) Heatmap of mean intensities of annotation groups | 709 ## 14e) Heatmap of mean intensities of annotation groups |
| 708 | 710 |
| 709 colnames(mean_matrix) = unique(msidata\$annotation) | 711 colnames(mean_matrix) = unique(msidata\$annotation) |
| 712 print(mean_matrix) | |
| 713 | |
| 710 mean_matrix[is.na(mean_matrix)] = 0 | 714 mean_matrix[is.na(mean_matrix)] = 0 |
| 711 heatmap.parameters <- list(mean_matrix, | 715 heatmap.parameters <- list(mean_matrix, |
| 712 show_rownames = T, show_colnames = T, | 716 show_rownames = T, show_colnames = T, |
| 713 main = "Heatmap of mean intensities per annotation group") | 717 main = "Heatmap of mean intensities per annotation group") |
| 714 par(oma=c(5,0,0,0)) | 718 par(oma=c(5,0,0,0)) |
| 805 | 809 |
| 806 | 810 |
| 807 ### find m/z with the highest mean intensity in m/z range (red line in plot 16) and calculate ppm difference for plot 17 | 811 ### find m/z with the highest mean intensity in m/z range (red line in plot 16) and calculate ppm difference for plot 17 |
| 808 filtered_data = msidata_no_NA[mz(msidata_no_NA) >= inputcalibrantmasses[mass]-plusminusvalues[mass] & mz(msidata_no_NA) <= inputcalibrantmasses[mass]+plusminusvalues[mass],] | 812 filtered_data = msidata_no_NA[mz(msidata_no_NA) >= inputcalibrantmasses[mass]-plusminusvalues[mass] & mz(msidata_no_NA) <= inputcalibrantmasses[mass]+plusminusvalues[mass],] |
| 809 | 813 |
| 810 if (nrow(filtered_data) > 0 & sum(spectra(filtered_data)) > 0){ | 814 if (nrow(filtered_data) > 0 & sum(as.matrix(spectra(filtered_data))) > 0){ |
| 811 maxmassrow = featureApply(filtered_data, mean) ## for each m/z average intensity is calculated | 815 maxmassrow = featureApply(filtered_data, mean) ## for each m/z average intensity is calculated |
| 812 maxvalue = mz(filtered_data)[which.max(maxmassrow)] ### m/z with highest average intensity in m/z range | 816 maxvalue = mz(filtered_data)[which.max(maxmassrow)] ### m/z with highest average intensity in m/z range |
| 813 mzdifference = maxvalue - inputcalibrantmasses[mass] ### difference: theoretical value - closest m/z value | 817 mzdifference = maxvalue - inputcalibrantmasses[mass] ### difference: theoretical value - closest m/z value |
| 814 ppmdifference = mzdifference/inputcalibrantmasses[mass]*1000000 ### calculate ppm for accuracy measurement | 818 ppmdifference = mzdifference/inputcalibrantmasses[mass]*1000000 ### calculate ppm for accuracy measurement |
| 815 }else{ | 819 }else{ |
| 832 abline(v=c(inputcalibrantmasses[mass] -plusminusvalues[count], inputcalibrantmasses[mass] ,inputcalibrantmasses[mass] +plusminusvalues[count]), col="blue", lty=c(3,5,3)) | 836 abline(v=c(inputcalibrantmasses[mass] -plusminusvalues[count], inputcalibrantmasses[mass] ,inputcalibrantmasses[mass] +plusminusvalues[count]), col="blue", lty=c(3,5,3)) |
| 833 abline(v=c(maxvalue), col="red", lty=2) | 837 abline(v=c(maxvalue), col="red", lty=2) |
| 834 abline(v=c(mzvalue), col="green2", lty=4) | 838 abline(v=c(mzvalue), col="green2", lty=4) |
| 835 ## average plot including points per data point | 839 ## average plot including points per data point |
| 836 print(plot(msidata_no_NA[minmasspixel1:maxmasspixel1,], run="infile", layout=FALSE, strip=FALSE, main="Average spectrum with data points", col="black")) | 840 print(plot(msidata_no_NA[minmasspixel1:maxmasspixel1,], run="infile", layout=FALSE, strip=FALSE, main="Average spectrum with data points", col="black")) |
| 837 points(mz(msidata_no_NA[minmasspixel1:maxmasspixel1,]), rowMeans(spectra(msidata_no_NA)[minmasspixel1:maxmasspixel1,,drop=FALSE]), col="blue", pch=20) | 841 points(mz(msidata_no_NA[minmasspixel1:maxmasspixel1,]), rowMeans(as.matrix(spectra(msidata_no_NA))[minmasspixel1:maxmasspixel1,,drop=FALSE]), col="blue", pch=20) |
| 838 ## plot of third average plot | 842 ## plot of third average plot |
| 839 print(plot(msidata_no_NA[minmasspixel2:maxmasspixel2,], run="infile", layout=FALSE, strip=FALSE, main= "Average spectrum", col="black")) | 843 print(plot(msidata_no_NA[minmasspixel2:maxmasspixel2,], run="infile", layout=FALSE, strip=FALSE, main= "Average spectrum", col="black")) |
| 840 abline(v=c(inputcalibrantmasses[mass] -plusminusvalues[count], inputcalibrantmasses[mass] ,inputcalibrantmasses[mass] +plusminusvalues[count]), col="blue", lty=c(3,5,3)) | 844 abline(v=c(inputcalibrantmasses[mass] -plusminusvalues[count], inputcalibrantmasses[mass] ,inputcalibrantmasses[mass] +plusminusvalues[count]), col="blue", lty=c(3,5,3)) |
| 841 abline(v=c(maxvalue), col="red", lty=2) | 845 abline(v=c(maxvalue), col="red", lty=2) |
| 842 abline(v=c(mzvalue), col="green2", lty=4) | 846 abline(v=c(mzvalue), col="green2", lty=4) |
| 910 print(diff_plot2) | 914 print(diff_plot2) |
| 911 | 915 |
| 912 #end if | 916 #end if |
| 913 | 917 |
| 914 #################### 19) ppm difference over pixels ##################### | 918 #################### 19) ppm difference over pixels ##################### |
| 919 print("ppm difference over pixels") | |
| 915 | 920 |
| 916 par(mfrow = c(1,1)) | 921 par(mfrow = c(1,1)) |
| 917 count = 1 | 922 count = 1 |
| 918 ppm_df = as.data.frame(matrix(,ncol=0, nrow = ncol(msidata))) | 923 ppm_df = as.data.frame(matrix(,ncol=0, nrow = ncol(msidata))) |
| 924 | |
| 919 for (calibrant in inputcalibrantmasses){ | 925 for (calibrant in inputcalibrantmasses){ |
| 920 ### find m/z with the highest mean intensity in m/z range, if no m/z in the range, ppm differences for this calibrant will be NA | 926 ### find m/z with the highest mean intensity in m/z range, if no m/z in the range, ppm differences for this calibrant will be NA |
| 921 filtered_data = msidata[mz(msidata) >= calibrant-plusminusvalues[count] & mz(msidata) <= calibrant+plusminusvalues[count],] | 927 filtered_data = msidata[mz(msidata) >= calibrant-plusminusvalues[count] & mz(msidata) <= calibrant+plusminusvalues[count],] |
| 922 | 928 |
| 923 if (nrow(filtered_data) > 0){ | 929 if (nrow(filtered_data) > 0){ |
| 976 theme(text=element_text(family="ArialMT", face="bold", size=12))+ | 982 theme(text=element_text(family="ArialMT", face="bold", size=12))+ |
| 977 scale_fill_gradient2(low = "navy", mid = "grey", high = "red", midpoint = 0 ,space = "Lab", na.value = "black", name = "ppm\nerror"))} | 983 scale_fill_gradient2(low = "navy", mid = "grey", high = "red", midpoint = 0 ,space = "Lab", na.value = "black", name = "ppm\nerror"))} |
| 978 | 984 |
| 979 #end if | 985 #end if |
| 980 | 986 |
| 981 }else{print("plot 16+17+18+19) The inputcalibrant m/z were not provided or outside the m/z range")} | 987 }else{ |
| 988 plot.new() | |
| 989 text(0.5, 0.5, "plot 16+17+18+19) The input calibrant m/z were not provided \n or outside the m/z range", cex = 1.5) | |
| 990 print("plot 16+17+18+19) The input calibrant m/z were not provided or outside the m/z range")} | |
| 982 }else{ | 991 }else{ |
| 983 print("inputfile has no intensities > 0") | 992 plot.new() |
| 993 text(0.5, 0.5, "The input file has no intensities > 0", cex = 1.5) | |
| 994 print("input file has no intensities > 0") | |
| 984 } | 995 } |
| 985 dev.off() | 996 dev.off() |
| 986 | 997 |
| 987 | 998 |
| 988 ]]></configfile> | 999 ]]></configfile> |
| 1000 <when value="no_annotation"/> | 1011 <when value="no_annotation"/> |
| 1001 </conditional> | 1012 </conditional> |
| 1002 <expand macro="pdf_filename"/> | 1013 <expand macro="pdf_filename"/> |
| 1003 <expand macro="reading_2_column_mz_tabular" optional="true"/> | 1014 <expand macro="reading_2_column_mz_tabular" optional="true"/> |
| 1004 <param name="plusminus_ppm" value="200" type="float" label="ppm range" help="Will be added in both directions to input calibrant m/z"/> | 1015 <param name="plusminus_ppm" value="200" type="float" label="ppm range" help="Will be added in both directions to input calibrant m/z"/> |
| 1005 <param name="do_pca" type="boolean" label="PCA with 2 components"/> | 1016 <!--param name="do_pca" type="boolean" label="PCA with 2 components"/--> |
| 1006 <param name="report_depth" type="boolean" label="Generate full QC report" truevalue="TRUE" falsevalue="FALSE" checked="True" help="No: does not generate all plots but only the most informatives"/> | 1017 <param name="report_depth" type="boolean" label="Generate full QC report" truevalue="TRUE" falsevalue="FALSE" checked="True" help="No: does not generate all plots but only the most informatives"/> |
| 1007 <repeat name="calibrantratio" title="Plot fold change of two m/z" min="0" max="10"> | 1018 <repeat name="calibrantratio" title="Plot fold change of two m/z" min="0" max="10"> |
| 1008 <param name="mass1" value="1111" type="float" label="M/z 1" help="First m/z"/> | 1019 <param name="mass1" value="1111" type="float" label="M/z 1" help="First m/z"/> |
| 1009 <param name="mass2" value="2222" type="float" label="M/z 2" help="Second m/z"/> | 1020 <param name="mass2" value="2222" type="float" label="M/z 2" help="Second m/z"/> |
| 1010 <param name="distance" value="200" type="float" label="ppm range" help="Will be added in both directions to input calibrant m/z and intensities will be averaged in this range."/> | 1021 <param name="distance" value="200" type="float" label="ppm range" help="Will be added in both directions to input calibrant m/z and intensities will be averaged in this range."/> |
| 1038 <param name="calibrant_file" value="inputcalibrantfile1.tabular" ftype="tabular"/> | 1049 <param name="calibrant_file" value="inputcalibrantfile1.tabular" ftype="tabular"/> |
| 1039 <param name="mz_column" value="1"/> | 1050 <param name="mz_column" value="1"/> |
| 1040 <param name="name_column" value="1"/> | 1051 <param name="name_column" value="1"/> |
| 1041 <param name="plusminus_ppm" value="100"/> | 1052 <param name="plusminus_ppm" value="100"/> |
| 1042 <param name="filename" value="Testfile_imzml"/> | 1053 <param name="filename" value="Testfile_imzml"/> |
| 1043 <param name="do_pca" value="True"/> | 1054 <!--param name="do_pca" value="True"/--> |
| 1044 <repeat name="calibrantratio"> | 1055 <repeat name="calibrantratio"> |
| 1045 <param name="mass1" value="328.9"/> | 1056 <param name="mass1" value="328.9"/> |
| 1046 <param name="mass2" value="398.8"/> | 1057 <param name="mass2" value="398.8"/> |
| 1047 <param name="distance" value="500"/> | 1058 <param name="distance" value="500"/> |
| 1048 <param name="filenameratioplot" value = "Ratio of mz 328.9 and mz 398.8"/> | 1059 <param name="filenameratioplot" value = "Ratio of mz 328.9 and mz 398.8"/> |
| 1053 <expand macro="infile_analyze75"/> | 1064 <expand macro="infile_analyze75"/> |
| 1054 <conditional name="tabular_annotation"> | 1065 <conditional name="tabular_annotation"> |
| 1055 <param name="load_annotation" value="no_annotation"/> | 1066 <param name="load_annotation" value="no_annotation"/> |
| 1056 </conditional> | 1067 </conditional> |
| 1057 <param name="filename" value="Testfile_analyze75"/> | 1068 <param name="filename" value="Testfile_analyze75"/> |
| 1058 <param name="do_pca" value="True"/> | 1069 <!--param name="do_pca" value="True"/--> |
| 1059 <output name="QC_report" file="QC_analyze75.pdf" compare="sim_size"/> | 1070 <output name="QC_report" file="QC_analyze75.pdf" compare="sim_size"/> |
| 1060 </test> | 1071 </test> |
| 1061 <test> | 1072 <test> |
| 1062 <param name="infile" value="3_files_combined.RData" ftype="rdata"/> | 1073 <param name="infile" value="3_files_combined.RData" ftype="rdata"/> |
| 1063 <conditional name="tabular_annotation"> | 1074 <conditional name="tabular_annotation"> |
| 1071 <param name="calibrant_file" value="inputcalibrantfile1.tabular" ftype="tabular"/> | 1082 <param name="calibrant_file" value="inputcalibrantfile1.tabular" ftype="tabular"/> |
| 1072 <param name="mz_column" value="1"/> | 1083 <param name="mz_column" value="1"/> |
| 1073 <param name="name_column" value="1"/> | 1084 <param name="name_column" value="1"/> |
| 1074 <param name="plusminus_ppm" value="100"/> | 1085 <param name="plusminus_ppm" value="100"/> |
| 1075 <param name="filename" value="Testfile_rdata"/> | 1086 <param name="filename" value="Testfile_rdata"/> |
| 1076 <param name="do_pca" value="True"/> | 1087 <!--param name="do_pca" value="True"/--> |
| 1077 <output name="QC_report" file="QC_rdata.pdf" compare="sim_size"/> | 1088 <output name="QC_report" ftype="pdf"> |
| 1089 <assert_contents> | |
| 1090 <has_size value="1276311" delta="100"/> | |
| 1091 </assert_contents> | |
| 1092 </output> | |
| 1078 </test> | 1093 </test> |
| 1079 <test> | 1094 <test> |
| 1080 <param name="infile" value="empty_spectra.rdata" ftype="rdata"/> | 1095 <param name="infile" value="empty_spectra.rdata" ftype="rdata"/> |
| 1081 <conditional name="tabular_annotation"> | 1096 <conditional name="tabular_annotation"> |
| 1082 <param name="load_annotation" value="no_annotation"/> | 1097 <param name="load_annotation" value="no_annotation"/> |
| 1083 </conditional> | 1098 </conditional> |
| 1084 <param name="calibrant_file" value="inputcalibrantfile2.txt"/> | 1099 <param name="calibrant_file" value="inputcalibrantfile2.txt"/> |
| 1085 <param name="mz_column" value="1"/> | 1100 <param name="mz_column" value="1"/> |
| 1086 <param name="name_column" value="2"/> | 1101 <param name="name_column" value="2"/> |
| 1087 <param name="filename" value="Testfile_rdata"/> | 1102 <param name="filename" value="Testfile_rdata"/> |
| 1088 <param name="do_pca" value="False"/> | 1103 <!--param name="do_pca" value="False"/--> |
| 1089 <output name="QC_report" file="QC_empty_spectra.pdf" compare="sim_size"/> | 1104 <output name="QC_report" file="QC_empty_spectra.pdf" compare="sim_size"/> |
| 1090 </test> | 1105 </test> |
| 1091 <test> | 1106 <test> |
| 1092 <param name="infile" value="" ftype="imzml"> | 1107 <param name="infile" value="" ftype="imzml"> |
| 1093 <composite_data value="Example_Processed.imzML"/> | 1108 <composite_data value="Example_Processed.imzML"/> |
