Mercurial > repos > lecorguille > xcms_retcor
comparison lib.r @ 34:9714270678a7 draft
planemo upload for repository https://github.com/workflow4metabolomics/xcms commit f01148783819c37e474790dbd56619862960448a
author | lecorguille |
---|---|
date | Tue, 03 Apr 2018 11:39:48 -0400 |
parents | 69b5a006fca1 |
children | 2b0a4c7a4a48 |
comparison
equal
deleted
inserted
replaced
33:69b5a006fca1 | 34:9714270678a7 |
---|---|
23 cat(sessioninfo$R.version$version.string,"\n") | 23 cat(sessioninfo$R.version$version.string,"\n") |
24 cat("Main packages:\n") | 24 cat("Main packages:\n") |
25 for (pkg in names(sessioninfo$otherPkgs)) { cat(paste(pkg,packageVersion(pkg)),"\t") }; cat("\n") | 25 for (pkg in names(sessioninfo$otherPkgs)) { cat(paste(pkg,packageVersion(pkg)),"\t") }; cat("\n") |
26 cat("Other loaded packages:\n") | 26 cat("Other loaded packages:\n") |
27 for (pkg in names(sessioninfo$loadedOnly)) { cat(paste(pkg,packageVersion(pkg)),"\t") }; cat("\n") | 27 for (pkg in names(sessioninfo$loadedOnly)) { cat(paste(pkg,packageVersion(pkg)),"\t") }; cat("\n") |
28 } | |
29 | |
30 #@author G. Le Corguille | |
31 # This function merge several xdata into one. | |
32 mergeXData <- function(args) { | |
33 for(image in args$images) { | |
34 load(image) | |
35 # Handle infiles | |
36 if (!exists("singlefile")) singlefile <- NULL | |
37 if (!exists("zipfile")) zipfile <- NULL | |
38 rawFilePath <- getRawfilePathFromArguments(singlefile, zipfile, args) | |
39 zipfile <- rawFilePath$zipfile | |
40 singlefile <- rawFilePath$singlefile | |
41 retrieveRawfileInTheWorkingDirectory(singlefile, zipfile) | |
42 if (exists("raw_data")) xdata <- raw_data | |
43 if (!exists("xdata")) stop("\n\nERROR: The RData doesn't contain any object called 'xdata'. This RData should have been created by an old version of XMCS 2.*") | |
44 cat(sampleNamesList$sampleNamesOrigin,"\n") | |
45 if (!exists("xdata_merged")) { | |
46 xdata_merged <- xdata | |
47 singlefile_merged <- singlefile | |
48 md5sumList_merged <- md5sumList | |
49 sampleNamesList_merged <- sampleNamesList | |
50 } else { | |
51 if (is(xdata, "XCMSnExp")) xdata_merged <- c(xdata_merged,xdata) | |
52 else if (is(xdata, "OnDiskMSnExp")) xdata_merged <- .concatenate_OnDiskMSnExp(xdata_merged,xdata) | |
53 else stop("\n\nERROR: The RData either a OnDiskMSnExp object called raw_data or a XCMSnExp object called xdata") | |
54 singlefile_merged <- c(singlefile_merged,singlefile) | |
55 md5sumList_merged$origin <- rbind(md5sumList_merged$origin,md5sumList$origin) | |
56 sampleNamesList_merged$sampleNamesOrigin <- c(sampleNamesList_merged$sampleNamesOrigin,sampleNamesList$sampleNamesOrigin) | |
57 sampleNamesList_merged$sampleNamesMakeNames <- c(sampleNamesList_merged$sampleNamesMakeNames,sampleNamesList$sampleNamesMakeNames) | |
58 } | |
59 } | |
60 rm(image) | |
61 xdata <- xdata_merged; rm(xdata_merged) | |
62 singlefile <- singlefile_merged; rm(singlefile_merged) | |
63 md5sumList <- md5sumList_merged; rm(md5sumList_merged) | |
64 sampleNamesList <- sampleNamesList_merged; rm(sampleNamesList_merged) | |
65 | |
66 if (!is.null(args$sampleMetadata)) { | |
67 cat("\tXSET PHENODATA SETTING...\n") | |
68 sampleMetadataFile <- args$sampleMetadata | |
69 sampleMetadata <- getDataFrameFromFile(sampleMetadataFile, header=F) | |
70 xdata@phenoData@data$sample_group=sampleMetadata$V2[match(xdata@phenoData@data$sample_name,sampleMetadata$V1)] | |
71 | |
72 if (any(is.na(pData(xdata)$sample_group))) { | |
73 sample_missing <- pData(xdata)$sample_name[is.na(pData(xdata)$sample_group)] | |
74 error_message <- paste("Those samples are missing in your sampleMetadata:", paste(sample_missing, collapse=" ")) | |
75 print(error_message) | |
76 stop(error_message) | |
77 } | |
78 } | |
79 return(list("xdata"=xdata, "singlefile"=singlefile, "md5sumList"=md5sumList,"sampleNamesList"=sampleNamesList)) | |
28 } | 80 } |
29 | 81 |
30 #@author G. Le Corguille | 82 #@author G. Le Corguille |
31 # This function convert if it is required the Retention Time in minutes | 83 # This function convert if it is required the Retention Time in minutes |
32 RTSecondToMinute <- function(variableMetadata, convertRTMinute) { | 84 RTSecondToMinute <- function(variableMetadata, convertRTMinute) { |
77 | 129 |
78 pdf(file="raw_vs_adjusted_rt.pdf", width=16, height=12) | 130 pdf(file="raw_vs_adjusted_rt.pdf", width=16, height=12) |
79 | 131 |
80 # Color by group | 132 # Color by group |
81 group_colors <- brewer.pal(3, "Set1")[1:length(unique(xdata$sample_group))] | 133 group_colors <- brewer.pal(3, "Set1")[1:length(unique(xdata$sample_group))] |
82 names(group_colors) <- unique(xdata$sample_group) | 134 if (length(group_colors) > 1) { |
83 plotAdjustedRtime(xdata, col = group_colors[xdata$sample_group]) | 135 names(group_colors) <- unique(xdata$sample_group) |
84 legend("topright", legend=names(group_colors), col=group_colors, cex=0.8, lty=1) | 136 plotAdjustedRtime(xdata, col = group_colors[xdata$sample_group]) |
137 legend("topright", legend=names(group_colors), col=group_colors, cex=0.8, lty=1) | |
138 } | |
85 | 139 |
86 # Color by sample | 140 # Color by sample |
87 plotAdjustedRtime(xdata, col = rainbow(length(xdata@phenoData@data$sample_name))) | 141 plotAdjustedRtime(xdata, col = rainbow(length(xdata@phenoData@data$sample_name))) |
88 legend("topright", legend=xdata@phenoData@data$sample_name, col=rainbow(length(xdata@phenoData@data$sample_name)), cex=0.8, lty=1) | 142 legend("topright", legend=xdata@phenoData@data$sample_name, col=rainbow(length(xdata@phenoData@data$sample_name)), cex=0.8, lty=1) |
89 | 143 |
107 write.table(dataMatrix, file=dataMatrixOutput,sep="\t",quote=F,row.names=F) | 161 write.table(dataMatrix, file=dataMatrixOutput,sep="\t",quote=F,row.names=F) |
108 | 162 |
109 } | 163 } |
110 | 164 |
111 #@author G. Le Corguille | 165 #@author G. Le Corguille |
166 # It allow different of field separators | |
167 getDataFrameFromFile <- function(filename, header=T) { | |
168 myDataFrame <- read.table(filename, header=header, sep=";", stringsAsFactors=F) | |
169 if (ncol(myDataFrame) < 2) myDataFrame <- read.table(filename, header=header, sep="\t", stringsAsFactors=F) | |
170 if (ncol(myDataFrame) < 2) myDataFrame <- read.table(filename, header=header, sep=",", stringsAsFactors=F) | |
171 if (ncol(myDataFrame) < 2) { | |
172 error_message="Your tabular file seems not well formatted. The column separators accepted are ; , and tabulation" | |
173 print(error_message) | |
174 stop(error_message) | |
175 } | |
176 return(myDataFrame) | |
177 } | |
178 | |
112 getPlotChromatogram <- function(xdata, pdfname="Chromatogram.pdf", aggregationFun = "max") { | 179 getPlotChromatogram <- function(xdata, pdfname="Chromatogram.pdf", aggregationFun = "max") { |
113 | 180 |
114 chrom <- chromatogram(xdata, aggregationFun = aggregationFun) | 181 chrom <- chromatogram(xdata, aggregationFun = aggregationFun) |
115 if (aggregationFun == "sum") | 182 if (aggregationFun == "sum") |
116 type="Total Ion Chromatograms" | 183 type="Total Ion Chromatograms" |
125 | 192 |
126 pdf(pdfname, width=16, height=10) | 193 pdf(pdfname, width=16, height=10) |
127 | 194 |
128 # Color by group | 195 # Color by group |
129 group_colors <- brewer.pal(3, "Set1")[1:length(unique(xdata$sample_group))] | 196 group_colors <- brewer.pal(3, "Set1")[1:length(unique(xdata$sample_group))] |
130 names(group_colors) <- unique(xdata$sample_group) | 197 if (length(group_colors) > 1) { |
131 plot(chrom, col = group_colors[chrom$sample_group], main=main) | 198 names(group_colors) <- unique(xdata$sample_group) |
132 legend("topright", legend=names(group_colors), col=group_colors, cex=0.8, lty=1) | 199 plot(chrom, col = group_colors[chrom$sample_group], main=main) |
200 legend("topright", legend=names(group_colors), col=group_colors, cex=0.8, lty=1) | |
201 } | |
133 | 202 |
134 # Color by sample | 203 # Color by sample |
135 plot(chrom, col = rainbow(length(xdata@phenoData@data$sample_name)), main=main) | 204 plot(chrom, col = rainbow(length(xdata@phenoData@data$sample_name)), main=main) |
136 legend("topright", legend=xdata@phenoData@data$sample_name, col=rainbow(length(xdata@phenoData@data$sample_name)), cex=0.8, lty=1) | 205 legend("topright", legend=xdata@phenoData@data$sample_name, col=rainbow(length(xdata@phenoData@data$sample_name)), cex=0.8, lty=1) |
137 | 206 |
343 singlefile_galaxyPath <- singlefile_galaxyPaths[singlefile_galaxyPath_i] | 412 singlefile_galaxyPath <- singlefile_galaxyPaths[singlefile_galaxyPath_i] |
344 singlefile_sampleName <- singlefile_sampleNames[singlefile_galaxyPath_i] | 413 singlefile_sampleName <- singlefile_sampleNames[singlefile_galaxyPath_i] |
345 singlefile[[singlefile_sampleName]] <- singlefile_galaxyPath | 414 singlefile[[singlefile_sampleName]] <- singlefile_galaxyPath |
346 } | 415 } |
347 } | 416 } |
348 for (argument in c("zipfile","zipfilePositive","zipfileNegative","singlefile_galaxyPath","singlefile_sampleName","singlefile_galaxyPathPositive","singlefile_sampleNamePositive","singlefile_galaxyPathNegative","singlefile_sampleNameNegative")) { | 417 return(list(zipfile=zipfile, singlefile=singlefile)) |
349 args[[argument]] <- NULL | |
350 } | |
351 return(list(zipfile=zipfile, singlefile=singlefile, args=args)) | |
352 } | 418 } |
353 | 419 |
354 | 420 |
355 # This function retrieve the raw file in the working directory | 421 # This function retrieve the raw file in the working directory |
356 # - if zipfile: unzip the file with its directory tree | 422 # - if zipfile: unzip the file with its directory tree |
557 #@TODO: remove this function as soon as we can use xcms 3.x.x from Bioconductor 3.7 | 623 #@TODO: remove this function as soon as we can use xcms 3.x.x from Bioconductor 3.7 |
558 # https://github.com/sneumann/xcms/issues/247 | 624 # https://github.com/sneumann/xcms/issues/247 |
559 c.XCMSnExp <- function(...) { | 625 c.XCMSnExp <- function(...) { |
560 .concatenate_XCMSnExp(...) | 626 .concatenate_XCMSnExp(...) |
561 } | 627 } |
628 | |
629 #@TODO: remove this function as soon as we can use xcms 3.x.x from Bioconductor 3.7 | |
630 # https://github.com/sneumann/xcms/issues/247 | |
631 c.MSnbase <- function(...) { | |
632 .concatenate_OnDiskMSnExp(...) | |
633 } |