annotate lib.r @ 34:efd23113d5f4 draft

planemo upload for repository https://github.com/workflow4metabolomics/xcms commit 49203f8a5271fa5e6bb889e907df71ebf7757309
author lecorguille
date Thu, 08 Mar 2018 05:51:32 -0500
parents c363b9f1caef
children 7f636ad1162b
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
32
2bf1cb023c94 planemo upload for repository https://github.com/workflow4metabolomics/xcms commit e384d6dd5f410799ec211f73bca0b5d5d7bc651e
lecorguille
parents: 31
diff changeset
1 #@authors ABiMS TEAM, Y. Guitton
2bf1cb023c94 planemo upload for repository https://github.com/workflow4metabolomics/xcms commit e384d6dd5f410799ec211f73bca0b5d5d7bc651e
lecorguille
parents: 31
diff changeset
2 # lib.r for Galaxy Workflow4Metabolomics xcms tools
5
b9a87af62223 planemo upload commit 5a5b747865d7fb76f711bce2d9ce2a0f82a2a374-dirty
lecorguille
parents:
diff changeset
3
32
2bf1cb023c94 planemo upload for repository https://github.com/workflow4metabolomics/xcms commit e384d6dd5f410799ec211f73bca0b5d5d7bc651e
lecorguille
parents: 31
diff changeset
4 #@author G. Le Corguille
2bf1cb023c94 planemo upload for repository https://github.com/workflow4metabolomics/xcms commit e384d6dd5f410799ec211f73bca0b5d5d7bc651e
lecorguille
parents: 31
diff changeset
5 # solve an issue with batch if arguments are logical TRUE/FALSE
2bf1cb023c94 planemo upload for repository https://github.com/workflow4metabolomics/xcms commit e384d6dd5f410799ec211f73bca0b5d5d7bc651e
lecorguille
parents: 31
diff changeset
6 parseCommandArgs <- function(...) {
2bf1cb023c94 planemo upload for repository https://github.com/workflow4metabolomics/xcms commit e384d6dd5f410799ec211f73bca0b5d5d7bc651e
lecorguille
parents: 31
diff changeset
7 args <- batch::parseCommandArgs(...)
2bf1cb023c94 planemo upload for repository https://github.com/workflow4metabolomics/xcms commit e384d6dd5f410799ec211f73bca0b5d5d7bc651e
lecorguille
parents: 31
diff changeset
8 for (key in names(args)) {
2bf1cb023c94 planemo upload for repository https://github.com/workflow4metabolomics/xcms commit e384d6dd5f410799ec211f73bca0b5d5d7bc651e
lecorguille
parents: 31
diff changeset
9 if (args[key] %in% c("TRUE","FALSE"))
2bf1cb023c94 planemo upload for repository https://github.com/workflow4metabolomics/xcms commit e384d6dd5f410799ec211f73bca0b5d5d7bc651e
lecorguille
parents: 31
diff changeset
10 args[key] = as.logical(args[key])
2bf1cb023c94 planemo upload for repository https://github.com/workflow4metabolomics/xcms commit e384d6dd5f410799ec211f73bca0b5d5d7bc651e
lecorguille
parents: 31
diff changeset
11 }
2bf1cb023c94 planemo upload for repository https://github.com/workflow4metabolomics/xcms commit e384d6dd5f410799ec211f73bca0b5d5d7bc651e
lecorguille
parents: 31
diff changeset
12 return(args)
2bf1cb023c94 planemo upload for repository https://github.com/workflow4metabolomics/xcms commit e384d6dd5f410799ec211f73bca0b5d5d7bc651e
lecorguille
parents: 31
diff changeset
13 }
5
b9a87af62223 planemo upload commit 5a5b747865d7fb76f711bce2d9ce2a0f82a2a374-dirty
lecorguille
parents:
diff changeset
14
16
f28041d2180a planemo upload for repository https://github.com/workflow4metabolomics/xcms commit 08e7f269a5c59687a7768be8db5fcb4e4d736093
lecorguille
parents: 15
diff changeset
15 #@author G. Le Corguille
32
2bf1cb023c94 planemo upload for repository https://github.com/workflow4metabolomics/xcms commit e384d6dd5f410799ec211f73bca0b5d5d7bc651e
lecorguille
parents: 31
diff changeset
16 # This function will
2bf1cb023c94 planemo upload for repository https://github.com/workflow4metabolomics/xcms commit e384d6dd5f410799ec211f73bca0b5d5d7bc651e
lecorguille
parents: 31
diff changeset
17 # - load the packages
2bf1cb023c94 planemo upload for repository https://github.com/workflow4metabolomics/xcms commit e384d6dd5f410799ec211f73bca0b5d5d7bc651e
lecorguille
parents: 31
diff changeset
18 # - display the sessionInfo
2bf1cb023c94 planemo upload for repository https://github.com/workflow4metabolomics/xcms commit e384d6dd5f410799ec211f73bca0b5d5d7bc651e
lecorguille
parents: 31
diff changeset
19 loadAndDisplayPackages <- function(pkgs) {
2bf1cb023c94 planemo upload for repository https://github.com/workflow4metabolomics/xcms commit e384d6dd5f410799ec211f73bca0b5d5d7bc651e
lecorguille
parents: 31
diff changeset
20 for(pkg in pkgs) suppressPackageStartupMessages( stopifnot( library(pkg, quietly=TRUE, logical.return=TRUE, character.only=TRUE)))
2bf1cb023c94 planemo upload for repository https://github.com/workflow4metabolomics/xcms commit e384d6dd5f410799ec211f73bca0b5d5d7bc651e
lecorguille
parents: 31
diff changeset
21
2bf1cb023c94 planemo upload for repository https://github.com/workflow4metabolomics/xcms commit e384d6dd5f410799ec211f73bca0b5d5d7bc651e
lecorguille
parents: 31
diff changeset
22 sessioninfo = sessionInfo()
2bf1cb023c94 planemo upload for repository https://github.com/workflow4metabolomics/xcms commit e384d6dd5f410799ec211f73bca0b5d5d7bc651e
lecorguille
parents: 31
diff changeset
23 cat(sessioninfo$R.version$version.string,"\n")
2bf1cb023c94 planemo upload for repository https://github.com/workflow4metabolomics/xcms commit e384d6dd5f410799ec211f73bca0b5d5d7bc651e
lecorguille
parents: 31
diff changeset
24 cat("Main packages:\n")
2bf1cb023c94 planemo upload for repository https://github.com/workflow4metabolomics/xcms commit e384d6dd5f410799ec211f73bca0b5d5d7bc651e
lecorguille
parents: 31
diff changeset
25 for (pkg in names(sessioninfo$otherPkgs)) { cat(paste(pkg,packageVersion(pkg)),"\t") }; cat("\n")
2bf1cb023c94 planemo upload for repository https://github.com/workflow4metabolomics/xcms commit e384d6dd5f410799ec211f73bca0b5d5d7bc651e
lecorguille
parents: 31
diff changeset
26 cat("Other loaded packages:\n")
2bf1cb023c94 planemo upload for repository https://github.com/workflow4metabolomics/xcms commit e384d6dd5f410799ec211f73bca0b5d5d7bc651e
lecorguille
parents: 31
diff changeset
27 for (pkg in names(sessioninfo$loadedOnly)) { cat(paste(pkg,packageVersion(pkg)),"\t") }; cat("\n")
2bf1cb023c94 planemo upload for repository https://github.com/workflow4metabolomics/xcms commit e384d6dd5f410799ec211f73bca0b5d5d7bc651e
lecorguille
parents: 31
diff changeset
28 }
2bf1cb023c94 planemo upload for repository https://github.com/workflow4metabolomics/xcms commit e384d6dd5f410799ec211f73bca0b5d5d7bc651e
lecorguille
parents: 31
diff changeset
29
2bf1cb023c94 planemo upload for repository https://github.com/workflow4metabolomics/xcms commit e384d6dd5f410799ec211f73bca0b5d5d7bc651e
lecorguille
parents: 31
diff changeset
30 #@author G. Le Corguille
2bf1cb023c94 planemo upload for repository https://github.com/workflow4metabolomics/xcms commit e384d6dd5f410799ec211f73bca0b5d5d7bc651e
lecorguille
parents: 31
diff changeset
31 # This function convert if it is required the Retention Time in minutes
16
f28041d2180a planemo upload for repository https://github.com/workflow4metabolomics/xcms commit 08e7f269a5c59687a7768be8db5fcb4e4d736093
lecorguille
parents: 15
diff changeset
32 RTSecondToMinute <- function(variableMetadata, convertRTMinute) {
f28041d2180a planemo upload for repository https://github.com/workflow4metabolomics/xcms commit 08e7f269a5c59687a7768be8db5fcb4e4d736093
lecorguille
parents: 15
diff changeset
33 if (convertRTMinute){
f28041d2180a planemo upload for repository https://github.com/workflow4metabolomics/xcms commit 08e7f269a5c59687a7768be8db5fcb4e4d736093
lecorguille
parents: 15
diff changeset
34 #converting the retention times (seconds) into minutes
f28041d2180a planemo upload for repository https://github.com/workflow4metabolomics/xcms commit 08e7f269a5c59687a7768be8db5fcb4e4d736093
lecorguille
parents: 15
diff changeset
35 print("converting the retention times into minutes in the variableMetadata")
32
2bf1cb023c94 planemo upload for repository https://github.com/workflow4metabolomics/xcms commit e384d6dd5f410799ec211f73bca0b5d5d7bc651e
lecorguille
parents: 31
diff changeset
36 variableMetadata[,"rt"] <- variableMetadata[,"rt"]/60
2bf1cb023c94 planemo upload for repository https://github.com/workflow4metabolomics/xcms commit e384d6dd5f410799ec211f73bca0b5d5d7bc651e
lecorguille
parents: 31
diff changeset
37 variableMetadata[,"rtmin"] <- variableMetadata[,"rtmin"]/60
2bf1cb023c94 planemo upload for repository https://github.com/workflow4metabolomics/xcms commit e384d6dd5f410799ec211f73bca0b5d5d7bc651e
lecorguille
parents: 31
diff changeset
38 variableMetadata[,"rtmax"] <- variableMetadata[,"rtmax"]/60
16
f28041d2180a planemo upload for repository https://github.com/workflow4metabolomics/xcms commit 08e7f269a5c59687a7768be8db5fcb4e4d736093
lecorguille
parents: 15
diff changeset
39 }
f28041d2180a planemo upload for repository https://github.com/workflow4metabolomics/xcms commit 08e7f269a5c59687a7768be8db5fcb4e4d736093
lecorguille
parents: 15
diff changeset
40 return (variableMetadata)
f28041d2180a planemo upload for repository https://github.com/workflow4metabolomics/xcms commit 08e7f269a5c59687a7768be8db5fcb4e4d736093
lecorguille
parents: 15
diff changeset
41 }
5
b9a87af62223 planemo upload commit 5a5b747865d7fb76f711bce2d9ce2a0f82a2a374-dirty
lecorguille
parents:
diff changeset
42
16
f28041d2180a planemo upload for repository https://github.com/workflow4metabolomics/xcms commit 08e7f269a5c59687a7768be8db5fcb4e4d736093
lecorguille
parents: 15
diff changeset
43 #@author G. Le Corguille
32
2bf1cb023c94 planemo upload for repository https://github.com/workflow4metabolomics/xcms commit e384d6dd5f410799ec211f73bca0b5d5d7bc651e
lecorguille
parents: 31
diff changeset
44 # This function format ions identifiers
21
ab238b104c3f planemo upload for repository https://github.com/workflow4metabolomics/xcms commit 481448087f0e09c131b24f7d552db69f3552d371-dirty
lecorguille
parents: 20
diff changeset
45 formatIonIdentifiers <- function(variableMetadata, numDigitsRT=0, numDigitsMZ=0) {
32
2bf1cb023c94 planemo upload for repository https://github.com/workflow4metabolomics/xcms commit e384d6dd5f410799ec211f73bca0b5d5d7bc651e
lecorguille
parents: 31
diff changeset
46 splitDeco <- strsplit(as.character(variableMetadata$name),"_")
2bf1cb023c94 planemo upload for repository https://github.com/workflow4metabolomics/xcms commit e384d6dd5f410799ec211f73bca0b5d5d7bc651e
lecorguille
parents: 31
diff changeset
47 idsDeco <- sapply(splitDeco, function(x) { deco=unlist(x)[2]; if (is.na(deco)) return ("") else return(paste0("_",deco)) })
2bf1cb023c94 planemo upload for repository https://github.com/workflow4metabolomics/xcms commit e384d6dd5f410799ec211f73bca0b5d5d7bc651e
lecorguille
parents: 31
diff changeset
48 namecustom <- make.unique(paste0("M",round(variableMetadata[,"mz"],numDigitsMZ),"T",round(variableMetadata[,"rt"],numDigitsRT),idsDeco))
2bf1cb023c94 planemo upload for repository https://github.com/workflow4metabolomics/xcms commit e384d6dd5f410799ec211f73bca0b5d5d7bc651e
lecorguille
parents: 31
diff changeset
49 variableMetadata <- cbind(name=variableMetadata$name, namecustom=namecustom, variableMetadata[,!(colnames(variableMetadata) %in% c("name"))])
21
ab238b104c3f planemo upload for repository https://github.com/workflow4metabolomics/xcms commit 481448087f0e09c131b24f7d552db69f3552d371-dirty
lecorguille
parents: 20
diff changeset
50 return(variableMetadata)
16
f28041d2180a planemo upload for repository https://github.com/workflow4metabolomics/xcms commit 08e7f269a5c59687a7768be8db5fcb4e4d736093
lecorguille
parents: 15
diff changeset
51 }
f28041d2180a planemo upload for repository https://github.com/workflow4metabolomics/xcms commit 08e7f269a5c59687a7768be8db5fcb4e4d736093
lecorguille
parents: 15
diff changeset
52
f28041d2180a planemo upload for repository https://github.com/workflow4metabolomics/xcms commit 08e7f269a5c59687a7768be8db5fcb4e4d736093
lecorguille
parents: 15
diff changeset
53 #@author G. Le Corguille
32
2bf1cb023c94 planemo upload for repository https://github.com/workflow4metabolomics/xcms commit e384d6dd5f410799ec211f73bca0b5d5d7bc651e
lecorguille
parents: 31
diff changeset
54 # Draw the plotChromPeakDensity 3 per page in a pdf file
33
c363b9f1caef planemo upload for repository https://github.com/workflow4metabolomics/xcms commit 7b226c3ba91a3cf654ec1c14b3ef85090968bb0f
lecorguille
parents: 32
diff changeset
55 getPlotChromPeakDensity <- function(xdata, mzdigit=4) {
32
2bf1cb023c94 planemo upload for repository https://github.com/workflow4metabolomics/xcms commit e384d6dd5f410799ec211f73bca0b5d5d7bc651e
lecorguille
parents: 31
diff changeset
56 pdf(file="plotChromPeakDensity.pdf", width=16, height=12)
2bf1cb023c94 planemo upload for repository https://github.com/workflow4metabolomics/xcms commit e384d6dd5f410799ec211f73bca0b5d5d7bc651e
lecorguille
parents: 31
diff changeset
57
2bf1cb023c94 planemo upload for repository https://github.com/workflow4metabolomics/xcms commit e384d6dd5f410799ec211f73bca0b5d5d7bc651e
lecorguille
parents: 31
diff changeset
58 par(mfrow = c(3, 1), mar = c(4, 4, 1, 0.5))
2bf1cb023c94 planemo upload for repository https://github.com/workflow4metabolomics/xcms commit e384d6dd5f410799ec211f73bca0b5d5d7bc651e
lecorguille
parents: 31
diff changeset
59
2bf1cb023c94 planemo upload for repository https://github.com/workflow4metabolomics/xcms commit e384d6dd5f410799ec211f73bca0b5d5d7bc651e
lecorguille
parents: 31
diff changeset
60 group_colors <- brewer.pal(3, "Set1")[1:length(unique(xdata$sample_group))]
2bf1cb023c94 planemo upload for repository https://github.com/workflow4metabolomics/xcms commit e384d6dd5f410799ec211f73bca0b5d5d7bc651e
lecorguille
parents: 31
diff changeset
61 names(group_colors) <- unique(xdata$sample_group)
2bf1cb023c94 planemo upload for repository https://github.com/workflow4metabolomics/xcms commit e384d6dd5f410799ec211f73bca0b5d5d7bc651e
lecorguille
parents: 31
diff changeset
62
2bf1cb023c94 planemo upload for repository https://github.com/workflow4metabolomics/xcms commit e384d6dd5f410799ec211f73bca0b5d5d7bc651e
lecorguille
parents: 31
diff changeset
63 xlim <- c(min(featureDefinitions(xdata)$rtmin), max(featureDefinitions(xdata)$rtmax))
2bf1cb023c94 planemo upload for repository https://github.com/workflow4metabolomics/xcms commit e384d6dd5f410799ec211f73bca0b5d5d7bc651e
lecorguille
parents: 31
diff changeset
64 for (i in 1:nrow(featureDefinitions(xdata))) {
33
c363b9f1caef planemo upload for repository https://github.com/workflow4metabolomics/xcms commit 7b226c3ba91a3cf654ec1c14b3ef85090968bb0f
lecorguille
parents: 32
diff changeset
65 mzmin = featureDefinitions(xdata)[i,]$mzmin
c363b9f1caef planemo upload for repository https://github.com/workflow4metabolomics/xcms commit 7b226c3ba91a3cf654ec1c14b3ef85090968bb0f
lecorguille
parents: 32
diff changeset
66 mzmax = featureDefinitions(xdata)[i,]$mzmax
c363b9f1caef planemo upload for repository https://github.com/workflow4metabolomics/xcms commit 7b226c3ba91a3cf654ec1c14b3ef85090968bb0f
lecorguille
parents: 32
diff changeset
67 plotChromPeakDensity(xdata, mz=c(mzmin,mzmax), col=group_colors, pch=16, xlim=xlim, main=paste(round(mzmin,mzdigit),round(mzmax,mzdigit)))
32
2bf1cb023c94 planemo upload for repository https://github.com/workflow4metabolomics/xcms commit e384d6dd5f410799ec211f73bca0b5d5d7bc651e
lecorguille
parents: 31
diff changeset
68 legend("topright", legend=names(group_colors), col=group_colors, cex=0.8, lty=1)
2bf1cb023c94 planemo upload for repository https://github.com/workflow4metabolomics/xcms commit e384d6dd5f410799ec211f73bca0b5d5d7bc651e
lecorguille
parents: 31
diff changeset
69 }
2bf1cb023c94 planemo upload for repository https://github.com/workflow4metabolomics/xcms commit e384d6dd5f410799ec211f73bca0b5d5d7bc651e
lecorguille
parents: 31
diff changeset
70
2bf1cb023c94 planemo upload for repository https://github.com/workflow4metabolomics/xcms commit e384d6dd5f410799ec211f73bca0b5d5d7bc651e
lecorguille
parents: 31
diff changeset
71 dev.off()
2bf1cb023c94 planemo upload for repository https://github.com/workflow4metabolomics/xcms commit e384d6dd5f410799ec211f73bca0b5d5d7bc651e
lecorguille
parents: 31
diff changeset
72 }
2bf1cb023c94 planemo upload for repository https://github.com/workflow4metabolomics/xcms commit e384d6dd5f410799ec211f73bca0b5d5d7bc651e
lecorguille
parents: 31
diff changeset
73
2bf1cb023c94 planemo upload for repository https://github.com/workflow4metabolomics/xcms commit e384d6dd5f410799ec211f73bca0b5d5d7bc651e
lecorguille
parents: 31
diff changeset
74 #@author G. Le Corguille
2bf1cb023c94 planemo upload for repository https://github.com/workflow4metabolomics/xcms commit e384d6dd5f410799ec211f73bca0b5d5d7bc651e
lecorguille
parents: 31
diff changeset
75 # Draw the plotChromPeakDensity 3 per page in a pdf file
2bf1cb023c94 planemo upload for repository https://github.com/workflow4metabolomics/xcms commit e384d6dd5f410799ec211f73bca0b5d5d7bc651e
lecorguille
parents: 31
diff changeset
76 getPlotAdjustedRtime <- function(xdata) {
34
efd23113d5f4 planemo upload for repository https://github.com/workflow4metabolomics/xcms commit 49203f8a5271fa5e6bb889e907df71ebf7757309
lecorguille
parents: 33
diff changeset
77
32
2bf1cb023c94 planemo upload for repository https://github.com/workflow4metabolomics/xcms commit e384d6dd5f410799ec211f73bca0b5d5d7bc651e
lecorguille
parents: 31
diff changeset
78 pdf(file="raw_vs_adjusted_rt.pdf", width=16, height=12)
34
efd23113d5f4 planemo upload for repository https://github.com/workflow4metabolomics/xcms commit 49203f8a5271fa5e6bb889e907df71ebf7757309
lecorguille
parents: 33
diff changeset
79
32
2bf1cb023c94 planemo upload for repository https://github.com/workflow4metabolomics/xcms commit e384d6dd5f410799ec211f73bca0b5d5d7bc651e
lecorguille
parents: 31
diff changeset
80 # Color by group
2bf1cb023c94 planemo upload for repository https://github.com/workflow4metabolomics/xcms commit e384d6dd5f410799ec211f73bca0b5d5d7bc651e
lecorguille
parents: 31
diff changeset
81 group_colors <- brewer.pal(3, "Set1")[1:length(unique(xdata$sample_group))]
2bf1cb023c94 planemo upload for repository https://github.com/workflow4metabolomics/xcms commit e384d6dd5f410799ec211f73bca0b5d5d7bc651e
lecorguille
parents: 31
diff changeset
82 names(group_colors) <- unique(xdata$sample_group)
2bf1cb023c94 planemo upload for repository https://github.com/workflow4metabolomics/xcms commit e384d6dd5f410799ec211f73bca0b5d5d7bc651e
lecorguille
parents: 31
diff changeset
83 plotAdjustedRtime(xdata, col = group_colors[xdata$sample_group])
2bf1cb023c94 planemo upload for repository https://github.com/workflow4metabolomics/xcms commit e384d6dd5f410799ec211f73bca0b5d5d7bc651e
lecorguille
parents: 31
diff changeset
84 legend("topright", legend=names(group_colors), col=group_colors, cex=0.8, lty=1)
34
efd23113d5f4 planemo upload for repository https://github.com/workflow4metabolomics/xcms commit 49203f8a5271fa5e6bb889e907df71ebf7757309
lecorguille
parents: 33
diff changeset
85
32
2bf1cb023c94 planemo upload for repository https://github.com/workflow4metabolomics/xcms commit e384d6dd5f410799ec211f73bca0b5d5d7bc651e
lecorguille
parents: 31
diff changeset
86 # Color by sample
2bf1cb023c94 planemo upload for repository https://github.com/workflow4metabolomics/xcms commit e384d6dd5f410799ec211f73bca0b5d5d7bc651e
lecorguille
parents: 31
diff changeset
87 plotAdjustedRtime(xdata, col = rainbow(length(xdata@phenoData@data$sample_name)))
2bf1cb023c94 planemo upload for repository https://github.com/workflow4metabolomics/xcms commit e384d6dd5f410799ec211f73bca0b5d5d7bc651e
lecorguille
parents: 31
diff changeset
88 legend("topright", legend=xdata@phenoData@data$sample_name, col=rainbow(length(xdata@phenoData@data$sample_name)), cex=0.8, lty=1)
34
efd23113d5f4 planemo upload for repository https://github.com/workflow4metabolomics/xcms commit 49203f8a5271fa5e6bb889e907df71ebf7757309
lecorguille
parents: 33
diff changeset
89
32
2bf1cb023c94 planemo upload for repository https://github.com/workflow4metabolomics/xcms commit e384d6dd5f410799ec211f73bca0b5d5d7bc651e
lecorguille
parents: 31
diff changeset
90 dev.off()
2bf1cb023c94 planemo upload for repository https://github.com/workflow4metabolomics/xcms commit e384d6dd5f410799ec211f73bca0b5d5d7bc651e
lecorguille
parents: 31
diff changeset
91 }
2bf1cb023c94 planemo upload for repository https://github.com/workflow4metabolomics/xcms commit e384d6dd5f410799ec211f73bca0b5d5d7bc651e
lecorguille
parents: 31
diff changeset
92
2bf1cb023c94 planemo upload for repository https://github.com/workflow4metabolomics/xcms commit e384d6dd5f410799ec211f73bca0b5d5d7bc651e
lecorguille
parents: 31
diff changeset
93 #@author G. Le Corguille
16
f28041d2180a planemo upload for repository https://github.com/workflow4metabolomics/xcms commit 08e7f269a5c59687a7768be8db5fcb4e4d736093
lecorguille
parents: 15
diff changeset
94 # value: intensity values to be used into, maxo or intb
32
2bf1cb023c94 planemo upload for repository https://github.com/workflow4metabolomics/xcms commit e384d6dd5f410799ec211f73bca0b5d5d7bc651e
lecorguille
parents: 31
diff changeset
95 getPeaklistW4M <- function(xdata, intval="into", convertRTMinute=F, numDigitsMZ=4, numDigitsRT=0, variableMetadataOutput, dataMatrixOutput) {
2bf1cb023c94 planemo upload for repository https://github.com/workflow4metabolomics/xcms commit e384d6dd5f410799ec211f73bca0b5d5d7bc651e
lecorguille
parents: 31
diff changeset
96 dataMatrix <- featureValues(xdata, method="medret", value=intval)
2bf1cb023c94 planemo upload for repository https://github.com/workflow4metabolomics/xcms commit e384d6dd5f410799ec211f73bca0b5d5d7bc651e
lecorguille
parents: 31
diff changeset
97 colnames(dataMatrix) <- tools::file_path_sans_ext(colnames(dataMatrix))
2bf1cb023c94 planemo upload for repository https://github.com/workflow4metabolomics/xcms commit e384d6dd5f410799ec211f73bca0b5d5d7bc651e
lecorguille
parents: 31
diff changeset
98 dataMatrix = cbind(name=groupnamesW4M(xdata), dataMatrix)
2bf1cb023c94 planemo upload for repository https://github.com/workflow4metabolomics/xcms commit e384d6dd5f410799ec211f73bca0b5d5d7bc651e
lecorguille
parents: 31
diff changeset
99 variableMetadata <- featureDefinitions(xdata)
2bf1cb023c94 planemo upload for repository https://github.com/workflow4metabolomics/xcms commit e384d6dd5f410799ec211f73bca0b5d5d7bc651e
lecorguille
parents: 31
diff changeset
100 colnames(variableMetadata)[1] = "mz"; colnames(variableMetadata)[4] = "rt"
2bf1cb023c94 planemo upload for repository https://github.com/workflow4metabolomics/xcms commit e384d6dd5f410799ec211f73bca0b5d5d7bc651e
lecorguille
parents: 31
diff changeset
101 variableMetadata = data.frame(name=groupnamesW4M(xdata), variableMetadata)
17
602acc32b549 planemo upload for repository https://github.com/workflow4metabolomics/xcms commit 22c4e92909198328fc7439ff47e4546a273eb907
lecorguille
parents: 16
diff changeset
102
32
2bf1cb023c94 planemo upload for repository https://github.com/workflow4metabolomics/xcms commit e384d6dd5f410799ec211f73bca0b5d5d7bc651e
lecorguille
parents: 31
diff changeset
103 variableMetadata <- RTSecondToMinute(variableMetadata, convertRTMinute)
2bf1cb023c94 planemo upload for repository https://github.com/workflow4metabolomics/xcms commit e384d6dd5f410799ec211f73bca0b5d5d7bc651e
lecorguille
parents: 31
diff changeset
104 variableMetadata <- formatIonIdentifiers(variableMetadata, numDigitsRT=numDigitsRT, numDigitsMZ=numDigitsMZ)
16
f28041d2180a planemo upload for repository https://github.com/workflow4metabolomics/xcms commit 08e7f269a5c59687a7768be8db5fcb4e4d736093
lecorguille
parents: 15
diff changeset
105
21
ab238b104c3f planemo upload for repository https://github.com/workflow4metabolomics/xcms commit 481448087f0e09c131b24f7d552db69f3552d371-dirty
lecorguille
parents: 20
diff changeset
106 write.table(variableMetadata, file=variableMetadataOutput,sep="\t",quote=F,row.names=F)
ab238b104c3f planemo upload for repository https://github.com/workflow4metabolomics/xcms commit 481448087f0e09c131b24f7d552db69f3552d371-dirty
lecorguille
parents: 20
diff changeset
107 write.table(dataMatrix, file=dataMatrixOutput,sep="\t",quote=F,row.names=F)
32
2bf1cb023c94 planemo upload for repository https://github.com/workflow4metabolomics/xcms commit e384d6dd5f410799ec211f73bca0b5d5d7bc651e
lecorguille
parents: 31
diff changeset
108
16
f28041d2180a planemo upload for repository https://github.com/workflow4metabolomics/xcms commit 08e7f269a5c59687a7768be8db5fcb4e4d736093
lecorguille
parents: 15
diff changeset
109 }
5
b9a87af62223 planemo upload commit 5a5b747865d7fb76f711bce2d9ce2a0f82a2a374-dirty
lecorguille
parents:
diff changeset
110
34
efd23113d5f4 planemo upload for repository https://github.com/workflow4metabolomics/xcms commit 49203f8a5271fa5e6bb889e907df71ebf7757309
lecorguille
parents: 33
diff changeset
111 #@author G. Le Corguille
efd23113d5f4 planemo upload for repository https://github.com/workflow4metabolomics/xcms commit 49203f8a5271fa5e6bb889e907df71ebf7757309
lecorguille
parents: 33
diff changeset
112 getPlotChromatogram <- function(xdata, pdfname="Chromatogram.pdf", aggregationFun = "max") {
efd23113d5f4 planemo upload for repository https://github.com/workflow4metabolomics/xcms commit 49203f8a5271fa5e6bb889e907df71ebf7757309
lecorguille
parents: 33
diff changeset
113
efd23113d5f4 planemo upload for repository https://github.com/workflow4metabolomics/xcms commit 49203f8a5271fa5e6bb889e907df71ebf7757309
lecorguille
parents: 33
diff changeset
114 chrom <- chromatogram(xdata, aggregationFun = aggregationFun)
efd23113d5f4 planemo upload for repository https://github.com/workflow4metabolomics/xcms commit 49203f8a5271fa5e6bb889e907df71ebf7757309
lecorguille
parents: 33
diff changeset
115 if (aggregationFun == "sum")
efd23113d5f4 planemo upload for repository https://github.com/workflow4metabolomics/xcms commit 49203f8a5271fa5e6bb889e907df71ebf7757309
lecorguille
parents: 33
diff changeset
116 type="Total Ion Chromatograms"
efd23113d5f4 planemo upload for repository https://github.com/workflow4metabolomics/xcms commit 49203f8a5271fa5e6bb889e907df71ebf7757309
lecorguille
parents: 33
diff changeset
117 else
efd23113d5f4 planemo upload for repository https://github.com/workflow4metabolomics/xcms commit 49203f8a5271fa5e6bb889e907df71ebf7757309
lecorguille
parents: 33
diff changeset
118 type="Base Peak Intensity Chromatograms"
efd23113d5f4 planemo upload for repository https://github.com/workflow4metabolomics/xcms commit 49203f8a5271fa5e6bb889e907df71ebf7757309
lecorguille
parents: 33
diff changeset
119
efd23113d5f4 planemo upload for repository https://github.com/workflow4metabolomics/xcms commit 49203f8a5271fa5e6bb889e907df71ebf7757309
lecorguille
parents: 33
diff changeset
120 adjusted="Raw"
efd23113d5f4 planemo upload for repository https://github.com/workflow4metabolomics/xcms commit 49203f8a5271fa5e6bb889e907df71ebf7757309
lecorguille
parents: 33
diff changeset
121 if (hasAdjustedRtime(xdata))
efd23113d5f4 planemo upload for repository https://github.com/workflow4metabolomics/xcms commit 49203f8a5271fa5e6bb889e907df71ebf7757309
lecorguille
parents: 33
diff changeset
122 adjusted="Adjusted"
efd23113d5f4 planemo upload for repository https://github.com/workflow4metabolomics/xcms commit 49203f8a5271fa5e6bb889e907df71ebf7757309
lecorguille
parents: 33
diff changeset
123
efd23113d5f4 planemo upload for repository https://github.com/workflow4metabolomics/xcms commit 49203f8a5271fa5e6bb889e907df71ebf7757309
lecorguille
parents: 33
diff changeset
124 main <- paste(type,":",adjusted,"data")
efd23113d5f4 planemo upload for repository https://github.com/workflow4metabolomics/xcms commit 49203f8a5271fa5e6bb889e907df71ebf7757309
lecorguille
parents: 33
diff changeset
125
efd23113d5f4 planemo upload for repository https://github.com/workflow4metabolomics/xcms commit 49203f8a5271fa5e6bb889e907df71ebf7757309
lecorguille
parents: 33
diff changeset
126 pdf(pdfname, width=16, height=10)
efd23113d5f4 planemo upload for repository https://github.com/workflow4metabolomics/xcms commit 49203f8a5271fa5e6bb889e907df71ebf7757309
lecorguille
parents: 33
diff changeset
127
efd23113d5f4 planemo upload for repository https://github.com/workflow4metabolomics/xcms commit 49203f8a5271fa5e6bb889e907df71ebf7757309
lecorguille
parents: 33
diff changeset
128 # Color by group
efd23113d5f4 planemo upload for repository https://github.com/workflow4metabolomics/xcms commit 49203f8a5271fa5e6bb889e907df71ebf7757309
lecorguille
parents: 33
diff changeset
129 group_colors <- brewer.pal(3, "Set1")[1:length(unique(xdata$sample_group))]
efd23113d5f4 planemo upload for repository https://github.com/workflow4metabolomics/xcms commit 49203f8a5271fa5e6bb889e907df71ebf7757309
lecorguille
parents: 33
diff changeset
130 names(group_colors) <- unique(xdata$sample_group)
efd23113d5f4 planemo upload for repository https://github.com/workflow4metabolomics/xcms commit 49203f8a5271fa5e6bb889e907df71ebf7757309
lecorguille
parents: 33
diff changeset
131 plot(chrom, col = group_colors[chrom$sample_group], main=main)
efd23113d5f4 planemo upload for repository https://github.com/workflow4metabolomics/xcms commit 49203f8a5271fa5e6bb889e907df71ebf7757309
lecorguille
parents: 33
diff changeset
132 legend("topright", legend=names(group_colors), col=group_colors, cex=0.8, lty=1)
efd23113d5f4 planemo upload for repository https://github.com/workflow4metabolomics/xcms commit 49203f8a5271fa5e6bb889e907df71ebf7757309
lecorguille
parents: 33
diff changeset
133
efd23113d5f4 planemo upload for repository https://github.com/workflow4metabolomics/xcms commit 49203f8a5271fa5e6bb889e907df71ebf7757309
lecorguille
parents: 33
diff changeset
134 # Color by sample
efd23113d5f4 planemo upload for repository https://github.com/workflow4metabolomics/xcms commit 49203f8a5271fa5e6bb889e907df71ebf7757309
lecorguille
parents: 33
diff changeset
135 plot(chrom, col = rainbow(length(xdata@phenoData@data$sample_name)), main=main)
efd23113d5f4 planemo upload for repository https://github.com/workflow4metabolomics/xcms commit 49203f8a5271fa5e6bb889e907df71ebf7757309
lecorguille
parents: 33
diff changeset
136 legend("topright", legend=xdata@phenoData@data$sample_name, col=rainbow(length(xdata@phenoData@data$sample_name)), cex=0.8, lty=1)
efd23113d5f4 planemo upload for repository https://github.com/workflow4metabolomics/xcms commit 49203f8a5271fa5e6bb889e907df71ebf7757309
lecorguille
parents: 33
diff changeset
137
efd23113d5f4 planemo upload for repository https://github.com/workflow4metabolomics/xcms commit 49203f8a5271fa5e6bb889e907df71ebf7757309
lecorguille
parents: 33
diff changeset
138 dev.off()
5
b9a87af62223 planemo upload commit 5a5b747865d7fb76f711bce2d9ce2a0f82a2a374-dirty
lecorguille
parents:
diff changeset
139 }
b9a87af62223 planemo upload commit 5a5b747865d7fb76f711bce2d9ce2a0f82a2a374-dirty
lecorguille
parents:
diff changeset
140
34
efd23113d5f4 planemo upload for repository https://github.com/workflow4metabolomics/xcms commit 49203f8a5271fa5e6bb889e907df71ebf7757309
lecorguille
parents: 33
diff changeset
141 #@author G. Le Corguille
efd23113d5f4 planemo upload for repository https://github.com/workflow4metabolomics/xcms commit 49203f8a5271fa5e6bb889e907df71ebf7757309
lecorguille
parents: 33
diff changeset
142 getPlotTICs <- function(xdata, pdfname="TICs.pdf") {
efd23113d5f4 planemo upload for repository https://github.com/workflow4metabolomics/xcms commit 49203f8a5271fa5e6bb889e907df71ebf7757309
lecorguille
parents: 33
diff changeset
143 getPlotChromatogram(xdata, pdfname, aggregationFun = "sum")
5
b9a87af62223 planemo upload commit 5a5b747865d7fb76f711bce2d9ce2a0f82a2a374-dirty
lecorguille
parents:
diff changeset
144 }
b9a87af62223 planemo upload commit 5a5b747865d7fb76f711bce2d9ce2a0f82a2a374-dirty
lecorguille
parents:
diff changeset
145
34
efd23113d5f4 planemo upload for repository https://github.com/workflow4metabolomics/xcms commit 49203f8a5271fa5e6bb889e907df71ebf7757309
lecorguille
parents: 33
diff changeset
146 #@author G. Le Corguille
efd23113d5f4 planemo upload for repository https://github.com/workflow4metabolomics/xcms commit 49203f8a5271fa5e6bb889e907df71ebf7757309
lecorguille
parents: 33
diff changeset
147 getPlotBPIs <- function(xdata, pdfname="BPIs.pdf") {
efd23113d5f4 planemo upload for repository https://github.com/workflow4metabolomics/xcms commit 49203f8a5271fa5e6bb889e907df71ebf7757309
lecorguille
parents: 33
diff changeset
148 getPlotChromatogram(xdata, pdfname, aggregationFun = "max")
5
b9a87af62223 planemo upload commit 5a5b747865d7fb76f711bce2d9ce2a0f82a2a374-dirty
lecorguille
parents:
diff changeset
149 }
b9a87af62223 planemo upload commit 5a5b747865d7fb76f711bce2d9ce2a0f82a2a374-dirty
lecorguille
parents:
diff changeset
150
b9a87af62223 planemo upload commit 5a5b747865d7fb76f711bce2d9ce2a0f82a2a374-dirty
lecorguille
parents:
diff changeset
151
32
2bf1cb023c94 planemo upload for repository https://github.com/workflow4metabolomics/xcms commit e384d6dd5f410799ec211f73bca0b5d5d7bc651e
lecorguille
parents: 31
diff changeset
152 # Get the polarities from all the samples of a condition
5
b9a87af62223 planemo upload commit 5a5b747865d7fb76f711bce2d9ce2a0f82a2a374-dirty
lecorguille
parents:
diff changeset
153 #@author Misharl Monsoor misharl.monsoor@sb-roscoff.fr ABiMS TEAM
b9a87af62223 planemo upload commit 5a5b747865d7fb76f711bce2d9ce2a0f82a2a374-dirty
lecorguille
parents:
diff changeset
154 #@author Gildas Le Corguille lecorguille@sb-roscoff.fr ABiMS TEAM
32
2bf1cb023c94 planemo upload for repository https://github.com/workflow4metabolomics/xcms commit e384d6dd5f410799ec211f73bca0b5d5d7bc651e
lecorguille
parents: 31
diff changeset
155 getSampleMetadata <- function(xdata=NULL, sampleMetadataOutput="sampleMetadata.tsv") {
17
602acc32b549 planemo upload for repository https://github.com/workflow4metabolomics/xcms commit 22c4e92909198328fc7439ff47e4546a273eb907
lecorguille
parents: 16
diff changeset
156 cat("Creating the sampleMetadata file...\n")
16
f28041d2180a planemo upload for repository https://github.com/workflow4metabolomics/xcms commit 08e7f269a5c59687a7768be8db5fcb4e4d736093
lecorguille
parents: 15
diff changeset
157
17
602acc32b549 planemo upload for repository https://github.com/workflow4metabolomics/xcms commit 22c4e92909198328fc7439ff47e4546a273eb907
lecorguille
parents: 16
diff changeset
158 #Create the sampleMetada dataframe
32
2bf1cb023c94 planemo upload for repository https://github.com/workflow4metabolomics/xcms commit e384d6dd5f410799ec211f73bca0b5d5d7bc651e
lecorguille
parents: 31
diff changeset
159 sampleMetadata <- xdata@phenoData@data
2bf1cb023c94 planemo upload for repository https://github.com/workflow4metabolomics/xcms commit e384d6dd5f410799ec211f73bca0b5d5d7bc651e
lecorguille
parents: 31
diff changeset
160 rownames(sampleMetadata) <- NULL
2bf1cb023c94 planemo upload for repository https://github.com/workflow4metabolomics/xcms commit e384d6dd5f410799ec211f73bca0b5d5d7bc651e
lecorguille
parents: 31
diff changeset
161 colnames(sampleMetadata) <- c("sampleMetadata", "class")
2bf1cb023c94 planemo upload for repository https://github.com/workflow4metabolomics/xcms commit e384d6dd5f410799ec211f73bca0b5d5d7bc651e
lecorguille
parents: 31
diff changeset
162
2bf1cb023c94 planemo upload for repository https://github.com/workflow4metabolomics/xcms commit e384d6dd5f410799ec211f73bca0b5d5d7bc651e
lecorguille
parents: 31
diff changeset
163 sampleNamesOrigin <- sampleMetadata$sampleMetadata
2bf1cb023c94 planemo upload for repository https://github.com/workflow4metabolomics/xcms commit e384d6dd5f410799ec211f73bca0b5d5d7bc651e
lecorguille
parents: 31
diff changeset
164 sampleNamesMakeNames <- make.names(sampleNamesOrigin)
5
b9a87af62223 planemo upload commit 5a5b747865d7fb76f711bce2d9ce2a0f82a2a374-dirty
lecorguille
parents:
diff changeset
165
17
602acc32b549 planemo upload for repository https://github.com/workflow4metabolomics/xcms commit 22c4e92909198328fc7439ff47e4546a273eb907
lecorguille
parents: 16
diff changeset
166 if (any(duplicated(sampleNamesMakeNames))) {
602acc32b549 planemo upload for repository https://github.com/workflow4metabolomics/xcms commit 22c4e92909198328fc7439ff47e4546a273eb907
lecorguille
parents: 16
diff changeset
167 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())
602acc32b549 planemo upload for repository https://github.com/workflow4metabolomics/xcms commit 22c4e92909198328fc7439ff47e4546a273eb907
lecorguille
parents: 16
diff changeset
168 for (sampleName in sampleNamesOrigin) {
602acc32b549 planemo upload for repository https://github.com/workflow4metabolomics/xcms commit 22c4e92909198328fc7439ff47e4546a273eb907
lecorguille
parents: 16
diff changeset
169 write(paste(sampleName,"\t->\t",make.names(sampleName)),stderr())
602acc32b549 planemo upload for repository https://github.com/workflow4metabolomics/xcms commit 22c4e92909198328fc7439ff47e4546a273eb907
lecorguille
parents: 16
diff changeset
170 }
602acc32b549 planemo upload for repository https://github.com/workflow4metabolomics/xcms commit 22c4e92909198328fc7439ff47e4546a273eb907
lecorguille
parents: 16
diff changeset
171 stop("\n\nERROR: One or more of your files will not be import by xcmsSet. It may due to bad characters in their filenames.")
602acc32b549 planemo upload for repository https://github.com/workflow4metabolomics/xcms commit 22c4e92909198328fc7439ff47e4546a273eb907
lecorguille
parents: 16
diff changeset
172 }
5
b9a87af62223 planemo upload commit 5a5b747865d7fb76f711bce2d9ce2a0f82a2a374-dirty
lecorguille
parents:
diff changeset
173
17
602acc32b549 planemo upload for repository https://github.com/workflow4metabolomics/xcms commit 22c4e92909198328fc7439ff47e4546a273eb907
lecorguille
parents: 16
diff changeset
174 if (!all(sampleNamesOrigin == sampleNamesMakeNames)) {
602acc32b549 planemo upload for repository https://github.com/workflow4metabolomics/xcms commit 22c4e92909198328fc7439ff47e4546a273eb907
lecorguille
parents: 16
diff changeset
175 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")
602acc32b549 planemo upload for repository https://github.com/workflow4metabolomics/xcms commit 22c4e92909198328fc7439ff47e4546a273eb907
lecorguille
parents: 16
diff changeset
176 for (sampleName in sampleNamesOrigin) {
602acc32b549 planemo upload for repository https://github.com/workflow4metabolomics/xcms commit 22c4e92909198328fc7439ff47e4546a273eb907
lecorguille
parents: 16
diff changeset
177 cat(paste(sampleName,"\t->\t",make.names(sampleName),"\n"))
602acc32b549 planemo upload for repository https://github.com/workflow4metabolomics/xcms commit 22c4e92909198328fc7439ff47e4546a273eb907
lecorguille
parents: 16
diff changeset
178 }
5
b9a87af62223 planemo upload commit 5a5b747865d7fb76f711bce2d9ce2a0f82a2a374-dirty
lecorguille
parents:
diff changeset
179 }
b9a87af62223 planemo upload commit 5a5b747865d7fb76f711bce2d9ce2a0f82a2a374-dirty
lecorguille
parents:
diff changeset
180
32
2bf1cb023c94 planemo upload for repository https://github.com/workflow4metabolomics/xcms commit e384d6dd5f410799ec211f73bca0b5d5d7bc651e
lecorguille
parents: 31
diff changeset
181 sampleMetadata$sampleMetadata <- sampleNamesMakeNames
2bf1cb023c94 planemo upload for repository https://github.com/workflow4metabolomics/xcms commit e384d6dd5f410799ec211f73bca0b5d5d7bc651e
lecorguille
parents: 31
diff changeset
182
17
602acc32b549 planemo upload for repository https://github.com/workflow4metabolomics/xcms commit 22c4e92909198328fc7439ff47e4546a273eb907
lecorguille
parents: 16
diff changeset
183
602acc32b549 planemo upload for repository https://github.com/workflow4metabolomics/xcms commit 22c4e92909198328fc7439ff47e4546a273eb907
lecorguille
parents: 16
diff changeset
184 #For each sample file, the following actions are done
32
2bf1cb023c94 planemo upload for repository https://github.com/workflow4metabolomics/xcms commit e384d6dd5f410799ec211f73bca0b5d5d7bc651e
lecorguille
parents: 31
diff changeset
185 for (fileIdx in 1:length(fileNames(xdata))) {
17
602acc32b549 planemo upload for repository https://github.com/workflow4metabolomics/xcms commit 22c4e92909198328fc7439ff47e4546a273eb907
lecorguille
parents: 16
diff changeset
186 #Check if the file is in the CDF format
32
2bf1cb023c94 planemo upload for repository https://github.com/workflow4metabolomics/xcms commit e384d6dd5f410799ec211f73bca0b5d5d7bc651e
lecorguille
parents: 31
diff changeset
187 if (!mzR:::netCDFIsFile(fileNames(xdata))) {
17
602acc32b549 planemo upload for repository https://github.com/workflow4metabolomics/xcms commit 22c4e92909198328fc7439ff47e4546a273eb907
lecorguille
parents: 16
diff changeset
188
602acc32b549 planemo upload for repository https://github.com/workflow4metabolomics/xcms commit 22c4e92909198328fc7439ff47e4546a273eb907
lecorguille
parents: 16
diff changeset
189 # If the column isn't exist, with add one filled with NA
32
2bf1cb023c94 planemo upload for repository https://github.com/workflow4metabolomics/xcms commit e384d6dd5f410799ec211f73bca0b5d5d7bc651e
lecorguille
parents: 31
diff changeset
190 if (is.null(sampleMetadata$polarity)) sampleMetadata$polarity <- NA
5
b9a87af62223 planemo upload commit 5a5b747865d7fb76f711bce2d9ce2a0f82a2a374-dirty
lecorguille
parents:
diff changeset
191
17
602acc32b549 planemo upload for repository https://github.com/workflow4metabolomics/xcms commit 22c4e92909198328fc7439ff47e4546a273eb907
lecorguille
parents: 16
diff changeset
192 #Extract the polarity (a list of polarities)
32
2bf1cb023c94 planemo upload for repository https://github.com/workflow4metabolomics/xcms commit e384d6dd5f410799ec211f73bca0b5d5d7bc651e
lecorguille
parents: 31
diff changeset
193 polarity <- fData(xdata)[fData(xdata)$fileIdx == fileIdx,"polarity"]
17
602acc32b549 planemo upload for repository https://github.com/workflow4metabolomics/xcms commit 22c4e92909198328fc7439ff47e4546a273eb907
lecorguille
parents: 16
diff changeset
194 #Verify if all the scans have the same polarity
32
2bf1cb023c94 planemo upload for repository https://github.com/workflow4metabolomics/xcms commit e384d6dd5f410799ec211f73bca0b5d5d7bc651e
lecorguille
parents: 31
diff changeset
195 uniq_list <- unique(polarity)
17
602acc32b549 planemo upload for repository https://github.com/workflow4metabolomics/xcms commit 22c4e92909198328fc7439ff47e4546a273eb907
lecorguille
parents: 16
diff changeset
196 if (length(uniq_list)>1){
32
2bf1cb023c94 planemo upload for repository https://github.com/workflow4metabolomics/xcms commit e384d6dd5f410799ec211f73bca0b5d5d7bc651e
lecorguille
parents: 31
diff changeset
197 polarity <- "mixed"
17
602acc32b549 planemo upload for repository https://github.com/workflow4metabolomics/xcms commit 22c4e92909198328fc7439ff47e4546a273eb907
lecorguille
parents: 16
diff changeset
198 } else {
32
2bf1cb023c94 planemo upload for repository https://github.com/workflow4metabolomics/xcms commit e384d6dd5f410799ec211f73bca0b5d5d7bc651e
lecorguille
parents: 31
diff changeset
199 polarity <- as.character(uniq_list)
17
602acc32b549 planemo upload for repository https://github.com/workflow4metabolomics/xcms commit 22c4e92909198328fc7439ff47e4546a273eb907
lecorguille
parents: 16
diff changeset
200 }
5
b9a87af62223 planemo upload commit 5a5b747865d7fb76f711bce2d9ce2a0f82a2a374-dirty
lecorguille
parents:
diff changeset
201
17
602acc32b549 planemo upload for repository https://github.com/workflow4metabolomics/xcms commit 22c4e92909198328fc7439ff47e4546a273eb907
lecorguille
parents: 16
diff changeset
202 #Set the polarity attribute
32
2bf1cb023c94 planemo upload for repository https://github.com/workflow4metabolomics/xcms commit e384d6dd5f410799ec211f73bca0b5d5d7bc651e
lecorguille
parents: 31
diff changeset
203 sampleMetadata$polarity[fileIdx] <- polarity
17
602acc32b549 planemo upload for repository https://github.com/workflow4metabolomics/xcms commit 22c4e92909198328fc7439ff47e4546a273eb907
lecorguille
parents: 16
diff changeset
204 }
602acc32b549 planemo upload for repository https://github.com/workflow4metabolomics/xcms commit 22c4e92909198328fc7439ff47e4546a273eb907
lecorguille
parents: 16
diff changeset
205
602acc32b549 planemo upload for repository https://github.com/workflow4metabolomics/xcms commit 22c4e92909198328fc7439ff47e4546a273eb907
lecorguille
parents: 16
diff changeset
206 }
602acc32b549 planemo upload for repository https://github.com/workflow4metabolomics/xcms commit 22c4e92909198328fc7439ff47e4546a273eb907
lecorguille
parents: 16
diff changeset
207
602acc32b549 planemo upload for repository https://github.com/workflow4metabolomics/xcms commit 22c4e92909198328fc7439ff47e4546a273eb907
lecorguille
parents: 16
diff changeset
208 write.table(sampleMetadata, sep="\t", quote=FALSE, row.names=FALSE, file=sampleMetadataOutput)
602acc32b549 planemo upload for repository https://github.com/workflow4metabolomics/xcms commit 22c4e92909198328fc7439ff47e4546a273eb907
lecorguille
parents: 16
diff changeset
209
32
2bf1cb023c94 planemo upload for repository https://github.com/workflow4metabolomics/xcms commit e384d6dd5f410799ec211f73bca0b5d5d7bc651e
lecorguille
parents: 31
diff changeset
210 return(list("sampleNamesOrigin"=sampleNamesOrigin, "sampleNamesMakeNames"=sampleNamesMakeNames))
5
b9a87af62223 planemo upload commit 5a5b747865d7fb76f711bce2d9ce2a0f82a2a374-dirty
lecorguille
parents:
diff changeset
211
b9a87af62223 planemo upload commit 5a5b747865d7fb76f711bce2d9ce2a0f82a2a374-dirty
lecorguille
parents:
diff changeset
212 }
b9a87af62223 planemo upload commit 5a5b747865d7fb76f711bce2d9ce2a0f82a2a374-dirty
lecorguille
parents:
diff changeset
213
b9a87af62223 planemo upload commit 5a5b747865d7fb76f711bce2d9ce2a0f82a2a374-dirty
lecorguille
parents:
diff changeset
214
32
2bf1cb023c94 planemo upload for repository https://github.com/workflow4metabolomics/xcms commit e384d6dd5f410799ec211f73bca0b5d5d7bc651e
lecorguille
parents: 31
diff changeset
215 # This function check if xcms will found all the files
5
b9a87af62223 planemo upload commit 5a5b747865d7fb76f711bce2d9ce2a0f82a2a374-dirty
lecorguille
parents:
diff changeset
216 #@author Gildas Le Corguille lecorguille@sb-roscoff.fr ABiMS TEAM
b9a87af62223 planemo upload commit 5a5b747865d7fb76f711bce2d9ce2a0f82a2a374-dirty
lecorguille
parents:
diff changeset
217 checkFilesCompatibilityWithXcms <- function(directory) {
17
602acc32b549 planemo upload for repository https://github.com/workflow4metabolomics/xcms commit 22c4e92909198328fc7439ff47e4546a273eb907
lecorguille
parents: 16
diff changeset
218 cat("Checking files filenames compatibilities with xmcs...\n")
602acc32b549 planemo upload for repository https://github.com/workflow4metabolomics/xcms commit 22c4e92909198328fc7439ff47e4546a273eb907
lecorguille
parents: 16
diff changeset
219 # WHAT XCMS WILL FIND
602acc32b549 planemo upload for repository https://github.com/workflow4metabolomics/xcms commit 22c4e92909198328fc7439ff47e4546a273eb907
lecorguille
parents: 16
diff changeset
220 filepattern <- c("[Cc][Dd][Ff]", "[Nn][Cc]", "([Mm][Zz])?[Xx][Mm][Ll]","[Mm][Zz][Dd][Aa][Tt][Aa]", "[Mm][Zz][Mm][Ll]")
32
2bf1cb023c94 planemo upload for repository https://github.com/workflow4metabolomics/xcms commit e384d6dd5f410799ec211f73bca0b5d5d7bc651e
lecorguille
parents: 31
diff changeset
221 filepattern <- paste(paste("\\.", filepattern, "$", sep=""),collapse="|")
17
602acc32b549 planemo upload for repository https://github.com/workflow4metabolomics/xcms commit 22c4e92909198328fc7439ff47e4546a273eb907
lecorguille
parents: 16
diff changeset
222 info <- file.info(directory)
32
2bf1cb023c94 planemo upload for repository https://github.com/workflow4metabolomics/xcms commit e384d6dd5f410799ec211f73bca0b5d5d7bc651e
lecorguille
parents: 31
diff changeset
223 listed <- list.files(directory[info$isdir], pattern=filepattern, recursive=TRUE, full.names=TRUE)
17
602acc32b549 planemo upload for repository https://github.com/workflow4metabolomics/xcms commit 22c4e92909198328fc7439ff47e4546a273eb907
lecorguille
parents: 16
diff changeset
224 files <- c(directory[!info$isdir], listed)
602acc32b549 planemo upload for repository https://github.com/workflow4metabolomics/xcms commit 22c4e92909198328fc7439ff47e4546a273eb907
lecorguille
parents: 16
diff changeset
225 files_abs <- file.path(getwd(), files)
602acc32b549 planemo upload for repository https://github.com/workflow4metabolomics/xcms commit 22c4e92909198328fc7439ff47e4546a273eb907
lecorguille
parents: 16
diff changeset
226 exists <- file.exists(files_abs)
602acc32b549 planemo upload for repository https://github.com/workflow4metabolomics/xcms commit 22c4e92909198328fc7439ff47e4546a273eb907
lecorguille
parents: 16
diff changeset
227 files[exists] <- files_abs[exists]
602acc32b549 planemo upload for repository https://github.com/workflow4metabolomics/xcms commit 22c4e92909198328fc7439ff47e4546a273eb907
lecorguille
parents: 16
diff changeset
228 files[exists] <- sub("//","/",files[exists])
5
b9a87af62223 planemo upload commit 5a5b747865d7fb76f711bce2d9ce2a0f82a2a374-dirty
lecorguille
parents:
diff changeset
229
17
602acc32b549 planemo upload for repository https://github.com/workflow4metabolomics/xcms commit 22c4e92909198328fc7439ff47e4546a273eb907
lecorguille
parents: 16
diff changeset
230 # WHAT IS ON THE FILESYSTEM
33
c363b9f1caef planemo upload for repository https://github.com/workflow4metabolomics/xcms commit 7b226c3ba91a3cf654ec1c14b3ef85090968bb0f
lecorguille
parents: 32
diff changeset
231 filesystem_filepaths <- system(paste0("find \"$PWD/",directory,"\" -not -name '\\.*' -not -path '*conda-env*' -type f -name \"*\""), intern=T)
32
2bf1cb023c94 planemo upload for repository https://github.com/workflow4metabolomics/xcms commit e384d6dd5f410799ec211f73bca0b5d5d7bc651e
lecorguille
parents: 31
diff changeset
232 filesystem_filepaths <- filesystem_filepaths[grep(filepattern, filesystem_filepaths, perl=T)]
5
b9a87af62223 planemo upload commit 5a5b747865d7fb76f711bce2d9ce2a0f82a2a374-dirty
lecorguille
parents:
diff changeset
233
17
602acc32b549 planemo upload for repository https://github.com/workflow4metabolomics/xcms commit 22c4e92909198328fc7439ff47e4546a273eb907
lecorguille
parents: 16
diff changeset
234 # COMPARISON
602acc32b549 planemo upload for repository https://github.com/workflow4metabolomics/xcms commit 22c4e92909198328fc7439ff47e4546a273eb907
lecorguille
parents: 16
diff changeset
235 if (!is.na(table(filesystem_filepaths %in% files)["FALSE"])) {
602acc32b549 planemo upload for repository https://github.com/workflow4metabolomics/xcms commit 22c4e92909198328fc7439ff47e4546a273eb907
lecorguille
parents: 16
diff changeset
236 write("\n\nERROR: List of the files which will not be imported by xcmsSet",stderr())
602acc32b549 planemo upload for repository https://github.com/workflow4metabolomics/xcms commit 22c4e92909198328fc7439ff47e4546a273eb907
lecorguille
parents: 16
diff changeset
237 write(filesystem_filepaths[!(filesystem_filepaths %in% files)],stderr())
602acc32b549 planemo upload for repository https://github.com/workflow4metabolomics/xcms commit 22c4e92909198328fc7439ff47e4546a273eb907
lecorguille
parents: 16
diff changeset
238 stop("\n\nERROR: One or more of your files will not be import by xcmsSet. It may due to bad characters in their filenames.")
602acc32b549 planemo upload for repository https://github.com/workflow4metabolomics/xcms commit 22c4e92909198328fc7439ff47e4546a273eb907
lecorguille
parents: 16
diff changeset
239 }
5
b9a87af62223 planemo upload commit 5a5b747865d7fb76f711bce2d9ce2a0f82a2a374-dirty
lecorguille
parents:
diff changeset
240 }
b9a87af62223 planemo upload commit 5a5b747865d7fb76f711bce2d9ce2a0f82a2a374-dirty
lecorguille
parents:
diff changeset
241
b9a87af62223 planemo upload commit 5a5b747865d7fb76f711bce2d9ce2a0f82a2a374-dirty
lecorguille
parents:
diff changeset
242
32
2bf1cb023c94 planemo upload for repository https://github.com/workflow4metabolomics/xcms commit e384d6dd5f410799ec211f73bca0b5d5d7bc651e
lecorguille
parents: 31
diff changeset
243 #This function list the compatible files within the directory as xcms did
2bf1cb023c94 planemo upload for repository https://github.com/workflow4metabolomics/xcms commit e384d6dd5f410799ec211f73bca0b5d5d7bc651e
lecorguille
parents: 31
diff changeset
244 #@author Gildas Le Corguille lecorguille@sb-roscoff.fr ABiMS TEAM
2bf1cb023c94 planemo upload for repository https://github.com/workflow4metabolomics/xcms commit e384d6dd5f410799ec211f73bca0b5d5d7bc651e
lecorguille
parents: 31
diff changeset
245 getMSFiles <- function (directory) {
2bf1cb023c94 planemo upload for repository https://github.com/workflow4metabolomics/xcms commit e384d6dd5f410799ec211f73bca0b5d5d7bc651e
lecorguille
parents: 31
diff changeset
246 filepattern <- c("[Cc][Dd][Ff]", "[Nn][Cc]", "([Mm][Zz])?[Xx][Mm][Ll]","[Mm][Zz][Dd][Aa][Tt][Aa]", "[Mm][Zz][Mm][Ll]")
2bf1cb023c94 planemo upload for repository https://github.com/workflow4metabolomics/xcms commit e384d6dd5f410799ec211f73bca0b5d5d7bc651e
lecorguille
parents: 31
diff changeset
247 filepattern <- paste(paste("\\.", filepattern, "$", sep=""),collapse="|")
2bf1cb023c94 planemo upload for repository https://github.com/workflow4metabolomics/xcms commit e384d6dd5f410799ec211f73bca0b5d5d7bc651e
lecorguille
parents: 31
diff changeset
248 info <- file.info(directory)
2bf1cb023c94 planemo upload for repository https://github.com/workflow4metabolomics/xcms commit e384d6dd5f410799ec211f73bca0b5d5d7bc651e
lecorguille
parents: 31
diff changeset
249 listed <- list.files(directory[info$isdir], pattern=filepattern,recursive=TRUE, full.names=TRUE)
2bf1cb023c94 planemo upload for repository https://github.com/workflow4metabolomics/xcms commit e384d6dd5f410799ec211f73bca0b5d5d7bc651e
lecorguille
parents: 31
diff changeset
250 files <- c(directory[!info$isdir], listed)
2bf1cb023c94 planemo upload for repository https://github.com/workflow4metabolomics/xcms commit e384d6dd5f410799ec211f73bca0b5d5d7bc651e
lecorguille
parents: 31
diff changeset
251 exists <- file.exists(files)
2bf1cb023c94 planemo upload for repository https://github.com/workflow4metabolomics/xcms commit e384d6dd5f410799ec211f73bca0b5d5d7bc651e
lecorguille
parents: 31
diff changeset
252 files <- files[exists]
2bf1cb023c94 planemo upload for repository https://github.com/workflow4metabolomics/xcms commit e384d6dd5f410799ec211f73bca0b5d5d7bc651e
lecorguille
parents: 31
diff changeset
253 return(files)
2bf1cb023c94 planemo upload for repository https://github.com/workflow4metabolomics/xcms commit e384d6dd5f410799ec211f73bca0b5d5d7bc651e
lecorguille
parents: 31
diff changeset
254 }
5
b9a87af62223 planemo upload commit 5a5b747865d7fb76f711bce2d9ce2a0f82a2a374-dirty
lecorguille
parents:
diff changeset
255
32
2bf1cb023c94 planemo upload for repository https://github.com/workflow4metabolomics/xcms commit e384d6dd5f410799ec211f73bca0b5d5d7bc651e
lecorguille
parents: 31
diff changeset
256 # This function check if XML contains special caracters. It also checks integrity and completness.
5
b9a87af62223 planemo upload commit 5a5b747865d7fb76f711bce2d9ce2a0f82a2a374-dirty
lecorguille
parents:
diff changeset
257 #@author Misharl Monsoor misharl.monsoor@sb-roscoff.fr ABiMS TEAM
b9a87af62223 planemo upload commit 5a5b747865d7fb76f711bce2d9ce2a0f82a2a374-dirty
lecorguille
parents:
diff changeset
258 checkXmlStructure <- function (directory) {
17
602acc32b549 planemo upload for repository https://github.com/workflow4metabolomics/xcms commit 22c4e92909198328fc7439ff47e4546a273eb907
lecorguille
parents: 16
diff changeset
259 cat("Checking XML structure...\n")
5
b9a87af62223 planemo upload commit 5a5b747865d7fb76f711bce2d9ce2a0f82a2a374-dirty
lecorguille
parents:
diff changeset
260
33
c363b9f1caef planemo upload for repository https://github.com/workflow4metabolomics/xcms commit 7b226c3ba91a3cf654ec1c14b3ef85090968bb0f
lecorguille
parents: 32
diff changeset
261 cmd <- paste0("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;")
32
2bf1cb023c94 planemo upload for repository https://github.com/workflow4metabolomics/xcms commit e384d6dd5f410799ec211f73bca0b5d5d7bc651e
lecorguille
parents: 31
diff changeset
262 capture <- system(cmd, intern=TRUE)
5
b9a87af62223 planemo upload commit 5a5b747865d7fb76f711bce2d9ce2a0f82a2a374-dirty
lecorguille
parents:
diff changeset
263
17
602acc32b549 planemo upload for repository https://github.com/workflow4metabolomics/xcms commit 22c4e92909198328fc7439ff47e4546a273eb907
lecorguille
parents: 16
diff changeset
264 if (length(capture)>0){
602acc32b549 planemo upload for repository https://github.com/workflow4metabolomics/xcms commit 22c4e92909198328fc7439ff47e4546a273eb907
lecorguille
parents: 16
diff changeset
265 #message=paste("The following mzXML or mzML file is incorrect, please check these files first:",capture)
602acc32b549 planemo upload for repository https://github.com/workflow4metabolomics/xcms commit 22c4e92909198328fc7439ff47e4546a273eb907
lecorguille
parents: 16
diff changeset
266 write("\n\nERROR: The following mzXML or mzML file(s) are incorrect, please check these files first:", stderr())
602acc32b549 planemo upload for repository https://github.com/workflow4metabolomics/xcms commit 22c4e92909198328fc7439ff47e4546a273eb907
lecorguille
parents: 16
diff changeset
267 write(capture, stderr())
602acc32b549 planemo upload for repository https://github.com/workflow4metabolomics/xcms commit 22c4e92909198328fc7439ff47e4546a273eb907
lecorguille
parents: 16
diff changeset
268 stop("ERROR: xcmsSet cannot continue with incorrect mzXML or mzML files")
602acc32b549 planemo upload for repository https://github.com/workflow4metabolomics/xcms commit 22c4e92909198328fc7439ff47e4546a273eb907
lecorguille
parents: 16
diff changeset
269 }
16
f28041d2180a planemo upload for repository https://github.com/workflow4metabolomics/xcms commit 08e7f269a5c59687a7768be8db5fcb4e4d736093
lecorguille
parents: 15
diff changeset
270
5
b9a87af62223 planemo upload commit 5a5b747865d7fb76f711bce2d9ce2a0f82a2a374-dirty
lecorguille
parents:
diff changeset
271 }
b9a87af62223 planemo upload commit 5a5b747865d7fb76f711bce2d9ce2a0f82a2a374-dirty
lecorguille
parents:
diff changeset
272
b9a87af62223 planemo upload commit 5a5b747865d7fb76f711bce2d9ce2a0f82a2a374-dirty
lecorguille
parents:
diff changeset
273
32
2bf1cb023c94 planemo upload for repository https://github.com/workflow4metabolomics/xcms commit e384d6dd5f410799ec211f73bca0b5d5d7bc651e
lecorguille
parents: 31
diff changeset
274 # This function check if XML contain special characters
5
b9a87af62223 planemo upload commit 5a5b747865d7fb76f711bce2d9ce2a0f82a2a374-dirty
lecorguille
parents:
diff changeset
275 #@author Misharl Monsoor misharl.monsoor@sb-roscoff.fr ABiMS TEAM
b9a87af62223 planemo upload commit 5a5b747865d7fb76f711bce2d9ce2a0f82a2a374-dirty
lecorguille
parents:
diff changeset
276 deleteXmlBadCharacters<- function (directory) {
17
602acc32b549 planemo upload for repository https://github.com/workflow4metabolomics/xcms commit 22c4e92909198328fc7439ff47e4546a273eb907
lecorguille
parents: 16
diff changeset
277 cat("Checking Non ASCII characters in the XML...\n")
5
b9a87af62223 planemo upload commit 5a5b747865d7fb76f711bce2d9ce2a0f82a2a374-dirty
lecorguille
parents:
diff changeset
278
32
2bf1cb023c94 planemo upload for repository https://github.com/workflow4metabolomics/xcms commit e384d6dd5f410799ec211f73bca0b5d5d7bc651e
lecorguille
parents: 31
diff changeset
279 processed <- F
33
c363b9f1caef planemo upload for repository https://github.com/workflow4metabolomics/xcms commit 7b226c3ba91a3cf654ec1c14b3ef85090968bb0f
lecorguille
parents: 32
diff changeset
280 l <- system( paste0("find '",directory, "' -not -name '\\.*' -not -path '*conda-env*' -type f -iname '*.*ml*'"), intern=TRUE)
17
602acc32b549 planemo upload for repository https://github.com/workflow4metabolomics/xcms commit 22c4e92909198328fc7439ff47e4546a273eb907
lecorguille
parents: 16
diff changeset
281 for (i in l){
32
2bf1cb023c94 planemo upload for repository https://github.com/workflow4metabolomics/xcms commit e384d6dd5f410799ec211f73bca0b5d5d7bc651e
lecorguille
parents: 31
diff changeset
282 cmd <- paste("LC_ALL=C grep '[^ -~]' \"", i, "\"", sep="")
2bf1cb023c94 planemo upload for repository https://github.com/workflow4metabolomics/xcms commit e384d6dd5f410799ec211f73bca0b5d5d7bc651e
lecorguille
parents: 31
diff changeset
283 capture <- suppressWarnings(system(cmd, intern=TRUE))
17
602acc32b549 planemo upload for repository https://github.com/workflow4metabolomics/xcms commit 22c4e92909198328fc7439ff47e4546a273eb907
lecorguille
parents: 16
diff changeset
284 if (length(capture)>0){
32
2bf1cb023c94 planemo upload for repository https://github.com/workflow4metabolomics/xcms commit e384d6dd5f410799ec211f73bca0b5d5d7bc651e
lecorguille
parents: 31
diff changeset
285 cmd <- paste("perl -i -pe 's/[^[:ascii:]]//g;'",i)
17
602acc32b549 planemo upload for repository https://github.com/workflow4metabolomics/xcms commit 22c4e92909198328fc7439ff47e4546a273eb907
lecorguille
parents: 16
diff changeset
286 print( paste("WARNING: Non ASCII characters have been removed from the ",i,"file") )
32
2bf1cb023c94 planemo upload for repository https://github.com/workflow4metabolomics/xcms commit e384d6dd5f410799ec211f73bca0b5d5d7bc651e
lecorguille
parents: 31
diff changeset
287 c <- system(cmd, intern=TRUE)
2bf1cb023c94 planemo upload for repository https://github.com/workflow4metabolomics/xcms commit e384d6dd5f410799ec211f73bca0b5d5d7bc651e
lecorguille
parents: 31
diff changeset
288 capture <- ""
2bf1cb023c94 planemo upload for repository https://github.com/workflow4metabolomics/xcms commit e384d6dd5f410799ec211f73bca0b5d5d7bc651e
lecorguille
parents: 31
diff changeset
289 processed <- T
17
602acc32b549 planemo upload for repository https://github.com/workflow4metabolomics/xcms commit 22c4e92909198328fc7439ff47e4546a273eb907
lecorguille
parents: 16
diff changeset
290 }
5
b9a87af62223 planemo upload commit 5a5b747865d7fb76f711bce2d9ce2a0f82a2a374-dirty
lecorguille
parents:
diff changeset
291 }
17
602acc32b549 planemo upload for repository https://github.com/workflow4metabolomics/xcms commit 22c4e92909198328fc7439ff47e4546a273eb907
lecorguille
parents: 16
diff changeset
292 if (processed) cat("\n\n")
602acc32b549 planemo upload for repository https://github.com/workflow4metabolomics/xcms commit 22c4e92909198328fc7439ff47e4546a273eb907
lecorguille
parents: 16
diff changeset
293 return(processed)
5
b9a87af62223 planemo upload commit 5a5b747865d7fb76f711bce2d9ce2a0f82a2a374-dirty
lecorguille
parents:
diff changeset
294 }
b9a87af62223 planemo upload commit 5a5b747865d7fb76f711bce2d9ce2a0f82a2a374-dirty
lecorguille
parents:
diff changeset
295
b9a87af62223 planemo upload commit 5a5b747865d7fb76f711bce2d9ce2a0f82a2a374-dirty
lecorguille
parents:
diff changeset
296
32
2bf1cb023c94 planemo upload for repository https://github.com/workflow4metabolomics/xcms commit e384d6dd5f410799ec211f73bca0b5d5d7bc651e
lecorguille
parents: 31
diff changeset
297 # This function will compute MD5 checksum to check the data integrity
5
b9a87af62223 planemo upload commit 5a5b747865d7fb76f711bce2d9ce2a0f82a2a374-dirty
lecorguille
parents:
diff changeset
298 #@author Gildas Le Corguille lecorguille@sb-roscoff.fr
b9a87af62223 planemo upload commit 5a5b747865d7fb76f711bce2d9ce2a0f82a2a374-dirty
lecorguille
parents:
diff changeset
299 getMd5sum <- function (directory) {
17
602acc32b549 planemo upload for repository https://github.com/workflow4metabolomics/xcms commit 22c4e92909198328fc7439ff47e4546a273eb907
lecorguille
parents: 16
diff changeset
300 cat("Compute md5 checksum...\n")
602acc32b549 planemo upload for repository https://github.com/workflow4metabolomics/xcms commit 22c4e92909198328fc7439ff47e4546a273eb907
lecorguille
parents: 16
diff changeset
301 # WHAT XCMS WILL FIND
602acc32b549 planemo upload for repository https://github.com/workflow4metabolomics/xcms commit 22c4e92909198328fc7439ff47e4546a273eb907
lecorguille
parents: 16
diff changeset
302 filepattern <- c("[Cc][Dd][Ff]", "[Nn][Cc]", "([Mm][Zz])?[Xx][Mm][Ll]","[Mm][Zz][Dd][Aa][Tt][Aa]", "[Mm][Zz][Mm][Ll]")
32
2bf1cb023c94 planemo upload for repository https://github.com/workflow4metabolomics/xcms commit e384d6dd5f410799ec211f73bca0b5d5d7bc651e
lecorguille
parents: 31
diff changeset
303 filepattern <- paste(paste("\\.", filepattern, "$", sep=""),collapse="|")
17
602acc32b549 planemo upload for repository https://github.com/workflow4metabolomics/xcms commit 22c4e92909198328fc7439ff47e4546a273eb907
lecorguille
parents: 16
diff changeset
304 info <- file.info(directory)
32
2bf1cb023c94 planemo upload for repository https://github.com/workflow4metabolomics/xcms commit e384d6dd5f410799ec211f73bca0b5d5d7bc651e
lecorguille
parents: 31
diff changeset
305 listed <- list.files(directory[info$isdir], pattern=filepattern, recursive=TRUE, full.names=TRUE)
17
602acc32b549 planemo upload for repository https://github.com/workflow4metabolomics/xcms commit 22c4e92909198328fc7439ff47e4546a273eb907
lecorguille
parents: 16
diff changeset
306 files <- c(directory[!info$isdir], listed)
602acc32b549 planemo upload for repository https://github.com/workflow4metabolomics/xcms commit 22c4e92909198328fc7439ff47e4546a273eb907
lecorguille
parents: 16
diff changeset
307 exists <- file.exists(files)
602acc32b549 planemo upload for repository https://github.com/workflow4metabolomics/xcms commit 22c4e92909198328fc7439ff47e4546a273eb907
lecorguille
parents: 16
diff changeset
308 files <- files[exists]
5
b9a87af62223 planemo upload commit 5a5b747865d7fb76f711bce2d9ce2a0f82a2a374-dirty
lecorguille
parents:
diff changeset
309
17
602acc32b549 planemo upload for repository https://github.com/workflow4metabolomics/xcms commit 22c4e92909198328fc7439ff47e4546a273eb907
lecorguille
parents: 16
diff changeset
310 library(tools)
5
b9a87af62223 planemo upload commit 5a5b747865d7fb76f711bce2d9ce2a0f82a2a374-dirty
lecorguille
parents:
diff changeset
311
17
602acc32b549 planemo upload for repository https://github.com/workflow4metabolomics/xcms commit 22c4e92909198328fc7439ff47e4546a273eb907
lecorguille
parents: 16
diff changeset
312 #cat("\n\n")
5
b9a87af62223 planemo upload commit 5a5b747865d7fb76f711bce2d9ce2a0f82a2a374-dirty
lecorguille
parents:
diff changeset
313
17
602acc32b549 planemo upload for repository https://github.com/workflow4metabolomics/xcms commit 22c4e92909198328fc7439ff47e4546a273eb907
lecorguille
parents: 16
diff changeset
314 return(as.matrix(md5sum(files)))
5
b9a87af62223 planemo upload commit 5a5b747865d7fb76f711bce2d9ce2a0f82a2a374-dirty
lecorguille
parents:
diff changeset
315 }
24
d8915395681f planemo upload for repository https://github.com/workflow4metabolomics/xcms commit 87dc789d7cd70a3733a1ad0b5a427f4d5905795d
lecorguille
parents: 21
diff changeset
316
d8915395681f planemo upload for repository https://github.com/workflow4metabolomics/xcms commit 87dc789d7cd70a3733a1ad0b5a427f4d5905795d
lecorguille
parents: 21
diff changeset
317
d8915395681f planemo upload for repository https://github.com/workflow4metabolomics/xcms commit 87dc789d7cd70a3733a1ad0b5a427f4d5905795d
lecorguille
parents: 21
diff changeset
318 # This function get the raw file path from the arguments
32
2bf1cb023c94 planemo upload for repository https://github.com/workflow4metabolomics/xcms commit e384d6dd5f410799ec211f73bca0b5d5d7bc651e
lecorguille
parents: 31
diff changeset
319 #@author Gildas Le Corguille lecorguille@sb-roscoff.fr
2bf1cb023c94 planemo upload for repository https://github.com/workflow4metabolomics/xcms commit e384d6dd5f410799ec211f73bca0b5d5d7bc651e
lecorguille
parents: 31
diff changeset
320 getRawfilePathFromArguments <- function(singlefile, zipfile, args) {
2bf1cb023c94 planemo upload for repository https://github.com/workflow4metabolomics/xcms commit e384d6dd5f410799ec211f73bca0b5d5d7bc651e
lecorguille
parents: 31
diff changeset
321 if (!is.null(args$zipfile)) zipfile <- args$zipfile
2bf1cb023c94 planemo upload for repository https://github.com/workflow4metabolomics/xcms commit e384d6dd5f410799ec211f73bca0b5d5d7bc651e
lecorguille
parents: 31
diff changeset
322 if (!is.null(args$zipfilePositive)) zipfile <- args$zipfilePositive
2bf1cb023c94 planemo upload for repository https://github.com/workflow4metabolomics/xcms commit e384d6dd5f410799ec211f73bca0b5d5d7bc651e
lecorguille
parents: 31
diff changeset
323 if (!is.null(args$zipfileNegative)) zipfile <- args$zipfileNegative
24
d8915395681f planemo upload for repository https://github.com/workflow4metabolomics/xcms commit 87dc789d7cd70a3733a1ad0b5a427f4d5905795d
lecorguille
parents: 21
diff changeset
324
32
2bf1cb023c94 planemo upload for repository https://github.com/workflow4metabolomics/xcms commit e384d6dd5f410799ec211f73bca0b5d5d7bc651e
lecorguille
parents: 31
diff changeset
325 if (!is.null(args$singlefile_galaxyPath)) {
2bf1cb023c94 planemo upload for repository https://github.com/workflow4metabolomics/xcms commit e384d6dd5f410799ec211f73bca0b5d5d7bc651e
lecorguille
parents: 31
diff changeset
326 singlefile_galaxyPaths <- args$singlefile_galaxyPath;
2bf1cb023c94 planemo upload for repository https://github.com/workflow4metabolomics/xcms commit e384d6dd5f410799ec211f73bca0b5d5d7bc651e
lecorguille
parents: 31
diff changeset
327 singlefile_sampleNames <- args$singlefile_sampleName
24
d8915395681f planemo upload for repository https://github.com/workflow4metabolomics/xcms commit 87dc789d7cd70a3733a1ad0b5a427f4d5905795d
lecorguille
parents: 21
diff changeset
328 }
32
2bf1cb023c94 planemo upload for repository https://github.com/workflow4metabolomics/xcms commit e384d6dd5f410799ec211f73bca0b5d5d7bc651e
lecorguille
parents: 31
diff changeset
329 if (!is.null(args$singlefile_galaxyPathPositive)) {
2bf1cb023c94 planemo upload for repository https://github.com/workflow4metabolomics/xcms commit e384d6dd5f410799ec211f73bca0b5d5d7bc651e
lecorguille
parents: 31
diff changeset
330 singlefile_galaxyPaths <- args$singlefile_galaxyPathPositive;
2bf1cb023c94 planemo upload for repository https://github.com/workflow4metabolomics/xcms commit e384d6dd5f410799ec211f73bca0b5d5d7bc651e
lecorguille
parents: 31
diff changeset
331 singlefile_sampleNames <- args$singlefile_sampleNamePositive
24
d8915395681f planemo upload for repository https://github.com/workflow4metabolomics/xcms commit 87dc789d7cd70a3733a1ad0b5a427f4d5905795d
lecorguille
parents: 21
diff changeset
332 }
32
2bf1cb023c94 planemo upload for repository https://github.com/workflow4metabolomics/xcms commit e384d6dd5f410799ec211f73bca0b5d5d7bc651e
lecorguille
parents: 31
diff changeset
333 if (!is.null(args$singlefile_galaxyPathNegative)) {
2bf1cb023c94 planemo upload for repository https://github.com/workflow4metabolomics/xcms commit e384d6dd5f410799ec211f73bca0b5d5d7bc651e
lecorguille
parents: 31
diff changeset
334 singlefile_galaxyPaths <- args$singlefile_galaxyPathNegative;
2bf1cb023c94 planemo upload for repository https://github.com/workflow4metabolomics/xcms commit e384d6dd5f410799ec211f73bca0b5d5d7bc651e
lecorguille
parents: 31
diff changeset
335 singlefile_sampleNames <- args$singlefile_sampleNameNegative
24
d8915395681f planemo upload for repository https://github.com/workflow4metabolomics/xcms commit 87dc789d7cd70a3733a1ad0b5a427f4d5905795d
lecorguille
parents: 21
diff changeset
336 }
d8915395681f planemo upload for repository https://github.com/workflow4metabolomics/xcms commit 87dc789d7cd70a3733a1ad0b5a427f4d5905795d
lecorguille
parents: 21
diff changeset
337 if (exists("singlefile_galaxyPaths")){
33
c363b9f1caef planemo upload for repository https://github.com/workflow4metabolomics/xcms commit 7b226c3ba91a3cf654ec1c14b3ef85090968bb0f
lecorguille
parents: 32
diff changeset
338 singlefile_galaxyPaths <- unlist(strsplit(singlefile_galaxyPaths,"\\|"))
c363b9f1caef planemo upload for repository https://github.com/workflow4metabolomics/xcms commit 7b226c3ba91a3cf654ec1c14b3ef85090968bb0f
lecorguille
parents: 32
diff changeset
339 singlefile_sampleNames <- unlist(strsplit(singlefile_sampleNames,"\\|"))
24
d8915395681f planemo upload for repository https://github.com/workflow4metabolomics/xcms commit 87dc789d7cd70a3733a1ad0b5a427f4d5905795d
lecorguille
parents: 21
diff changeset
340
32
2bf1cb023c94 planemo upload for repository https://github.com/workflow4metabolomics/xcms commit e384d6dd5f410799ec211f73bca0b5d5d7bc651e
lecorguille
parents: 31
diff changeset
341 singlefile <- NULL
24
d8915395681f planemo upload for repository https://github.com/workflow4metabolomics/xcms commit 87dc789d7cd70a3733a1ad0b5a427f4d5905795d
lecorguille
parents: 21
diff changeset
342 for (singlefile_galaxyPath_i in seq(1:length(singlefile_galaxyPaths))) {
32
2bf1cb023c94 planemo upload for repository https://github.com/workflow4metabolomics/xcms commit e384d6dd5f410799ec211f73bca0b5d5d7bc651e
lecorguille
parents: 31
diff changeset
343 singlefile_galaxyPath <- singlefile_galaxyPaths[singlefile_galaxyPath_i]
2bf1cb023c94 planemo upload for repository https://github.com/workflow4metabolomics/xcms commit e384d6dd5f410799ec211f73bca0b5d5d7bc651e
lecorguille
parents: 31
diff changeset
344 singlefile_sampleName <- singlefile_sampleNames[singlefile_galaxyPath_i]
2bf1cb023c94 planemo upload for repository https://github.com/workflow4metabolomics/xcms commit e384d6dd5f410799ec211f73bca0b5d5d7bc651e
lecorguille
parents: 31
diff changeset
345 singlefile[[singlefile_sampleName]] <- singlefile_galaxyPath
24
d8915395681f planemo upload for repository https://github.com/workflow4metabolomics/xcms commit 87dc789d7cd70a3733a1ad0b5a427f4d5905795d
lecorguille
parents: 21
diff changeset
346 }
d8915395681f planemo upload for repository https://github.com/workflow4metabolomics/xcms commit 87dc789d7cd70a3733a1ad0b5a427f4d5905795d
lecorguille
parents: 21
diff changeset
347 }
d8915395681f planemo upload for repository https://github.com/workflow4metabolomics/xcms commit 87dc789d7cd70a3733a1ad0b5a427f4d5905795d
lecorguille
parents: 21
diff changeset
348 for (argument in c("zipfile","zipfilePositive","zipfileNegative","singlefile_galaxyPath","singlefile_sampleName","singlefile_galaxyPathPositive","singlefile_sampleNamePositive","singlefile_galaxyPathNegative","singlefile_sampleNameNegative")) {
32
2bf1cb023c94 planemo upload for repository https://github.com/workflow4metabolomics/xcms commit e384d6dd5f410799ec211f73bca0b5d5d7bc651e
lecorguille
parents: 31
diff changeset
349 args[[argument]] <- NULL
24
d8915395681f planemo upload for repository https://github.com/workflow4metabolomics/xcms commit 87dc789d7cd70a3733a1ad0b5a427f4d5905795d
lecorguille
parents: 21
diff changeset
350 }
32
2bf1cb023c94 planemo upload for repository https://github.com/workflow4metabolomics/xcms commit e384d6dd5f410799ec211f73bca0b5d5d7bc651e
lecorguille
parents: 31
diff changeset
351 return(list(zipfile=zipfile, singlefile=singlefile, args=args))
24
d8915395681f planemo upload for repository https://github.com/workflow4metabolomics/xcms commit 87dc789d7cd70a3733a1ad0b5a427f4d5905795d
lecorguille
parents: 21
diff changeset
352 }
d8915395681f planemo upload for repository https://github.com/workflow4metabolomics/xcms commit 87dc789d7cd70a3733a1ad0b5a427f4d5905795d
lecorguille
parents: 21
diff changeset
353
d8915395681f planemo upload for repository https://github.com/workflow4metabolomics/xcms commit 87dc789d7cd70a3733a1ad0b5a427f4d5905795d
lecorguille
parents: 21
diff changeset
354
d8915395681f planemo upload for repository https://github.com/workflow4metabolomics/xcms commit 87dc789d7cd70a3733a1ad0b5a427f4d5905795d
lecorguille
parents: 21
diff changeset
355 # This function retrieve the raw file in the working directory
d8915395681f planemo upload for repository https://github.com/workflow4metabolomics/xcms commit 87dc789d7cd70a3733a1ad0b5a427f4d5905795d
lecorguille
parents: 21
diff changeset
356 # - if zipfile: unzip the file with its directory tree
d8915395681f planemo upload for repository https://github.com/workflow4metabolomics/xcms commit 87dc789d7cd70a3733a1ad0b5a427f4d5905795d
lecorguille
parents: 21
diff changeset
357 # - if singlefiles: set symlink with the good filename
32
2bf1cb023c94 planemo upload for repository https://github.com/workflow4metabolomics/xcms commit e384d6dd5f410799ec211f73bca0b5d5d7bc651e
lecorguille
parents: 31
diff changeset
358 #@author Gildas Le Corguille lecorguille@sb-roscoff.fr
24
d8915395681f planemo upload for repository https://github.com/workflow4metabolomics/xcms commit 87dc789d7cd70a3733a1ad0b5a427f4d5905795d
lecorguille
parents: 21
diff changeset
359 retrieveRawfileInTheWorkingDirectory <- function(singlefile, zipfile) {
d8915395681f planemo upload for repository https://github.com/workflow4metabolomics/xcms commit 87dc789d7cd70a3733a1ad0b5a427f4d5905795d
lecorguille
parents: 21
diff changeset
360 if(!is.null(singlefile) && (length("singlefile")>0)) {
d8915395681f planemo upload for repository https://github.com/workflow4metabolomics/xcms commit 87dc789d7cd70a3733a1ad0b5a427f4d5905795d
lecorguille
parents: 21
diff changeset
361 for (singlefile_sampleName in names(singlefile)) {
32
2bf1cb023c94 planemo upload for repository https://github.com/workflow4metabolomics/xcms commit e384d6dd5f410799ec211f73bca0b5d5d7bc651e
lecorguille
parents: 31
diff changeset
362 singlefile_galaxyPath <- singlefile[[singlefile_sampleName]]
24
d8915395681f planemo upload for repository https://github.com/workflow4metabolomics/xcms commit 87dc789d7cd70a3733a1ad0b5a427f4d5905795d
lecorguille
parents: 21
diff changeset
363 if(!file.exists(singlefile_galaxyPath)){
32
2bf1cb023c94 planemo upload for repository https://github.com/workflow4metabolomics/xcms commit e384d6dd5f410799ec211f73bca0b5d5d7bc651e
lecorguille
parents: 31
diff changeset
364 error_message <- paste("Cannot access the sample:",singlefile_sampleName,"located:",singlefile_galaxyPath,". Please, contact your administrator ... if you have one!")
24
d8915395681f planemo upload for repository https://github.com/workflow4metabolomics/xcms commit 87dc789d7cd70a3733a1ad0b5a427f4d5905795d
lecorguille
parents: 21
diff changeset
365 print(error_message); stop(error_message)
d8915395681f planemo upload for repository https://github.com/workflow4metabolomics/xcms commit 87dc789d7cd70a3733a1ad0b5a427f4d5905795d
lecorguille
parents: 21
diff changeset
366 }
d8915395681f planemo upload for repository https://github.com/workflow4metabolomics/xcms commit 87dc789d7cd70a3733a1ad0b5a427f4d5905795d
lecorguille
parents: 21
diff changeset
367
32
2bf1cb023c94 planemo upload for repository https://github.com/workflow4metabolomics/xcms commit e384d6dd5f410799ec211f73bca0b5d5d7bc651e
lecorguille
parents: 31
diff changeset
368 if (!suppressWarnings( try (file.link(singlefile_galaxyPath, singlefile_sampleName), silent=T)))
2bf1cb023c94 planemo upload for repository https://github.com/workflow4metabolomics/xcms commit e384d6dd5f410799ec211f73bca0b5d5d7bc651e
lecorguille
parents: 31
diff changeset
369 file.copy(singlefile_galaxyPath, singlefile_sampleName)
2bf1cb023c94 planemo upload for repository https://github.com/workflow4metabolomics/xcms commit e384d6dd5f410799ec211f73bca0b5d5d7bc651e
lecorguille
parents: 31
diff changeset
370
24
d8915395681f planemo upload for repository https://github.com/workflow4metabolomics/xcms commit 87dc789d7cd70a3733a1ad0b5a427f4d5905795d
lecorguille
parents: 21
diff changeset
371 }
32
2bf1cb023c94 planemo upload for repository https://github.com/workflow4metabolomics/xcms commit e384d6dd5f410799ec211f73bca0b5d5d7bc651e
lecorguille
parents: 31
diff changeset
372 directory <- "."
24
d8915395681f planemo upload for repository https://github.com/workflow4metabolomics/xcms commit 87dc789d7cd70a3733a1ad0b5a427f4d5905795d
lecorguille
parents: 21
diff changeset
373
d8915395681f planemo upload for repository https://github.com/workflow4metabolomics/xcms commit 87dc789d7cd70a3733a1ad0b5a427f4d5905795d
lecorguille
parents: 21
diff changeset
374 }
32
2bf1cb023c94 planemo upload for repository https://github.com/workflow4metabolomics/xcms commit e384d6dd5f410799ec211f73bca0b5d5d7bc651e
lecorguille
parents: 31
diff changeset
375 if(!is.null(zipfile) && (zipfile != "")) {
24
d8915395681f planemo upload for repository https://github.com/workflow4metabolomics/xcms commit 87dc789d7cd70a3733a1ad0b5a427f4d5905795d
lecorguille
parents: 21
diff changeset
376 if(!file.exists(zipfile)){
32
2bf1cb023c94 planemo upload for repository https://github.com/workflow4metabolomics/xcms commit e384d6dd5f410799ec211f73bca0b5d5d7bc651e
lecorguille
parents: 31
diff changeset
377 error_message <- paste("Cannot access the Zip file:",zipfile,". Please, contact your administrator ... if you have one!")
24
d8915395681f planemo upload for repository https://github.com/workflow4metabolomics/xcms commit 87dc789d7cd70a3733a1ad0b5a427f4d5905795d
lecorguille
parents: 21
diff changeset
378 print(error_message)
d8915395681f planemo upload for repository https://github.com/workflow4metabolomics/xcms commit 87dc789d7cd70a3733a1ad0b5a427f4d5905795d
lecorguille
parents: 21
diff changeset
379 stop(error_message)
d8915395681f planemo upload for repository https://github.com/workflow4metabolomics/xcms commit 87dc789d7cd70a3733a1ad0b5a427f4d5905795d
lecorguille
parents: 21
diff changeset
380 }
d8915395681f planemo upload for repository https://github.com/workflow4metabolomics/xcms commit 87dc789d7cd70a3733a1ad0b5a427f4d5905795d
lecorguille
parents: 21
diff changeset
381
d8915395681f planemo upload for repository https://github.com/workflow4metabolomics/xcms commit 87dc789d7cd70a3733a1ad0b5a427f4d5905795d
lecorguille
parents: 21
diff changeset
382 #list all file in the zip file
32
2bf1cb023c94 planemo upload for repository https://github.com/workflow4metabolomics/xcms commit e384d6dd5f410799ec211f73bca0b5d5d7bc651e
lecorguille
parents: 31
diff changeset
383 #zip_files <- unzip(zipfile,list=T)[,"Name"]
24
d8915395681f planemo upload for repository https://github.com/workflow4metabolomics/xcms commit 87dc789d7cd70a3733a1ad0b5a427f4d5905795d
lecorguille
parents: 21
diff changeset
384
d8915395681f planemo upload for repository https://github.com/workflow4metabolomics/xcms commit 87dc789d7cd70a3733a1ad0b5a427f4d5905795d
lecorguille
parents: 21
diff changeset
385 #unzip
d8915395681f planemo upload for repository https://github.com/workflow4metabolomics/xcms commit 87dc789d7cd70a3733a1ad0b5a427f4d5905795d
lecorguille
parents: 21
diff changeset
386 suppressWarnings(unzip(zipfile, unzip="unzip"))
d8915395681f planemo upload for repository https://github.com/workflow4metabolomics/xcms commit 87dc789d7cd70a3733a1ad0b5a427f4d5905795d
lecorguille
parents: 21
diff changeset
387
d8915395681f planemo upload for repository https://github.com/workflow4metabolomics/xcms commit 87dc789d7cd70a3733a1ad0b5a427f4d5905795d
lecorguille
parents: 21
diff changeset
388 #get the directory name
32
2bf1cb023c94 planemo upload for repository https://github.com/workflow4metabolomics/xcms commit e384d6dd5f410799ec211f73bca0b5d5d7bc651e
lecorguille
parents: 31
diff changeset
389 suppressWarnings(filesInZip <- unzip(zipfile, list=T))
2bf1cb023c94 planemo upload for repository https://github.com/workflow4metabolomics/xcms commit e384d6dd5f410799ec211f73bca0b5d5d7bc651e
lecorguille
parents: 31
diff changeset
390 directories <- unique(unlist(lapply(strsplit(filesInZip$Name,"/"), function(x) x[1])))
2bf1cb023c94 planemo upload for repository https://github.com/workflow4metabolomics/xcms commit e384d6dd5f410799ec211f73bca0b5d5d7bc651e
lecorguille
parents: 31
diff changeset
391 directories <- directories[!(directories %in% c("__MACOSX")) & file.info(directories)$isdir]
2bf1cb023c94 planemo upload for repository https://github.com/workflow4metabolomics/xcms commit e384d6dd5f410799ec211f73bca0b5d5d7bc651e
lecorguille
parents: 31
diff changeset
392 directory <- "."
2bf1cb023c94 planemo upload for repository https://github.com/workflow4metabolomics/xcms commit e384d6dd5f410799ec211f73bca0b5d5d7bc651e
lecorguille
parents: 31
diff changeset
393 if (length(directories) == 1) directory <- directories
24
d8915395681f planemo upload for repository https://github.com/workflow4metabolomics/xcms commit 87dc789d7cd70a3733a1ad0b5a427f4d5905795d
lecorguille
parents: 21
diff changeset
394
d8915395681f planemo upload for repository https://github.com/workflow4metabolomics/xcms commit 87dc789d7cd70a3733a1ad0b5a427f4d5905795d
lecorguille
parents: 21
diff changeset
395 cat("files_root_directory\t",directory,"\n")
d8915395681f planemo upload for repository https://github.com/workflow4metabolomics/xcms commit 87dc789d7cd70a3733a1ad0b5a427f4d5905795d
lecorguille
parents: 21
diff changeset
396
d8915395681f planemo upload for repository https://github.com/workflow4metabolomics/xcms commit 87dc789d7cd70a3733a1ad0b5a427f4d5905795d
lecorguille
parents: 21
diff changeset
397 }
d8915395681f planemo upload for repository https://github.com/workflow4metabolomics/xcms commit 87dc789d7cd70a3733a1ad0b5a427f4d5905795d
lecorguille
parents: 21
diff changeset
398 return (directory)
d8915395681f planemo upload for repository https://github.com/workflow4metabolomics/xcms commit 87dc789d7cd70a3733a1ad0b5a427f4d5905795d
lecorguille
parents: 21
diff changeset
399 }
32
2bf1cb023c94 planemo upload for repository https://github.com/workflow4metabolomics/xcms commit e384d6dd5f410799ec211f73bca0b5d5d7bc651e
lecorguille
parents: 31
diff changeset
400
2bf1cb023c94 planemo upload for repository https://github.com/workflow4metabolomics/xcms commit e384d6dd5f410799ec211f73bca0b5d5d7bc651e
lecorguille
parents: 31
diff changeset
401
2bf1cb023c94 planemo upload for repository https://github.com/workflow4metabolomics/xcms commit e384d6dd5f410799ec211f73bca0b5d5d7bc651e
lecorguille
parents: 31
diff changeset
402 # This function retrieve a xset like object
2bf1cb023c94 planemo upload for repository https://github.com/workflow4metabolomics/xcms commit e384d6dd5f410799ec211f73bca0b5d5d7bc651e
lecorguille
parents: 31
diff changeset
403 #@author Gildas Le Corguille lecorguille@sb-roscoff.fr
2bf1cb023c94 planemo upload for repository https://github.com/workflow4metabolomics/xcms commit e384d6dd5f410799ec211f73bca0b5d5d7bc651e
lecorguille
parents: 31
diff changeset
404 getxcmsSetObject <- function(xobject) {
2bf1cb023c94 planemo upload for repository https://github.com/workflow4metabolomics/xcms commit e384d6dd5f410799ec211f73bca0b5d5d7bc651e
lecorguille
parents: 31
diff changeset
405 # XCMS 1.x
2bf1cb023c94 planemo upload for repository https://github.com/workflow4metabolomics/xcms commit e384d6dd5f410799ec211f73bca0b5d5d7bc651e
lecorguille
parents: 31
diff changeset
406 if (class(xobject) == "xcmsSet")
2bf1cb023c94 planemo upload for repository https://github.com/workflow4metabolomics/xcms commit e384d6dd5f410799ec211f73bca0b5d5d7bc651e
lecorguille
parents: 31
diff changeset
407 return (xobject)
2bf1cb023c94 planemo upload for repository https://github.com/workflow4metabolomics/xcms commit e384d6dd5f410799ec211f73bca0b5d5d7bc651e
lecorguille
parents: 31
diff changeset
408 # XCMS 3.x
2bf1cb023c94 planemo upload for repository https://github.com/workflow4metabolomics/xcms commit e384d6dd5f410799ec211f73bca0b5d5d7bc651e
lecorguille
parents: 31
diff changeset
409 if (class(xobject) == "XCMSnExp") {
2bf1cb023c94 planemo upload for repository https://github.com/workflow4metabolomics/xcms commit e384d6dd5f410799ec211f73bca0b5d5d7bc651e
lecorguille
parents: 31
diff changeset
410 # Get the legacy xcmsSet object
2bf1cb023c94 planemo upload for repository https://github.com/workflow4metabolomics/xcms commit e384d6dd5f410799ec211f73bca0b5d5d7bc651e
lecorguille
parents: 31
diff changeset
411 suppressWarnings(xset <- as(xobject, 'xcmsSet'))
2bf1cb023c94 planemo upload for repository https://github.com/workflow4metabolomics/xcms commit e384d6dd5f410799ec211f73bca0b5d5d7bc651e
lecorguille
parents: 31
diff changeset
412 sampclass(xset) <- xset@phenoData$sample_group
2bf1cb023c94 planemo upload for repository https://github.com/workflow4metabolomics/xcms commit e384d6dd5f410799ec211f73bca0b5d5d7bc651e
lecorguille
parents: 31
diff changeset
413 return (xset)
2bf1cb023c94 planemo upload for repository https://github.com/workflow4metabolomics/xcms commit e384d6dd5f410799ec211f73bca0b5d5d7bc651e
lecorguille
parents: 31
diff changeset
414 }
2bf1cb023c94 planemo upload for repository https://github.com/workflow4metabolomics/xcms commit e384d6dd5f410799ec211f73bca0b5d5d7bc651e
lecorguille
parents: 31
diff changeset
415 }
2bf1cb023c94 planemo upload for repository https://github.com/workflow4metabolomics/xcms commit e384d6dd5f410799ec211f73bca0b5d5d7bc651e
lecorguille
parents: 31
diff changeset
416
2bf1cb023c94 planemo upload for repository https://github.com/workflow4metabolomics/xcms commit e384d6dd5f410799ec211f73bca0b5d5d7bc651e
lecorguille
parents: 31
diff changeset
417
2bf1cb023c94 planemo upload for repository https://github.com/workflow4metabolomics/xcms commit e384d6dd5f410799ec211f73bca0b5d5d7bc651e
lecorguille
parents: 31
diff changeset
418 #@TODO: remove this function as soon as we can use xcms 3.x.x from Bioconductor 3.7
2bf1cb023c94 planemo upload for repository https://github.com/workflow4metabolomics/xcms commit e384d6dd5f410799ec211f73bca0b5d5d7bc651e
lecorguille
parents: 31
diff changeset
419 # https://github.com/sneumann/xcms/issues/250
2bf1cb023c94 planemo upload for repository https://github.com/workflow4metabolomics/xcms commit e384d6dd5f410799ec211f73bca0b5d5d7bc651e
lecorguille
parents: 31
diff changeset
420 groupnamesW4M <- function(xdata, mzdec = 0, rtdec = 0) {
2bf1cb023c94 planemo upload for repository https://github.com/workflow4metabolomics/xcms commit e384d6dd5f410799ec211f73bca0b5d5d7bc651e
lecorguille
parents: 31
diff changeset
421 mzfmt <- paste("%.", mzdec, "f", sep = "")
2bf1cb023c94 planemo upload for repository https://github.com/workflow4metabolomics/xcms commit e384d6dd5f410799ec211f73bca0b5d5d7bc651e
lecorguille
parents: 31
diff changeset
422 rtfmt <- paste("%.", rtdec, "f", sep = "")
2bf1cb023c94 planemo upload for repository https://github.com/workflow4metabolomics/xcms commit e384d6dd5f410799ec211f73bca0b5d5d7bc651e
lecorguille
parents: 31
diff changeset
423
2bf1cb023c94 planemo upload for repository https://github.com/workflow4metabolomics/xcms commit e384d6dd5f410799ec211f73bca0b5d5d7bc651e
lecorguille
parents: 31
diff changeset
424 gnames <- paste("M", sprintf(mzfmt, featureDefinitions(xdata)[,"mzmed"]), "T",
2bf1cb023c94 planemo upload for repository https://github.com/workflow4metabolomics/xcms commit e384d6dd5f410799ec211f73bca0b5d5d7bc651e
lecorguille
parents: 31
diff changeset
425 sprintf(rtfmt, featureDefinitions(xdata)[,"rtmed"]), sep = "")
2bf1cb023c94 planemo upload for repository https://github.com/workflow4metabolomics/xcms commit e384d6dd5f410799ec211f73bca0b5d5d7bc651e
lecorguille
parents: 31
diff changeset
426
2bf1cb023c94 planemo upload for repository https://github.com/workflow4metabolomics/xcms commit e384d6dd5f410799ec211f73bca0b5d5d7bc651e
lecorguille
parents: 31
diff changeset
427 if (any(dup <- duplicated(gnames)))
2bf1cb023c94 planemo upload for repository https://github.com/workflow4metabolomics/xcms commit e384d6dd5f410799ec211f73bca0b5d5d7bc651e
lecorguille
parents: 31
diff changeset
428 for (dupname in unique(gnames[dup])) {
2bf1cb023c94 planemo upload for repository https://github.com/workflow4metabolomics/xcms commit e384d6dd5f410799ec211f73bca0b5d5d7bc651e
lecorguille
parents: 31
diff changeset
429 dupidx <- which(gnames == dupname)
2bf1cb023c94 planemo upload for repository https://github.com/workflow4metabolomics/xcms commit e384d6dd5f410799ec211f73bca0b5d5d7bc651e
lecorguille
parents: 31
diff changeset
430 gnames[dupidx] <- paste(gnames[dupidx], seq(along = dupidx), sep = "_")
2bf1cb023c94 planemo upload for repository https://github.com/workflow4metabolomics/xcms commit e384d6dd5f410799ec211f73bca0b5d5d7bc651e
lecorguille
parents: 31
diff changeset
431 }
2bf1cb023c94 planemo upload for repository https://github.com/workflow4metabolomics/xcms commit e384d6dd5f410799ec211f73bca0b5d5d7bc651e
lecorguille
parents: 31
diff changeset
432
2bf1cb023c94 planemo upload for repository https://github.com/workflow4metabolomics/xcms commit e384d6dd5f410799ec211f73bca0b5d5d7bc651e
lecorguille
parents: 31
diff changeset
433 return (gnames)
2bf1cb023c94 planemo upload for repository https://github.com/workflow4metabolomics/xcms commit e384d6dd5f410799ec211f73bca0b5d5d7bc651e
lecorguille
parents: 31
diff changeset
434 }
2bf1cb023c94 planemo upload for repository https://github.com/workflow4metabolomics/xcms commit e384d6dd5f410799ec211f73bca0b5d5d7bc651e
lecorguille
parents: 31
diff changeset
435
2bf1cb023c94 planemo upload for repository https://github.com/workflow4metabolomics/xcms commit e384d6dd5f410799ec211f73bca0b5d5d7bc651e
lecorguille
parents: 31
diff changeset
436 #@TODO: remove this function as soon as we can use xcms 3.x.x from Bioconductor 3.7
2bf1cb023c94 planemo upload for repository https://github.com/workflow4metabolomics/xcms commit e384d6dd5f410799ec211f73bca0b5d5d7bc651e
lecorguille
parents: 31
diff changeset
437 # https://github.com/sneumann/xcms/issues/247
2bf1cb023c94 planemo upload for repository https://github.com/workflow4metabolomics/xcms commit e384d6dd5f410799ec211f73bca0b5d5d7bc651e
lecorguille
parents: 31
diff changeset
438 .concatenate_XCMSnExp <- function(...) {
2bf1cb023c94 planemo upload for repository https://github.com/workflow4metabolomics/xcms commit e384d6dd5f410799ec211f73bca0b5d5d7bc651e
lecorguille
parents: 31
diff changeset
439 x <- list(...)
2bf1cb023c94 planemo upload for repository https://github.com/workflow4metabolomics/xcms commit e384d6dd5f410799ec211f73bca0b5d5d7bc651e
lecorguille
parents: 31
diff changeset
440 if (length(x) == 0)
2bf1cb023c94 planemo upload for repository https://github.com/workflow4metabolomics/xcms commit e384d6dd5f410799ec211f73bca0b5d5d7bc651e
lecorguille
parents: 31
diff changeset
441 return(NULL)
2bf1cb023c94 planemo upload for repository https://github.com/workflow4metabolomics/xcms commit e384d6dd5f410799ec211f73bca0b5d5d7bc651e
lecorguille
parents: 31
diff changeset
442 if (length(x) == 1)
2bf1cb023c94 planemo upload for repository https://github.com/workflow4metabolomics/xcms commit e384d6dd5f410799ec211f73bca0b5d5d7bc651e
lecorguille
parents: 31
diff changeset
443 return(x[[1]])
2bf1cb023c94 planemo upload for repository https://github.com/workflow4metabolomics/xcms commit e384d6dd5f410799ec211f73bca0b5d5d7bc651e
lecorguille
parents: 31
diff changeset
444 ## Check that all are XCMSnExp objects.
2bf1cb023c94 planemo upload for repository https://github.com/workflow4metabolomics/xcms commit e384d6dd5f410799ec211f73bca0b5d5d7bc651e
lecorguille
parents: 31
diff changeset
445 if (!all(unlist(lapply(x, function(z) is(z, "XCMSnExp")))))
2bf1cb023c94 planemo upload for repository https://github.com/workflow4metabolomics/xcms commit e384d6dd5f410799ec211f73bca0b5d5d7bc651e
lecorguille
parents: 31
diff changeset
446 stop("All passed objects should be 'XCMSnExp' objects")
2bf1cb023c94 planemo upload for repository https://github.com/workflow4metabolomics/xcms commit e384d6dd5f410799ec211f73bca0b5d5d7bc651e
lecorguille
parents: 31
diff changeset
447 new_x <- as(.concatenate_OnDiskMSnExp(...), "XCMSnExp")
2bf1cb023c94 planemo upload for repository https://github.com/workflow4metabolomics/xcms commit e384d6dd5f410799ec211f73bca0b5d5d7bc651e
lecorguille
parents: 31
diff changeset
448 ## If any of the XCMSnExp has alignment results or detected features drop
2bf1cb023c94 planemo upload for repository https://github.com/workflow4metabolomics/xcms commit e384d6dd5f410799ec211f73bca0b5d5d7bc651e
lecorguille
parents: 31
diff changeset
449 ## them!
2bf1cb023c94 planemo upload for repository https://github.com/workflow4metabolomics/xcms commit e384d6dd5f410799ec211f73bca0b5d5d7bc651e
lecorguille
parents: 31
diff changeset
450 x <- lapply(x, function(z) {
2bf1cb023c94 planemo upload for repository https://github.com/workflow4metabolomics/xcms commit e384d6dd5f410799ec211f73bca0b5d5d7bc651e
lecorguille
parents: 31
diff changeset
451 if (hasAdjustedRtime(z)) {
2bf1cb023c94 planemo upload for repository https://github.com/workflow4metabolomics/xcms commit e384d6dd5f410799ec211f73bca0b5d5d7bc651e
lecorguille
parents: 31
diff changeset
452 z <- dropAdjustedRtime(z)
2bf1cb023c94 planemo upload for repository https://github.com/workflow4metabolomics/xcms commit e384d6dd5f410799ec211f73bca0b5d5d7bc651e
lecorguille
parents: 31
diff changeset
453 warning("Adjusted retention times found, had to drop them.")
2bf1cb023c94 planemo upload for repository https://github.com/workflow4metabolomics/xcms commit e384d6dd5f410799ec211f73bca0b5d5d7bc651e
lecorguille
parents: 31
diff changeset
454 }
2bf1cb023c94 planemo upload for repository https://github.com/workflow4metabolomics/xcms commit e384d6dd5f410799ec211f73bca0b5d5d7bc651e
lecorguille
parents: 31
diff changeset
455 if (hasFeatures(z)) {
2bf1cb023c94 planemo upload for repository https://github.com/workflow4metabolomics/xcms commit e384d6dd5f410799ec211f73bca0b5d5d7bc651e
lecorguille
parents: 31
diff changeset
456 z <- dropFeatureDefinitions(z)
2bf1cb023c94 planemo upload for repository https://github.com/workflow4metabolomics/xcms commit e384d6dd5f410799ec211f73bca0b5d5d7bc651e
lecorguille
parents: 31
diff changeset
457 warning("Feature definitions found, had to drop them.")
2bf1cb023c94 planemo upload for repository https://github.com/workflow4metabolomics/xcms commit e384d6dd5f410799ec211f73bca0b5d5d7bc651e
lecorguille
parents: 31
diff changeset
458 }
2bf1cb023c94 planemo upload for repository https://github.com/workflow4metabolomics/xcms commit e384d6dd5f410799ec211f73bca0b5d5d7bc651e
lecorguille
parents: 31
diff changeset
459 z
2bf1cb023c94 planemo upload for repository https://github.com/workflow4metabolomics/xcms commit e384d6dd5f410799ec211f73bca0b5d5d7bc651e
lecorguille
parents: 31
diff changeset
460 })
2bf1cb023c94 planemo upload for repository https://github.com/workflow4metabolomics/xcms commit e384d6dd5f410799ec211f73bca0b5d5d7bc651e
lecorguille
parents: 31
diff changeset
461 ## Combine peaks
2bf1cb023c94 planemo upload for repository https://github.com/workflow4metabolomics/xcms commit e384d6dd5f410799ec211f73bca0b5d5d7bc651e
lecorguille
parents: 31
diff changeset
462 fls <- lapply(x, fileNames)
2bf1cb023c94 planemo upload for repository https://github.com/workflow4metabolomics/xcms commit e384d6dd5f410799ec211f73bca0b5d5d7bc651e
lecorguille
parents: 31
diff changeset
463 startidx <- cumsum(lengths(fls))
2bf1cb023c94 planemo upload for repository https://github.com/workflow4metabolomics/xcms commit e384d6dd5f410799ec211f73bca0b5d5d7bc651e
lecorguille
parents: 31
diff changeset
464 pks <- lapply(x, chromPeaks)
2bf1cb023c94 planemo upload for repository https://github.com/workflow4metabolomics/xcms commit e384d6dd5f410799ec211f73bca0b5d5d7bc651e
lecorguille
parents: 31
diff changeset
465 procH <- lapply(x, processHistory)
2bf1cb023c94 planemo upload for repository https://github.com/workflow4metabolomics/xcms commit e384d6dd5f410799ec211f73bca0b5d5d7bc651e
lecorguille
parents: 31
diff changeset
466 for (i in 2:length(fls)) {
2bf1cb023c94 planemo upload for repository https://github.com/workflow4metabolomics/xcms commit e384d6dd5f410799ec211f73bca0b5d5d7bc651e
lecorguille
parents: 31
diff changeset
467 pks[[i]][, "sample"] <- pks[[i]][, "sample"] + startidx[i - 1]
2bf1cb023c94 planemo upload for repository https://github.com/workflow4metabolomics/xcms commit e384d6dd5f410799ec211f73bca0b5d5d7bc651e
lecorguille
parents: 31
diff changeset
468 procH[[i]] <- lapply(procH[[i]], function(z) {
2bf1cb023c94 planemo upload for repository https://github.com/workflow4metabolomics/xcms commit e384d6dd5f410799ec211f73bca0b5d5d7bc651e
lecorguille
parents: 31
diff changeset
469 z@fileIndex <- as.integer(z@fileIndex + startidx[i - 1])
2bf1cb023c94 planemo upload for repository https://github.com/workflow4metabolomics/xcms commit e384d6dd5f410799ec211f73bca0b5d5d7bc651e
lecorguille
parents: 31
diff changeset
470 z
2bf1cb023c94 planemo upload for repository https://github.com/workflow4metabolomics/xcms commit e384d6dd5f410799ec211f73bca0b5d5d7bc651e
lecorguille
parents: 31
diff changeset
471 })
2bf1cb023c94 planemo upload for repository https://github.com/workflow4metabolomics/xcms commit e384d6dd5f410799ec211f73bca0b5d5d7bc651e
lecorguille
parents: 31
diff changeset
472 }
2bf1cb023c94 planemo upload for repository https://github.com/workflow4metabolomics/xcms commit e384d6dd5f410799ec211f73bca0b5d5d7bc651e
lecorguille
parents: 31
diff changeset
473 pks <- do.call(rbind, pks)
2bf1cb023c94 planemo upload for repository https://github.com/workflow4metabolomics/xcms commit e384d6dd5f410799ec211f73bca0b5d5d7bc651e
lecorguille
parents: 31
diff changeset
474 new_x@.processHistory <- unlist(procH)
2bf1cb023c94 planemo upload for repository https://github.com/workflow4metabolomics/xcms commit e384d6dd5f410799ec211f73bca0b5d5d7bc651e
lecorguille
parents: 31
diff changeset
475 chromPeaks(new_x) <- pks
2bf1cb023c94 planemo upload for repository https://github.com/workflow4metabolomics/xcms commit e384d6dd5f410799ec211f73bca0b5d5d7bc651e
lecorguille
parents: 31
diff changeset
476 if (validObject(new_x))
2bf1cb023c94 planemo upload for repository https://github.com/workflow4metabolomics/xcms commit e384d6dd5f410799ec211f73bca0b5d5d7bc651e
lecorguille
parents: 31
diff changeset
477 new_x
2bf1cb023c94 planemo upload for repository https://github.com/workflow4metabolomics/xcms commit e384d6dd5f410799ec211f73bca0b5d5d7bc651e
lecorguille
parents: 31
diff changeset
478 }
2bf1cb023c94 planemo upload for repository https://github.com/workflow4metabolomics/xcms commit e384d6dd5f410799ec211f73bca0b5d5d7bc651e
lecorguille
parents: 31
diff changeset
479
2bf1cb023c94 planemo upload for repository https://github.com/workflow4metabolomics/xcms commit e384d6dd5f410799ec211f73bca0b5d5d7bc651e
lecorguille
parents: 31
diff changeset
480 #@TODO: remove this function as soon as we can use xcms 3.x.x from Bioconductor 3.7
2bf1cb023c94 planemo upload for repository https://github.com/workflow4metabolomics/xcms commit e384d6dd5f410799ec211f73bca0b5d5d7bc651e
lecorguille
parents: 31
diff changeset
481 # https://github.com/sneumann/xcms/issues/247
2bf1cb023c94 planemo upload for repository https://github.com/workflow4metabolomics/xcms commit e384d6dd5f410799ec211f73bca0b5d5d7bc651e
lecorguille
parents: 31
diff changeset
482 .concatenate_OnDiskMSnExp <- function(...) {
2bf1cb023c94 planemo upload for repository https://github.com/workflow4metabolomics/xcms commit e384d6dd5f410799ec211f73bca0b5d5d7bc651e
lecorguille
parents: 31
diff changeset
483 x <- list(...)
2bf1cb023c94 planemo upload for repository https://github.com/workflow4metabolomics/xcms commit e384d6dd5f410799ec211f73bca0b5d5d7bc651e
lecorguille
parents: 31
diff changeset
484 if (length(x) == 0)
2bf1cb023c94 planemo upload for repository https://github.com/workflow4metabolomics/xcms commit e384d6dd5f410799ec211f73bca0b5d5d7bc651e
lecorguille
parents: 31
diff changeset
485 return(NULL)
2bf1cb023c94 planemo upload for repository https://github.com/workflow4metabolomics/xcms commit e384d6dd5f410799ec211f73bca0b5d5d7bc651e
lecorguille
parents: 31
diff changeset
486 if (length(x) == 1)
2bf1cb023c94 planemo upload for repository https://github.com/workflow4metabolomics/xcms commit e384d6dd5f410799ec211f73bca0b5d5d7bc651e
lecorguille
parents: 31
diff changeset
487 return(x[[1]])
2bf1cb023c94 planemo upload for repository https://github.com/workflow4metabolomics/xcms commit e384d6dd5f410799ec211f73bca0b5d5d7bc651e
lecorguille
parents: 31
diff changeset
488 ## Check that all are XCMSnExp objects.
2bf1cb023c94 planemo upload for repository https://github.com/workflow4metabolomics/xcms commit e384d6dd5f410799ec211f73bca0b5d5d7bc651e
lecorguille
parents: 31
diff changeset
489 if (!all(unlist(lapply(x, function(z) is(z, "OnDiskMSnExp")))))
2bf1cb023c94 planemo upload for repository https://github.com/workflow4metabolomics/xcms commit e384d6dd5f410799ec211f73bca0b5d5d7bc651e
lecorguille
parents: 31
diff changeset
490 stop("All passed objects should be 'OnDiskMSnExp' objects")
2bf1cb023c94 planemo upload for repository https://github.com/workflow4metabolomics/xcms commit e384d6dd5f410799ec211f73bca0b5d5d7bc651e
lecorguille
parents: 31
diff changeset
491 ## Check processingQueue
2bf1cb023c94 planemo upload for repository https://github.com/workflow4metabolomics/xcms commit e384d6dd5f410799ec211f73bca0b5d5d7bc651e
lecorguille
parents: 31
diff changeset
492 procQ <- lapply(x, function(z) z@spectraProcessingQueue)
2bf1cb023c94 planemo upload for repository https://github.com/workflow4metabolomics/xcms commit e384d6dd5f410799ec211f73bca0b5d5d7bc651e
lecorguille
parents: 31
diff changeset
493 new_procQ <- procQ[[1]]
2bf1cb023c94 planemo upload for repository https://github.com/workflow4metabolomics/xcms commit e384d6dd5f410799ec211f73bca0b5d5d7bc651e
lecorguille
parents: 31
diff changeset
494 is_ok <- unlist(lapply(procQ, function(z)
2bf1cb023c94 planemo upload for repository https://github.com/workflow4metabolomics/xcms commit e384d6dd5f410799ec211f73bca0b5d5d7bc651e
lecorguille
parents: 31
diff changeset
495 !is.character(all.equal(new_procQ, z))
2bf1cb023c94 planemo upload for repository https://github.com/workflow4metabolomics/xcms commit e384d6dd5f410799ec211f73bca0b5d5d7bc651e
lecorguille
parents: 31
diff changeset
496 ))
2bf1cb023c94 planemo upload for repository https://github.com/workflow4metabolomics/xcms commit e384d6dd5f410799ec211f73bca0b5d5d7bc651e
lecorguille
parents: 31
diff changeset
497 if (any(!is_ok)) {
2bf1cb023c94 planemo upload for repository https://github.com/workflow4metabolomics/xcms commit e384d6dd5f410799ec211f73bca0b5d5d7bc651e
lecorguille
parents: 31
diff changeset
498 warning("Processing queues from the submitted objects differ! ",
2bf1cb023c94 planemo upload for repository https://github.com/workflow4metabolomics/xcms commit e384d6dd5f410799ec211f73bca0b5d5d7bc651e
lecorguille
parents: 31
diff changeset
499 "Dropping the processing queue.")
2bf1cb023c94 planemo upload for repository https://github.com/workflow4metabolomics/xcms commit e384d6dd5f410799ec211f73bca0b5d5d7bc651e
lecorguille
parents: 31
diff changeset
500 new_procQ <- list()
2bf1cb023c94 planemo upload for repository https://github.com/workflow4metabolomics/xcms commit e384d6dd5f410799ec211f73bca0b5d5d7bc651e
lecorguille
parents: 31
diff changeset
501 }
2bf1cb023c94 planemo upload for repository https://github.com/workflow4metabolomics/xcms commit e384d6dd5f410799ec211f73bca0b5d5d7bc651e
lecorguille
parents: 31
diff changeset
502 ## processingData
2bf1cb023c94 planemo upload for repository https://github.com/workflow4metabolomics/xcms commit e384d6dd5f410799ec211f73bca0b5d5d7bc651e
lecorguille
parents: 31
diff changeset
503 fls <- lapply(x, function(z) z@processingData@files)
2bf1cb023c94 planemo upload for repository https://github.com/workflow4metabolomics/xcms commit e384d6dd5f410799ec211f73bca0b5d5d7bc651e
lecorguille
parents: 31
diff changeset
504 startidx <- cumsum(lengths(fls))
2bf1cb023c94 planemo upload for repository https://github.com/workflow4metabolomics/xcms commit e384d6dd5f410799ec211f73bca0b5d5d7bc651e
lecorguille
parents: 31
diff changeset
505 ## featureData
2bf1cb023c94 planemo upload for repository https://github.com/workflow4metabolomics/xcms commit e384d6dd5f410799ec211f73bca0b5d5d7bc651e
lecorguille
parents: 31
diff changeset
506 featd <- lapply(x, fData)
2bf1cb023c94 planemo upload for repository https://github.com/workflow4metabolomics/xcms commit e384d6dd5f410799ec211f73bca0b5d5d7bc651e
lecorguille
parents: 31
diff changeset
507 ## Have to update the file index and the spectrum names.
2bf1cb023c94 planemo upload for repository https://github.com/workflow4metabolomics/xcms commit e384d6dd5f410799ec211f73bca0b5d5d7bc651e
lecorguille
parents: 31
diff changeset
508 for (i in 2:length(featd)) {
2bf1cb023c94 planemo upload for repository https://github.com/workflow4metabolomics/xcms commit e384d6dd5f410799ec211f73bca0b5d5d7bc651e
lecorguille
parents: 31
diff changeset
509 featd[[i]]$fileIdx <- featd[[i]]$fileIdx + startidx[i - 1]
2bf1cb023c94 planemo upload for repository https://github.com/workflow4metabolomics/xcms commit e384d6dd5f410799ec211f73bca0b5d5d7bc651e
lecorguille
parents: 31
diff changeset
510 rownames(featd[[i]]) <- MSnbase:::formatFileSpectrumNames(
2bf1cb023c94 planemo upload for repository https://github.com/workflow4metabolomics/xcms commit e384d6dd5f410799ec211f73bca0b5d5d7bc651e
lecorguille
parents: 31
diff changeset
511 fileIds = featd[[i]]$fileIdx,
2bf1cb023c94 planemo upload for repository https://github.com/workflow4metabolomics/xcms commit e384d6dd5f410799ec211f73bca0b5d5d7bc651e
lecorguille
parents: 31
diff changeset
512 spectrumIds = featd[[i]]$spIdx,
2bf1cb023c94 planemo upload for repository https://github.com/workflow4metabolomics/xcms commit e384d6dd5f410799ec211f73bca0b5d5d7bc651e
lecorguille
parents: 31
diff changeset
513 nSpectra = nrow(featd[[i]]),
2bf1cb023c94 planemo upload for repository https://github.com/workflow4metabolomics/xcms commit e384d6dd5f410799ec211f73bca0b5d5d7bc651e
lecorguille
parents: 31
diff changeset
514 nFiles = length(unlist(fls))
2bf1cb023c94 planemo upload for repository https://github.com/workflow4metabolomics/xcms commit e384d6dd5f410799ec211f73bca0b5d5d7bc651e
lecorguille
parents: 31
diff changeset
515 )
2bf1cb023c94 planemo upload for repository https://github.com/workflow4metabolomics/xcms commit e384d6dd5f410799ec211f73bca0b5d5d7bc651e
lecorguille
parents: 31
diff changeset
516 }
2bf1cb023c94 planemo upload for repository https://github.com/workflow4metabolomics/xcms commit e384d6dd5f410799ec211f73bca0b5d5d7bc651e
lecorguille
parents: 31
diff changeset
517 featd <- do.call(rbind, featd)
2bf1cb023c94 planemo upload for repository https://github.com/workflow4metabolomics/xcms commit e384d6dd5f410799ec211f73bca0b5d5d7bc651e
lecorguille
parents: 31
diff changeset
518 featd$spectrum <- 1:nrow(featd)
2bf1cb023c94 planemo upload for repository https://github.com/workflow4metabolomics/xcms commit e384d6dd5f410799ec211f73bca0b5d5d7bc651e
lecorguille
parents: 31
diff changeset
519 ## experimentData
2bf1cb023c94 planemo upload for repository https://github.com/workflow4metabolomics/xcms commit e384d6dd5f410799ec211f73bca0b5d5d7bc651e
lecorguille
parents: 31
diff changeset
520 expdata <- lapply(x, function(z) {
2bf1cb023c94 planemo upload for repository https://github.com/workflow4metabolomics/xcms commit e384d6dd5f410799ec211f73bca0b5d5d7bc651e
lecorguille
parents: 31
diff changeset
521 ed <- z@experimentData
2bf1cb023c94 planemo upload for repository https://github.com/workflow4metabolomics/xcms commit e384d6dd5f410799ec211f73bca0b5d5d7bc651e
lecorguille
parents: 31
diff changeset
522 data.frame(instrumentManufacturer = ed@instrumentManufacturer,
2bf1cb023c94 planemo upload for repository https://github.com/workflow4metabolomics/xcms commit e384d6dd5f410799ec211f73bca0b5d5d7bc651e
lecorguille
parents: 31
diff changeset
523 instrumentModel = ed@instrumentModel,
2bf1cb023c94 planemo upload for repository https://github.com/workflow4metabolomics/xcms commit e384d6dd5f410799ec211f73bca0b5d5d7bc651e
lecorguille
parents: 31
diff changeset
524 ionSource = ed@ionSource,
2bf1cb023c94 planemo upload for repository https://github.com/workflow4metabolomics/xcms commit e384d6dd5f410799ec211f73bca0b5d5d7bc651e
lecorguille
parents: 31
diff changeset
525 analyser = ed@analyser,
2bf1cb023c94 planemo upload for repository https://github.com/workflow4metabolomics/xcms commit e384d6dd5f410799ec211f73bca0b5d5d7bc651e
lecorguille
parents: 31
diff changeset
526 detectorType = ed@detectorType,
2bf1cb023c94 planemo upload for repository https://github.com/workflow4metabolomics/xcms commit e384d6dd5f410799ec211f73bca0b5d5d7bc651e
lecorguille
parents: 31
diff changeset
527 stringsAsFactors = FALSE)
2bf1cb023c94 planemo upload for repository https://github.com/workflow4metabolomics/xcms commit e384d6dd5f410799ec211f73bca0b5d5d7bc651e
lecorguille
parents: 31
diff changeset
528 })
2bf1cb023c94 planemo upload for repository https://github.com/workflow4metabolomics/xcms commit e384d6dd5f410799ec211f73bca0b5d5d7bc651e
lecorguille
parents: 31
diff changeset
529 expdata <- do.call(rbind, expdata)
2bf1cb023c94 planemo upload for repository https://github.com/workflow4metabolomics/xcms commit e384d6dd5f410799ec211f73bca0b5d5d7bc651e
lecorguille
parents: 31
diff changeset
530 expdata <- new("MIAPE",
2bf1cb023c94 planemo upload for repository https://github.com/workflow4metabolomics/xcms commit e384d6dd5f410799ec211f73bca0b5d5d7bc651e
lecorguille
parents: 31
diff changeset
531 instrumentManufacturer = expdata$instrumentManufacturer,
2bf1cb023c94 planemo upload for repository https://github.com/workflow4metabolomics/xcms commit e384d6dd5f410799ec211f73bca0b5d5d7bc651e
lecorguille
parents: 31
diff changeset
532 instrumentModel = expdata$instrumentModel,
2bf1cb023c94 planemo upload for repository https://github.com/workflow4metabolomics/xcms commit e384d6dd5f410799ec211f73bca0b5d5d7bc651e
lecorguille
parents: 31
diff changeset
533 ionSource = expdata$ionSource,
2bf1cb023c94 planemo upload for repository https://github.com/workflow4metabolomics/xcms commit e384d6dd5f410799ec211f73bca0b5d5d7bc651e
lecorguille
parents: 31
diff changeset
534 analyser = expdata$analyser,
2bf1cb023c94 planemo upload for repository https://github.com/workflow4metabolomics/xcms commit e384d6dd5f410799ec211f73bca0b5d5d7bc651e
lecorguille
parents: 31
diff changeset
535 detectorType = expdata$detectorType)
2bf1cb023c94 planemo upload for repository https://github.com/workflow4metabolomics/xcms commit e384d6dd5f410799ec211f73bca0b5d5d7bc651e
lecorguille
parents: 31
diff changeset
536
2bf1cb023c94 planemo upload for repository https://github.com/workflow4metabolomics/xcms commit e384d6dd5f410799ec211f73bca0b5d5d7bc651e
lecorguille
parents: 31
diff changeset
537 ## protocolData
2bf1cb023c94 planemo upload for repository https://github.com/workflow4metabolomics/xcms commit e384d6dd5f410799ec211f73bca0b5d5d7bc651e
lecorguille
parents: 31
diff changeset
538 protodata <- lapply(x, function(z) z@protocolData)
2bf1cb023c94 planemo upload for repository https://github.com/workflow4metabolomics/xcms commit e384d6dd5f410799ec211f73bca0b5d5d7bc651e
lecorguille
parents: 31
diff changeset
539 if (any(unlist(lapply(protodata, nrow)) > 0))
2bf1cb023c94 planemo upload for repository https://github.com/workflow4metabolomics/xcms commit e384d6dd5f410799ec211f73bca0b5d5d7bc651e
lecorguille
parents: 31
diff changeset
540 warning("Found non-empty protocol data, but merging protocol data is",
2bf1cb023c94 planemo upload for repository https://github.com/workflow4metabolomics/xcms commit e384d6dd5f410799ec211f73bca0b5d5d7bc651e
lecorguille
parents: 31
diff changeset
541 " currently not supported. Skipped.")
2bf1cb023c94 planemo upload for repository https://github.com/workflow4metabolomics/xcms commit e384d6dd5f410799ec211f73bca0b5d5d7bc651e
lecorguille
parents: 31
diff changeset
542 ## phenoData
2bf1cb023c94 planemo upload for repository https://github.com/workflow4metabolomics/xcms commit e384d6dd5f410799ec211f73bca0b5d5d7bc651e
lecorguille
parents: 31
diff changeset
543 pdata <- do.call(rbind, lapply(x, pData))
2bf1cb023c94 planemo upload for repository https://github.com/workflow4metabolomics/xcms commit e384d6dd5f410799ec211f73bca0b5d5d7bc651e
lecorguille
parents: 31
diff changeset
544 res <- new(
2bf1cb023c94 planemo upload for repository https://github.com/workflow4metabolomics/xcms commit e384d6dd5f410799ec211f73bca0b5d5d7bc651e
lecorguille
parents: 31
diff changeset
545 "OnDiskMSnExp",
2bf1cb023c94 planemo upload for repository https://github.com/workflow4metabolomics/xcms commit e384d6dd5f410799ec211f73bca0b5d5d7bc651e
lecorguille
parents: 31
diff changeset
546 phenoData = new("NAnnotatedDataFrame", data = pdata),
2bf1cb023c94 planemo upload for repository https://github.com/workflow4metabolomics/xcms commit e384d6dd5f410799ec211f73bca0b5d5d7bc651e
lecorguille
parents: 31
diff changeset
547 featureData = new("AnnotatedDataFrame", featd),
2bf1cb023c94 planemo upload for repository https://github.com/workflow4metabolomics/xcms commit e384d6dd5f410799ec211f73bca0b5d5d7bc651e
lecorguille
parents: 31
diff changeset
548 processingData = new("MSnProcess",
2bf1cb023c94 planemo upload for repository https://github.com/workflow4metabolomics/xcms commit e384d6dd5f410799ec211f73bca0b5d5d7bc651e
lecorguille
parents: 31
diff changeset
549 processing = paste0("Concatenated [", date(), "]"),
2bf1cb023c94 planemo upload for repository https://github.com/workflow4metabolomics/xcms commit e384d6dd5f410799ec211f73bca0b5d5d7bc651e
lecorguille
parents: 31
diff changeset
550 files = unlist(fls), smoothed = NA),
2bf1cb023c94 planemo upload for repository https://github.com/workflow4metabolomics/xcms commit e384d6dd5f410799ec211f73bca0b5d5d7bc651e
lecorguille
parents: 31
diff changeset
551 experimentData = expdata,
2bf1cb023c94 planemo upload for repository https://github.com/workflow4metabolomics/xcms commit e384d6dd5f410799ec211f73bca0b5d5d7bc651e
lecorguille
parents: 31
diff changeset
552 spectraProcessingQueue = new_procQ)
2bf1cb023c94 planemo upload for repository https://github.com/workflow4metabolomics/xcms commit e384d6dd5f410799ec211f73bca0b5d5d7bc651e
lecorguille
parents: 31
diff changeset
553 if (validObject(res))
2bf1cb023c94 planemo upload for repository https://github.com/workflow4metabolomics/xcms commit e384d6dd5f410799ec211f73bca0b5d5d7bc651e
lecorguille
parents: 31
diff changeset
554 res
2bf1cb023c94 planemo upload for repository https://github.com/workflow4metabolomics/xcms commit e384d6dd5f410799ec211f73bca0b5d5d7bc651e
lecorguille
parents: 31
diff changeset
555 }
2bf1cb023c94 planemo upload for repository https://github.com/workflow4metabolomics/xcms commit e384d6dd5f410799ec211f73bca0b5d5d7bc651e
lecorguille
parents: 31
diff changeset
556
2bf1cb023c94 planemo upload for repository https://github.com/workflow4metabolomics/xcms commit e384d6dd5f410799ec211f73bca0b5d5d7bc651e
lecorguille
parents: 31
diff changeset
557 #@TODO: remove this function as soon as we can use xcms 3.x.x from Bioconductor 3.7
2bf1cb023c94 planemo upload for repository https://github.com/workflow4metabolomics/xcms commit e384d6dd5f410799ec211f73bca0b5d5d7bc651e
lecorguille
parents: 31
diff changeset
558 # https://github.com/sneumann/xcms/issues/247
2bf1cb023c94 planemo upload for repository https://github.com/workflow4metabolomics/xcms commit e384d6dd5f410799ec211f73bca0b5d5d7bc651e
lecorguille
parents: 31
diff changeset
559 c.XCMSnExp <- function(...) {
2bf1cb023c94 planemo upload for repository https://github.com/workflow4metabolomics/xcms commit e384d6dd5f410799ec211f73bca0b5d5d7bc651e
lecorguille
parents: 31
diff changeset
560 .concatenate_XCMSnExp(...)
2bf1cb023c94 planemo upload for repository https://github.com/workflow4metabolomics/xcms commit e384d6dd5f410799ec211f73bca0b5d5d7bc651e
lecorguille
parents: 31
diff changeset
561 }