annotate lib.r @ 31:8fd5b5afa24d draft

planemo upload for repository https://github.com/workflow4metabolomics/xcms commit e384d6dd5f410799ec211f73bca0b5d5d7bc651e
author lecorguille
date Thu, 01 Mar 2018 04:17:29 -0500
parents 6b5ed508f81f
children 565693681374
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
31
8fd5b5afa24d planemo upload for repository https://github.com/workflow4metabolomics/xcms commit e384d6dd5f410799ec211f73bca0b5d5d7bc651e
lecorguille
parents: 30
diff changeset
1 #@authors ABiMS TEAM, Y. Guitton
8fd5b5afa24d planemo upload for repository https://github.com/workflow4metabolomics/xcms commit e384d6dd5f410799ec211f73bca0b5d5d7bc651e
lecorguille
parents: 30
diff changeset
2 # lib.r for Galaxy Workflow4Metabolomics xcms tools
6
f00e39a4b0fb planemo upload commit a3229faad6949bbca965d1d7e138cb3c0550780e
lecorguille
parents:
diff changeset
3
31
8fd5b5afa24d planemo upload for repository https://github.com/workflow4metabolomics/xcms commit e384d6dd5f410799ec211f73bca0b5d5d7bc651e
lecorguille
parents: 30
diff changeset
4 #@author G. Le Corguille
8fd5b5afa24d planemo upload for repository https://github.com/workflow4metabolomics/xcms commit e384d6dd5f410799ec211f73bca0b5d5d7bc651e
lecorguille
parents: 30
diff changeset
5 # solve an issue with batch if arguments are logical TRUE/FALSE
8fd5b5afa24d planemo upload for repository https://github.com/workflow4metabolomics/xcms commit e384d6dd5f410799ec211f73bca0b5d5d7bc651e
lecorguille
parents: 30
diff changeset
6 parseCommandArgs <- function(...) {
8fd5b5afa24d planemo upload for repository https://github.com/workflow4metabolomics/xcms commit e384d6dd5f410799ec211f73bca0b5d5d7bc651e
lecorguille
parents: 30
diff changeset
7 args <- batch::parseCommandArgs(...)
8fd5b5afa24d planemo upload for repository https://github.com/workflow4metabolomics/xcms commit e384d6dd5f410799ec211f73bca0b5d5d7bc651e
lecorguille
parents: 30
diff changeset
8 for (key in names(args)) {
8fd5b5afa24d planemo upload for repository https://github.com/workflow4metabolomics/xcms commit e384d6dd5f410799ec211f73bca0b5d5d7bc651e
lecorguille
parents: 30
diff changeset
9 if (args[key] %in% c("TRUE","FALSE"))
8fd5b5afa24d planemo upload for repository https://github.com/workflow4metabolomics/xcms commit e384d6dd5f410799ec211f73bca0b5d5d7bc651e
lecorguille
parents: 30
diff changeset
10 args[key] = as.logical(args[key])
8fd5b5afa24d planemo upload for repository https://github.com/workflow4metabolomics/xcms commit e384d6dd5f410799ec211f73bca0b5d5d7bc651e
lecorguille
parents: 30
diff changeset
11 }
8fd5b5afa24d planemo upload for repository https://github.com/workflow4metabolomics/xcms commit e384d6dd5f410799ec211f73bca0b5d5d7bc651e
lecorguille
parents: 30
diff changeset
12 return(args)
8fd5b5afa24d planemo upload for repository https://github.com/workflow4metabolomics/xcms commit e384d6dd5f410799ec211f73bca0b5d5d7bc651e
lecorguille
parents: 30
diff changeset
13 }
6
f00e39a4b0fb planemo upload commit a3229faad6949bbca965d1d7e138cb3c0550780e
lecorguille
parents:
diff changeset
14
15
1c78d61fd646 planemo upload for repository https://github.com/workflow4metabolomics/xcms commit 08e7f269a5c59687a7768be8db5fcb4e4d736093
lecorguille
parents: 14
diff changeset
15 #@author G. Le Corguille
31
8fd5b5afa24d planemo upload for repository https://github.com/workflow4metabolomics/xcms commit e384d6dd5f410799ec211f73bca0b5d5d7bc651e
lecorguille
parents: 30
diff changeset
16 # This function will
8fd5b5afa24d planemo upload for repository https://github.com/workflow4metabolomics/xcms commit e384d6dd5f410799ec211f73bca0b5d5d7bc651e
lecorguille
parents: 30
diff changeset
17 # - load the packages
8fd5b5afa24d planemo upload for repository https://github.com/workflow4metabolomics/xcms commit e384d6dd5f410799ec211f73bca0b5d5d7bc651e
lecorguille
parents: 30
diff changeset
18 # - display the sessionInfo
8fd5b5afa24d planemo upload for repository https://github.com/workflow4metabolomics/xcms commit e384d6dd5f410799ec211f73bca0b5d5d7bc651e
lecorguille
parents: 30
diff changeset
19 loadAndDisplayPackages <- function(pkgs) {
8fd5b5afa24d planemo upload for repository https://github.com/workflow4metabolomics/xcms commit e384d6dd5f410799ec211f73bca0b5d5d7bc651e
lecorguille
parents: 30
diff changeset
20 for(pkg in pkgs) suppressPackageStartupMessages( stopifnot( library(pkg, quietly=TRUE, logical.return=TRUE, character.only=TRUE)))
8fd5b5afa24d planemo upload for repository https://github.com/workflow4metabolomics/xcms commit e384d6dd5f410799ec211f73bca0b5d5d7bc651e
lecorguille
parents: 30
diff changeset
21
8fd5b5afa24d planemo upload for repository https://github.com/workflow4metabolomics/xcms commit e384d6dd5f410799ec211f73bca0b5d5d7bc651e
lecorguille
parents: 30
diff changeset
22 sessioninfo = sessionInfo()
8fd5b5afa24d planemo upload for repository https://github.com/workflow4metabolomics/xcms commit e384d6dd5f410799ec211f73bca0b5d5d7bc651e
lecorguille
parents: 30
diff changeset
23 cat(sessioninfo$R.version$version.string,"\n")
8fd5b5afa24d planemo upload for repository https://github.com/workflow4metabolomics/xcms commit e384d6dd5f410799ec211f73bca0b5d5d7bc651e
lecorguille
parents: 30
diff changeset
24 cat("Main packages:\n")
8fd5b5afa24d planemo upload for repository https://github.com/workflow4metabolomics/xcms commit e384d6dd5f410799ec211f73bca0b5d5d7bc651e
lecorguille
parents: 30
diff changeset
25 for (pkg in names(sessioninfo$otherPkgs)) { cat(paste(pkg,packageVersion(pkg)),"\t") }; cat("\n")
8fd5b5afa24d planemo upload for repository https://github.com/workflow4metabolomics/xcms commit e384d6dd5f410799ec211f73bca0b5d5d7bc651e
lecorguille
parents: 30
diff changeset
26 cat("Other loaded packages:\n")
8fd5b5afa24d planemo upload for repository https://github.com/workflow4metabolomics/xcms commit e384d6dd5f410799ec211f73bca0b5d5d7bc651e
lecorguille
parents: 30
diff changeset
27 for (pkg in names(sessioninfo$loadedOnly)) { cat(paste(pkg,packageVersion(pkg)),"\t") }; cat("\n")
8fd5b5afa24d planemo upload for repository https://github.com/workflow4metabolomics/xcms commit e384d6dd5f410799ec211f73bca0b5d5d7bc651e
lecorguille
parents: 30
diff changeset
28 }
8fd5b5afa24d planemo upload for repository https://github.com/workflow4metabolomics/xcms commit e384d6dd5f410799ec211f73bca0b5d5d7bc651e
lecorguille
parents: 30
diff changeset
29
8fd5b5afa24d planemo upload for repository https://github.com/workflow4metabolomics/xcms commit e384d6dd5f410799ec211f73bca0b5d5d7bc651e
lecorguille
parents: 30
diff changeset
30 #@author G. Le Corguille
8fd5b5afa24d planemo upload for repository https://github.com/workflow4metabolomics/xcms commit e384d6dd5f410799ec211f73bca0b5d5d7bc651e
lecorguille
parents: 30
diff changeset
31 # This function convert if it is required the Retention Time in minutes
15
1c78d61fd646 planemo upload for repository https://github.com/workflow4metabolomics/xcms commit 08e7f269a5c59687a7768be8db5fcb4e4d736093
lecorguille
parents: 14
diff changeset
32 RTSecondToMinute <- function(variableMetadata, convertRTMinute) {
1c78d61fd646 planemo upload for repository https://github.com/workflow4metabolomics/xcms commit 08e7f269a5c59687a7768be8db5fcb4e4d736093
lecorguille
parents: 14
diff changeset
33 if (convertRTMinute){
1c78d61fd646 planemo upload for repository https://github.com/workflow4metabolomics/xcms commit 08e7f269a5c59687a7768be8db5fcb4e4d736093
lecorguille
parents: 14
diff changeset
34 #converting the retention times (seconds) into minutes
1c78d61fd646 planemo upload for repository https://github.com/workflow4metabolomics/xcms commit 08e7f269a5c59687a7768be8db5fcb4e4d736093
lecorguille
parents: 14
diff changeset
35 print("converting the retention times into minutes in the variableMetadata")
31
8fd5b5afa24d planemo upload for repository https://github.com/workflow4metabolomics/xcms commit e384d6dd5f410799ec211f73bca0b5d5d7bc651e
lecorguille
parents: 30
diff changeset
36 variableMetadata[,"rt"] <- variableMetadata[,"rt"]/60
8fd5b5afa24d planemo upload for repository https://github.com/workflow4metabolomics/xcms commit e384d6dd5f410799ec211f73bca0b5d5d7bc651e
lecorguille
parents: 30
diff changeset
37 variableMetadata[,"rtmin"] <- variableMetadata[,"rtmin"]/60
8fd5b5afa24d planemo upload for repository https://github.com/workflow4metabolomics/xcms commit e384d6dd5f410799ec211f73bca0b5d5d7bc651e
lecorguille
parents: 30
diff changeset
38 variableMetadata[,"rtmax"] <- variableMetadata[,"rtmax"]/60
15
1c78d61fd646 planemo upload for repository https://github.com/workflow4metabolomics/xcms commit 08e7f269a5c59687a7768be8db5fcb4e4d736093
lecorguille
parents: 14
diff changeset
39 }
1c78d61fd646 planemo upload for repository https://github.com/workflow4metabolomics/xcms commit 08e7f269a5c59687a7768be8db5fcb4e4d736093
lecorguille
parents: 14
diff changeset
40 return (variableMetadata)
1c78d61fd646 planemo upload for repository https://github.com/workflow4metabolomics/xcms commit 08e7f269a5c59687a7768be8db5fcb4e4d736093
lecorguille
parents: 14
diff changeset
41 }
6
f00e39a4b0fb planemo upload commit a3229faad6949bbca965d1d7e138cb3c0550780e
lecorguille
parents:
diff changeset
42
15
1c78d61fd646 planemo upload for repository https://github.com/workflow4metabolomics/xcms commit 08e7f269a5c59687a7768be8db5fcb4e4d736093
lecorguille
parents: 14
diff changeset
43 #@author G. Le Corguille
31
8fd5b5afa24d planemo upload for repository https://github.com/workflow4metabolomics/xcms commit e384d6dd5f410799ec211f73bca0b5d5d7bc651e
lecorguille
parents: 30
diff changeset
44 # This function format ions identifiers
20
02bb34af0921 planemo upload for repository https://github.com/workflow4metabolomics/xcms commit 481448087f0e09c131b24f7d552db69f3552d371-dirty
lecorguille
parents: 19
diff changeset
45 formatIonIdentifiers <- function(variableMetadata, numDigitsRT=0, numDigitsMZ=0) {
31
8fd5b5afa24d planemo upload for repository https://github.com/workflow4metabolomics/xcms commit e384d6dd5f410799ec211f73bca0b5d5d7bc651e
lecorguille
parents: 30
diff changeset
46 splitDeco <- strsplit(as.character(variableMetadata$name),"_")
8fd5b5afa24d planemo upload for repository https://github.com/workflow4metabolomics/xcms commit e384d6dd5f410799ec211f73bca0b5d5d7bc651e
lecorguille
parents: 30
diff changeset
47 idsDeco <- sapply(splitDeco, function(x) { deco=unlist(x)[2]; if (is.na(deco)) return ("") else return(paste0("_",deco)) })
8fd5b5afa24d planemo upload for repository https://github.com/workflow4metabolomics/xcms commit e384d6dd5f410799ec211f73bca0b5d5d7bc651e
lecorguille
parents: 30
diff changeset
48 namecustom <- make.unique(paste0("M",round(variableMetadata[,"mz"],numDigitsMZ),"T",round(variableMetadata[,"rt"],numDigitsRT),idsDeco))
8fd5b5afa24d planemo upload for repository https://github.com/workflow4metabolomics/xcms commit e384d6dd5f410799ec211f73bca0b5d5d7bc651e
lecorguille
parents: 30
diff changeset
49 variableMetadata <- cbind(name=variableMetadata$name, namecustom=namecustom, variableMetadata[,!(colnames(variableMetadata) %in% c("name"))])
20
02bb34af0921 planemo upload for repository https://github.com/workflow4metabolomics/xcms commit 481448087f0e09c131b24f7d552db69f3552d371-dirty
lecorguille
parents: 19
diff changeset
50 return(variableMetadata)
15
1c78d61fd646 planemo upload for repository https://github.com/workflow4metabolomics/xcms commit 08e7f269a5c59687a7768be8db5fcb4e4d736093
lecorguille
parents: 14
diff changeset
51 }
1c78d61fd646 planemo upload for repository https://github.com/workflow4metabolomics/xcms commit 08e7f269a5c59687a7768be8db5fcb4e4d736093
lecorguille
parents: 14
diff changeset
52
1c78d61fd646 planemo upload for repository https://github.com/workflow4metabolomics/xcms commit 08e7f269a5c59687a7768be8db5fcb4e4d736093
lecorguille
parents: 14
diff changeset
53 #@author G. Le Corguille
31
8fd5b5afa24d planemo upload for repository https://github.com/workflow4metabolomics/xcms commit e384d6dd5f410799ec211f73bca0b5d5d7bc651e
lecorguille
parents: 30
diff changeset
54 # Draw the plotChromPeakDensity 3 per page in a pdf file
8fd5b5afa24d planemo upload for repository https://github.com/workflow4metabolomics/xcms commit e384d6dd5f410799ec211f73bca0b5d5d7bc651e
lecorguille
parents: 30
diff changeset
55 getPlotChromPeakDensity <- function(xdata) {
8fd5b5afa24d planemo upload for repository https://github.com/workflow4metabolomics/xcms commit e384d6dd5f410799ec211f73bca0b5d5d7bc651e
lecorguille
parents: 30
diff changeset
56 pdf(file="plotChromPeakDensity.pdf", width=16, height=12)
8fd5b5afa24d planemo upload for repository https://github.com/workflow4metabolomics/xcms commit e384d6dd5f410799ec211f73bca0b5d5d7bc651e
lecorguille
parents: 30
diff changeset
57
8fd5b5afa24d planemo upload for repository https://github.com/workflow4metabolomics/xcms commit e384d6dd5f410799ec211f73bca0b5d5d7bc651e
lecorguille
parents: 30
diff changeset
58 par(mfrow = c(3, 1), mar = c(4, 4, 1, 0.5))
8fd5b5afa24d planemo upload for repository https://github.com/workflow4metabolomics/xcms commit e384d6dd5f410799ec211f73bca0b5d5d7bc651e
lecorguille
parents: 30
diff changeset
59
8fd5b5afa24d planemo upload for repository https://github.com/workflow4metabolomics/xcms commit e384d6dd5f410799ec211f73bca0b5d5d7bc651e
lecorguille
parents: 30
diff changeset
60 group_colors <- brewer.pal(3, "Set1")[1:length(unique(xdata$sample_group))]
8fd5b5afa24d planemo upload for repository https://github.com/workflow4metabolomics/xcms commit e384d6dd5f410799ec211f73bca0b5d5d7bc651e
lecorguille
parents: 30
diff changeset
61 names(group_colors) <- unique(xdata$sample_group)
8fd5b5afa24d planemo upload for repository https://github.com/workflow4metabolomics/xcms commit e384d6dd5f410799ec211f73bca0b5d5d7bc651e
lecorguille
parents: 30
diff changeset
62
8fd5b5afa24d planemo upload for repository https://github.com/workflow4metabolomics/xcms commit e384d6dd5f410799ec211f73bca0b5d5d7bc651e
lecorguille
parents: 30
diff changeset
63 xlim <- c(min(featureDefinitions(xdata)$rtmin), max(featureDefinitions(xdata)$rtmax))
8fd5b5afa24d planemo upload for repository https://github.com/workflow4metabolomics/xcms commit e384d6dd5f410799ec211f73bca0b5d5d7bc651e
lecorguille
parents: 30
diff changeset
64 for (i in 1:nrow(featureDefinitions(xdata))) {
8fd5b5afa24d planemo upload for repository https://github.com/workflow4metabolomics/xcms commit e384d6dd5f410799ec211f73bca0b5d5d7bc651e
lecorguille
parents: 30
diff changeset
65 plotChromPeakDensity(xdata, mz=c(featureDefinitions(xdata)[i,]$mzmin,featureDefinitions(xdata)[i,]$mzmax), col=group_colors, pch=16, xlim=xlim)
8fd5b5afa24d planemo upload for repository https://github.com/workflow4metabolomics/xcms commit e384d6dd5f410799ec211f73bca0b5d5d7bc651e
lecorguille
parents: 30
diff changeset
66 legend("topright", legend=names(group_colors), col=group_colors, cex=0.8, lty=1)
8fd5b5afa24d planemo upload for repository https://github.com/workflow4metabolomics/xcms commit e384d6dd5f410799ec211f73bca0b5d5d7bc651e
lecorguille
parents: 30
diff changeset
67 }
8fd5b5afa24d planemo upload for repository https://github.com/workflow4metabolomics/xcms commit e384d6dd5f410799ec211f73bca0b5d5d7bc651e
lecorguille
parents: 30
diff changeset
68
8fd5b5afa24d planemo upload for repository https://github.com/workflow4metabolomics/xcms commit e384d6dd5f410799ec211f73bca0b5d5d7bc651e
lecorguille
parents: 30
diff changeset
69 dev.off()
8fd5b5afa24d planemo upload for repository https://github.com/workflow4metabolomics/xcms commit e384d6dd5f410799ec211f73bca0b5d5d7bc651e
lecorguille
parents: 30
diff changeset
70 }
8fd5b5afa24d planemo upload for repository https://github.com/workflow4metabolomics/xcms commit e384d6dd5f410799ec211f73bca0b5d5d7bc651e
lecorguille
parents: 30
diff changeset
71
8fd5b5afa24d planemo upload for repository https://github.com/workflow4metabolomics/xcms commit e384d6dd5f410799ec211f73bca0b5d5d7bc651e
lecorguille
parents: 30
diff changeset
72 #@author G. Le Corguille
8fd5b5afa24d planemo upload for repository https://github.com/workflow4metabolomics/xcms commit e384d6dd5f410799ec211f73bca0b5d5d7bc651e
lecorguille
parents: 30
diff changeset
73 # Draw the plotChromPeakDensity 3 per page in a pdf file
8fd5b5afa24d planemo upload for repository https://github.com/workflow4metabolomics/xcms commit e384d6dd5f410799ec211f73bca0b5d5d7bc651e
lecorguille
parents: 30
diff changeset
74 getPlotAdjustedRtime <- function(xdata) {
8fd5b5afa24d planemo upload for repository https://github.com/workflow4metabolomics/xcms commit e384d6dd5f410799ec211f73bca0b5d5d7bc651e
lecorguille
parents: 30
diff changeset
75 pdf(file="raw_vs_adjusted_rt.pdf", width=16, height=12)
8fd5b5afa24d planemo upload for repository https://github.com/workflow4metabolomics/xcms commit e384d6dd5f410799ec211f73bca0b5d5d7bc651e
lecorguille
parents: 30
diff changeset
76 # Color by group
8fd5b5afa24d planemo upload for repository https://github.com/workflow4metabolomics/xcms commit e384d6dd5f410799ec211f73bca0b5d5d7bc651e
lecorguille
parents: 30
diff changeset
77 group_colors <- brewer.pal(3, "Set1")[1:length(unique(xdata$sample_group))]
8fd5b5afa24d planemo upload for repository https://github.com/workflow4metabolomics/xcms commit e384d6dd5f410799ec211f73bca0b5d5d7bc651e
lecorguille
parents: 30
diff changeset
78 names(group_colors) <- unique(xdata$sample_group)
8fd5b5afa24d planemo upload for repository https://github.com/workflow4metabolomics/xcms commit e384d6dd5f410799ec211f73bca0b5d5d7bc651e
lecorguille
parents: 30
diff changeset
79 plotAdjustedRtime(xdata, col = group_colors[xdata$sample_group])
8fd5b5afa24d planemo upload for repository https://github.com/workflow4metabolomics/xcms commit e384d6dd5f410799ec211f73bca0b5d5d7bc651e
lecorguille
parents: 30
diff changeset
80 legend("topright", legend=names(group_colors), col=group_colors, cex=0.8, lty=1)
8fd5b5afa24d planemo upload for repository https://github.com/workflow4metabolomics/xcms commit e384d6dd5f410799ec211f73bca0b5d5d7bc651e
lecorguille
parents: 30
diff changeset
81 # Color by sample
8fd5b5afa24d planemo upload for repository https://github.com/workflow4metabolomics/xcms commit e384d6dd5f410799ec211f73bca0b5d5d7bc651e
lecorguille
parents: 30
diff changeset
82 plotAdjustedRtime(xdata, col = rainbow(length(xdata@phenoData@data$sample_name)))
8fd5b5afa24d planemo upload for repository https://github.com/workflow4metabolomics/xcms commit e384d6dd5f410799ec211f73bca0b5d5d7bc651e
lecorguille
parents: 30
diff changeset
83 legend("topright", legend=xdata@phenoData@data$sample_name, col=rainbow(length(xdata@phenoData@data$sample_name)), cex=0.8, lty=1)
8fd5b5afa24d planemo upload for repository https://github.com/workflow4metabolomics/xcms commit e384d6dd5f410799ec211f73bca0b5d5d7bc651e
lecorguille
parents: 30
diff changeset
84 dev.off()
8fd5b5afa24d planemo upload for repository https://github.com/workflow4metabolomics/xcms commit e384d6dd5f410799ec211f73bca0b5d5d7bc651e
lecorguille
parents: 30
diff changeset
85 }
8fd5b5afa24d planemo upload for repository https://github.com/workflow4metabolomics/xcms commit e384d6dd5f410799ec211f73bca0b5d5d7bc651e
lecorguille
parents: 30
diff changeset
86
8fd5b5afa24d planemo upload for repository https://github.com/workflow4metabolomics/xcms commit e384d6dd5f410799ec211f73bca0b5d5d7bc651e
lecorguille
parents: 30
diff changeset
87 #@author G. Le Corguille
15
1c78d61fd646 planemo upload for repository https://github.com/workflow4metabolomics/xcms commit 08e7f269a5c59687a7768be8db5fcb4e4d736093
lecorguille
parents: 14
diff changeset
88 # value: intensity values to be used into, maxo or intb
31
8fd5b5afa24d planemo upload for repository https://github.com/workflow4metabolomics/xcms commit e384d6dd5f410799ec211f73bca0b5d5d7bc651e
lecorguille
parents: 30
diff changeset
89 getPeaklistW4M <- function(xdata, intval="into", convertRTMinute=F, numDigitsMZ=4, numDigitsRT=0, variableMetadataOutput, dataMatrixOutput) {
8fd5b5afa24d planemo upload for repository https://github.com/workflow4metabolomics/xcms commit e384d6dd5f410799ec211f73bca0b5d5d7bc651e
lecorguille
parents: 30
diff changeset
90 dataMatrix <- featureValues(xdata, method="medret", value=intval)
8fd5b5afa24d planemo upload for repository https://github.com/workflow4metabolomics/xcms commit e384d6dd5f410799ec211f73bca0b5d5d7bc651e
lecorguille
parents: 30
diff changeset
91 colnames(dataMatrix) <- tools::file_path_sans_ext(colnames(dataMatrix))
8fd5b5afa24d planemo upload for repository https://github.com/workflow4metabolomics/xcms commit e384d6dd5f410799ec211f73bca0b5d5d7bc651e
lecorguille
parents: 30
diff changeset
92 dataMatrix = cbind(name=groupnamesW4M(xdata), dataMatrix)
8fd5b5afa24d planemo upload for repository https://github.com/workflow4metabolomics/xcms commit e384d6dd5f410799ec211f73bca0b5d5d7bc651e
lecorguille
parents: 30
diff changeset
93 variableMetadata <- featureDefinitions(xdata)
8fd5b5afa24d planemo upload for repository https://github.com/workflow4metabolomics/xcms commit e384d6dd5f410799ec211f73bca0b5d5d7bc651e
lecorguille
parents: 30
diff changeset
94 colnames(variableMetadata)[1] = "mz"; colnames(variableMetadata)[4] = "rt"
8fd5b5afa24d planemo upload for repository https://github.com/workflow4metabolomics/xcms commit e384d6dd5f410799ec211f73bca0b5d5d7bc651e
lecorguille
parents: 30
diff changeset
95 variableMetadata = data.frame(name=groupnamesW4M(xdata), variableMetadata)
16
5f61570177e2 planemo upload for repository https://github.com/workflow4metabolomics/xcms commit 22c4e92909198328fc7439ff47e4546a273eb907
lecorguille
parents: 15
diff changeset
96
31
8fd5b5afa24d planemo upload for repository https://github.com/workflow4metabolomics/xcms commit e384d6dd5f410799ec211f73bca0b5d5d7bc651e
lecorguille
parents: 30
diff changeset
97 variableMetadata <- RTSecondToMinute(variableMetadata, convertRTMinute)
8fd5b5afa24d planemo upload for repository https://github.com/workflow4metabolomics/xcms commit e384d6dd5f410799ec211f73bca0b5d5d7bc651e
lecorguille
parents: 30
diff changeset
98 variableMetadata <- formatIonIdentifiers(variableMetadata, numDigitsRT=numDigitsRT, numDigitsMZ=numDigitsMZ)
15
1c78d61fd646 planemo upload for repository https://github.com/workflow4metabolomics/xcms commit 08e7f269a5c59687a7768be8db5fcb4e4d736093
lecorguille
parents: 14
diff changeset
99
20
02bb34af0921 planemo upload for repository https://github.com/workflow4metabolomics/xcms commit 481448087f0e09c131b24f7d552db69f3552d371-dirty
lecorguille
parents: 19
diff changeset
100 write.table(variableMetadata, file=variableMetadataOutput,sep="\t",quote=F,row.names=F)
02bb34af0921 planemo upload for repository https://github.com/workflow4metabolomics/xcms commit 481448087f0e09c131b24f7d552db69f3552d371-dirty
lecorguille
parents: 19
diff changeset
101 write.table(dataMatrix, file=dataMatrixOutput,sep="\t",quote=F,row.names=F)
31
8fd5b5afa24d planemo upload for repository https://github.com/workflow4metabolomics/xcms commit e384d6dd5f410799ec211f73bca0b5d5d7bc651e
lecorguille
parents: 30
diff changeset
102
15
1c78d61fd646 planemo upload for repository https://github.com/workflow4metabolomics/xcms commit 08e7f269a5c59687a7768be8db5fcb4e4d736093
lecorguille
parents: 14
diff changeset
103 }
6
f00e39a4b0fb planemo upload commit a3229faad6949bbca965d1d7e138cb3c0550780e
lecorguille
parents:
diff changeset
104
f00e39a4b0fb planemo upload commit a3229faad6949bbca965d1d7e138cb3c0550780e
lecorguille
parents:
diff changeset
105 #@author Y. Guitton
f00e39a4b0fb planemo upload commit a3229faad6949bbca965d1d7e138cb3c0550780e
lecorguille
parents:
diff changeset
106 getBPC <- function(file,rtcor=NULL, ...) {
16
5f61570177e2 planemo upload for repository https://github.com/workflow4metabolomics/xcms commit 22c4e92909198328fc7439ff47e4546a273eb907
lecorguille
parents: 15
diff changeset
107 object <- xcmsRaw(file)
5f61570177e2 planemo upload for repository https://github.com/workflow4metabolomics/xcms commit 22c4e92909198328fc7439ff47e4546a273eb907
lecorguille
parents: 15
diff changeset
108 sel <- profRange(object, ...)
5f61570177e2 planemo upload for repository https://github.com/workflow4metabolomics/xcms commit 22c4e92909198328fc7439ff47e4546a273eb907
lecorguille
parents: 15
diff changeset
109 cbind(if (is.null(rtcor)) object@scantime[sel$scanidx] else rtcor ,xcms:::colMax(object@env$profile[sel$massidx,sel$scanidx,drop=FALSE]))
5f61570177e2 planemo upload for repository https://github.com/workflow4metabolomics/xcms commit 22c4e92909198328fc7439ff47e4546a273eb907
lecorguille
parents: 15
diff changeset
110 #plotChrom(xcmsRaw(file), base=T)
6
f00e39a4b0fb planemo upload commit a3229faad6949bbca965d1d7e138cb3c0550780e
lecorguille
parents:
diff changeset
111 }
f00e39a4b0fb planemo upload commit a3229faad6949bbca965d1d7e138cb3c0550780e
lecorguille
parents:
diff changeset
112
f00e39a4b0fb planemo upload commit a3229faad6949bbca965d1d7e138cb3c0550780e
lecorguille
parents:
diff changeset
113 #@author Y. Guitton
f00e39a4b0fb planemo upload commit a3229faad6949bbca965d1d7e138cb3c0550780e
lecorguille
parents:
diff changeset
114 getBPCs <- function (xcmsSet=NULL, pdfname="BPCs.pdf",rt=c("raw","corrected"), scanrange=NULL) {
16
5f61570177e2 planemo upload for repository https://github.com/workflow4metabolomics/xcms commit 22c4e92909198328fc7439ff47e4546a273eb907
lecorguille
parents: 15
diff changeset
115 cat("Creating BIC pdf...\n")
6
f00e39a4b0fb planemo upload commit a3229faad6949bbca965d1d7e138cb3c0550780e
lecorguille
parents:
diff changeset
116
16
5f61570177e2 planemo upload for repository https://github.com/workflow4metabolomics/xcms commit 22c4e92909198328fc7439ff47e4546a273eb907
lecorguille
parents: 15
diff changeset
117 if (is.null(xcmsSet)) {
5f61570177e2 planemo upload for repository https://github.com/workflow4metabolomics/xcms commit 22c4e92909198328fc7439ff47e4546a273eb907
lecorguille
parents: 15
diff changeset
118 cat("Enter an xcmsSet \n")
5f61570177e2 planemo upload for repository https://github.com/workflow4metabolomics/xcms commit 22c4e92909198328fc7439ff47e4546a273eb907
lecorguille
parents: 15
diff changeset
119 stop()
5f61570177e2 planemo upload for repository https://github.com/workflow4metabolomics/xcms commit 22c4e92909198328fc7439ff47e4546a273eb907
lecorguille
parents: 15
diff changeset
120 } else {
5f61570177e2 planemo upload for repository https://github.com/workflow4metabolomics/xcms commit 22c4e92909198328fc7439ff47e4546a273eb907
lecorguille
parents: 15
diff changeset
121 files <- filepaths(xcmsSet)
5f61570177e2 planemo upload for repository https://github.com/workflow4metabolomics/xcms commit 22c4e92909198328fc7439ff47e4546a273eb907
lecorguille
parents: 15
diff changeset
122 }
6
f00e39a4b0fb planemo upload commit a3229faad6949bbca965d1d7e138cb3c0550780e
lecorguille
parents:
diff changeset
123
31
8fd5b5afa24d planemo upload for repository https://github.com/workflow4metabolomics/xcms commit e384d6dd5f410799ec211f73bca0b5d5d7bc651e
lecorguille
parents: 30
diff changeset
124 phenoDataClass <- as.vector(levels(xcmsSet@phenoData[,"class"])) #sometime phenoData have more than 1 column use first as class
6
f00e39a4b0fb planemo upload commit a3229faad6949bbca965d1d7e138cb3c0550780e
lecorguille
parents:
diff changeset
125
31
8fd5b5afa24d planemo upload for repository https://github.com/workflow4metabolomics/xcms commit e384d6dd5f410799ec211f73bca0b5d5d7bc651e
lecorguille
parents: 30
diff changeset
126 classnames <- vector("list",length(phenoDataClass))
16
5f61570177e2 planemo upload for repository https://github.com/workflow4metabolomics/xcms commit 22c4e92909198328fc7439ff47e4546a273eb907
lecorguille
parents: 15
diff changeset
127 for (i in 1:length(phenoDataClass)){
31
8fd5b5afa24d planemo upload for repository https://github.com/workflow4metabolomics/xcms commit e384d6dd5f410799ec211f73bca0b5d5d7bc651e
lecorguille
parents: 30
diff changeset
128 classnames[[i]] <- which( xcmsSet@phenoData[,"class"]==phenoDataClass[i])
16
5f61570177e2 planemo upload for repository https://github.com/workflow4metabolomics/xcms commit 22c4e92909198328fc7439ff47e4546a273eb907
lecorguille
parents: 15
diff changeset
129 }
6
f00e39a4b0fb planemo upload commit a3229faad6949bbca965d1d7e138cb3c0550780e
lecorguille
parents:
diff changeset
130
16
5f61570177e2 planemo upload for repository https://github.com/workflow4metabolomics/xcms commit 22c4e92909198328fc7439ff47e4546a273eb907
lecorguille
parents: 15
diff changeset
131 N <- dim(phenoData(xcmsSet))[1]
6
f00e39a4b0fb planemo upload commit a3229faad6949bbca965d1d7e138cb3c0550780e
lecorguille
parents:
diff changeset
132
16
5f61570177e2 planemo upload for repository https://github.com/workflow4metabolomics/xcms commit 22c4e92909198328fc7439ff47e4546a273eb907
lecorguille
parents: 15
diff changeset
133 TIC <- vector("list",N)
6
f00e39a4b0fb planemo upload commit a3229faad6949bbca965d1d7e138cb3c0550780e
lecorguille
parents:
diff changeset
134
f00e39a4b0fb planemo upload commit a3229faad6949bbca965d1d7e138cb3c0550780e
lecorguille
parents:
diff changeset
135
16
5f61570177e2 planemo upload for repository https://github.com/workflow4metabolomics/xcms commit 22c4e92909198328fc7439ff47e4546a273eb907
lecorguille
parents: 15
diff changeset
136 for (j in 1:N) {
6
f00e39a4b0fb planemo upload commit a3229faad6949bbca965d1d7e138cb3c0550780e
lecorguille
parents:
diff changeset
137
16
5f61570177e2 planemo upload for repository https://github.com/workflow4metabolomics/xcms commit 22c4e92909198328fc7439ff47e4546a273eb907
lecorguille
parents: 15
diff changeset
138 TIC[[j]] <- getBPC(files[j])
5f61570177e2 planemo upload for repository https://github.com/workflow4metabolomics/xcms commit 22c4e92909198328fc7439ff47e4546a273eb907
lecorguille
parents: 15
diff changeset
139 #good for raw
5f61570177e2 planemo upload for repository https://github.com/workflow4metabolomics/xcms commit 22c4e92909198328fc7439ff47e4546a273eb907
lecorguille
parents: 15
diff changeset
140 # seems strange for corrected
5f61570177e2 planemo upload for repository https://github.com/workflow4metabolomics/xcms commit 22c4e92909198328fc7439ff47e4546a273eb907
lecorguille
parents: 15
diff changeset
141 #errors if scanrange used in xcmsSetgeneration
5f61570177e2 planemo upload for repository https://github.com/workflow4metabolomics/xcms commit 22c4e92909198328fc7439ff47e4546a273eb907
lecorguille
parents: 15
diff changeset
142 if (!is.null(xcmsSet) && rt == "corrected")
5f61570177e2 planemo upload for repository https://github.com/workflow4metabolomics/xcms commit 22c4e92909198328fc7439ff47e4546a273eb907
lecorguille
parents: 15
diff changeset
143 rtcor <- xcmsSet@rt$corrected[[j]]
5f61570177e2 planemo upload for repository https://github.com/workflow4metabolomics/xcms commit 22c4e92909198328fc7439ff47e4546a273eb907
lecorguille
parents: 15
diff changeset
144 else
5f61570177e2 planemo upload for repository https://github.com/workflow4metabolomics/xcms commit 22c4e92909198328fc7439ff47e4546a273eb907
lecorguille
parents: 15
diff changeset
145 rtcor <- NULL
15
1c78d61fd646 planemo upload for repository https://github.com/workflow4metabolomics/xcms commit 08e7f269a5c59687a7768be8db5fcb4e4d736093
lecorguille
parents: 14
diff changeset
146
16
5f61570177e2 planemo upload for repository https://github.com/workflow4metabolomics/xcms commit 22c4e92909198328fc7439ff47e4546a273eb907
lecorguille
parents: 15
diff changeset
147 TIC[[j]] <- getBPC(files[j],rtcor=rtcor)
5f61570177e2 planemo upload for repository https://github.com/workflow4metabolomics/xcms commit 22c4e92909198328fc7439ff47e4546a273eb907
lecorguille
parents: 15
diff changeset
148 # TIC[[j]][,1]<-rtcor
5f61570177e2 planemo upload for repository https://github.com/workflow4metabolomics/xcms commit 22c4e92909198328fc7439ff47e4546a273eb907
lecorguille
parents: 15
diff changeset
149 }
6
f00e39a4b0fb planemo upload commit a3229faad6949bbca965d1d7e138cb3c0550780e
lecorguille
parents:
diff changeset
150
f00e39a4b0fb planemo upload commit a3229faad6949bbca965d1d7e138cb3c0550780e
lecorguille
parents:
diff changeset
151
f00e39a4b0fb planemo upload commit a3229faad6949bbca965d1d7e138cb3c0550780e
lecorguille
parents:
diff changeset
152
16
5f61570177e2 planemo upload for repository https://github.com/workflow4metabolomics/xcms commit 22c4e92909198328fc7439ff47e4546a273eb907
lecorguille
parents: 15
diff changeset
153 pdf(pdfname,w=16,h=10)
5f61570177e2 planemo upload for repository https://github.com/workflow4metabolomics/xcms commit 22c4e92909198328fc7439ff47e4546a273eb907
lecorguille
parents: 15
diff changeset
154 cols <- rainbow(N)
31
8fd5b5afa24d planemo upload for repository https://github.com/workflow4metabolomics/xcms commit e384d6dd5f410799ec211f73bca0b5d5d7bc651e
lecorguille
parents: 30
diff changeset
155 lty <- 1:N
8fd5b5afa24d planemo upload for repository https://github.com/workflow4metabolomics/xcms commit e384d6dd5f410799ec211f73bca0b5d5d7bc651e
lecorguille
parents: 30
diff changeset
156 pch <- 1:N
16
5f61570177e2 planemo upload for repository https://github.com/workflow4metabolomics/xcms commit 22c4e92909198328fc7439ff47e4546a273eb907
lecorguille
parents: 15
diff changeset
157 #search for max x and max y in BPCs
31
8fd5b5afa24d planemo upload for repository https://github.com/workflow4metabolomics/xcms commit e384d6dd5f410799ec211f73bca0b5d5d7bc651e
lecorguille
parents: 30
diff changeset
158 xlim <- range(sapply(TIC, function(x) range(x[,1])))
8fd5b5afa24d planemo upload for repository https://github.com/workflow4metabolomics/xcms commit e384d6dd5f410799ec211f73bca0b5d5d7bc651e
lecorguille
parents: 30
diff changeset
159 ylim <- range(sapply(TIC, function(x) range(x[,2])))
8fd5b5afa24d planemo upload for repository https://github.com/workflow4metabolomics/xcms commit e384d6dd5f410799ec211f73bca0b5d5d7bc651e
lecorguille
parents: 30
diff changeset
160 ylim <- c(-ylim[2], ylim[2])
6
f00e39a4b0fb planemo upload commit a3229faad6949bbca965d1d7e138cb3c0550780e
lecorguille
parents:
diff changeset
161
f00e39a4b0fb planemo upload commit a3229faad6949bbca965d1d7e138cb3c0550780e
lecorguille
parents:
diff changeset
162
16
5f61570177e2 planemo upload for repository https://github.com/workflow4metabolomics/xcms commit 22c4e92909198328fc7439ff47e4546a273eb907
lecorguille
parents: 15
diff changeset
163 ##plot start
15
1c78d61fd646 planemo upload for repository https://github.com/workflow4metabolomics/xcms commit 08e7f269a5c59687a7768be8db5fcb4e4d736093
lecorguille
parents: 14
diff changeset
164
16
5f61570177e2 planemo upload for repository https://github.com/workflow4metabolomics/xcms commit 22c4e92909198328fc7439ff47e4546a273eb907
lecorguille
parents: 15
diff changeset
165 if (length(phenoDataClass)>2){
5f61570177e2 planemo upload for repository https://github.com/workflow4metabolomics/xcms commit 22c4e92909198328fc7439ff47e4546a273eb907
lecorguille
parents: 15
diff changeset
166 for (k in 1:(length(phenoDataClass)-1)){
5f61570177e2 planemo upload for repository https://github.com/workflow4metabolomics/xcms commit 22c4e92909198328fc7439ff47e4546a273eb907
lecorguille
parents: 15
diff changeset
167 for (l in (k+1):length(phenoDataClass)){
5f61570177e2 planemo upload for repository https://github.com/workflow4metabolomics/xcms commit 22c4e92909198328fc7439ff47e4546a273eb907
lecorguille
parents: 15
diff changeset
168 #print(paste(phenoDataClass[k],"vs",phenoDataClass[l],sep=" "))
31
8fd5b5afa24d planemo upload for repository https://github.com/workflow4metabolomics/xcms commit e384d6dd5f410799ec211f73bca0b5d5d7bc651e
lecorguille
parents: 30
diff changeset
169 plot(0, 0, type="n", xlim=xlim/60, ylim=ylim, main=paste("Base Peak Chromatograms \n","BPCs_",phenoDataClass[k]," vs ",phenoDataClass[l], sep=""), xlab="Retention Time (min)", ylab="BPC")
8fd5b5afa24d planemo upload for repository https://github.com/workflow4metabolomics/xcms commit e384d6dd5f410799ec211f73bca0b5d5d7bc651e
lecorguille
parents: 30
diff changeset
170 colvect <- NULL
16
5f61570177e2 planemo upload for repository https://github.com/workflow4metabolomics/xcms commit 22c4e92909198328fc7439ff47e4546a273eb907
lecorguille
parents: 15
diff changeset
171 for (j in 1:length(classnames[[k]])) {
5f61570177e2 planemo upload for repository https://github.com/workflow4metabolomics/xcms commit 22c4e92909198328fc7439ff47e4546a273eb907
lecorguille
parents: 15
diff changeset
172 tic <- TIC[[classnames[[k]][j]]]
31
8fd5b5afa24d planemo upload for repository https://github.com/workflow4metabolomics/xcms commit e384d6dd5f410799ec211f73bca0b5d5d7bc651e
lecorguille
parents: 30
diff changeset
173 # points(tic[,1]/60, tic[,2], col=cols[i], pch=pch[i], type="l")
8fd5b5afa24d planemo upload for repository https://github.com/workflow4metabolomics/xcms commit e384d6dd5f410799ec211f73bca0b5d5d7bc651e
lecorguille
parents: 30
diff changeset
174 points(tic[,1]/60, tic[,2], col=cols[classnames[[k]][j]], pch=pch[classnames[[k]][j]], type="l")
8fd5b5afa24d planemo upload for repository https://github.com/workflow4metabolomics/xcms commit e384d6dd5f410799ec211f73bca0b5d5d7bc651e
lecorguille
parents: 30
diff changeset
175 colvect <- append(colvect,cols[classnames[[k]][j]])
16
5f61570177e2 planemo upload for repository https://github.com/workflow4metabolomics/xcms commit 22c4e92909198328fc7439ff47e4546a273eb907
lecorguille
parents: 15
diff changeset
176 }
5f61570177e2 planemo upload for repository https://github.com/workflow4metabolomics/xcms commit 22c4e92909198328fc7439ff47e4546a273eb907
lecorguille
parents: 15
diff changeset
177 for (j in 1:length(classnames[[l]])) {
31
8fd5b5afa24d planemo upload for repository https://github.com/workflow4metabolomics/xcms commit e384d6dd5f410799ec211f73bca0b5d5d7bc651e
lecorguille
parents: 30
diff changeset
178 # i <- class2names[j]
16
5f61570177e2 planemo upload for repository https://github.com/workflow4metabolomics/xcms commit 22c4e92909198328fc7439ff47e4546a273eb907
lecorguille
parents: 15
diff changeset
179 tic <- TIC[[classnames[[l]][j]]]
31
8fd5b5afa24d planemo upload for repository https://github.com/workflow4metabolomics/xcms commit e384d6dd5f410799ec211f73bca0b5d5d7bc651e
lecorguille
parents: 30
diff changeset
180 points(tic[,1]/60, -tic[,2], col=cols[classnames[[l]][j]], pch=pch[classnames[[l]][j]], type="l")
8fd5b5afa24d planemo upload for repository https://github.com/workflow4metabolomics/xcms commit e384d6dd5f410799ec211f73bca0b5d5d7bc651e
lecorguille
parents: 30
diff changeset
181 colvect <- append(colvect,cols[classnames[[l]][j]])
16
5f61570177e2 planemo upload for repository https://github.com/workflow4metabolomics/xcms commit 22c4e92909198328fc7439ff47e4546a273eb907
lecorguille
parents: 15
diff changeset
182 }
31
8fd5b5afa24d planemo upload for repository https://github.com/workflow4metabolomics/xcms commit e384d6dd5f410799ec211f73bca0b5d5d7bc651e
lecorguille
parents: 30
diff changeset
183 legend("topright",paste(basename(files[c(classnames[[k]],classnames[[l]])])), col=colvect, lty=lty, pch=pch)
16
5f61570177e2 planemo upload for repository https://github.com/workflow4metabolomics/xcms commit 22c4e92909198328fc7439ff47e4546a273eb907
lecorguille
parents: 15
diff changeset
184 }
5f61570177e2 planemo upload for repository https://github.com/workflow4metabolomics/xcms commit 22c4e92909198328fc7439ff47e4546a273eb907
lecorguille
parents: 15
diff changeset
185 }
5f61570177e2 planemo upload for repository https://github.com/workflow4metabolomics/xcms commit 22c4e92909198328fc7439ff47e4546a273eb907
lecorguille
parents: 15
diff changeset
186 }#end if length >2
5f61570177e2 planemo upload for repository https://github.com/workflow4metabolomics/xcms commit 22c4e92909198328fc7439ff47e4546a273eb907
lecorguille
parents: 15
diff changeset
187
5f61570177e2 planemo upload for repository https://github.com/workflow4metabolomics/xcms commit 22c4e92909198328fc7439ff47e4546a273eb907
lecorguille
parents: 15
diff changeset
188 if (length(phenoDataClass)==2){
31
8fd5b5afa24d planemo upload for repository https://github.com/workflow4metabolomics/xcms commit e384d6dd5f410799ec211f73bca0b5d5d7bc651e
lecorguille
parents: 30
diff changeset
189 k <- 1
8fd5b5afa24d planemo upload for repository https://github.com/workflow4metabolomics/xcms commit e384d6dd5f410799ec211f73bca0b5d5d7bc651e
lecorguille
parents: 30
diff changeset
190 l <- 2
8fd5b5afa24d planemo upload for repository https://github.com/workflow4metabolomics/xcms commit e384d6dd5f410799ec211f73bca0b5d5d7bc651e
lecorguille
parents: 30
diff changeset
191 colvect <- NULL
8fd5b5afa24d planemo upload for repository https://github.com/workflow4metabolomics/xcms commit e384d6dd5f410799ec211f73bca0b5d5d7bc651e
lecorguille
parents: 30
diff changeset
192 plot(0, 0, type="n", xlim=xlim/60, ylim=ylim, main=paste("Base Peak Chromatograms \n","BPCs_",phenoDataClass[k],"vs",phenoDataClass[l], sep=""), xlab="Retention Time (min)", ylab="BPC")
16
5f61570177e2 planemo upload for repository https://github.com/workflow4metabolomics/xcms commit 22c4e92909198328fc7439ff47e4546a273eb907
lecorguille
parents: 15
diff changeset
193
6
f00e39a4b0fb planemo upload commit a3229faad6949bbca965d1d7e138cb3c0550780e
lecorguille
parents:
diff changeset
194 for (j in 1:length(classnames[[k]])) {
16
5f61570177e2 planemo upload for repository https://github.com/workflow4metabolomics/xcms commit 22c4e92909198328fc7439ff47e4546a273eb907
lecorguille
parents: 15
diff changeset
195
5f61570177e2 planemo upload for repository https://github.com/workflow4metabolomics/xcms commit 22c4e92909198328fc7439ff47e4546a273eb907
lecorguille
parents: 15
diff changeset
196 tic <- TIC[[classnames[[k]][j]]]
31
8fd5b5afa24d planemo upload for repository https://github.com/workflow4metabolomics/xcms commit e384d6dd5f410799ec211f73bca0b5d5d7bc651e
lecorguille
parents: 30
diff changeset
197 # points(tic[,1]/60, tic[,2], col=cols[i], pch=pch[i], type="l")
8fd5b5afa24d planemo upload for repository https://github.com/workflow4metabolomics/xcms commit e384d6dd5f410799ec211f73bca0b5d5d7bc651e
lecorguille
parents: 30
diff changeset
198 points(tic[,1]/60, tic[,2], col=cols[classnames[[k]][j]], pch=pch[classnames[[k]][j]], type="l")
16
5f61570177e2 planemo upload for repository https://github.com/workflow4metabolomics/xcms commit 22c4e92909198328fc7439ff47e4546a273eb907
lecorguille
parents: 15
diff changeset
199 colvect<-append(colvect,cols[classnames[[k]][j]])
6
f00e39a4b0fb planemo upload commit a3229faad6949bbca965d1d7e138cb3c0550780e
lecorguille
parents:
diff changeset
200 }
f00e39a4b0fb planemo upload commit a3229faad6949bbca965d1d7e138cb3c0550780e
lecorguille
parents:
diff changeset
201 for (j in 1:length(classnames[[l]])) {
31
8fd5b5afa24d planemo upload for repository https://github.com/workflow4metabolomics/xcms commit e384d6dd5f410799ec211f73bca0b5d5d7bc651e
lecorguille
parents: 30
diff changeset
202 # i <- class2names[j]
16
5f61570177e2 planemo upload for repository https://github.com/workflow4metabolomics/xcms commit 22c4e92909198328fc7439ff47e4546a273eb907
lecorguille
parents: 15
diff changeset
203 tic <- TIC[[classnames[[l]][j]]]
31
8fd5b5afa24d planemo upload for repository https://github.com/workflow4metabolomics/xcms commit e384d6dd5f410799ec211f73bca0b5d5d7bc651e
lecorguille
parents: 30
diff changeset
204 points(tic[,1]/60, -tic[,2], col=cols[classnames[[l]][j]], pch=pch[classnames[[l]][j]], type="l")
8fd5b5afa24d planemo upload for repository https://github.com/workflow4metabolomics/xcms commit e384d6dd5f410799ec211f73bca0b5d5d7bc651e
lecorguille
parents: 30
diff changeset
205 colvect <- append(colvect,cols[classnames[[l]][j]])
6
f00e39a4b0fb planemo upload commit a3229faad6949bbca965d1d7e138cb3c0550780e
lecorguille
parents:
diff changeset
206 }
31
8fd5b5afa24d planemo upload for repository https://github.com/workflow4metabolomics/xcms commit e384d6dd5f410799ec211f73bca0b5d5d7bc651e
lecorguille
parents: 30
diff changeset
207 legend("topright",paste(basename(files[c(classnames[[k]],classnames[[l]])])), col=colvect, lty=lty, pch=pch)
16
5f61570177e2 planemo upload for repository https://github.com/workflow4metabolomics/xcms commit 22c4e92909198328fc7439ff47e4546a273eb907
lecorguille
parents: 15
diff changeset
208
5f61570177e2 planemo upload for repository https://github.com/workflow4metabolomics/xcms commit 22c4e92909198328fc7439ff47e4546a273eb907
lecorguille
parents: 15
diff changeset
209 }#end length ==2
6
f00e39a4b0fb planemo upload commit a3229faad6949bbca965d1d7e138cb3c0550780e
lecorguille
parents:
diff changeset
210
16
5f61570177e2 planemo upload for repository https://github.com/workflow4metabolomics/xcms commit 22c4e92909198328fc7439ff47e4546a273eb907
lecorguille
parents: 15
diff changeset
211 #case where only one class
5f61570177e2 planemo upload for repository https://github.com/workflow4metabolomics/xcms commit 22c4e92909198328fc7439ff47e4546a273eb907
lecorguille
parents: 15
diff changeset
212 if (length(phenoDataClass)==1){
31
8fd5b5afa24d planemo upload for repository https://github.com/workflow4metabolomics/xcms commit e384d6dd5f410799ec211f73bca0b5d5d7bc651e
lecorguille
parents: 30
diff changeset
213 k <- 1
8fd5b5afa24d planemo upload for repository https://github.com/workflow4metabolomics/xcms commit e384d6dd5f410799ec211f73bca0b5d5d7bc651e
lecorguille
parents: 30
diff changeset
214 ylim <- range(sapply(TIC, function(x) range(x[,2])))
8fd5b5afa24d planemo upload for repository https://github.com/workflow4metabolomics/xcms commit e384d6dd5f410799ec211f73bca0b5d5d7bc651e
lecorguille
parents: 30
diff changeset
215 colvect <- NULL
8fd5b5afa24d planemo upload for repository https://github.com/workflow4metabolomics/xcms commit e384d6dd5f410799ec211f73bca0b5d5d7bc651e
lecorguille
parents: 30
diff changeset
216 plot(0, 0, type="n", xlim=xlim/60, ylim=ylim, main=paste("Base Peak Chromatograms \n","BPCs_",phenoDataClass[k], sep=""), xlab="Retention Time (min)", ylab="BPC")
6
f00e39a4b0fb planemo upload commit a3229faad6949bbca965d1d7e138cb3c0550780e
lecorguille
parents:
diff changeset
217
16
5f61570177e2 planemo upload for repository https://github.com/workflow4metabolomics/xcms commit 22c4e92909198328fc7439ff47e4546a273eb907
lecorguille
parents: 15
diff changeset
218 for (j in 1:length(classnames[[k]])) {
5f61570177e2 planemo upload for repository https://github.com/workflow4metabolomics/xcms commit 22c4e92909198328fc7439ff47e4546a273eb907
lecorguille
parents: 15
diff changeset
219 tic <- TIC[[classnames[[k]][j]]]
31
8fd5b5afa24d planemo upload for repository https://github.com/workflow4metabolomics/xcms commit e384d6dd5f410799ec211f73bca0b5d5d7bc651e
lecorguille
parents: 30
diff changeset
220 # points(tic[,1]/60, tic[,2], col=cols[i], pch=pch[i], type="l")
8fd5b5afa24d planemo upload for repository https://github.com/workflow4metabolomics/xcms commit e384d6dd5f410799ec211f73bca0b5d5d7bc651e
lecorguille
parents: 30
diff changeset
221 points(tic[,1]/60, tic[,2], col=cols[classnames[[k]][j]], pch=pch[classnames[[k]][j]], type="l")
8fd5b5afa24d planemo upload for repository https://github.com/workflow4metabolomics/xcms commit e384d6dd5f410799ec211f73bca0b5d5d7bc651e
lecorguille
parents: 30
diff changeset
222 colvect <- append(colvect,cols[classnames[[k]][j]])
16
5f61570177e2 planemo upload for repository https://github.com/workflow4metabolomics/xcms commit 22c4e92909198328fc7439ff47e4546a273eb907
lecorguille
parents: 15
diff changeset
223 }
15
1c78d61fd646 planemo upload for repository https://github.com/workflow4metabolomics/xcms commit 08e7f269a5c59687a7768be8db5fcb4e4d736093
lecorguille
parents: 14
diff changeset
224
31
8fd5b5afa24d planemo upload for repository https://github.com/workflow4metabolomics/xcms commit e384d6dd5f410799ec211f73bca0b5d5d7bc651e
lecorguille
parents: 30
diff changeset
225 legend("topright",paste(basename(files[c(classnames[[k]])])), col=colvect, lty=lty, pch=pch)
16
5f61570177e2 planemo upload for repository https://github.com/workflow4metabolomics/xcms commit 22c4e92909198328fc7439ff47e4546a273eb907
lecorguille
parents: 15
diff changeset
226
5f61570177e2 planemo upload for repository https://github.com/workflow4metabolomics/xcms commit 22c4e92909198328fc7439ff47e4546a273eb907
lecorguille
parents: 15
diff changeset
227 }#end length ==1
6
f00e39a4b0fb planemo upload commit a3229faad6949bbca965d1d7e138cb3c0550780e
lecorguille
parents:
diff changeset
228
16
5f61570177e2 planemo upload for repository https://github.com/workflow4metabolomics/xcms commit 22c4e92909198328fc7439ff47e4546a273eb907
lecorguille
parents: 15
diff changeset
229 dev.off() #pdf(pdfname,w=16,h=10)
15
1c78d61fd646 planemo upload for repository https://github.com/workflow4metabolomics/xcms commit 08e7f269a5c59687a7768be8db5fcb4e4d736093
lecorguille
parents: 14
diff changeset
230
16
5f61570177e2 planemo upload for repository https://github.com/workflow4metabolomics/xcms commit 22c4e92909198328fc7439ff47e4546a273eb907
lecorguille
parents: 15
diff changeset
231 invisible(TIC)
6
f00e39a4b0fb planemo upload commit a3229faad6949bbca965d1d7e138cb3c0550780e
lecorguille
parents:
diff changeset
232 }
f00e39a4b0fb planemo upload commit a3229faad6949bbca965d1d7e138cb3c0550780e
lecorguille
parents:
diff changeset
233
f00e39a4b0fb planemo upload commit a3229faad6949bbca965d1d7e138cb3c0550780e
lecorguille
parents:
diff changeset
234
f00e39a4b0fb planemo upload commit a3229faad6949bbca965d1d7e138cb3c0550780e
lecorguille
parents:
diff changeset
235
f00e39a4b0fb planemo upload commit a3229faad6949bbca965d1d7e138cb3c0550780e
lecorguille
parents:
diff changeset
236 #@author Y. Guitton
31
8fd5b5afa24d planemo upload for repository https://github.com/workflow4metabolomics/xcms commit e384d6dd5f410799ec211f73bca0b5d5d7bc651e
lecorguille
parents: 30
diff changeset
237 getTIC <- function(file, rtcor=NULL) {
16
5f61570177e2 planemo upload for repository https://github.com/workflow4metabolomics/xcms commit 22c4e92909198328fc7439ff47e4546a273eb907
lecorguille
parents: 15
diff changeset
238 object <- xcmsRaw(file)
31
8fd5b5afa24d planemo upload for repository https://github.com/workflow4metabolomics/xcms commit e384d6dd5f410799ec211f73bca0b5d5d7bc651e
lecorguille
parents: 30
diff changeset
239 cbind(if (is.null(rtcor)) object@scantime else rtcor, rawEIC(object, mzrange=range(object@env$mz))$intensity)
6
f00e39a4b0fb planemo upload commit a3229faad6949bbca965d1d7e138cb3c0550780e
lecorguille
parents:
diff changeset
240 }
f00e39a4b0fb planemo upload commit a3229faad6949bbca965d1d7e138cb3c0550780e
lecorguille
parents:
diff changeset
241
31
8fd5b5afa24d planemo upload for repository https://github.com/workflow4metabolomics/xcms commit e384d6dd5f410799ec211f73bca0b5d5d7bc651e
lecorguille
parents: 30
diff changeset
242 #overlay TIC from all files in current folder or from xcmsSet, create pdf
6
f00e39a4b0fb planemo upload commit a3229faad6949bbca965d1d7e138cb3c0550780e
lecorguille
parents:
diff changeset
243 #@author Y. Guitton
31
8fd5b5afa24d planemo upload for repository https://github.com/workflow4metabolomics/xcms commit e384d6dd5f410799ec211f73bca0b5d5d7bc651e
lecorguille
parents: 30
diff changeset
244 getTICs <- function(xcmsSet=NULL,files=NULL, pdfname="TICs.pdf", rt=c("raw","corrected")) {
16
5f61570177e2 planemo upload for repository https://github.com/workflow4metabolomics/xcms commit 22c4e92909198328fc7439ff47e4546a273eb907
lecorguille
parents: 15
diff changeset
245 cat("Creating TIC pdf...\n")
6
f00e39a4b0fb planemo upload commit a3229faad6949bbca965d1d7e138cb3c0550780e
lecorguille
parents:
diff changeset
246
16
5f61570177e2 planemo upload for repository https://github.com/workflow4metabolomics/xcms commit 22c4e92909198328fc7439ff47e4546a273eb907
lecorguille
parents: 15
diff changeset
247 if (is.null(xcmsSet)) {
5f61570177e2 planemo upload for repository https://github.com/workflow4metabolomics/xcms commit 22c4e92909198328fc7439ff47e4546a273eb907
lecorguille
parents: 15
diff changeset
248 filepattern <- c("[Cc][Dd][Ff]", "[Nn][Cc]", "([Mm][Zz])?[Xx][Mm][Ll]", "[Mm][Zz][Dd][Aa][Tt][Aa]", "[Mm][Zz][Mm][Ll]")
31
8fd5b5afa24d planemo upload for repository https://github.com/workflow4metabolomics/xcms commit e384d6dd5f410799ec211f73bca0b5d5d7bc651e
lecorguille
parents: 30
diff changeset
249 filepattern <- paste(paste("\\.", filepattern, "$", sep=""), collapse="|")
16
5f61570177e2 planemo upload for repository https://github.com/workflow4metabolomics/xcms commit 22c4e92909198328fc7439ff47e4546a273eb907
lecorguille
parents: 15
diff changeset
250 if (is.null(files))
5f61570177e2 planemo upload for repository https://github.com/workflow4metabolomics/xcms commit 22c4e92909198328fc7439ff47e4546a273eb907
lecorguille
parents: 15
diff changeset
251 files <- getwd()
5f61570177e2 planemo upload for repository https://github.com/workflow4metabolomics/xcms commit 22c4e92909198328fc7439ff47e4546a273eb907
lecorguille
parents: 15
diff changeset
252 info <- file.info(files)
31
8fd5b5afa24d planemo upload for repository https://github.com/workflow4metabolomics/xcms commit e384d6dd5f410799ec211f73bca0b5d5d7bc651e
lecorguille
parents: 30
diff changeset
253 listed <- list.files(files[info$isdir], pattern=filepattern, recursive=TRUE, full.names=TRUE)
16
5f61570177e2 planemo upload for repository https://github.com/workflow4metabolomics/xcms commit 22c4e92909198328fc7439ff47e4546a273eb907
lecorguille
parents: 15
diff changeset
254 files <- c(files[!info$isdir], listed)
5f61570177e2 planemo upload for repository https://github.com/workflow4metabolomics/xcms commit 22c4e92909198328fc7439ff47e4546a273eb907
lecorguille
parents: 15
diff changeset
255 } else {
5f61570177e2 planemo upload for repository https://github.com/workflow4metabolomics/xcms commit 22c4e92909198328fc7439ff47e4546a273eb907
lecorguille
parents: 15
diff changeset
256 files <- filepaths(xcmsSet)
5f61570177e2 planemo upload for repository https://github.com/workflow4metabolomics/xcms commit 22c4e92909198328fc7439ff47e4546a273eb907
lecorguille
parents: 15
diff changeset
257 }
6
f00e39a4b0fb planemo upload commit a3229faad6949bbca965d1d7e138cb3c0550780e
lecorguille
parents:
diff changeset
258
31
8fd5b5afa24d planemo upload for repository https://github.com/workflow4metabolomics/xcms commit e384d6dd5f410799ec211f73bca0b5d5d7bc651e
lecorguille
parents: 30
diff changeset
259 phenoDataClass <- as.vector(levels(xcmsSet@phenoData[,"class"])) #sometime phenoData have more than 1 column use first as class
8fd5b5afa24d planemo upload for repository https://github.com/workflow4metabolomics/xcms commit e384d6dd5f410799ec211f73bca0b5d5d7bc651e
lecorguille
parents: 30
diff changeset
260 classnames <- vector("list",length(phenoDataClass))
16
5f61570177e2 planemo upload for repository https://github.com/workflow4metabolomics/xcms commit 22c4e92909198328fc7439ff47e4546a273eb907
lecorguille
parents: 15
diff changeset
261 for (i in 1:length(phenoDataClass)){
31
8fd5b5afa24d planemo upload for repository https://github.com/workflow4metabolomics/xcms commit e384d6dd5f410799ec211f73bca0b5d5d7bc651e
lecorguille
parents: 30
diff changeset
262 classnames[[i]] <- which( xcmsSet@phenoData[,"class"]==phenoDataClass[i])
16
5f61570177e2 planemo upload for repository https://github.com/workflow4metabolomics/xcms commit 22c4e92909198328fc7439ff47e4546a273eb907
lecorguille
parents: 15
diff changeset
263 }
15
1c78d61fd646 planemo upload for repository https://github.com/workflow4metabolomics/xcms commit 08e7f269a5c59687a7768be8db5fcb4e4d736093
lecorguille
parents: 14
diff changeset
264
16
5f61570177e2 planemo upload for repository https://github.com/workflow4metabolomics/xcms commit 22c4e92909198328fc7439ff47e4546a273eb907
lecorguille
parents: 15
diff changeset
265 N <- length(files)
5f61570177e2 planemo upload for repository https://github.com/workflow4metabolomics/xcms commit 22c4e92909198328fc7439ff47e4546a273eb907
lecorguille
parents: 15
diff changeset
266 TIC <- vector("list",N)
6
f00e39a4b0fb planemo upload commit a3229faad6949bbca965d1d7e138cb3c0550780e
lecorguille
parents:
diff changeset
267
16
5f61570177e2 planemo upload for repository https://github.com/workflow4metabolomics/xcms commit 22c4e92909198328fc7439ff47e4546a273eb907
lecorguille
parents: 15
diff changeset
268 for (i in 1:N) {
5f61570177e2 planemo upload for repository https://github.com/workflow4metabolomics/xcms commit 22c4e92909198328fc7439ff47e4546a273eb907
lecorguille
parents: 15
diff changeset
269 if (!is.null(xcmsSet) && rt == "corrected")
5f61570177e2 planemo upload for repository https://github.com/workflow4metabolomics/xcms commit 22c4e92909198328fc7439ff47e4546a273eb907
lecorguille
parents: 15
diff changeset
270 rtcor <- xcmsSet@rt$corrected[[i]] else
5f61570177e2 planemo upload for repository https://github.com/workflow4metabolomics/xcms commit 22c4e92909198328fc7439ff47e4546a273eb907
lecorguille
parents: 15
diff changeset
271 rtcor <- NULL
31
8fd5b5afa24d planemo upload for repository https://github.com/workflow4metabolomics/xcms commit e384d6dd5f410799ec211f73bca0b5d5d7bc651e
lecorguille
parents: 30
diff changeset
272 TIC[[i]] <- getTIC(files[i], rtcor=rtcor)
16
5f61570177e2 planemo upload for repository https://github.com/workflow4metabolomics/xcms commit 22c4e92909198328fc7439ff47e4546a273eb907
lecorguille
parents: 15
diff changeset
273 }
6
f00e39a4b0fb planemo upload commit a3229faad6949bbca965d1d7e138cb3c0550780e
lecorguille
parents:
diff changeset
274
31
8fd5b5afa24d planemo upload for repository https://github.com/workflow4metabolomics/xcms commit e384d6dd5f410799ec211f73bca0b5d5d7bc651e
lecorguille
parents: 30
diff changeset
275 pdf(pdfname, w=16, h=10)
16
5f61570177e2 planemo upload for repository https://github.com/workflow4metabolomics/xcms commit 22c4e92909198328fc7439ff47e4546a273eb907
lecorguille
parents: 15
diff changeset
276 cols <- rainbow(N)
31
8fd5b5afa24d planemo upload for repository https://github.com/workflow4metabolomics/xcms commit e384d6dd5f410799ec211f73bca0b5d5d7bc651e
lecorguille
parents: 30
diff changeset
277 lty <- 1:N
8fd5b5afa24d planemo upload for repository https://github.com/workflow4metabolomics/xcms commit e384d6dd5f410799ec211f73bca0b5d5d7bc651e
lecorguille
parents: 30
diff changeset
278 pch <- 1:N
16
5f61570177e2 planemo upload for repository https://github.com/workflow4metabolomics/xcms commit 22c4e92909198328fc7439ff47e4546a273eb907
lecorguille
parents: 15
diff changeset
279 #search for max x and max y in TICs
31
8fd5b5afa24d planemo upload for repository https://github.com/workflow4metabolomics/xcms commit e384d6dd5f410799ec211f73bca0b5d5d7bc651e
lecorguille
parents: 30
diff changeset
280 xlim <- range(sapply(TIC, function(x) range(x[,1])))
8fd5b5afa24d planemo upload for repository https://github.com/workflow4metabolomics/xcms commit e384d6dd5f410799ec211f73bca0b5d5d7bc651e
lecorguille
parents: 30
diff changeset
281 ylim <- range(sapply(TIC, function(x) range(x[,2])))
8fd5b5afa24d planemo upload for repository https://github.com/workflow4metabolomics/xcms commit e384d6dd5f410799ec211f73bca0b5d5d7bc651e
lecorguille
parents: 30
diff changeset
282 ylim <- c(-ylim[2], ylim[2])
6
f00e39a4b0fb planemo upload commit a3229faad6949bbca965d1d7e138cb3c0550780e
lecorguille
parents:
diff changeset
283
f00e39a4b0fb planemo upload commit a3229faad6949bbca965d1d7e138cb3c0550780e
lecorguille
parents:
diff changeset
284
16
5f61570177e2 planemo upload for repository https://github.com/workflow4metabolomics/xcms commit 22c4e92909198328fc7439ff47e4546a273eb907
lecorguille
parents: 15
diff changeset
285 ##plot start
5f61570177e2 planemo upload for repository https://github.com/workflow4metabolomics/xcms commit 22c4e92909198328fc7439ff47e4546a273eb907
lecorguille
parents: 15
diff changeset
286 if (length(phenoDataClass)>2){
5f61570177e2 planemo upload for repository https://github.com/workflow4metabolomics/xcms commit 22c4e92909198328fc7439ff47e4546a273eb907
lecorguille
parents: 15
diff changeset
287 for (k in 1:(length(phenoDataClass)-1)){
5f61570177e2 planemo upload for repository https://github.com/workflow4metabolomics/xcms commit 22c4e92909198328fc7439ff47e4546a273eb907
lecorguille
parents: 15
diff changeset
288 for (l in (k+1):length(phenoDataClass)){
5f61570177e2 planemo upload for repository https://github.com/workflow4metabolomics/xcms commit 22c4e92909198328fc7439ff47e4546a273eb907
lecorguille
parents: 15
diff changeset
289 #print(paste(phenoDataClass[k],"vs",phenoDataClass[l],sep=" "))
31
8fd5b5afa24d planemo upload for repository https://github.com/workflow4metabolomics/xcms commit e384d6dd5f410799ec211f73bca0b5d5d7bc651e
lecorguille
parents: 30
diff changeset
290 plot(0, 0, type="n", xlim=xlim/60, ylim=ylim, main=paste("Total Ion Chromatograms \n","TICs_",phenoDataClass[k]," vs ",phenoDataClass[l], sep=""), xlab="Retention Time (min)", ylab="TIC")
8fd5b5afa24d planemo upload for repository https://github.com/workflow4metabolomics/xcms commit e384d6dd5f410799ec211f73bca0b5d5d7bc651e
lecorguille
parents: 30
diff changeset
291 colvect <- NULL
16
5f61570177e2 planemo upload for repository https://github.com/workflow4metabolomics/xcms commit 22c4e92909198328fc7439ff47e4546a273eb907
lecorguille
parents: 15
diff changeset
292 for (j in 1:length(classnames[[k]])) {
5f61570177e2 planemo upload for repository https://github.com/workflow4metabolomics/xcms commit 22c4e92909198328fc7439ff47e4546a273eb907
lecorguille
parents: 15
diff changeset
293 tic <- TIC[[classnames[[k]][j]]]
31
8fd5b5afa24d planemo upload for repository https://github.com/workflow4metabolomics/xcms commit e384d6dd5f410799ec211f73bca0b5d5d7bc651e
lecorguille
parents: 30
diff changeset
294 # points(tic[,1]/60, tic[,2], col=cols[i], pch=pch[i], type="l")
8fd5b5afa24d planemo upload for repository https://github.com/workflow4metabolomics/xcms commit e384d6dd5f410799ec211f73bca0b5d5d7bc651e
lecorguille
parents: 30
diff changeset
295 points(tic[,1]/60, tic[,2], col=cols[classnames[[k]][j]], pch=pch[classnames[[k]][j]], type="l")
8fd5b5afa24d planemo upload for repository https://github.com/workflow4metabolomics/xcms commit e384d6dd5f410799ec211f73bca0b5d5d7bc651e
lecorguille
parents: 30
diff changeset
296 colvect <- append(colvect,cols[classnames[[k]][j]])
16
5f61570177e2 planemo upload for repository https://github.com/workflow4metabolomics/xcms commit 22c4e92909198328fc7439ff47e4546a273eb907
lecorguille
parents: 15
diff changeset
297 }
5f61570177e2 planemo upload for repository https://github.com/workflow4metabolomics/xcms commit 22c4e92909198328fc7439ff47e4546a273eb907
lecorguille
parents: 15
diff changeset
298 for (j in 1:length(classnames[[l]])) {
5f61570177e2 planemo upload for repository https://github.com/workflow4metabolomics/xcms commit 22c4e92909198328fc7439ff47e4546a273eb907
lecorguille
parents: 15
diff changeset
299 # i=class2names[j]
5f61570177e2 planemo upload for repository https://github.com/workflow4metabolomics/xcms commit 22c4e92909198328fc7439ff47e4546a273eb907
lecorguille
parents: 15
diff changeset
300 tic <- TIC[[classnames[[l]][j]]]
31
8fd5b5afa24d planemo upload for repository https://github.com/workflow4metabolomics/xcms commit e384d6dd5f410799ec211f73bca0b5d5d7bc651e
lecorguille
parents: 30
diff changeset
301 points(tic[,1]/60, -tic[,2], col=cols[classnames[[l]][j]], pch=pch[classnames[[l]][j]], type="l")
8fd5b5afa24d planemo upload for repository https://github.com/workflow4metabolomics/xcms commit e384d6dd5f410799ec211f73bca0b5d5d7bc651e
lecorguille
parents: 30
diff changeset
302 colvect <- append(colvect,cols[classnames[[l]][j]])
16
5f61570177e2 planemo upload for repository https://github.com/workflow4metabolomics/xcms commit 22c4e92909198328fc7439ff47e4546a273eb907
lecorguille
parents: 15
diff changeset
303 }
31
8fd5b5afa24d planemo upload for repository https://github.com/workflow4metabolomics/xcms commit e384d6dd5f410799ec211f73bca0b5d5d7bc651e
lecorguille
parents: 30
diff changeset
304 legend("topright",paste(basename(files[c(classnames[[k]],classnames[[l]])])), col=colvect, lty=lty, pch=pch)
16
5f61570177e2 planemo upload for repository https://github.com/workflow4metabolomics/xcms commit 22c4e92909198328fc7439ff47e4546a273eb907
lecorguille
parents: 15
diff changeset
305 }
5f61570177e2 planemo upload for repository https://github.com/workflow4metabolomics/xcms commit 22c4e92909198328fc7439ff47e4546a273eb907
lecorguille
parents: 15
diff changeset
306 }
5f61570177e2 planemo upload for repository https://github.com/workflow4metabolomics/xcms commit 22c4e92909198328fc7439ff47e4546a273eb907
lecorguille
parents: 15
diff changeset
307 }#end if length >2
5f61570177e2 planemo upload for repository https://github.com/workflow4metabolomics/xcms commit 22c4e92909198328fc7439ff47e4546a273eb907
lecorguille
parents: 15
diff changeset
308 if (length(phenoDataClass)==2){
31
8fd5b5afa24d planemo upload for repository https://github.com/workflow4metabolomics/xcms commit e384d6dd5f410799ec211f73bca0b5d5d7bc651e
lecorguille
parents: 30
diff changeset
309 k <- 1
8fd5b5afa24d planemo upload for repository https://github.com/workflow4metabolomics/xcms commit e384d6dd5f410799ec211f73bca0b5d5d7bc651e
lecorguille
parents: 30
diff changeset
310 l <- 2
16
5f61570177e2 planemo upload for repository https://github.com/workflow4metabolomics/xcms commit 22c4e92909198328fc7439ff47e4546a273eb907
lecorguille
parents: 15
diff changeset
311
31
8fd5b5afa24d planemo upload for repository https://github.com/workflow4metabolomics/xcms commit e384d6dd5f410799ec211f73bca0b5d5d7bc651e
lecorguille
parents: 30
diff changeset
312 plot(0, 0, type="n", xlim=xlim/60, ylim=ylim, main=paste("Total Ion Chromatograms \n","TICs_",phenoDataClass[k],"vs",phenoDataClass[l], sep=""), xlab="Retention Time (min)", ylab="TIC")
8fd5b5afa24d planemo upload for repository https://github.com/workflow4metabolomics/xcms commit e384d6dd5f410799ec211f73bca0b5d5d7bc651e
lecorguille
parents: 30
diff changeset
313 colvect <- NULL
6
f00e39a4b0fb planemo upload commit a3229faad6949bbca965d1d7e138cb3c0550780e
lecorguille
parents:
diff changeset
314 for (j in 1:length(classnames[[k]])) {
16
5f61570177e2 planemo upload for repository https://github.com/workflow4metabolomics/xcms commit 22c4e92909198328fc7439ff47e4546a273eb907
lecorguille
parents: 15
diff changeset
315 tic <- TIC[[classnames[[k]][j]]]
31
8fd5b5afa24d planemo upload for repository https://github.com/workflow4metabolomics/xcms commit e384d6dd5f410799ec211f73bca0b5d5d7bc651e
lecorguille
parents: 30
diff changeset
316 # points(tic[,1]/60, tic[,2], col=cols[i], pch=pch[i], type="l")
8fd5b5afa24d planemo upload for repository https://github.com/workflow4metabolomics/xcms commit e384d6dd5f410799ec211f73bca0b5d5d7bc651e
lecorguille
parents: 30
diff changeset
317 points(tic[,1]/60, tic[,2], col=cols[classnames[[k]][j]], pch=pch[classnames[[k]][j]], type="l")
8fd5b5afa24d planemo upload for repository https://github.com/workflow4metabolomics/xcms commit e384d6dd5f410799ec211f73bca0b5d5d7bc651e
lecorguille
parents: 30
diff changeset
318 colvect <- append(colvect,cols[classnames[[k]][j]])
6
f00e39a4b0fb planemo upload commit a3229faad6949bbca965d1d7e138cb3c0550780e
lecorguille
parents:
diff changeset
319 }
f00e39a4b0fb planemo upload commit a3229faad6949bbca965d1d7e138cb3c0550780e
lecorguille
parents:
diff changeset
320 for (j in 1:length(classnames[[l]])) {
31
8fd5b5afa24d planemo upload for repository https://github.com/workflow4metabolomics/xcms commit e384d6dd5f410799ec211f73bca0b5d5d7bc651e
lecorguille
parents: 30
diff changeset
321 # i <- class2names[j]
16
5f61570177e2 planemo upload for repository https://github.com/workflow4metabolomics/xcms commit 22c4e92909198328fc7439ff47e4546a273eb907
lecorguille
parents: 15
diff changeset
322 tic <- TIC[[classnames[[l]][j]]]
31
8fd5b5afa24d planemo upload for repository https://github.com/workflow4metabolomics/xcms commit e384d6dd5f410799ec211f73bca0b5d5d7bc651e
lecorguille
parents: 30
diff changeset
323 points(tic[,1]/60, -tic[,2], col=cols[classnames[[l]][j]], pch=pch[classnames[[l]][j]], type="l")
8fd5b5afa24d planemo upload for repository https://github.com/workflow4metabolomics/xcms commit e384d6dd5f410799ec211f73bca0b5d5d7bc651e
lecorguille
parents: 30
diff changeset
324 colvect <- append(colvect,cols[classnames[[l]][j]])
6
f00e39a4b0fb planemo upload commit a3229faad6949bbca965d1d7e138cb3c0550780e
lecorguille
parents:
diff changeset
325 }
31
8fd5b5afa24d planemo upload for repository https://github.com/workflow4metabolomics/xcms commit e384d6dd5f410799ec211f73bca0b5d5d7bc651e
lecorguille
parents: 30
diff changeset
326 legend("topright",paste(basename(files[c(classnames[[k]],classnames[[l]])])), col=colvect, lty=lty, pch=pch)
16
5f61570177e2 planemo upload for repository https://github.com/workflow4metabolomics/xcms commit 22c4e92909198328fc7439ff47e4546a273eb907
lecorguille
parents: 15
diff changeset
327
5f61570177e2 planemo upload for repository https://github.com/workflow4metabolomics/xcms commit 22c4e92909198328fc7439ff47e4546a273eb907
lecorguille
parents: 15
diff changeset
328 }#end length ==2
6
f00e39a4b0fb planemo upload commit a3229faad6949bbca965d1d7e138cb3c0550780e
lecorguille
parents:
diff changeset
329
16
5f61570177e2 planemo upload for repository https://github.com/workflow4metabolomics/xcms commit 22c4e92909198328fc7439ff47e4546a273eb907
lecorguille
parents: 15
diff changeset
330 #case where only one class
5f61570177e2 planemo upload for repository https://github.com/workflow4metabolomics/xcms commit 22c4e92909198328fc7439ff47e4546a273eb907
lecorguille
parents: 15
diff changeset
331 if (length(phenoDataClass)==1){
31
8fd5b5afa24d planemo upload for repository https://github.com/workflow4metabolomics/xcms commit e384d6dd5f410799ec211f73bca0b5d5d7bc651e
lecorguille
parents: 30
diff changeset
332 k <- 1
8fd5b5afa24d planemo upload for repository https://github.com/workflow4metabolomics/xcms commit e384d6dd5f410799ec211f73bca0b5d5d7bc651e
lecorguille
parents: 30
diff changeset
333 ylim <- range(sapply(TIC, function(x) range(x[,2])))
6
f00e39a4b0fb planemo upload commit a3229faad6949bbca965d1d7e138cb3c0550780e
lecorguille
parents:
diff changeset
334
31
8fd5b5afa24d planemo upload for repository https://github.com/workflow4metabolomics/xcms commit e384d6dd5f410799ec211f73bca0b5d5d7bc651e
lecorguille
parents: 30
diff changeset
335 plot(0, 0, type="n", xlim=xlim/60, ylim=ylim, main=paste("Total Ion Chromatograms \n","TICs_",phenoDataClass[k], sep=""), xlab="Retention Time (min)", ylab="TIC")
8fd5b5afa24d planemo upload for repository https://github.com/workflow4metabolomics/xcms commit e384d6dd5f410799ec211f73bca0b5d5d7bc651e
lecorguille
parents: 30
diff changeset
336 colvect <- NULL
16
5f61570177e2 planemo upload for repository https://github.com/workflow4metabolomics/xcms commit 22c4e92909198328fc7439ff47e4546a273eb907
lecorguille
parents: 15
diff changeset
337 for (j in 1:length(classnames[[k]])) {
5f61570177e2 planemo upload for repository https://github.com/workflow4metabolomics/xcms commit 22c4e92909198328fc7439ff47e4546a273eb907
lecorguille
parents: 15
diff changeset
338 tic <- TIC[[classnames[[k]][j]]]
31
8fd5b5afa24d planemo upload for repository https://github.com/workflow4metabolomics/xcms commit e384d6dd5f410799ec211f73bca0b5d5d7bc651e
lecorguille
parents: 30
diff changeset
339 # points(tic[,1]/60, tic[,2], col=cols[i], pch=pch[i], type="l")
8fd5b5afa24d planemo upload for repository https://github.com/workflow4metabolomics/xcms commit e384d6dd5f410799ec211f73bca0b5d5d7bc651e
lecorguille
parents: 30
diff changeset
340 points(tic[,1]/60, tic[,2], col=cols[classnames[[k]][j]], pch=pch[classnames[[k]][j]], type="l")
8fd5b5afa24d planemo upload for repository https://github.com/workflow4metabolomics/xcms commit e384d6dd5f410799ec211f73bca0b5d5d7bc651e
lecorguille
parents: 30
diff changeset
341 colvect <- append(colvect,cols[classnames[[k]][j]])
16
5f61570177e2 planemo upload for repository https://github.com/workflow4metabolomics/xcms commit 22c4e92909198328fc7439ff47e4546a273eb907
lecorguille
parents: 15
diff changeset
342 }
15
1c78d61fd646 planemo upload for repository https://github.com/workflow4metabolomics/xcms commit 08e7f269a5c59687a7768be8db5fcb4e4d736093
lecorguille
parents: 14
diff changeset
343
31
8fd5b5afa24d planemo upload for repository https://github.com/workflow4metabolomics/xcms commit e384d6dd5f410799ec211f73bca0b5d5d7bc651e
lecorguille
parents: 30
diff changeset
344 legend("topright",paste(basename(files[c(classnames[[k]])])), col=colvect, lty=lty, pch=pch)
16
5f61570177e2 planemo upload for repository https://github.com/workflow4metabolomics/xcms commit 22c4e92909198328fc7439ff47e4546a273eb907
lecorguille
parents: 15
diff changeset
345
5f61570177e2 planemo upload for repository https://github.com/workflow4metabolomics/xcms commit 22c4e92909198328fc7439ff47e4546a273eb907
lecorguille
parents: 15
diff changeset
346 }#end length ==1
15
1c78d61fd646 planemo upload for repository https://github.com/workflow4metabolomics/xcms commit 08e7f269a5c59687a7768be8db5fcb4e4d736093
lecorguille
parents: 14
diff changeset
347
16
5f61570177e2 planemo upload for repository https://github.com/workflow4metabolomics/xcms commit 22c4e92909198328fc7439ff47e4546a273eb907
lecorguille
parents: 15
diff changeset
348 dev.off() #pdf(pdfname,w=16,h=10)
15
1c78d61fd646 planemo upload for repository https://github.com/workflow4metabolomics/xcms commit 08e7f269a5c59687a7768be8db5fcb4e4d736093
lecorguille
parents: 14
diff changeset
349
16
5f61570177e2 planemo upload for repository https://github.com/workflow4metabolomics/xcms commit 22c4e92909198328fc7439ff47e4546a273eb907
lecorguille
parents: 15
diff changeset
350 invisible(TIC)
6
f00e39a4b0fb planemo upload commit a3229faad6949bbca965d1d7e138cb3c0550780e
lecorguille
parents:
diff changeset
351 }
f00e39a4b0fb planemo upload commit a3229faad6949bbca965d1d7e138cb3c0550780e
lecorguille
parents:
diff changeset
352
f00e39a4b0fb planemo upload commit a3229faad6949bbca965d1d7e138cb3c0550780e
lecorguille
parents:
diff changeset
353
f00e39a4b0fb planemo upload commit a3229faad6949bbca965d1d7e138cb3c0550780e
lecorguille
parents:
diff changeset
354
31
8fd5b5afa24d planemo upload for repository https://github.com/workflow4metabolomics/xcms commit e384d6dd5f410799ec211f73bca0b5d5d7bc651e
lecorguille
parents: 30
diff changeset
355 # Get the polarities from all the samples of a condition
6
f00e39a4b0fb planemo upload commit a3229faad6949bbca965d1d7e138cb3c0550780e
lecorguille
parents:
diff changeset
356 #@author Misharl Monsoor misharl.monsoor@sb-roscoff.fr ABiMS TEAM
f00e39a4b0fb planemo upload commit a3229faad6949bbca965d1d7e138cb3c0550780e
lecorguille
parents:
diff changeset
357 #@author Gildas Le Corguille lecorguille@sb-roscoff.fr ABiMS TEAM
31
8fd5b5afa24d planemo upload for repository https://github.com/workflow4metabolomics/xcms commit e384d6dd5f410799ec211f73bca0b5d5d7bc651e
lecorguille
parents: 30
diff changeset
358 getSampleMetadata <- function(xdata=NULL, sampleMetadataOutput="sampleMetadata.tsv") {
16
5f61570177e2 planemo upload for repository https://github.com/workflow4metabolomics/xcms commit 22c4e92909198328fc7439ff47e4546a273eb907
lecorguille
parents: 15
diff changeset
359 cat("Creating the sampleMetadata file...\n")
15
1c78d61fd646 planemo upload for repository https://github.com/workflow4metabolomics/xcms commit 08e7f269a5c59687a7768be8db5fcb4e4d736093
lecorguille
parents: 14
diff changeset
360
16
5f61570177e2 planemo upload for repository https://github.com/workflow4metabolomics/xcms commit 22c4e92909198328fc7439ff47e4546a273eb907
lecorguille
parents: 15
diff changeset
361 #Create the sampleMetada dataframe
31
8fd5b5afa24d planemo upload for repository https://github.com/workflow4metabolomics/xcms commit e384d6dd5f410799ec211f73bca0b5d5d7bc651e
lecorguille
parents: 30
diff changeset
362 sampleMetadata <- xdata@phenoData@data
8fd5b5afa24d planemo upload for repository https://github.com/workflow4metabolomics/xcms commit e384d6dd5f410799ec211f73bca0b5d5d7bc651e
lecorguille
parents: 30
diff changeset
363 rownames(sampleMetadata) <- NULL
8fd5b5afa24d planemo upload for repository https://github.com/workflow4metabolomics/xcms commit e384d6dd5f410799ec211f73bca0b5d5d7bc651e
lecorguille
parents: 30
diff changeset
364 colnames(sampleMetadata) <- c("sampleMetadata", "class")
8fd5b5afa24d planemo upload for repository https://github.com/workflow4metabolomics/xcms commit e384d6dd5f410799ec211f73bca0b5d5d7bc651e
lecorguille
parents: 30
diff changeset
365
8fd5b5afa24d planemo upload for repository https://github.com/workflow4metabolomics/xcms commit e384d6dd5f410799ec211f73bca0b5d5d7bc651e
lecorguille
parents: 30
diff changeset
366 sampleNamesOrigin <- sampleMetadata$sampleMetadata
8fd5b5afa24d planemo upload for repository https://github.com/workflow4metabolomics/xcms commit e384d6dd5f410799ec211f73bca0b5d5d7bc651e
lecorguille
parents: 30
diff changeset
367 sampleNamesMakeNames <- make.names(sampleNamesOrigin)
6
f00e39a4b0fb planemo upload commit a3229faad6949bbca965d1d7e138cb3c0550780e
lecorguille
parents:
diff changeset
368
16
5f61570177e2 planemo upload for repository https://github.com/workflow4metabolomics/xcms commit 22c4e92909198328fc7439ff47e4546a273eb907
lecorguille
parents: 15
diff changeset
369 if (any(duplicated(sampleNamesMakeNames))) {
5f61570177e2 planemo upload for repository https://github.com/workflow4metabolomics/xcms commit 22c4e92909198328fc7439ff47e4546a273eb907
lecorguille
parents: 15
diff changeset
370 write("\n\nERROR: Usually, R has trouble to deal with special characters in its column names, so it rename them using make.names().\nIn your case, at least two columns after the renaming obtain the same name, thus XCMS will collapse those columns per name.", stderr())
5f61570177e2 planemo upload for repository https://github.com/workflow4metabolomics/xcms commit 22c4e92909198328fc7439ff47e4546a273eb907
lecorguille
parents: 15
diff changeset
371 for (sampleName in sampleNamesOrigin) {
5f61570177e2 planemo upload for repository https://github.com/workflow4metabolomics/xcms commit 22c4e92909198328fc7439ff47e4546a273eb907
lecorguille
parents: 15
diff changeset
372 write(paste(sampleName,"\t->\t",make.names(sampleName)),stderr())
5f61570177e2 planemo upload for repository https://github.com/workflow4metabolomics/xcms commit 22c4e92909198328fc7439ff47e4546a273eb907
lecorguille
parents: 15
diff changeset
373 }
5f61570177e2 planemo upload for repository https://github.com/workflow4metabolomics/xcms commit 22c4e92909198328fc7439ff47e4546a273eb907
lecorguille
parents: 15
diff changeset
374 stop("\n\nERROR: One or more of your files will not be import by xcmsSet. It may due to bad characters in their filenames.")
5f61570177e2 planemo upload for repository https://github.com/workflow4metabolomics/xcms commit 22c4e92909198328fc7439ff47e4546a273eb907
lecorguille
parents: 15
diff changeset
375 }
6
f00e39a4b0fb planemo upload commit a3229faad6949bbca965d1d7e138cb3c0550780e
lecorguille
parents:
diff changeset
376
16
5f61570177e2 planemo upload for repository https://github.com/workflow4metabolomics/xcms commit 22c4e92909198328fc7439ff47e4546a273eb907
lecorguille
parents: 15
diff changeset
377 if (!all(sampleNamesOrigin == sampleNamesMakeNames)) {
5f61570177e2 planemo upload for repository https://github.com/workflow4metabolomics/xcms commit 22c4e92909198328fc7439ff47e4546a273eb907
lecorguille
parents: 15
diff changeset
378 cat("\n\nWARNING: Usually, R has trouble to deal with special characters in its column names, so it rename them using make.names()\nIn your case, one or more sample names will be renamed in the sampleMetadata and dataMatrix files:\n")
5f61570177e2 planemo upload for repository https://github.com/workflow4metabolomics/xcms commit 22c4e92909198328fc7439ff47e4546a273eb907
lecorguille
parents: 15
diff changeset
379 for (sampleName in sampleNamesOrigin) {
5f61570177e2 planemo upload for repository https://github.com/workflow4metabolomics/xcms commit 22c4e92909198328fc7439ff47e4546a273eb907
lecorguille
parents: 15
diff changeset
380 cat(paste(sampleName,"\t->\t",make.names(sampleName),"\n"))
5f61570177e2 planemo upload for repository https://github.com/workflow4metabolomics/xcms commit 22c4e92909198328fc7439ff47e4546a273eb907
lecorguille
parents: 15
diff changeset
381 }
6
f00e39a4b0fb planemo upload commit a3229faad6949bbca965d1d7e138cb3c0550780e
lecorguille
parents:
diff changeset
382 }
f00e39a4b0fb planemo upload commit a3229faad6949bbca965d1d7e138cb3c0550780e
lecorguille
parents:
diff changeset
383
31
8fd5b5afa24d planemo upload for repository https://github.com/workflow4metabolomics/xcms commit e384d6dd5f410799ec211f73bca0b5d5d7bc651e
lecorguille
parents: 30
diff changeset
384 sampleMetadata$sampleMetadata <- sampleNamesMakeNames
8fd5b5afa24d planemo upload for repository https://github.com/workflow4metabolomics/xcms commit e384d6dd5f410799ec211f73bca0b5d5d7bc651e
lecorguille
parents: 30
diff changeset
385
16
5f61570177e2 planemo upload for repository https://github.com/workflow4metabolomics/xcms commit 22c4e92909198328fc7439ff47e4546a273eb907
lecorguille
parents: 15
diff changeset
386
5f61570177e2 planemo upload for repository https://github.com/workflow4metabolomics/xcms commit 22c4e92909198328fc7439ff47e4546a273eb907
lecorguille
parents: 15
diff changeset
387 #For each sample file, the following actions are done
31
8fd5b5afa24d planemo upload for repository https://github.com/workflow4metabolomics/xcms commit e384d6dd5f410799ec211f73bca0b5d5d7bc651e
lecorguille
parents: 30
diff changeset
388 for (fileIdx in 1:length(fileNames(xdata))) {
16
5f61570177e2 planemo upload for repository https://github.com/workflow4metabolomics/xcms commit 22c4e92909198328fc7439ff47e4546a273eb907
lecorguille
parents: 15
diff changeset
389 #Check if the file is in the CDF format
31
8fd5b5afa24d planemo upload for repository https://github.com/workflow4metabolomics/xcms commit e384d6dd5f410799ec211f73bca0b5d5d7bc651e
lecorguille
parents: 30
diff changeset
390 if (!mzR:::netCDFIsFile(fileNames(xdata))) {
16
5f61570177e2 planemo upload for repository https://github.com/workflow4metabolomics/xcms commit 22c4e92909198328fc7439ff47e4546a273eb907
lecorguille
parents: 15
diff changeset
391
5f61570177e2 planemo upload for repository https://github.com/workflow4metabolomics/xcms commit 22c4e92909198328fc7439ff47e4546a273eb907
lecorguille
parents: 15
diff changeset
392 # If the column isn't exist, with add one filled with NA
31
8fd5b5afa24d planemo upload for repository https://github.com/workflow4metabolomics/xcms commit e384d6dd5f410799ec211f73bca0b5d5d7bc651e
lecorguille
parents: 30
diff changeset
393 if (is.null(sampleMetadata$polarity)) sampleMetadata$polarity <- NA
6
f00e39a4b0fb planemo upload commit a3229faad6949bbca965d1d7e138cb3c0550780e
lecorguille
parents:
diff changeset
394
16
5f61570177e2 planemo upload for repository https://github.com/workflow4metabolomics/xcms commit 22c4e92909198328fc7439ff47e4546a273eb907
lecorguille
parents: 15
diff changeset
395 #Extract the polarity (a list of polarities)
31
8fd5b5afa24d planemo upload for repository https://github.com/workflow4metabolomics/xcms commit e384d6dd5f410799ec211f73bca0b5d5d7bc651e
lecorguille
parents: 30
diff changeset
396 polarity <- fData(xdata)[fData(xdata)$fileIdx == fileIdx,"polarity"]
16
5f61570177e2 planemo upload for repository https://github.com/workflow4metabolomics/xcms commit 22c4e92909198328fc7439ff47e4546a273eb907
lecorguille
parents: 15
diff changeset
397 #Verify if all the scans have the same polarity
31
8fd5b5afa24d planemo upload for repository https://github.com/workflow4metabolomics/xcms commit e384d6dd5f410799ec211f73bca0b5d5d7bc651e
lecorguille
parents: 30
diff changeset
398 uniq_list <- unique(polarity)
16
5f61570177e2 planemo upload for repository https://github.com/workflow4metabolomics/xcms commit 22c4e92909198328fc7439ff47e4546a273eb907
lecorguille
parents: 15
diff changeset
399 if (length(uniq_list)>1){
31
8fd5b5afa24d planemo upload for repository https://github.com/workflow4metabolomics/xcms commit e384d6dd5f410799ec211f73bca0b5d5d7bc651e
lecorguille
parents: 30
diff changeset
400 polarity <- "mixed"
16
5f61570177e2 planemo upload for repository https://github.com/workflow4metabolomics/xcms commit 22c4e92909198328fc7439ff47e4546a273eb907
lecorguille
parents: 15
diff changeset
401 } else {
31
8fd5b5afa24d planemo upload for repository https://github.com/workflow4metabolomics/xcms commit e384d6dd5f410799ec211f73bca0b5d5d7bc651e
lecorguille
parents: 30
diff changeset
402 polarity <- as.character(uniq_list)
16
5f61570177e2 planemo upload for repository https://github.com/workflow4metabolomics/xcms commit 22c4e92909198328fc7439ff47e4546a273eb907
lecorguille
parents: 15
diff changeset
403 }
6
f00e39a4b0fb planemo upload commit a3229faad6949bbca965d1d7e138cb3c0550780e
lecorguille
parents:
diff changeset
404
16
5f61570177e2 planemo upload for repository https://github.com/workflow4metabolomics/xcms commit 22c4e92909198328fc7439ff47e4546a273eb907
lecorguille
parents: 15
diff changeset
405 #Set the polarity attribute
31
8fd5b5afa24d planemo upload for repository https://github.com/workflow4metabolomics/xcms commit e384d6dd5f410799ec211f73bca0b5d5d7bc651e
lecorguille
parents: 30
diff changeset
406 sampleMetadata$polarity[fileIdx] <- polarity
16
5f61570177e2 planemo upload for repository https://github.com/workflow4metabolomics/xcms commit 22c4e92909198328fc7439ff47e4546a273eb907
lecorguille
parents: 15
diff changeset
407 }
5f61570177e2 planemo upload for repository https://github.com/workflow4metabolomics/xcms commit 22c4e92909198328fc7439ff47e4546a273eb907
lecorguille
parents: 15
diff changeset
408
5f61570177e2 planemo upload for repository https://github.com/workflow4metabolomics/xcms commit 22c4e92909198328fc7439ff47e4546a273eb907
lecorguille
parents: 15
diff changeset
409 }
5f61570177e2 planemo upload for repository https://github.com/workflow4metabolomics/xcms commit 22c4e92909198328fc7439ff47e4546a273eb907
lecorguille
parents: 15
diff changeset
410
5f61570177e2 planemo upload for repository https://github.com/workflow4metabolomics/xcms commit 22c4e92909198328fc7439ff47e4546a273eb907
lecorguille
parents: 15
diff changeset
411 write.table(sampleMetadata, sep="\t", quote=FALSE, row.names=FALSE, file=sampleMetadataOutput)
5f61570177e2 planemo upload for repository https://github.com/workflow4metabolomics/xcms commit 22c4e92909198328fc7439ff47e4546a273eb907
lecorguille
parents: 15
diff changeset
412
31
8fd5b5afa24d planemo upload for repository https://github.com/workflow4metabolomics/xcms commit e384d6dd5f410799ec211f73bca0b5d5d7bc651e
lecorguille
parents: 30
diff changeset
413 return(list("sampleNamesOrigin"=sampleNamesOrigin, "sampleNamesMakeNames"=sampleNamesMakeNames))
6
f00e39a4b0fb planemo upload commit a3229faad6949bbca965d1d7e138cb3c0550780e
lecorguille
parents:
diff changeset
414
f00e39a4b0fb planemo upload commit a3229faad6949bbca965d1d7e138cb3c0550780e
lecorguille
parents:
diff changeset
415 }
f00e39a4b0fb planemo upload commit a3229faad6949bbca965d1d7e138cb3c0550780e
lecorguille
parents:
diff changeset
416
f00e39a4b0fb planemo upload commit a3229faad6949bbca965d1d7e138cb3c0550780e
lecorguille
parents:
diff changeset
417
31
8fd5b5afa24d planemo upload for repository https://github.com/workflow4metabolomics/xcms commit e384d6dd5f410799ec211f73bca0b5d5d7bc651e
lecorguille
parents: 30
diff changeset
418 # This function check if xcms will found all the files
6
f00e39a4b0fb planemo upload commit a3229faad6949bbca965d1d7e138cb3c0550780e
lecorguille
parents:
diff changeset
419 #@author Gildas Le Corguille lecorguille@sb-roscoff.fr ABiMS TEAM
f00e39a4b0fb planemo upload commit a3229faad6949bbca965d1d7e138cb3c0550780e
lecorguille
parents:
diff changeset
420 checkFilesCompatibilityWithXcms <- function(directory) {
16
5f61570177e2 planemo upload for repository https://github.com/workflow4metabolomics/xcms commit 22c4e92909198328fc7439ff47e4546a273eb907
lecorguille
parents: 15
diff changeset
421 cat("Checking files filenames compatibilities with xmcs...\n")
5f61570177e2 planemo upload for repository https://github.com/workflow4metabolomics/xcms commit 22c4e92909198328fc7439ff47e4546a273eb907
lecorguille
parents: 15
diff changeset
422 # WHAT XCMS WILL FIND
5f61570177e2 planemo upload for repository https://github.com/workflow4metabolomics/xcms commit 22c4e92909198328fc7439ff47e4546a273eb907
lecorguille
parents: 15
diff changeset
423 filepattern <- c("[Cc][Dd][Ff]", "[Nn][Cc]", "([Mm][Zz])?[Xx][Mm][Ll]","[Mm][Zz][Dd][Aa][Tt][Aa]", "[Mm][Zz][Mm][Ll]")
31
8fd5b5afa24d planemo upload for repository https://github.com/workflow4metabolomics/xcms commit e384d6dd5f410799ec211f73bca0b5d5d7bc651e
lecorguille
parents: 30
diff changeset
424 filepattern <- paste(paste("\\.", filepattern, "$", sep=""),collapse="|")
16
5f61570177e2 planemo upload for repository https://github.com/workflow4metabolomics/xcms commit 22c4e92909198328fc7439ff47e4546a273eb907
lecorguille
parents: 15
diff changeset
425 info <- file.info(directory)
31
8fd5b5afa24d planemo upload for repository https://github.com/workflow4metabolomics/xcms commit e384d6dd5f410799ec211f73bca0b5d5d7bc651e
lecorguille
parents: 30
diff changeset
426 listed <- list.files(directory[info$isdir], pattern=filepattern, recursive=TRUE, full.names=TRUE)
16
5f61570177e2 planemo upload for repository https://github.com/workflow4metabolomics/xcms commit 22c4e92909198328fc7439ff47e4546a273eb907
lecorguille
parents: 15
diff changeset
427 files <- c(directory[!info$isdir], listed)
5f61570177e2 planemo upload for repository https://github.com/workflow4metabolomics/xcms commit 22c4e92909198328fc7439ff47e4546a273eb907
lecorguille
parents: 15
diff changeset
428 files_abs <- file.path(getwd(), files)
5f61570177e2 planemo upload for repository https://github.com/workflow4metabolomics/xcms commit 22c4e92909198328fc7439ff47e4546a273eb907
lecorguille
parents: 15
diff changeset
429 exists <- file.exists(files_abs)
5f61570177e2 planemo upload for repository https://github.com/workflow4metabolomics/xcms commit 22c4e92909198328fc7439ff47e4546a273eb907
lecorguille
parents: 15
diff changeset
430 files[exists] <- files_abs[exists]
5f61570177e2 planemo upload for repository https://github.com/workflow4metabolomics/xcms commit 22c4e92909198328fc7439ff47e4546a273eb907
lecorguille
parents: 15
diff changeset
431 files[exists] <- sub("//","/",files[exists])
6
f00e39a4b0fb planemo upload commit a3229faad6949bbca965d1d7e138cb3c0550780e
lecorguille
parents:
diff changeset
432
16
5f61570177e2 planemo upload for repository https://github.com/workflow4metabolomics/xcms commit 22c4e92909198328fc7439ff47e4546a273eb907
lecorguille
parents: 15
diff changeset
433 # WHAT IS ON THE FILESYSTEM
31
8fd5b5afa24d planemo upload for repository https://github.com/workflow4metabolomics/xcms commit e384d6dd5f410799ec211f73bca0b5d5d7bc651e
lecorguille
parents: 30
diff changeset
434 filesystem_filepaths <- system(paste("find $PWD/",directory," -not -name '\\.*' -not -path '*conda-env*' -type f -name \"*\"", sep=""), intern=T)
8fd5b5afa24d planemo upload for repository https://github.com/workflow4metabolomics/xcms commit e384d6dd5f410799ec211f73bca0b5d5d7bc651e
lecorguille
parents: 30
diff changeset
435 filesystem_filepaths <- filesystem_filepaths[grep(filepattern, filesystem_filepaths, perl=T)]
6
f00e39a4b0fb planemo upload commit a3229faad6949bbca965d1d7e138cb3c0550780e
lecorguille
parents:
diff changeset
436
16
5f61570177e2 planemo upload for repository https://github.com/workflow4metabolomics/xcms commit 22c4e92909198328fc7439ff47e4546a273eb907
lecorguille
parents: 15
diff changeset
437 # COMPARISON
5f61570177e2 planemo upload for repository https://github.com/workflow4metabolomics/xcms commit 22c4e92909198328fc7439ff47e4546a273eb907
lecorguille
parents: 15
diff changeset
438 if (!is.na(table(filesystem_filepaths %in% files)["FALSE"])) {
5f61570177e2 planemo upload for repository https://github.com/workflow4metabolomics/xcms commit 22c4e92909198328fc7439ff47e4546a273eb907
lecorguille
parents: 15
diff changeset
439 write("\n\nERROR: List of the files which will not be imported by xcmsSet",stderr())
5f61570177e2 planemo upload for repository https://github.com/workflow4metabolomics/xcms commit 22c4e92909198328fc7439ff47e4546a273eb907
lecorguille
parents: 15
diff changeset
440 write(filesystem_filepaths[!(filesystem_filepaths %in% files)],stderr())
5f61570177e2 planemo upload for repository https://github.com/workflow4metabolomics/xcms commit 22c4e92909198328fc7439ff47e4546a273eb907
lecorguille
parents: 15
diff changeset
441 stop("\n\nERROR: One or more of your files will not be import by xcmsSet. It may due to bad characters in their filenames.")
5f61570177e2 planemo upload for repository https://github.com/workflow4metabolomics/xcms commit 22c4e92909198328fc7439ff47e4546a273eb907
lecorguille
parents: 15
diff changeset
442 }
6
f00e39a4b0fb planemo upload commit a3229faad6949bbca965d1d7e138cb3c0550780e
lecorguille
parents:
diff changeset
443 }
f00e39a4b0fb planemo upload commit a3229faad6949bbca965d1d7e138cb3c0550780e
lecorguille
parents:
diff changeset
444
f00e39a4b0fb planemo upload commit a3229faad6949bbca965d1d7e138cb3c0550780e
lecorguille
parents:
diff changeset
445
31
8fd5b5afa24d planemo upload for repository https://github.com/workflow4metabolomics/xcms commit e384d6dd5f410799ec211f73bca0b5d5d7bc651e
lecorguille
parents: 30
diff changeset
446 #This function list the compatible files within the directory as xcms did
8fd5b5afa24d planemo upload for repository https://github.com/workflow4metabolomics/xcms commit e384d6dd5f410799ec211f73bca0b5d5d7bc651e
lecorguille
parents: 30
diff changeset
447 #@author Gildas Le Corguille lecorguille@sb-roscoff.fr ABiMS TEAM
8fd5b5afa24d planemo upload for repository https://github.com/workflow4metabolomics/xcms commit e384d6dd5f410799ec211f73bca0b5d5d7bc651e
lecorguille
parents: 30
diff changeset
448 getMSFiles <- function (directory) {
8fd5b5afa24d planemo upload for repository https://github.com/workflow4metabolomics/xcms commit e384d6dd5f410799ec211f73bca0b5d5d7bc651e
lecorguille
parents: 30
diff changeset
449 filepattern <- c("[Cc][Dd][Ff]", "[Nn][Cc]", "([Mm][Zz])?[Xx][Mm][Ll]","[Mm][Zz][Dd][Aa][Tt][Aa]", "[Mm][Zz][Mm][Ll]")
8fd5b5afa24d planemo upload for repository https://github.com/workflow4metabolomics/xcms commit e384d6dd5f410799ec211f73bca0b5d5d7bc651e
lecorguille
parents: 30
diff changeset
450 filepattern <- paste(paste("\\.", filepattern, "$", sep=""),collapse="|")
8fd5b5afa24d planemo upload for repository https://github.com/workflow4metabolomics/xcms commit e384d6dd5f410799ec211f73bca0b5d5d7bc651e
lecorguille
parents: 30
diff changeset
451 info <- file.info(directory)
8fd5b5afa24d planemo upload for repository https://github.com/workflow4metabolomics/xcms commit e384d6dd5f410799ec211f73bca0b5d5d7bc651e
lecorguille
parents: 30
diff changeset
452 listed <- list.files(directory[info$isdir], pattern=filepattern,recursive=TRUE, full.names=TRUE)
8fd5b5afa24d planemo upload for repository https://github.com/workflow4metabolomics/xcms commit e384d6dd5f410799ec211f73bca0b5d5d7bc651e
lecorguille
parents: 30
diff changeset
453 files <- c(directory[!info$isdir], listed)
8fd5b5afa24d planemo upload for repository https://github.com/workflow4metabolomics/xcms commit e384d6dd5f410799ec211f73bca0b5d5d7bc651e
lecorguille
parents: 30
diff changeset
454 exists <- file.exists(files)
8fd5b5afa24d planemo upload for repository https://github.com/workflow4metabolomics/xcms commit e384d6dd5f410799ec211f73bca0b5d5d7bc651e
lecorguille
parents: 30
diff changeset
455 files <- files[exists]
8fd5b5afa24d planemo upload for repository https://github.com/workflow4metabolomics/xcms commit e384d6dd5f410799ec211f73bca0b5d5d7bc651e
lecorguille
parents: 30
diff changeset
456 return(files)
8fd5b5afa24d planemo upload for repository https://github.com/workflow4metabolomics/xcms commit e384d6dd5f410799ec211f73bca0b5d5d7bc651e
lecorguille
parents: 30
diff changeset
457 }
6
f00e39a4b0fb planemo upload commit a3229faad6949bbca965d1d7e138cb3c0550780e
lecorguille
parents:
diff changeset
458
31
8fd5b5afa24d planemo upload for repository https://github.com/workflow4metabolomics/xcms commit e384d6dd5f410799ec211f73bca0b5d5d7bc651e
lecorguille
parents: 30
diff changeset
459 # This function check if XML contains special caracters. It also checks integrity and completness.
6
f00e39a4b0fb planemo upload commit a3229faad6949bbca965d1d7e138cb3c0550780e
lecorguille
parents:
diff changeset
460 #@author Misharl Monsoor misharl.monsoor@sb-roscoff.fr ABiMS TEAM
f00e39a4b0fb planemo upload commit a3229faad6949bbca965d1d7e138cb3c0550780e
lecorguille
parents:
diff changeset
461 checkXmlStructure <- function (directory) {
16
5f61570177e2 planemo upload for repository https://github.com/workflow4metabolomics/xcms commit 22c4e92909198328fc7439ff47e4546a273eb907
lecorguille
parents: 15
diff changeset
462 cat("Checking XML structure...\n")
6
f00e39a4b0fb planemo upload commit a3229faad6949bbca965d1d7e138cb3c0550780e
lecorguille
parents:
diff changeset
463
31
8fd5b5afa24d planemo upload for repository https://github.com/workflow4metabolomics/xcms commit e384d6dd5f410799ec211f73bca0b5d5d7bc651e
lecorguille
parents: 30
diff changeset
464 cmd <- paste("IFS=$'\n'; for xml in $(find",directory,"-not -name '\\.*' -not -path '*conda-env*' -type f -iname '*.*ml*'); do if [ $(xmllint --nonet --noout \"$xml\" 2> /dev/null; echo $?) -gt 0 ]; then echo $xml;fi; done;")
8fd5b5afa24d planemo upload for repository https://github.com/workflow4metabolomics/xcms commit e384d6dd5f410799ec211f73bca0b5d5d7bc651e
lecorguille
parents: 30
diff changeset
465 capture <- system(cmd, intern=TRUE)
6
f00e39a4b0fb planemo upload commit a3229faad6949bbca965d1d7e138cb3c0550780e
lecorguille
parents:
diff changeset
466
16
5f61570177e2 planemo upload for repository https://github.com/workflow4metabolomics/xcms commit 22c4e92909198328fc7439ff47e4546a273eb907
lecorguille
parents: 15
diff changeset
467 if (length(capture)>0){
5f61570177e2 planemo upload for repository https://github.com/workflow4metabolomics/xcms commit 22c4e92909198328fc7439ff47e4546a273eb907
lecorguille
parents: 15
diff changeset
468 #message=paste("The following mzXML or mzML file is incorrect, please check these files first:",capture)
5f61570177e2 planemo upload for repository https://github.com/workflow4metabolomics/xcms commit 22c4e92909198328fc7439ff47e4546a273eb907
lecorguille
parents: 15
diff changeset
469 write("\n\nERROR: The following mzXML or mzML file(s) are incorrect, please check these files first:", stderr())
5f61570177e2 planemo upload for repository https://github.com/workflow4metabolomics/xcms commit 22c4e92909198328fc7439ff47e4546a273eb907
lecorguille
parents: 15
diff changeset
470 write(capture, stderr())
5f61570177e2 planemo upload for repository https://github.com/workflow4metabolomics/xcms commit 22c4e92909198328fc7439ff47e4546a273eb907
lecorguille
parents: 15
diff changeset
471 stop("ERROR: xcmsSet cannot continue with incorrect mzXML or mzML files")
5f61570177e2 planemo upload for repository https://github.com/workflow4metabolomics/xcms commit 22c4e92909198328fc7439ff47e4546a273eb907
lecorguille
parents: 15
diff changeset
472 }
15
1c78d61fd646 planemo upload for repository https://github.com/workflow4metabolomics/xcms commit 08e7f269a5c59687a7768be8db5fcb4e4d736093
lecorguille
parents: 14
diff changeset
473
6
f00e39a4b0fb planemo upload commit a3229faad6949bbca965d1d7e138cb3c0550780e
lecorguille
parents:
diff changeset
474 }
f00e39a4b0fb planemo upload commit a3229faad6949bbca965d1d7e138cb3c0550780e
lecorguille
parents:
diff changeset
475
f00e39a4b0fb planemo upload commit a3229faad6949bbca965d1d7e138cb3c0550780e
lecorguille
parents:
diff changeset
476
31
8fd5b5afa24d planemo upload for repository https://github.com/workflow4metabolomics/xcms commit e384d6dd5f410799ec211f73bca0b5d5d7bc651e
lecorguille
parents: 30
diff changeset
477 # This function check if XML contain special characters
6
f00e39a4b0fb planemo upload commit a3229faad6949bbca965d1d7e138cb3c0550780e
lecorguille
parents:
diff changeset
478 #@author Misharl Monsoor misharl.monsoor@sb-roscoff.fr ABiMS TEAM
f00e39a4b0fb planemo upload commit a3229faad6949bbca965d1d7e138cb3c0550780e
lecorguille
parents:
diff changeset
479 deleteXmlBadCharacters<- function (directory) {
16
5f61570177e2 planemo upload for repository https://github.com/workflow4metabolomics/xcms commit 22c4e92909198328fc7439ff47e4546a273eb907
lecorguille
parents: 15
diff changeset
480 cat("Checking Non ASCII characters in the XML...\n")
6
f00e39a4b0fb planemo upload commit a3229faad6949bbca965d1d7e138cb3c0550780e
lecorguille
parents:
diff changeset
481
31
8fd5b5afa24d planemo upload for repository https://github.com/workflow4metabolomics/xcms commit e384d6dd5f410799ec211f73bca0b5d5d7bc651e
lecorguille
parents: 30
diff changeset
482 processed <- F
8fd5b5afa24d planemo upload for repository https://github.com/workflow4metabolomics/xcms commit e384d6dd5f410799ec211f73bca0b5d5d7bc651e
lecorguille
parents: 30
diff changeset
483 l <- system( paste("find",directory, "-not -name '\\.*' -not -path '*conda-env*' -type f -iname '*.*ml*'"), intern=TRUE)
16
5f61570177e2 planemo upload for repository https://github.com/workflow4metabolomics/xcms commit 22c4e92909198328fc7439ff47e4546a273eb907
lecorguille
parents: 15
diff changeset
484 for (i in l){
31
8fd5b5afa24d planemo upload for repository https://github.com/workflow4metabolomics/xcms commit e384d6dd5f410799ec211f73bca0b5d5d7bc651e
lecorguille
parents: 30
diff changeset
485 cmd <- paste("LC_ALL=C grep '[^ -~]' \"", i, "\"", sep="")
8fd5b5afa24d planemo upload for repository https://github.com/workflow4metabolomics/xcms commit e384d6dd5f410799ec211f73bca0b5d5d7bc651e
lecorguille
parents: 30
diff changeset
486 capture <- suppressWarnings(system(cmd, intern=TRUE))
16
5f61570177e2 planemo upload for repository https://github.com/workflow4metabolomics/xcms commit 22c4e92909198328fc7439ff47e4546a273eb907
lecorguille
parents: 15
diff changeset
487 if (length(capture)>0){
31
8fd5b5afa24d planemo upload for repository https://github.com/workflow4metabolomics/xcms commit e384d6dd5f410799ec211f73bca0b5d5d7bc651e
lecorguille
parents: 30
diff changeset
488 cmd <- paste("perl -i -pe 's/[^[:ascii:]]//g;'",i)
16
5f61570177e2 planemo upload for repository https://github.com/workflow4metabolomics/xcms commit 22c4e92909198328fc7439ff47e4546a273eb907
lecorguille
parents: 15
diff changeset
489 print( paste("WARNING: Non ASCII characters have been removed from the ",i,"file") )
31
8fd5b5afa24d planemo upload for repository https://github.com/workflow4metabolomics/xcms commit e384d6dd5f410799ec211f73bca0b5d5d7bc651e
lecorguille
parents: 30
diff changeset
490 c <- system(cmd, intern=TRUE)
8fd5b5afa24d planemo upload for repository https://github.com/workflow4metabolomics/xcms commit e384d6dd5f410799ec211f73bca0b5d5d7bc651e
lecorguille
parents: 30
diff changeset
491 capture <- ""
8fd5b5afa24d planemo upload for repository https://github.com/workflow4metabolomics/xcms commit e384d6dd5f410799ec211f73bca0b5d5d7bc651e
lecorguille
parents: 30
diff changeset
492 processed <- T
16
5f61570177e2 planemo upload for repository https://github.com/workflow4metabolomics/xcms commit 22c4e92909198328fc7439ff47e4546a273eb907
lecorguille
parents: 15
diff changeset
493 }
6
f00e39a4b0fb planemo upload commit a3229faad6949bbca965d1d7e138cb3c0550780e
lecorguille
parents:
diff changeset
494 }
16
5f61570177e2 planemo upload for repository https://github.com/workflow4metabolomics/xcms commit 22c4e92909198328fc7439ff47e4546a273eb907
lecorguille
parents: 15
diff changeset
495 if (processed) cat("\n\n")
5f61570177e2 planemo upload for repository https://github.com/workflow4metabolomics/xcms commit 22c4e92909198328fc7439ff47e4546a273eb907
lecorguille
parents: 15
diff changeset
496 return(processed)
6
f00e39a4b0fb planemo upload commit a3229faad6949bbca965d1d7e138cb3c0550780e
lecorguille
parents:
diff changeset
497 }
f00e39a4b0fb planemo upload commit a3229faad6949bbca965d1d7e138cb3c0550780e
lecorguille
parents:
diff changeset
498
f00e39a4b0fb planemo upload commit a3229faad6949bbca965d1d7e138cb3c0550780e
lecorguille
parents:
diff changeset
499
31
8fd5b5afa24d planemo upload for repository https://github.com/workflow4metabolomics/xcms commit e384d6dd5f410799ec211f73bca0b5d5d7bc651e
lecorguille
parents: 30
diff changeset
500 # This function will compute MD5 checksum to check the data integrity
6
f00e39a4b0fb planemo upload commit a3229faad6949bbca965d1d7e138cb3c0550780e
lecorguille
parents:
diff changeset
501 #@author Gildas Le Corguille lecorguille@sb-roscoff.fr
f00e39a4b0fb planemo upload commit a3229faad6949bbca965d1d7e138cb3c0550780e
lecorguille
parents:
diff changeset
502 getMd5sum <- function (directory) {
16
5f61570177e2 planemo upload for repository https://github.com/workflow4metabolomics/xcms commit 22c4e92909198328fc7439ff47e4546a273eb907
lecorguille
parents: 15
diff changeset
503 cat("Compute md5 checksum...\n")
5f61570177e2 planemo upload for repository https://github.com/workflow4metabolomics/xcms commit 22c4e92909198328fc7439ff47e4546a273eb907
lecorguille
parents: 15
diff changeset
504 # WHAT XCMS WILL FIND
5f61570177e2 planemo upload for repository https://github.com/workflow4metabolomics/xcms commit 22c4e92909198328fc7439ff47e4546a273eb907
lecorguille
parents: 15
diff changeset
505 filepattern <- c("[Cc][Dd][Ff]", "[Nn][Cc]", "([Mm][Zz])?[Xx][Mm][Ll]","[Mm][Zz][Dd][Aa][Tt][Aa]", "[Mm][Zz][Mm][Ll]")
31
8fd5b5afa24d planemo upload for repository https://github.com/workflow4metabolomics/xcms commit e384d6dd5f410799ec211f73bca0b5d5d7bc651e
lecorguille
parents: 30
diff changeset
506 filepattern <- paste(paste("\\.", filepattern, "$", sep=""),collapse="|")
16
5f61570177e2 planemo upload for repository https://github.com/workflow4metabolomics/xcms commit 22c4e92909198328fc7439ff47e4546a273eb907
lecorguille
parents: 15
diff changeset
507 info <- file.info(directory)
31
8fd5b5afa24d planemo upload for repository https://github.com/workflow4metabolomics/xcms commit e384d6dd5f410799ec211f73bca0b5d5d7bc651e
lecorguille
parents: 30
diff changeset
508 listed <- list.files(directory[info$isdir], pattern=filepattern, recursive=TRUE, full.names=TRUE)
16
5f61570177e2 planemo upload for repository https://github.com/workflow4metabolomics/xcms commit 22c4e92909198328fc7439ff47e4546a273eb907
lecorguille
parents: 15
diff changeset
509 files <- c(directory[!info$isdir], listed)
5f61570177e2 planemo upload for repository https://github.com/workflow4metabolomics/xcms commit 22c4e92909198328fc7439ff47e4546a273eb907
lecorguille
parents: 15
diff changeset
510 exists <- file.exists(files)
5f61570177e2 planemo upload for repository https://github.com/workflow4metabolomics/xcms commit 22c4e92909198328fc7439ff47e4546a273eb907
lecorguille
parents: 15
diff changeset
511 files <- files[exists]
6
f00e39a4b0fb planemo upload commit a3229faad6949bbca965d1d7e138cb3c0550780e
lecorguille
parents:
diff changeset
512
16
5f61570177e2 planemo upload for repository https://github.com/workflow4metabolomics/xcms commit 22c4e92909198328fc7439ff47e4546a273eb907
lecorguille
parents: 15
diff changeset
513 library(tools)
6
f00e39a4b0fb planemo upload commit a3229faad6949bbca965d1d7e138cb3c0550780e
lecorguille
parents:
diff changeset
514
16
5f61570177e2 planemo upload for repository https://github.com/workflow4metabolomics/xcms commit 22c4e92909198328fc7439ff47e4546a273eb907
lecorguille
parents: 15
diff changeset
515 #cat("\n\n")
6
f00e39a4b0fb planemo upload commit a3229faad6949bbca965d1d7e138cb3c0550780e
lecorguille
parents:
diff changeset
516
16
5f61570177e2 planemo upload for repository https://github.com/workflow4metabolomics/xcms commit 22c4e92909198328fc7439ff47e4546a273eb907
lecorguille
parents: 15
diff changeset
517 return(as.matrix(md5sum(files)))
6
f00e39a4b0fb planemo upload commit a3229faad6949bbca965d1d7e138cb3c0550780e
lecorguille
parents:
diff changeset
518 }
23
7e289788d37d planemo upload for repository https://github.com/workflow4metabolomics/xcms commit 87dc789d7cd70a3733a1ad0b5a427f4d5905795d
lecorguille
parents: 20
diff changeset
519
7e289788d37d planemo upload for repository https://github.com/workflow4metabolomics/xcms commit 87dc789d7cd70a3733a1ad0b5a427f4d5905795d
lecorguille
parents: 20
diff changeset
520
7e289788d37d planemo upload for repository https://github.com/workflow4metabolomics/xcms commit 87dc789d7cd70a3733a1ad0b5a427f4d5905795d
lecorguille
parents: 20
diff changeset
521 # This function get the raw file path from the arguments
31
8fd5b5afa24d planemo upload for repository https://github.com/workflow4metabolomics/xcms commit e384d6dd5f410799ec211f73bca0b5d5d7bc651e
lecorguille
parents: 30
diff changeset
522 #@author Gildas Le Corguille lecorguille@sb-roscoff.fr
8fd5b5afa24d planemo upload for repository https://github.com/workflow4metabolomics/xcms commit e384d6dd5f410799ec211f73bca0b5d5d7bc651e
lecorguille
parents: 30
diff changeset
523 getRawfilePathFromArguments <- function(singlefile, zipfile, args) {
8fd5b5afa24d planemo upload for repository https://github.com/workflow4metabolomics/xcms commit e384d6dd5f410799ec211f73bca0b5d5d7bc651e
lecorguille
parents: 30
diff changeset
524 if (!is.null(args$zipfile)) zipfile <- args$zipfile
8fd5b5afa24d planemo upload for repository https://github.com/workflow4metabolomics/xcms commit e384d6dd5f410799ec211f73bca0b5d5d7bc651e
lecorguille
parents: 30
diff changeset
525 if (!is.null(args$zipfilePositive)) zipfile <- args$zipfilePositive
8fd5b5afa24d planemo upload for repository https://github.com/workflow4metabolomics/xcms commit e384d6dd5f410799ec211f73bca0b5d5d7bc651e
lecorguille
parents: 30
diff changeset
526 if (!is.null(args$zipfileNegative)) zipfile <- args$zipfileNegative
23
7e289788d37d planemo upload for repository https://github.com/workflow4metabolomics/xcms commit 87dc789d7cd70a3733a1ad0b5a427f4d5905795d
lecorguille
parents: 20
diff changeset
527
31
8fd5b5afa24d planemo upload for repository https://github.com/workflow4metabolomics/xcms commit e384d6dd5f410799ec211f73bca0b5d5d7bc651e
lecorguille
parents: 30
diff changeset
528 if (!is.null(args$singlefile_galaxyPath)) {
8fd5b5afa24d planemo upload for repository https://github.com/workflow4metabolomics/xcms commit e384d6dd5f410799ec211f73bca0b5d5d7bc651e
lecorguille
parents: 30
diff changeset
529 singlefile_galaxyPaths <- args$singlefile_galaxyPath;
8fd5b5afa24d planemo upload for repository https://github.com/workflow4metabolomics/xcms commit e384d6dd5f410799ec211f73bca0b5d5d7bc651e
lecorguille
parents: 30
diff changeset
530 singlefile_sampleNames <- args$singlefile_sampleName
23
7e289788d37d planemo upload for repository https://github.com/workflow4metabolomics/xcms commit 87dc789d7cd70a3733a1ad0b5a427f4d5905795d
lecorguille
parents: 20
diff changeset
531 }
31
8fd5b5afa24d planemo upload for repository https://github.com/workflow4metabolomics/xcms commit e384d6dd5f410799ec211f73bca0b5d5d7bc651e
lecorguille
parents: 30
diff changeset
532 if (!is.null(args$singlefile_galaxyPathPositive)) {
8fd5b5afa24d planemo upload for repository https://github.com/workflow4metabolomics/xcms commit e384d6dd5f410799ec211f73bca0b5d5d7bc651e
lecorguille
parents: 30
diff changeset
533 singlefile_galaxyPaths <- args$singlefile_galaxyPathPositive;
8fd5b5afa24d planemo upload for repository https://github.com/workflow4metabolomics/xcms commit e384d6dd5f410799ec211f73bca0b5d5d7bc651e
lecorguille
parents: 30
diff changeset
534 singlefile_sampleNames <- args$singlefile_sampleNamePositive
23
7e289788d37d planemo upload for repository https://github.com/workflow4metabolomics/xcms commit 87dc789d7cd70a3733a1ad0b5a427f4d5905795d
lecorguille
parents: 20
diff changeset
535 }
31
8fd5b5afa24d planemo upload for repository https://github.com/workflow4metabolomics/xcms commit e384d6dd5f410799ec211f73bca0b5d5d7bc651e
lecorguille
parents: 30
diff changeset
536 if (!is.null(args$singlefile_galaxyPathNegative)) {
8fd5b5afa24d planemo upload for repository https://github.com/workflow4metabolomics/xcms commit e384d6dd5f410799ec211f73bca0b5d5d7bc651e
lecorguille
parents: 30
diff changeset
537 singlefile_galaxyPaths <- args$singlefile_galaxyPathNegative;
8fd5b5afa24d planemo upload for repository https://github.com/workflow4metabolomics/xcms commit e384d6dd5f410799ec211f73bca0b5d5d7bc651e
lecorguille
parents: 30
diff changeset
538 singlefile_sampleNames <- args$singlefile_sampleNameNegative
23
7e289788d37d planemo upload for repository https://github.com/workflow4metabolomics/xcms commit 87dc789d7cd70a3733a1ad0b5a427f4d5905795d
lecorguille
parents: 20
diff changeset
539 }
7e289788d37d planemo upload for repository https://github.com/workflow4metabolomics/xcms commit 87dc789d7cd70a3733a1ad0b5a427f4d5905795d
lecorguille
parents: 20
diff changeset
540 if (exists("singlefile_galaxyPaths")){
31
8fd5b5afa24d planemo upload for repository https://github.com/workflow4metabolomics/xcms commit e384d6dd5f410799ec211f73bca0b5d5d7bc651e
lecorguille
parents: 30
diff changeset
541 singlefile_galaxyPaths <- unlist(strsplit(singlefile_galaxyPaths,","))
8fd5b5afa24d planemo upload for repository https://github.com/workflow4metabolomics/xcms commit e384d6dd5f410799ec211f73bca0b5d5d7bc651e
lecorguille
parents: 30
diff changeset
542 singlefile_sampleNames <- unlist(strsplit(singlefile_sampleNames,","))
23
7e289788d37d planemo upload for repository https://github.com/workflow4metabolomics/xcms commit 87dc789d7cd70a3733a1ad0b5a427f4d5905795d
lecorguille
parents: 20
diff changeset
543
31
8fd5b5afa24d planemo upload for repository https://github.com/workflow4metabolomics/xcms commit e384d6dd5f410799ec211f73bca0b5d5d7bc651e
lecorguille
parents: 30
diff changeset
544 singlefile <- NULL
23
7e289788d37d planemo upload for repository https://github.com/workflow4metabolomics/xcms commit 87dc789d7cd70a3733a1ad0b5a427f4d5905795d
lecorguille
parents: 20
diff changeset
545 for (singlefile_galaxyPath_i in seq(1:length(singlefile_galaxyPaths))) {
31
8fd5b5afa24d planemo upload for repository https://github.com/workflow4metabolomics/xcms commit e384d6dd5f410799ec211f73bca0b5d5d7bc651e
lecorguille
parents: 30
diff changeset
546 singlefile_galaxyPath <- singlefile_galaxyPaths[singlefile_galaxyPath_i]
8fd5b5afa24d planemo upload for repository https://github.com/workflow4metabolomics/xcms commit e384d6dd5f410799ec211f73bca0b5d5d7bc651e
lecorguille
parents: 30
diff changeset
547 singlefile_sampleName <- singlefile_sampleNames[singlefile_galaxyPath_i]
8fd5b5afa24d planemo upload for repository https://github.com/workflow4metabolomics/xcms commit e384d6dd5f410799ec211f73bca0b5d5d7bc651e
lecorguille
parents: 30
diff changeset
548 singlefile[[singlefile_sampleName]] <- singlefile_galaxyPath
23
7e289788d37d planemo upload for repository https://github.com/workflow4metabolomics/xcms commit 87dc789d7cd70a3733a1ad0b5a427f4d5905795d
lecorguille
parents: 20
diff changeset
549 }
7e289788d37d planemo upload for repository https://github.com/workflow4metabolomics/xcms commit 87dc789d7cd70a3733a1ad0b5a427f4d5905795d
lecorguille
parents: 20
diff changeset
550 }
7e289788d37d planemo upload for repository https://github.com/workflow4metabolomics/xcms commit 87dc789d7cd70a3733a1ad0b5a427f4d5905795d
lecorguille
parents: 20
diff changeset
551 for (argument in c("zipfile","zipfilePositive","zipfileNegative","singlefile_galaxyPath","singlefile_sampleName","singlefile_galaxyPathPositive","singlefile_sampleNamePositive","singlefile_galaxyPathNegative","singlefile_sampleNameNegative")) {
31
8fd5b5afa24d planemo upload for repository https://github.com/workflow4metabolomics/xcms commit e384d6dd5f410799ec211f73bca0b5d5d7bc651e
lecorguille
parents: 30
diff changeset
552 args[[argument]] <- NULL
23
7e289788d37d planemo upload for repository https://github.com/workflow4metabolomics/xcms commit 87dc789d7cd70a3733a1ad0b5a427f4d5905795d
lecorguille
parents: 20
diff changeset
553 }
31
8fd5b5afa24d planemo upload for repository https://github.com/workflow4metabolomics/xcms commit e384d6dd5f410799ec211f73bca0b5d5d7bc651e
lecorguille
parents: 30
diff changeset
554 return(list(zipfile=zipfile, singlefile=singlefile, args=args))
23
7e289788d37d planemo upload for repository https://github.com/workflow4metabolomics/xcms commit 87dc789d7cd70a3733a1ad0b5a427f4d5905795d
lecorguille
parents: 20
diff changeset
555 }
7e289788d37d planemo upload for repository https://github.com/workflow4metabolomics/xcms commit 87dc789d7cd70a3733a1ad0b5a427f4d5905795d
lecorguille
parents: 20
diff changeset
556
7e289788d37d planemo upload for repository https://github.com/workflow4metabolomics/xcms commit 87dc789d7cd70a3733a1ad0b5a427f4d5905795d
lecorguille
parents: 20
diff changeset
557
7e289788d37d planemo upload for repository https://github.com/workflow4metabolomics/xcms commit 87dc789d7cd70a3733a1ad0b5a427f4d5905795d
lecorguille
parents: 20
diff changeset
558 # This function retrieve the raw file in the working directory
7e289788d37d planemo upload for repository https://github.com/workflow4metabolomics/xcms commit 87dc789d7cd70a3733a1ad0b5a427f4d5905795d
lecorguille
parents: 20
diff changeset
559 # - if zipfile: unzip the file with its directory tree
7e289788d37d planemo upload for repository https://github.com/workflow4metabolomics/xcms commit 87dc789d7cd70a3733a1ad0b5a427f4d5905795d
lecorguille
parents: 20
diff changeset
560 # - if singlefiles: set symlink with the good filename
31
8fd5b5afa24d planemo upload for repository https://github.com/workflow4metabolomics/xcms commit e384d6dd5f410799ec211f73bca0b5d5d7bc651e
lecorguille
parents: 30
diff changeset
561 #@author Gildas Le Corguille lecorguille@sb-roscoff.fr
23
7e289788d37d planemo upload for repository https://github.com/workflow4metabolomics/xcms commit 87dc789d7cd70a3733a1ad0b5a427f4d5905795d
lecorguille
parents: 20
diff changeset
562 retrieveRawfileInTheWorkingDirectory <- function(singlefile, zipfile) {
7e289788d37d planemo upload for repository https://github.com/workflow4metabolomics/xcms commit 87dc789d7cd70a3733a1ad0b5a427f4d5905795d
lecorguille
parents: 20
diff changeset
563 if(!is.null(singlefile) && (length("singlefile")>0)) {
7e289788d37d planemo upload for repository https://github.com/workflow4metabolomics/xcms commit 87dc789d7cd70a3733a1ad0b5a427f4d5905795d
lecorguille
parents: 20
diff changeset
564 for (singlefile_sampleName in names(singlefile)) {
31
8fd5b5afa24d planemo upload for repository https://github.com/workflow4metabolomics/xcms commit e384d6dd5f410799ec211f73bca0b5d5d7bc651e
lecorguille
parents: 30
diff changeset
565 singlefile_galaxyPath <- singlefile[[singlefile_sampleName]]
23
7e289788d37d planemo upload for repository https://github.com/workflow4metabolomics/xcms commit 87dc789d7cd70a3733a1ad0b5a427f4d5905795d
lecorguille
parents: 20
diff changeset
566 if(!file.exists(singlefile_galaxyPath)){
31
8fd5b5afa24d planemo upload for repository https://github.com/workflow4metabolomics/xcms commit e384d6dd5f410799ec211f73bca0b5d5d7bc651e
lecorguille
parents: 30
diff changeset
567 error_message <- paste("Cannot access the sample:",singlefile_sampleName,"located:",singlefile_galaxyPath,". Please, contact your administrator ... if you have one!")
23
7e289788d37d planemo upload for repository https://github.com/workflow4metabolomics/xcms commit 87dc789d7cd70a3733a1ad0b5a427f4d5905795d
lecorguille
parents: 20
diff changeset
568 print(error_message); stop(error_message)
7e289788d37d planemo upload for repository https://github.com/workflow4metabolomics/xcms commit 87dc789d7cd70a3733a1ad0b5a427f4d5905795d
lecorguille
parents: 20
diff changeset
569 }
7e289788d37d planemo upload for repository https://github.com/workflow4metabolomics/xcms commit 87dc789d7cd70a3733a1ad0b5a427f4d5905795d
lecorguille
parents: 20
diff changeset
570
31
8fd5b5afa24d planemo upload for repository https://github.com/workflow4metabolomics/xcms commit e384d6dd5f410799ec211f73bca0b5d5d7bc651e
lecorguille
parents: 30
diff changeset
571 if (!suppressWarnings( try (file.link(singlefile_galaxyPath, singlefile_sampleName), silent=T)))
8fd5b5afa24d planemo upload for repository https://github.com/workflow4metabolomics/xcms commit e384d6dd5f410799ec211f73bca0b5d5d7bc651e
lecorguille
parents: 30
diff changeset
572 file.copy(singlefile_galaxyPath, singlefile_sampleName)
8fd5b5afa24d planemo upload for repository https://github.com/workflow4metabolomics/xcms commit e384d6dd5f410799ec211f73bca0b5d5d7bc651e
lecorguille
parents: 30
diff changeset
573
23
7e289788d37d planemo upload for repository https://github.com/workflow4metabolomics/xcms commit 87dc789d7cd70a3733a1ad0b5a427f4d5905795d
lecorguille
parents: 20
diff changeset
574 }
31
8fd5b5afa24d planemo upload for repository https://github.com/workflow4metabolomics/xcms commit e384d6dd5f410799ec211f73bca0b5d5d7bc651e
lecorguille
parents: 30
diff changeset
575 directory <- "."
23
7e289788d37d planemo upload for repository https://github.com/workflow4metabolomics/xcms commit 87dc789d7cd70a3733a1ad0b5a427f4d5905795d
lecorguille
parents: 20
diff changeset
576
7e289788d37d planemo upload for repository https://github.com/workflow4metabolomics/xcms commit 87dc789d7cd70a3733a1ad0b5a427f4d5905795d
lecorguille
parents: 20
diff changeset
577 }
31
8fd5b5afa24d planemo upload for repository https://github.com/workflow4metabolomics/xcms commit e384d6dd5f410799ec211f73bca0b5d5d7bc651e
lecorguille
parents: 30
diff changeset
578 if(!is.null(zipfile) && (zipfile != "")) {
23
7e289788d37d planemo upload for repository https://github.com/workflow4metabolomics/xcms commit 87dc789d7cd70a3733a1ad0b5a427f4d5905795d
lecorguille
parents: 20
diff changeset
579 if(!file.exists(zipfile)){
31
8fd5b5afa24d planemo upload for repository https://github.com/workflow4metabolomics/xcms commit e384d6dd5f410799ec211f73bca0b5d5d7bc651e
lecorguille
parents: 30
diff changeset
580 error_message <- paste("Cannot access the Zip file:",zipfile,". Please, contact your administrator ... if you have one!")
23
7e289788d37d planemo upload for repository https://github.com/workflow4metabolomics/xcms commit 87dc789d7cd70a3733a1ad0b5a427f4d5905795d
lecorguille
parents: 20
diff changeset
581 print(error_message)
7e289788d37d planemo upload for repository https://github.com/workflow4metabolomics/xcms commit 87dc789d7cd70a3733a1ad0b5a427f4d5905795d
lecorguille
parents: 20
diff changeset
582 stop(error_message)
7e289788d37d planemo upload for repository https://github.com/workflow4metabolomics/xcms commit 87dc789d7cd70a3733a1ad0b5a427f4d5905795d
lecorguille
parents: 20
diff changeset
583 }
7e289788d37d planemo upload for repository https://github.com/workflow4metabolomics/xcms commit 87dc789d7cd70a3733a1ad0b5a427f4d5905795d
lecorguille
parents: 20
diff changeset
584
7e289788d37d planemo upload for repository https://github.com/workflow4metabolomics/xcms commit 87dc789d7cd70a3733a1ad0b5a427f4d5905795d
lecorguille
parents: 20
diff changeset
585 #list all file in the zip file
31
8fd5b5afa24d planemo upload for repository https://github.com/workflow4metabolomics/xcms commit e384d6dd5f410799ec211f73bca0b5d5d7bc651e
lecorguille
parents: 30
diff changeset
586 #zip_files <- unzip(zipfile,list=T)[,"Name"]
23
7e289788d37d planemo upload for repository https://github.com/workflow4metabolomics/xcms commit 87dc789d7cd70a3733a1ad0b5a427f4d5905795d
lecorguille
parents: 20
diff changeset
587
7e289788d37d planemo upload for repository https://github.com/workflow4metabolomics/xcms commit 87dc789d7cd70a3733a1ad0b5a427f4d5905795d
lecorguille
parents: 20
diff changeset
588 #unzip
7e289788d37d planemo upload for repository https://github.com/workflow4metabolomics/xcms commit 87dc789d7cd70a3733a1ad0b5a427f4d5905795d
lecorguille
parents: 20
diff changeset
589 suppressWarnings(unzip(zipfile, unzip="unzip"))
7e289788d37d planemo upload for repository https://github.com/workflow4metabolomics/xcms commit 87dc789d7cd70a3733a1ad0b5a427f4d5905795d
lecorguille
parents: 20
diff changeset
590
7e289788d37d planemo upload for repository https://github.com/workflow4metabolomics/xcms commit 87dc789d7cd70a3733a1ad0b5a427f4d5905795d
lecorguille
parents: 20
diff changeset
591 #get the directory name
31
8fd5b5afa24d planemo upload for repository https://github.com/workflow4metabolomics/xcms commit e384d6dd5f410799ec211f73bca0b5d5d7bc651e
lecorguille
parents: 30
diff changeset
592 suppressWarnings(filesInZip <- unzip(zipfile, list=T))
8fd5b5afa24d planemo upload for repository https://github.com/workflow4metabolomics/xcms commit e384d6dd5f410799ec211f73bca0b5d5d7bc651e
lecorguille
parents: 30
diff changeset
593 directories <- unique(unlist(lapply(strsplit(filesInZip$Name,"/"), function(x) x[1])))
8fd5b5afa24d planemo upload for repository https://github.com/workflow4metabolomics/xcms commit e384d6dd5f410799ec211f73bca0b5d5d7bc651e
lecorguille
parents: 30
diff changeset
594 directories <- directories[!(directories %in% c("__MACOSX")) & file.info(directories)$isdir]
8fd5b5afa24d planemo upload for repository https://github.com/workflow4metabolomics/xcms commit e384d6dd5f410799ec211f73bca0b5d5d7bc651e
lecorguille
parents: 30
diff changeset
595 directory <- "."
8fd5b5afa24d planemo upload for repository https://github.com/workflow4metabolomics/xcms commit e384d6dd5f410799ec211f73bca0b5d5d7bc651e
lecorguille
parents: 30
diff changeset
596 if (length(directories) == 1) directory <- directories
23
7e289788d37d planemo upload for repository https://github.com/workflow4metabolomics/xcms commit 87dc789d7cd70a3733a1ad0b5a427f4d5905795d
lecorguille
parents: 20
diff changeset
597
7e289788d37d planemo upload for repository https://github.com/workflow4metabolomics/xcms commit 87dc789d7cd70a3733a1ad0b5a427f4d5905795d
lecorguille
parents: 20
diff changeset
598 cat("files_root_directory\t",directory,"\n")
7e289788d37d planemo upload for repository https://github.com/workflow4metabolomics/xcms commit 87dc789d7cd70a3733a1ad0b5a427f4d5905795d
lecorguille
parents: 20
diff changeset
599
7e289788d37d planemo upload for repository https://github.com/workflow4metabolomics/xcms commit 87dc789d7cd70a3733a1ad0b5a427f4d5905795d
lecorguille
parents: 20
diff changeset
600 }
7e289788d37d planemo upload for repository https://github.com/workflow4metabolomics/xcms commit 87dc789d7cd70a3733a1ad0b5a427f4d5905795d
lecorguille
parents: 20
diff changeset
601 return (directory)
7e289788d37d planemo upload for repository https://github.com/workflow4metabolomics/xcms commit 87dc789d7cd70a3733a1ad0b5a427f4d5905795d
lecorguille
parents: 20
diff changeset
602 }
31
8fd5b5afa24d planemo upload for repository https://github.com/workflow4metabolomics/xcms commit e384d6dd5f410799ec211f73bca0b5d5d7bc651e
lecorguille
parents: 30
diff changeset
603
8fd5b5afa24d planemo upload for repository https://github.com/workflow4metabolomics/xcms commit e384d6dd5f410799ec211f73bca0b5d5d7bc651e
lecorguille
parents: 30
diff changeset
604
8fd5b5afa24d planemo upload for repository https://github.com/workflow4metabolomics/xcms commit e384d6dd5f410799ec211f73bca0b5d5d7bc651e
lecorguille
parents: 30
diff changeset
605 # This function retrieve a xset like object
8fd5b5afa24d planemo upload for repository https://github.com/workflow4metabolomics/xcms commit e384d6dd5f410799ec211f73bca0b5d5d7bc651e
lecorguille
parents: 30
diff changeset
606 #@author Gildas Le Corguille lecorguille@sb-roscoff.fr
8fd5b5afa24d planemo upload for repository https://github.com/workflow4metabolomics/xcms commit e384d6dd5f410799ec211f73bca0b5d5d7bc651e
lecorguille
parents: 30
diff changeset
607 getxcmsSetObject <- function(xobject) {
8fd5b5afa24d planemo upload for repository https://github.com/workflow4metabolomics/xcms commit e384d6dd5f410799ec211f73bca0b5d5d7bc651e
lecorguille
parents: 30
diff changeset
608 # XCMS 1.x
8fd5b5afa24d planemo upload for repository https://github.com/workflow4metabolomics/xcms commit e384d6dd5f410799ec211f73bca0b5d5d7bc651e
lecorguille
parents: 30
diff changeset
609 if (class(xobject) == "xcmsSet")
8fd5b5afa24d planemo upload for repository https://github.com/workflow4metabolomics/xcms commit e384d6dd5f410799ec211f73bca0b5d5d7bc651e
lecorguille
parents: 30
diff changeset
610 return (xobject)
8fd5b5afa24d planemo upload for repository https://github.com/workflow4metabolomics/xcms commit e384d6dd5f410799ec211f73bca0b5d5d7bc651e
lecorguille
parents: 30
diff changeset
611 # XCMS 3.x
8fd5b5afa24d planemo upload for repository https://github.com/workflow4metabolomics/xcms commit e384d6dd5f410799ec211f73bca0b5d5d7bc651e
lecorguille
parents: 30
diff changeset
612 if (class(xobject) == "XCMSnExp") {
8fd5b5afa24d planemo upload for repository https://github.com/workflow4metabolomics/xcms commit e384d6dd5f410799ec211f73bca0b5d5d7bc651e
lecorguille
parents: 30
diff changeset
613 # Get the legacy xcmsSet object
8fd5b5afa24d planemo upload for repository https://github.com/workflow4metabolomics/xcms commit e384d6dd5f410799ec211f73bca0b5d5d7bc651e
lecorguille
parents: 30
diff changeset
614 suppressWarnings(xset <- as(xobject, 'xcmsSet'))
8fd5b5afa24d planemo upload for repository https://github.com/workflow4metabolomics/xcms commit e384d6dd5f410799ec211f73bca0b5d5d7bc651e
lecorguille
parents: 30
diff changeset
615 sampclass(xset) <- xset@phenoData$sample_group
8fd5b5afa24d planemo upload for repository https://github.com/workflow4metabolomics/xcms commit e384d6dd5f410799ec211f73bca0b5d5d7bc651e
lecorguille
parents: 30
diff changeset
616 return (xset)
8fd5b5afa24d planemo upload for repository https://github.com/workflow4metabolomics/xcms commit e384d6dd5f410799ec211f73bca0b5d5d7bc651e
lecorguille
parents: 30
diff changeset
617 }
8fd5b5afa24d planemo upload for repository https://github.com/workflow4metabolomics/xcms commit e384d6dd5f410799ec211f73bca0b5d5d7bc651e
lecorguille
parents: 30
diff changeset
618 }
8fd5b5afa24d planemo upload for repository https://github.com/workflow4metabolomics/xcms commit e384d6dd5f410799ec211f73bca0b5d5d7bc651e
lecorguille
parents: 30
diff changeset
619
8fd5b5afa24d planemo upload for repository https://github.com/workflow4metabolomics/xcms commit e384d6dd5f410799ec211f73bca0b5d5d7bc651e
lecorguille
parents: 30
diff changeset
620
8fd5b5afa24d planemo upload for repository https://github.com/workflow4metabolomics/xcms commit e384d6dd5f410799ec211f73bca0b5d5d7bc651e
lecorguille
parents: 30
diff changeset
621 #@TODO: remove this function as soon as we can use xcms 3.x.x from Bioconductor 3.7
8fd5b5afa24d planemo upload for repository https://github.com/workflow4metabolomics/xcms commit e384d6dd5f410799ec211f73bca0b5d5d7bc651e
lecorguille
parents: 30
diff changeset
622 # https://github.com/sneumann/xcms/issues/250
8fd5b5afa24d planemo upload for repository https://github.com/workflow4metabolomics/xcms commit e384d6dd5f410799ec211f73bca0b5d5d7bc651e
lecorguille
parents: 30
diff changeset
623 groupnamesW4M <- function(xdata, mzdec = 0, rtdec = 0) {
8fd5b5afa24d planemo upload for repository https://github.com/workflow4metabolomics/xcms commit e384d6dd5f410799ec211f73bca0b5d5d7bc651e
lecorguille
parents: 30
diff changeset
624 mzfmt <- paste("%.", mzdec, "f", sep = "")
8fd5b5afa24d planemo upload for repository https://github.com/workflow4metabolomics/xcms commit e384d6dd5f410799ec211f73bca0b5d5d7bc651e
lecorguille
parents: 30
diff changeset
625 rtfmt <- paste("%.", rtdec, "f", sep = "")
8fd5b5afa24d planemo upload for repository https://github.com/workflow4metabolomics/xcms commit e384d6dd5f410799ec211f73bca0b5d5d7bc651e
lecorguille
parents: 30
diff changeset
626
8fd5b5afa24d planemo upload for repository https://github.com/workflow4metabolomics/xcms commit e384d6dd5f410799ec211f73bca0b5d5d7bc651e
lecorguille
parents: 30
diff changeset
627 gnames <- paste("M", sprintf(mzfmt, featureDefinitions(xdata)[,"mzmed"]), "T",
8fd5b5afa24d planemo upload for repository https://github.com/workflow4metabolomics/xcms commit e384d6dd5f410799ec211f73bca0b5d5d7bc651e
lecorguille
parents: 30
diff changeset
628 sprintf(rtfmt, featureDefinitions(xdata)[,"rtmed"]), sep = "")
8fd5b5afa24d planemo upload for repository https://github.com/workflow4metabolomics/xcms commit e384d6dd5f410799ec211f73bca0b5d5d7bc651e
lecorguille
parents: 30
diff changeset
629
8fd5b5afa24d planemo upload for repository https://github.com/workflow4metabolomics/xcms commit e384d6dd5f410799ec211f73bca0b5d5d7bc651e
lecorguille
parents: 30
diff changeset
630 if (any(dup <- duplicated(gnames)))
8fd5b5afa24d planemo upload for repository https://github.com/workflow4metabolomics/xcms commit e384d6dd5f410799ec211f73bca0b5d5d7bc651e
lecorguille
parents: 30
diff changeset
631 for (dupname in unique(gnames[dup])) {
8fd5b5afa24d planemo upload for repository https://github.com/workflow4metabolomics/xcms commit e384d6dd5f410799ec211f73bca0b5d5d7bc651e
lecorguille
parents: 30
diff changeset
632 dupidx <- which(gnames == dupname)
8fd5b5afa24d planemo upload for repository https://github.com/workflow4metabolomics/xcms commit e384d6dd5f410799ec211f73bca0b5d5d7bc651e
lecorguille
parents: 30
diff changeset
633 gnames[dupidx] <- paste(gnames[dupidx], seq(along = dupidx), sep = "_")
8fd5b5afa24d planemo upload for repository https://github.com/workflow4metabolomics/xcms commit e384d6dd5f410799ec211f73bca0b5d5d7bc651e
lecorguille
parents: 30
diff changeset
634 }
8fd5b5afa24d planemo upload for repository https://github.com/workflow4metabolomics/xcms commit e384d6dd5f410799ec211f73bca0b5d5d7bc651e
lecorguille
parents: 30
diff changeset
635
8fd5b5afa24d planemo upload for repository https://github.com/workflow4metabolomics/xcms commit e384d6dd5f410799ec211f73bca0b5d5d7bc651e
lecorguille
parents: 30
diff changeset
636 return (gnames)
8fd5b5afa24d planemo upload for repository https://github.com/workflow4metabolomics/xcms commit e384d6dd5f410799ec211f73bca0b5d5d7bc651e
lecorguille
parents: 30
diff changeset
637 }
8fd5b5afa24d planemo upload for repository https://github.com/workflow4metabolomics/xcms commit e384d6dd5f410799ec211f73bca0b5d5d7bc651e
lecorguille
parents: 30
diff changeset
638
8fd5b5afa24d planemo upload for repository https://github.com/workflow4metabolomics/xcms commit e384d6dd5f410799ec211f73bca0b5d5d7bc651e
lecorguille
parents: 30
diff changeset
639 #@TODO: remove this function as soon as we can use xcms 3.x.x from Bioconductor 3.7
8fd5b5afa24d planemo upload for repository https://github.com/workflow4metabolomics/xcms commit e384d6dd5f410799ec211f73bca0b5d5d7bc651e
lecorguille
parents: 30
diff changeset
640 # https://github.com/sneumann/xcms/issues/247
8fd5b5afa24d planemo upload for repository https://github.com/workflow4metabolomics/xcms commit e384d6dd5f410799ec211f73bca0b5d5d7bc651e
lecorguille
parents: 30
diff changeset
641 .concatenate_XCMSnExp <- function(...) {
8fd5b5afa24d planemo upload for repository https://github.com/workflow4metabolomics/xcms commit e384d6dd5f410799ec211f73bca0b5d5d7bc651e
lecorguille
parents: 30
diff changeset
642 x <- list(...)
8fd5b5afa24d planemo upload for repository https://github.com/workflow4metabolomics/xcms commit e384d6dd5f410799ec211f73bca0b5d5d7bc651e
lecorguille
parents: 30
diff changeset
643 if (length(x) == 0)
8fd5b5afa24d planemo upload for repository https://github.com/workflow4metabolomics/xcms commit e384d6dd5f410799ec211f73bca0b5d5d7bc651e
lecorguille
parents: 30
diff changeset
644 return(NULL)
8fd5b5afa24d planemo upload for repository https://github.com/workflow4metabolomics/xcms commit e384d6dd5f410799ec211f73bca0b5d5d7bc651e
lecorguille
parents: 30
diff changeset
645 if (length(x) == 1)
8fd5b5afa24d planemo upload for repository https://github.com/workflow4metabolomics/xcms commit e384d6dd5f410799ec211f73bca0b5d5d7bc651e
lecorguille
parents: 30
diff changeset
646 return(x[[1]])
8fd5b5afa24d planemo upload for repository https://github.com/workflow4metabolomics/xcms commit e384d6dd5f410799ec211f73bca0b5d5d7bc651e
lecorguille
parents: 30
diff changeset
647 ## Check that all are XCMSnExp objects.
8fd5b5afa24d planemo upload for repository https://github.com/workflow4metabolomics/xcms commit e384d6dd5f410799ec211f73bca0b5d5d7bc651e
lecorguille
parents: 30
diff changeset
648 if (!all(unlist(lapply(x, function(z) is(z, "XCMSnExp")))))
8fd5b5afa24d planemo upload for repository https://github.com/workflow4metabolomics/xcms commit e384d6dd5f410799ec211f73bca0b5d5d7bc651e
lecorguille
parents: 30
diff changeset
649 stop("All passed objects should be 'XCMSnExp' objects")
8fd5b5afa24d planemo upload for repository https://github.com/workflow4metabolomics/xcms commit e384d6dd5f410799ec211f73bca0b5d5d7bc651e
lecorguille
parents: 30
diff changeset
650 new_x <- as(.concatenate_OnDiskMSnExp(...), "XCMSnExp")
8fd5b5afa24d planemo upload for repository https://github.com/workflow4metabolomics/xcms commit e384d6dd5f410799ec211f73bca0b5d5d7bc651e
lecorguille
parents: 30
diff changeset
651 ## If any of the XCMSnExp has alignment results or detected features drop
8fd5b5afa24d planemo upload for repository https://github.com/workflow4metabolomics/xcms commit e384d6dd5f410799ec211f73bca0b5d5d7bc651e
lecorguille
parents: 30
diff changeset
652 ## them!
8fd5b5afa24d planemo upload for repository https://github.com/workflow4metabolomics/xcms commit e384d6dd5f410799ec211f73bca0b5d5d7bc651e
lecorguille
parents: 30
diff changeset
653 x <- lapply(x, function(z) {
8fd5b5afa24d planemo upload for repository https://github.com/workflow4metabolomics/xcms commit e384d6dd5f410799ec211f73bca0b5d5d7bc651e
lecorguille
parents: 30
diff changeset
654 if (hasAdjustedRtime(z)) {
8fd5b5afa24d planemo upload for repository https://github.com/workflow4metabolomics/xcms commit e384d6dd5f410799ec211f73bca0b5d5d7bc651e
lecorguille
parents: 30
diff changeset
655 z <- dropAdjustedRtime(z)
8fd5b5afa24d planemo upload for repository https://github.com/workflow4metabolomics/xcms commit e384d6dd5f410799ec211f73bca0b5d5d7bc651e
lecorguille
parents: 30
diff changeset
656 warning("Adjusted retention times found, had to drop them.")
8fd5b5afa24d planemo upload for repository https://github.com/workflow4metabolomics/xcms commit e384d6dd5f410799ec211f73bca0b5d5d7bc651e
lecorguille
parents: 30
diff changeset
657 }
8fd5b5afa24d planemo upload for repository https://github.com/workflow4metabolomics/xcms commit e384d6dd5f410799ec211f73bca0b5d5d7bc651e
lecorguille
parents: 30
diff changeset
658 if (hasFeatures(z)) {
8fd5b5afa24d planemo upload for repository https://github.com/workflow4metabolomics/xcms commit e384d6dd5f410799ec211f73bca0b5d5d7bc651e
lecorguille
parents: 30
diff changeset
659 z <- dropFeatureDefinitions(z)
8fd5b5afa24d planemo upload for repository https://github.com/workflow4metabolomics/xcms commit e384d6dd5f410799ec211f73bca0b5d5d7bc651e
lecorguille
parents: 30
diff changeset
660 warning("Feature definitions found, had to drop them.")
8fd5b5afa24d planemo upload for repository https://github.com/workflow4metabolomics/xcms commit e384d6dd5f410799ec211f73bca0b5d5d7bc651e
lecorguille
parents: 30
diff changeset
661 }
8fd5b5afa24d planemo upload for repository https://github.com/workflow4metabolomics/xcms commit e384d6dd5f410799ec211f73bca0b5d5d7bc651e
lecorguille
parents: 30
diff changeset
662 z
8fd5b5afa24d planemo upload for repository https://github.com/workflow4metabolomics/xcms commit e384d6dd5f410799ec211f73bca0b5d5d7bc651e
lecorguille
parents: 30
diff changeset
663 })
8fd5b5afa24d planemo upload for repository https://github.com/workflow4metabolomics/xcms commit e384d6dd5f410799ec211f73bca0b5d5d7bc651e
lecorguille
parents: 30
diff changeset
664 ## Combine peaks
8fd5b5afa24d planemo upload for repository https://github.com/workflow4metabolomics/xcms commit e384d6dd5f410799ec211f73bca0b5d5d7bc651e
lecorguille
parents: 30
diff changeset
665 fls <- lapply(x, fileNames)
8fd5b5afa24d planemo upload for repository https://github.com/workflow4metabolomics/xcms commit e384d6dd5f410799ec211f73bca0b5d5d7bc651e
lecorguille
parents: 30
diff changeset
666 startidx <- cumsum(lengths(fls))
8fd5b5afa24d planemo upload for repository https://github.com/workflow4metabolomics/xcms commit e384d6dd5f410799ec211f73bca0b5d5d7bc651e
lecorguille
parents: 30
diff changeset
667 pks <- lapply(x, chromPeaks)
8fd5b5afa24d planemo upload for repository https://github.com/workflow4metabolomics/xcms commit e384d6dd5f410799ec211f73bca0b5d5d7bc651e
lecorguille
parents: 30
diff changeset
668 procH <- lapply(x, processHistory)
8fd5b5afa24d planemo upload for repository https://github.com/workflow4metabolomics/xcms commit e384d6dd5f410799ec211f73bca0b5d5d7bc651e
lecorguille
parents: 30
diff changeset
669 for (i in 2:length(fls)) {
8fd5b5afa24d planemo upload for repository https://github.com/workflow4metabolomics/xcms commit e384d6dd5f410799ec211f73bca0b5d5d7bc651e
lecorguille
parents: 30
diff changeset
670 pks[[i]][, "sample"] <- pks[[i]][, "sample"] + startidx[i - 1]
8fd5b5afa24d planemo upload for repository https://github.com/workflow4metabolomics/xcms commit e384d6dd5f410799ec211f73bca0b5d5d7bc651e
lecorguille
parents: 30
diff changeset
671 procH[[i]] <- lapply(procH[[i]], function(z) {
8fd5b5afa24d planemo upload for repository https://github.com/workflow4metabolomics/xcms commit e384d6dd5f410799ec211f73bca0b5d5d7bc651e
lecorguille
parents: 30
diff changeset
672 z@fileIndex <- as.integer(z@fileIndex + startidx[i - 1])
8fd5b5afa24d planemo upload for repository https://github.com/workflow4metabolomics/xcms commit e384d6dd5f410799ec211f73bca0b5d5d7bc651e
lecorguille
parents: 30
diff changeset
673 z
8fd5b5afa24d planemo upload for repository https://github.com/workflow4metabolomics/xcms commit e384d6dd5f410799ec211f73bca0b5d5d7bc651e
lecorguille
parents: 30
diff changeset
674 })
8fd5b5afa24d planemo upload for repository https://github.com/workflow4metabolomics/xcms commit e384d6dd5f410799ec211f73bca0b5d5d7bc651e
lecorguille
parents: 30
diff changeset
675 }
8fd5b5afa24d planemo upload for repository https://github.com/workflow4metabolomics/xcms commit e384d6dd5f410799ec211f73bca0b5d5d7bc651e
lecorguille
parents: 30
diff changeset
676 pks <- do.call(rbind, pks)
8fd5b5afa24d planemo upload for repository https://github.com/workflow4metabolomics/xcms commit e384d6dd5f410799ec211f73bca0b5d5d7bc651e
lecorguille
parents: 30
diff changeset
677 new_x@.processHistory <- unlist(procH)
8fd5b5afa24d planemo upload for repository https://github.com/workflow4metabolomics/xcms commit e384d6dd5f410799ec211f73bca0b5d5d7bc651e
lecorguille
parents: 30
diff changeset
678 chromPeaks(new_x) <- pks
8fd5b5afa24d planemo upload for repository https://github.com/workflow4metabolomics/xcms commit e384d6dd5f410799ec211f73bca0b5d5d7bc651e
lecorguille
parents: 30
diff changeset
679 if (validObject(new_x))
8fd5b5afa24d planemo upload for repository https://github.com/workflow4metabolomics/xcms commit e384d6dd5f410799ec211f73bca0b5d5d7bc651e
lecorguille
parents: 30
diff changeset
680 new_x
8fd5b5afa24d planemo upload for repository https://github.com/workflow4metabolomics/xcms commit e384d6dd5f410799ec211f73bca0b5d5d7bc651e
lecorguille
parents: 30
diff changeset
681 }
8fd5b5afa24d planemo upload for repository https://github.com/workflow4metabolomics/xcms commit e384d6dd5f410799ec211f73bca0b5d5d7bc651e
lecorguille
parents: 30
diff changeset
682
8fd5b5afa24d planemo upload for repository https://github.com/workflow4metabolomics/xcms commit e384d6dd5f410799ec211f73bca0b5d5d7bc651e
lecorguille
parents: 30
diff changeset
683 #@TODO: remove this function as soon as we can use xcms 3.x.x from Bioconductor 3.7
8fd5b5afa24d planemo upload for repository https://github.com/workflow4metabolomics/xcms commit e384d6dd5f410799ec211f73bca0b5d5d7bc651e
lecorguille
parents: 30
diff changeset
684 # https://github.com/sneumann/xcms/issues/247
8fd5b5afa24d planemo upload for repository https://github.com/workflow4metabolomics/xcms commit e384d6dd5f410799ec211f73bca0b5d5d7bc651e
lecorguille
parents: 30
diff changeset
685 .concatenate_OnDiskMSnExp <- function(...) {
8fd5b5afa24d planemo upload for repository https://github.com/workflow4metabolomics/xcms commit e384d6dd5f410799ec211f73bca0b5d5d7bc651e
lecorguille
parents: 30
diff changeset
686 x <- list(...)
8fd5b5afa24d planemo upload for repository https://github.com/workflow4metabolomics/xcms commit e384d6dd5f410799ec211f73bca0b5d5d7bc651e
lecorguille
parents: 30
diff changeset
687 if (length(x) == 0)
8fd5b5afa24d planemo upload for repository https://github.com/workflow4metabolomics/xcms commit e384d6dd5f410799ec211f73bca0b5d5d7bc651e
lecorguille
parents: 30
diff changeset
688 return(NULL)
8fd5b5afa24d planemo upload for repository https://github.com/workflow4metabolomics/xcms commit e384d6dd5f410799ec211f73bca0b5d5d7bc651e
lecorguille
parents: 30
diff changeset
689 if (length(x) == 1)
8fd5b5afa24d planemo upload for repository https://github.com/workflow4metabolomics/xcms commit e384d6dd5f410799ec211f73bca0b5d5d7bc651e
lecorguille
parents: 30
diff changeset
690 return(x[[1]])
8fd5b5afa24d planemo upload for repository https://github.com/workflow4metabolomics/xcms commit e384d6dd5f410799ec211f73bca0b5d5d7bc651e
lecorguille
parents: 30
diff changeset
691 ## Check that all are XCMSnExp objects.
8fd5b5afa24d planemo upload for repository https://github.com/workflow4metabolomics/xcms commit e384d6dd5f410799ec211f73bca0b5d5d7bc651e
lecorguille
parents: 30
diff changeset
692 if (!all(unlist(lapply(x, function(z) is(z, "OnDiskMSnExp")))))
8fd5b5afa24d planemo upload for repository https://github.com/workflow4metabolomics/xcms commit e384d6dd5f410799ec211f73bca0b5d5d7bc651e
lecorguille
parents: 30
diff changeset
693 stop("All passed objects should be 'OnDiskMSnExp' objects")
8fd5b5afa24d planemo upload for repository https://github.com/workflow4metabolomics/xcms commit e384d6dd5f410799ec211f73bca0b5d5d7bc651e
lecorguille
parents: 30
diff changeset
694 ## Check processingQueue
8fd5b5afa24d planemo upload for repository https://github.com/workflow4metabolomics/xcms commit e384d6dd5f410799ec211f73bca0b5d5d7bc651e
lecorguille
parents: 30
diff changeset
695 procQ <- lapply(x, function(z) z@spectraProcessingQueue)
8fd5b5afa24d planemo upload for repository https://github.com/workflow4metabolomics/xcms commit e384d6dd5f410799ec211f73bca0b5d5d7bc651e
lecorguille
parents: 30
diff changeset
696 new_procQ <- procQ[[1]]
8fd5b5afa24d planemo upload for repository https://github.com/workflow4metabolomics/xcms commit e384d6dd5f410799ec211f73bca0b5d5d7bc651e
lecorguille
parents: 30
diff changeset
697 is_ok <- unlist(lapply(procQ, function(z)
8fd5b5afa24d planemo upload for repository https://github.com/workflow4metabolomics/xcms commit e384d6dd5f410799ec211f73bca0b5d5d7bc651e
lecorguille
parents: 30
diff changeset
698 !is.character(all.equal(new_procQ, z))
8fd5b5afa24d planemo upload for repository https://github.com/workflow4metabolomics/xcms commit e384d6dd5f410799ec211f73bca0b5d5d7bc651e
lecorguille
parents: 30
diff changeset
699 ))
8fd5b5afa24d planemo upload for repository https://github.com/workflow4metabolomics/xcms commit e384d6dd5f410799ec211f73bca0b5d5d7bc651e
lecorguille
parents: 30
diff changeset
700 if (any(!is_ok)) {
8fd5b5afa24d planemo upload for repository https://github.com/workflow4metabolomics/xcms commit e384d6dd5f410799ec211f73bca0b5d5d7bc651e
lecorguille
parents: 30
diff changeset
701 warning("Processing queues from the submitted objects differ! ",
8fd5b5afa24d planemo upload for repository https://github.com/workflow4metabolomics/xcms commit e384d6dd5f410799ec211f73bca0b5d5d7bc651e
lecorguille
parents: 30
diff changeset
702 "Dropping the processing queue.")
8fd5b5afa24d planemo upload for repository https://github.com/workflow4metabolomics/xcms commit e384d6dd5f410799ec211f73bca0b5d5d7bc651e
lecorguille
parents: 30
diff changeset
703 new_procQ <- list()
8fd5b5afa24d planemo upload for repository https://github.com/workflow4metabolomics/xcms commit e384d6dd5f410799ec211f73bca0b5d5d7bc651e
lecorguille
parents: 30
diff changeset
704 }
8fd5b5afa24d planemo upload for repository https://github.com/workflow4metabolomics/xcms commit e384d6dd5f410799ec211f73bca0b5d5d7bc651e
lecorguille
parents: 30
diff changeset
705 ## processingData
8fd5b5afa24d planemo upload for repository https://github.com/workflow4metabolomics/xcms commit e384d6dd5f410799ec211f73bca0b5d5d7bc651e
lecorguille
parents: 30
diff changeset
706 fls <- lapply(x, function(z) z@processingData@files)
8fd5b5afa24d planemo upload for repository https://github.com/workflow4metabolomics/xcms commit e384d6dd5f410799ec211f73bca0b5d5d7bc651e
lecorguille
parents: 30
diff changeset
707 startidx <- cumsum(lengths(fls))
8fd5b5afa24d planemo upload for repository https://github.com/workflow4metabolomics/xcms commit e384d6dd5f410799ec211f73bca0b5d5d7bc651e
lecorguille
parents: 30
diff changeset
708 ## featureData
8fd5b5afa24d planemo upload for repository https://github.com/workflow4metabolomics/xcms commit e384d6dd5f410799ec211f73bca0b5d5d7bc651e
lecorguille
parents: 30
diff changeset
709 featd <- lapply(x, fData)
8fd5b5afa24d planemo upload for repository https://github.com/workflow4metabolomics/xcms commit e384d6dd5f410799ec211f73bca0b5d5d7bc651e
lecorguille
parents: 30
diff changeset
710 ## Have to update the file index and the spectrum names.
8fd5b5afa24d planemo upload for repository https://github.com/workflow4metabolomics/xcms commit e384d6dd5f410799ec211f73bca0b5d5d7bc651e
lecorguille
parents: 30
diff changeset
711 for (i in 2:length(featd)) {
8fd5b5afa24d planemo upload for repository https://github.com/workflow4metabolomics/xcms commit e384d6dd5f410799ec211f73bca0b5d5d7bc651e
lecorguille
parents: 30
diff changeset
712 featd[[i]]$fileIdx <- featd[[i]]$fileIdx + startidx[i - 1]
8fd5b5afa24d planemo upload for repository https://github.com/workflow4metabolomics/xcms commit e384d6dd5f410799ec211f73bca0b5d5d7bc651e
lecorguille
parents: 30
diff changeset
713 rownames(featd[[i]]) <- MSnbase:::formatFileSpectrumNames(
8fd5b5afa24d planemo upload for repository https://github.com/workflow4metabolomics/xcms commit e384d6dd5f410799ec211f73bca0b5d5d7bc651e
lecorguille
parents: 30
diff changeset
714 fileIds = featd[[i]]$fileIdx,
8fd5b5afa24d planemo upload for repository https://github.com/workflow4metabolomics/xcms commit e384d6dd5f410799ec211f73bca0b5d5d7bc651e
lecorguille
parents: 30
diff changeset
715 spectrumIds = featd[[i]]$spIdx,
8fd5b5afa24d planemo upload for repository https://github.com/workflow4metabolomics/xcms commit e384d6dd5f410799ec211f73bca0b5d5d7bc651e
lecorguille
parents: 30
diff changeset
716 nSpectra = nrow(featd[[i]]),
8fd5b5afa24d planemo upload for repository https://github.com/workflow4metabolomics/xcms commit e384d6dd5f410799ec211f73bca0b5d5d7bc651e
lecorguille
parents: 30
diff changeset
717 nFiles = length(unlist(fls))
8fd5b5afa24d planemo upload for repository https://github.com/workflow4metabolomics/xcms commit e384d6dd5f410799ec211f73bca0b5d5d7bc651e
lecorguille
parents: 30
diff changeset
718 )
8fd5b5afa24d planemo upload for repository https://github.com/workflow4metabolomics/xcms commit e384d6dd5f410799ec211f73bca0b5d5d7bc651e
lecorguille
parents: 30
diff changeset
719 }
8fd5b5afa24d planemo upload for repository https://github.com/workflow4metabolomics/xcms commit e384d6dd5f410799ec211f73bca0b5d5d7bc651e
lecorguille
parents: 30
diff changeset
720 featd <- do.call(rbind, featd)
8fd5b5afa24d planemo upload for repository https://github.com/workflow4metabolomics/xcms commit e384d6dd5f410799ec211f73bca0b5d5d7bc651e
lecorguille
parents: 30
diff changeset
721 featd$spectrum <- 1:nrow(featd)
8fd5b5afa24d planemo upload for repository https://github.com/workflow4metabolomics/xcms commit e384d6dd5f410799ec211f73bca0b5d5d7bc651e
lecorguille
parents: 30
diff changeset
722 ## experimentData
8fd5b5afa24d planemo upload for repository https://github.com/workflow4metabolomics/xcms commit e384d6dd5f410799ec211f73bca0b5d5d7bc651e
lecorguille
parents: 30
diff changeset
723 expdata <- lapply(x, function(z) {
8fd5b5afa24d planemo upload for repository https://github.com/workflow4metabolomics/xcms commit e384d6dd5f410799ec211f73bca0b5d5d7bc651e
lecorguille
parents: 30
diff changeset
724 ed <- z@experimentData
8fd5b5afa24d planemo upload for repository https://github.com/workflow4metabolomics/xcms commit e384d6dd5f410799ec211f73bca0b5d5d7bc651e
lecorguille
parents: 30
diff changeset
725 data.frame(instrumentManufacturer = ed@instrumentManufacturer,
8fd5b5afa24d planemo upload for repository https://github.com/workflow4metabolomics/xcms commit e384d6dd5f410799ec211f73bca0b5d5d7bc651e
lecorguille
parents: 30
diff changeset
726 instrumentModel = ed@instrumentModel,
8fd5b5afa24d planemo upload for repository https://github.com/workflow4metabolomics/xcms commit e384d6dd5f410799ec211f73bca0b5d5d7bc651e
lecorguille
parents: 30
diff changeset
727 ionSource = ed@ionSource,
8fd5b5afa24d planemo upload for repository https://github.com/workflow4metabolomics/xcms commit e384d6dd5f410799ec211f73bca0b5d5d7bc651e
lecorguille
parents: 30
diff changeset
728 analyser = ed@analyser,
8fd5b5afa24d planemo upload for repository https://github.com/workflow4metabolomics/xcms commit e384d6dd5f410799ec211f73bca0b5d5d7bc651e
lecorguille
parents: 30
diff changeset
729 detectorType = ed@detectorType,
8fd5b5afa24d planemo upload for repository https://github.com/workflow4metabolomics/xcms commit e384d6dd5f410799ec211f73bca0b5d5d7bc651e
lecorguille
parents: 30
diff changeset
730 stringsAsFactors = FALSE)
8fd5b5afa24d planemo upload for repository https://github.com/workflow4metabolomics/xcms commit e384d6dd5f410799ec211f73bca0b5d5d7bc651e
lecorguille
parents: 30
diff changeset
731 })
8fd5b5afa24d planemo upload for repository https://github.com/workflow4metabolomics/xcms commit e384d6dd5f410799ec211f73bca0b5d5d7bc651e
lecorguille
parents: 30
diff changeset
732 expdata <- do.call(rbind, expdata)
8fd5b5afa24d planemo upload for repository https://github.com/workflow4metabolomics/xcms commit e384d6dd5f410799ec211f73bca0b5d5d7bc651e
lecorguille
parents: 30
diff changeset
733 expdata <- new("MIAPE",
8fd5b5afa24d planemo upload for repository https://github.com/workflow4metabolomics/xcms commit e384d6dd5f410799ec211f73bca0b5d5d7bc651e
lecorguille
parents: 30
diff changeset
734 instrumentManufacturer = expdata$instrumentManufacturer,
8fd5b5afa24d planemo upload for repository https://github.com/workflow4metabolomics/xcms commit e384d6dd5f410799ec211f73bca0b5d5d7bc651e
lecorguille
parents: 30
diff changeset
735 instrumentModel = expdata$instrumentModel,
8fd5b5afa24d planemo upload for repository https://github.com/workflow4metabolomics/xcms commit e384d6dd5f410799ec211f73bca0b5d5d7bc651e
lecorguille
parents: 30
diff changeset
736 ionSource = expdata$ionSource,
8fd5b5afa24d planemo upload for repository https://github.com/workflow4metabolomics/xcms commit e384d6dd5f410799ec211f73bca0b5d5d7bc651e
lecorguille
parents: 30
diff changeset
737 analyser = expdata$analyser,
8fd5b5afa24d planemo upload for repository https://github.com/workflow4metabolomics/xcms commit e384d6dd5f410799ec211f73bca0b5d5d7bc651e
lecorguille
parents: 30
diff changeset
738 detectorType = expdata$detectorType)
8fd5b5afa24d planemo upload for repository https://github.com/workflow4metabolomics/xcms commit e384d6dd5f410799ec211f73bca0b5d5d7bc651e
lecorguille
parents: 30
diff changeset
739
8fd5b5afa24d planemo upload for repository https://github.com/workflow4metabolomics/xcms commit e384d6dd5f410799ec211f73bca0b5d5d7bc651e
lecorguille
parents: 30
diff changeset
740 ## protocolData
8fd5b5afa24d planemo upload for repository https://github.com/workflow4metabolomics/xcms commit e384d6dd5f410799ec211f73bca0b5d5d7bc651e
lecorguille
parents: 30
diff changeset
741 protodata <- lapply(x, function(z) z@protocolData)
8fd5b5afa24d planemo upload for repository https://github.com/workflow4metabolomics/xcms commit e384d6dd5f410799ec211f73bca0b5d5d7bc651e
lecorguille
parents: 30
diff changeset
742 if (any(unlist(lapply(protodata, nrow)) > 0))
8fd5b5afa24d planemo upload for repository https://github.com/workflow4metabolomics/xcms commit e384d6dd5f410799ec211f73bca0b5d5d7bc651e
lecorguille
parents: 30
diff changeset
743 warning("Found non-empty protocol data, but merging protocol data is",
8fd5b5afa24d planemo upload for repository https://github.com/workflow4metabolomics/xcms commit e384d6dd5f410799ec211f73bca0b5d5d7bc651e
lecorguille
parents: 30
diff changeset
744 " currently not supported. Skipped.")
8fd5b5afa24d planemo upload for repository https://github.com/workflow4metabolomics/xcms commit e384d6dd5f410799ec211f73bca0b5d5d7bc651e
lecorguille
parents: 30
diff changeset
745 ## phenoData
8fd5b5afa24d planemo upload for repository https://github.com/workflow4metabolomics/xcms commit e384d6dd5f410799ec211f73bca0b5d5d7bc651e
lecorguille
parents: 30
diff changeset
746 pdata <- do.call(rbind, lapply(x, pData))
8fd5b5afa24d planemo upload for repository https://github.com/workflow4metabolomics/xcms commit e384d6dd5f410799ec211f73bca0b5d5d7bc651e
lecorguille
parents: 30
diff changeset
747 res <- new(
8fd5b5afa24d planemo upload for repository https://github.com/workflow4metabolomics/xcms commit e384d6dd5f410799ec211f73bca0b5d5d7bc651e
lecorguille
parents: 30
diff changeset
748 "OnDiskMSnExp",
8fd5b5afa24d planemo upload for repository https://github.com/workflow4metabolomics/xcms commit e384d6dd5f410799ec211f73bca0b5d5d7bc651e
lecorguille
parents: 30
diff changeset
749 phenoData = new("NAnnotatedDataFrame", data = pdata),
8fd5b5afa24d planemo upload for repository https://github.com/workflow4metabolomics/xcms commit e384d6dd5f410799ec211f73bca0b5d5d7bc651e
lecorguille
parents: 30
diff changeset
750 featureData = new("AnnotatedDataFrame", featd),
8fd5b5afa24d planemo upload for repository https://github.com/workflow4metabolomics/xcms commit e384d6dd5f410799ec211f73bca0b5d5d7bc651e
lecorguille
parents: 30
diff changeset
751 processingData = new("MSnProcess",
8fd5b5afa24d planemo upload for repository https://github.com/workflow4metabolomics/xcms commit e384d6dd5f410799ec211f73bca0b5d5d7bc651e
lecorguille
parents: 30
diff changeset
752 processing = paste0("Concatenated [", date(), "]"),
8fd5b5afa24d planemo upload for repository https://github.com/workflow4metabolomics/xcms commit e384d6dd5f410799ec211f73bca0b5d5d7bc651e
lecorguille
parents: 30
diff changeset
753 files = unlist(fls), smoothed = NA),
8fd5b5afa24d planemo upload for repository https://github.com/workflow4metabolomics/xcms commit e384d6dd5f410799ec211f73bca0b5d5d7bc651e
lecorguille
parents: 30
diff changeset
754 experimentData = expdata,
8fd5b5afa24d planemo upload for repository https://github.com/workflow4metabolomics/xcms commit e384d6dd5f410799ec211f73bca0b5d5d7bc651e
lecorguille
parents: 30
diff changeset
755 spectraProcessingQueue = new_procQ)
8fd5b5afa24d planemo upload for repository https://github.com/workflow4metabolomics/xcms commit e384d6dd5f410799ec211f73bca0b5d5d7bc651e
lecorguille
parents: 30
diff changeset
756 if (validObject(res))
8fd5b5afa24d planemo upload for repository https://github.com/workflow4metabolomics/xcms commit e384d6dd5f410799ec211f73bca0b5d5d7bc651e
lecorguille
parents: 30
diff changeset
757 res
8fd5b5afa24d planemo upload for repository https://github.com/workflow4metabolomics/xcms commit e384d6dd5f410799ec211f73bca0b5d5d7bc651e
lecorguille
parents: 30
diff changeset
758 }
8fd5b5afa24d planemo upload for repository https://github.com/workflow4metabolomics/xcms commit e384d6dd5f410799ec211f73bca0b5d5d7bc651e
lecorguille
parents: 30
diff changeset
759
8fd5b5afa24d planemo upload for repository https://github.com/workflow4metabolomics/xcms commit e384d6dd5f410799ec211f73bca0b5d5d7bc651e
lecorguille
parents: 30
diff changeset
760 #@TODO: remove this function as soon as we can use xcms 3.x.x from Bioconductor 3.7
8fd5b5afa24d planemo upload for repository https://github.com/workflow4metabolomics/xcms commit e384d6dd5f410799ec211f73bca0b5d5d7bc651e
lecorguille
parents: 30
diff changeset
761 # https://github.com/sneumann/xcms/issues/247
8fd5b5afa24d planemo upload for repository https://github.com/workflow4metabolomics/xcms commit e384d6dd5f410799ec211f73bca0b5d5d7bc651e
lecorguille
parents: 30
diff changeset
762 c.XCMSnExp <- function(...) {
8fd5b5afa24d planemo upload for repository https://github.com/workflow4metabolomics/xcms commit e384d6dd5f410799ec211f73bca0b5d5d7bc651e
lecorguille
parents: 30
diff changeset
763 .concatenate_XCMSnExp(...)
8fd5b5afa24d planemo upload for repository https://github.com/workflow4metabolomics/xcms commit e384d6dd5f410799ec211f73bca0b5d5d7bc651e
lecorguille
parents: 30
diff changeset
764 }