Mercurial > repos > lecorguille > xcms_xcmsset
annotate lib.r @ 15:1a9bbd4670e8 draft
planemo upload for repository https://github.com/workflow4metabolomics/xcms commit 92dd69e5b063aad05a9b2b75e21c78bfa46c4b94
author | lecorguille |
---|---|
date | Thu, 22 Dec 2016 05:59:20 -0500 |
parents | b9a87af62223 |
children | f28041d2180a |
rev | line source |
---|---|
15
1a9bbd4670e8
planemo upload for repository https://github.com/workflow4metabolomics/xcms commit 92dd69e5b063aad05a9b2b75e21c78bfa46c4b94
lecorguille
parents:
5
diff
changeset
|
1 # lib.r version="2.3" |
5
b9a87af62223
planemo upload commit 5a5b747865d7fb76f711bce2d9ce2a0f82a2a374-dirty
lecorguille
parents:
diff
changeset
|
2 #Authors ABiMS TEAM |
b9a87af62223
planemo upload commit 5a5b747865d7fb76f711bce2d9ce2a0f82a2a374-dirty
lecorguille
parents:
diff
changeset
|
3 #Lib.r for Galaxy Workflow4Metabo |
15
1a9bbd4670e8
planemo upload for repository https://github.com/workflow4metabolomics/xcms commit 92dd69e5b063aad05a9b2b75e21c78bfa46c4b94
lecorguille
parents:
5
diff
changeset
|
4 #version 2.3 |
5
b9a87af62223
planemo upload commit 5a5b747865d7fb76f711bce2d9ce2a0f82a2a374-dirty
lecorguille
parents:
diff
changeset
|
5 #Based on lib.r 2.1 |
b9a87af62223
planemo upload commit 5a5b747865d7fb76f711bce2d9ce2a0f82a2a374-dirty
lecorguille
parents:
diff
changeset
|
6 #Modifications made by Guitton Yann |
15
1a9bbd4670e8
planemo upload for repository https://github.com/workflow4metabolomics/xcms commit 92dd69e5b063aad05a9b2b75e21c78bfa46c4b94
lecorguille
parents:
5
diff
changeset
|
7 #2.3 Note |
1a9bbd4670e8
planemo upload for repository https://github.com/workflow4metabolomics/xcms commit 92dd69e5b063aad05a9b2b75e21c78bfa46c4b94
lecorguille
parents:
5
diff
changeset
|
8 #correction for empty PDF when only 1 class |
1a9bbd4670e8
planemo upload for repository https://github.com/workflow4metabolomics/xcms commit 92dd69e5b063aad05a9b2b75e21c78bfa46c4b94
lecorguille
parents:
5
diff
changeset
|
9 #2.2 Note |
5
b9a87af62223
planemo upload commit 5a5b747865d7fb76f711bce2d9ce2a0f82a2a374-dirty
lecorguille
parents:
diff
changeset
|
10 #correct bug in Base Peak Chromatogram (BPC) option, not only TIC when scanrange used in xcmsSet |
b9a87af62223
planemo upload commit 5a5b747865d7fb76f711bce2d9ce2a0f82a2a374-dirty
lecorguille
parents:
diff
changeset
|
11 #Note if scanrange is used a warning is prompted in R console but do not stop PDF generation |
b9a87af62223
planemo upload commit 5a5b747865d7fb76f711bce2d9ce2a0f82a2a374-dirty
lecorguille
parents:
diff
changeset
|
12 |
b9a87af62223
planemo upload commit 5a5b747865d7fb76f711bce2d9ce2a0f82a2a374-dirty
lecorguille
parents:
diff
changeset
|
13 |
b9a87af62223
planemo upload commit 5a5b747865d7fb76f711bce2d9ce2a0f82a2a374-dirty
lecorguille
parents:
diff
changeset
|
14 |
b9a87af62223
planemo upload commit 5a5b747865d7fb76f711bce2d9ce2a0f82a2a374-dirty
lecorguille
parents:
diff
changeset
|
15 |
b9a87af62223
planemo upload commit 5a5b747865d7fb76f711bce2d9ce2a0f82a2a374-dirty
lecorguille
parents:
diff
changeset
|
16 #@author Y. Guitton |
b9a87af62223
planemo upload commit 5a5b747865d7fb76f711bce2d9ce2a0f82a2a374-dirty
lecorguille
parents:
diff
changeset
|
17 getBPC <- function(file,rtcor=NULL, ...) { |
b9a87af62223
planemo upload commit 5a5b747865d7fb76f711bce2d9ce2a0f82a2a374-dirty
lecorguille
parents:
diff
changeset
|
18 object <- xcmsRaw(file) |
b9a87af62223
planemo upload commit 5a5b747865d7fb76f711bce2d9ce2a0f82a2a374-dirty
lecorguille
parents:
diff
changeset
|
19 sel <- profRange(object, ...) |
b9a87af62223
planemo upload commit 5a5b747865d7fb76f711bce2d9ce2a0f82a2a374-dirty
lecorguille
parents:
diff
changeset
|
20 cbind(if (is.null(rtcor)) object@scantime[sel$scanidx] else rtcor ,xcms:::colMax(object@env$profile[sel$massidx,sel$scanidx,drop=FALSE])) |
b9a87af62223
planemo upload commit 5a5b747865d7fb76f711bce2d9ce2a0f82a2a374-dirty
lecorguille
parents:
diff
changeset
|
21 #plotChrom(xcmsRaw(file), base=T) |
b9a87af62223
planemo upload commit 5a5b747865d7fb76f711bce2d9ce2a0f82a2a374-dirty
lecorguille
parents:
diff
changeset
|
22 } |
b9a87af62223
planemo upload commit 5a5b747865d7fb76f711bce2d9ce2a0f82a2a374-dirty
lecorguille
parents:
diff
changeset
|
23 |
b9a87af62223
planemo upload commit 5a5b747865d7fb76f711bce2d9ce2a0f82a2a374-dirty
lecorguille
parents:
diff
changeset
|
24 #@author Y. Guitton |
b9a87af62223
planemo upload commit 5a5b747865d7fb76f711bce2d9ce2a0f82a2a374-dirty
lecorguille
parents:
diff
changeset
|
25 getBPCs <- function (xcmsSet=NULL, pdfname="BPCs.pdf",rt=c("raw","corrected"), scanrange=NULL) { |
b9a87af62223
planemo upload commit 5a5b747865d7fb76f711bce2d9ce2a0f82a2a374-dirty
lecorguille
parents:
diff
changeset
|
26 cat("Creating BIC pdf...\n") |
b9a87af62223
planemo upload commit 5a5b747865d7fb76f711bce2d9ce2a0f82a2a374-dirty
lecorguille
parents:
diff
changeset
|
27 |
b9a87af62223
planemo upload commit 5a5b747865d7fb76f711bce2d9ce2a0f82a2a374-dirty
lecorguille
parents:
diff
changeset
|
28 if (is.null(xcmsSet)) { |
b9a87af62223
planemo upload commit 5a5b747865d7fb76f711bce2d9ce2a0f82a2a374-dirty
lecorguille
parents:
diff
changeset
|
29 cat("Enter an xcmsSet \n") |
b9a87af62223
planemo upload commit 5a5b747865d7fb76f711bce2d9ce2a0f82a2a374-dirty
lecorguille
parents:
diff
changeset
|
30 stop() |
b9a87af62223
planemo upload commit 5a5b747865d7fb76f711bce2d9ce2a0f82a2a374-dirty
lecorguille
parents:
diff
changeset
|
31 } else { |
b9a87af62223
planemo upload commit 5a5b747865d7fb76f711bce2d9ce2a0f82a2a374-dirty
lecorguille
parents:
diff
changeset
|
32 files <- filepaths(xcmsSet) |
b9a87af62223
planemo upload commit 5a5b747865d7fb76f711bce2d9ce2a0f82a2a374-dirty
lecorguille
parents:
diff
changeset
|
33 } |
b9a87af62223
planemo upload commit 5a5b747865d7fb76f711bce2d9ce2a0f82a2a374-dirty
lecorguille
parents:
diff
changeset
|
34 |
b9a87af62223
planemo upload commit 5a5b747865d7fb76f711bce2d9ce2a0f82a2a374-dirty
lecorguille
parents:
diff
changeset
|
35 class<-as.vector(levels(xcmsSet@phenoData[,1])) #sometime phenoData have more than 1 column use first as class |
b9a87af62223
planemo upload commit 5a5b747865d7fb76f711bce2d9ce2a0f82a2a374-dirty
lecorguille
parents:
diff
changeset
|
36 |
b9a87af62223
planemo upload commit 5a5b747865d7fb76f711bce2d9ce2a0f82a2a374-dirty
lecorguille
parents:
diff
changeset
|
37 classnames<-vector("list",length(class)) |
b9a87af62223
planemo upload commit 5a5b747865d7fb76f711bce2d9ce2a0f82a2a374-dirty
lecorguille
parents:
diff
changeset
|
38 for (i in 1:length(class)){ |
b9a87af62223
planemo upload commit 5a5b747865d7fb76f711bce2d9ce2a0f82a2a374-dirty
lecorguille
parents:
diff
changeset
|
39 classnames[[i]]<-which( xcmsSet@phenoData[,1]==class[i]) |
b9a87af62223
planemo upload commit 5a5b747865d7fb76f711bce2d9ce2a0f82a2a374-dirty
lecorguille
parents:
diff
changeset
|
40 } |
b9a87af62223
planemo upload commit 5a5b747865d7fb76f711bce2d9ce2a0f82a2a374-dirty
lecorguille
parents:
diff
changeset
|
41 |
b9a87af62223
planemo upload commit 5a5b747865d7fb76f711bce2d9ce2a0f82a2a374-dirty
lecorguille
parents:
diff
changeset
|
42 N <- dim(phenoData(xcmsSet))[1] |
b9a87af62223
planemo upload commit 5a5b747865d7fb76f711bce2d9ce2a0f82a2a374-dirty
lecorguille
parents:
diff
changeset
|
43 |
b9a87af62223
planemo upload commit 5a5b747865d7fb76f711bce2d9ce2a0f82a2a374-dirty
lecorguille
parents:
diff
changeset
|
44 TIC <- vector("list",N) |
b9a87af62223
planemo upload commit 5a5b747865d7fb76f711bce2d9ce2a0f82a2a374-dirty
lecorguille
parents:
diff
changeset
|
45 |
b9a87af62223
planemo upload commit 5a5b747865d7fb76f711bce2d9ce2a0f82a2a374-dirty
lecorguille
parents:
diff
changeset
|
46 |
b9a87af62223
planemo upload commit 5a5b747865d7fb76f711bce2d9ce2a0f82a2a374-dirty
lecorguille
parents:
diff
changeset
|
47 for (j in 1:N) { |
b9a87af62223
planemo upload commit 5a5b747865d7fb76f711bce2d9ce2a0f82a2a374-dirty
lecorguille
parents:
diff
changeset
|
48 |
b9a87af62223
planemo upload commit 5a5b747865d7fb76f711bce2d9ce2a0f82a2a374-dirty
lecorguille
parents:
diff
changeset
|
49 TIC[[j]] <- getBPC(files[j]) |
b9a87af62223
planemo upload commit 5a5b747865d7fb76f711bce2d9ce2a0f82a2a374-dirty
lecorguille
parents:
diff
changeset
|
50 #good for raw |
b9a87af62223
planemo upload commit 5a5b747865d7fb76f711bce2d9ce2a0f82a2a374-dirty
lecorguille
parents:
diff
changeset
|
51 # seems strange for corrected |
b9a87af62223
planemo upload commit 5a5b747865d7fb76f711bce2d9ce2a0f82a2a374-dirty
lecorguille
parents:
diff
changeset
|
52 #errors if scanrange used in xcmsSetgeneration |
b9a87af62223
planemo upload commit 5a5b747865d7fb76f711bce2d9ce2a0f82a2a374-dirty
lecorguille
parents:
diff
changeset
|
53 if (!is.null(xcmsSet) && rt == "corrected") |
b9a87af62223
planemo upload commit 5a5b747865d7fb76f711bce2d9ce2a0f82a2a374-dirty
lecorguille
parents:
diff
changeset
|
54 rtcor <- xcmsSet@rt$corrected[[j]] else |
b9a87af62223
planemo upload commit 5a5b747865d7fb76f711bce2d9ce2a0f82a2a374-dirty
lecorguille
parents:
diff
changeset
|
55 rtcor <- NULL |
b9a87af62223
planemo upload commit 5a5b747865d7fb76f711bce2d9ce2a0f82a2a374-dirty
lecorguille
parents:
diff
changeset
|
56 |
b9a87af62223
planemo upload commit 5a5b747865d7fb76f711bce2d9ce2a0f82a2a374-dirty
lecorguille
parents:
diff
changeset
|
57 TIC[[j]] <- getBPC(files[j],rtcor=rtcor) |
b9a87af62223
planemo upload commit 5a5b747865d7fb76f711bce2d9ce2a0f82a2a374-dirty
lecorguille
parents:
diff
changeset
|
58 # TIC[[j]][,1]<-rtcor |
b9a87af62223
planemo upload commit 5a5b747865d7fb76f711bce2d9ce2a0f82a2a374-dirty
lecorguille
parents:
diff
changeset
|
59 } |
b9a87af62223
planemo upload commit 5a5b747865d7fb76f711bce2d9ce2a0f82a2a374-dirty
lecorguille
parents:
diff
changeset
|
60 |
b9a87af62223
planemo upload commit 5a5b747865d7fb76f711bce2d9ce2a0f82a2a374-dirty
lecorguille
parents:
diff
changeset
|
61 |
b9a87af62223
planemo upload commit 5a5b747865d7fb76f711bce2d9ce2a0f82a2a374-dirty
lecorguille
parents:
diff
changeset
|
62 |
b9a87af62223
planemo upload commit 5a5b747865d7fb76f711bce2d9ce2a0f82a2a374-dirty
lecorguille
parents:
diff
changeset
|
63 pdf(pdfname,w=16,h=10) |
b9a87af62223
planemo upload commit 5a5b747865d7fb76f711bce2d9ce2a0f82a2a374-dirty
lecorguille
parents:
diff
changeset
|
64 cols <- rainbow(N) |
b9a87af62223
planemo upload commit 5a5b747865d7fb76f711bce2d9ce2a0f82a2a374-dirty
lecorguille
parents:
diff
changeset
|
65 lty = 1:N |
b9a87af62223
planemo upload commit 5a5b747865d7fb76f711bce2d9ce2a0f82a2a374-dirty
lecorguille
parents:
diff
changeset
|
66 pch = 1:N |
b9a87af62223
planemo upload commit 5a5b747865d7fb76f711bce2d9ce2a0f82a2a374-dirty
lecorguille
parents:
diff
changeset
|
67 #search for max x and max y in BPCs |
b9a87af62223
planemo upload commit 5a5b747865d7fb76f711bce2d9ce2a0f82a2a374-dirty
lecorguille
parents:
diff
changeset
|
68 xlim = range(sapply(TIC, function(x) range(x[,1]))) |
b9a87af62223
planemo upload commit 5a5b747865d7fb76f711bce2d9ce2a0f82a2a374-dirty
lecorguille
parents:
diff
changeset
|
69 ylim = range(sapply(TIC, function(x) range(x[,2]))) |
b9a87af62223
planemo upload commit 5a5b747865d7fb76f711bce2d9ce2a0f82a2a374-dirty
lecorguille
parents:
diff
changeset
|
70 ylim = c(-ylim[2], ylim[2]) |
b9a87af62223
planemo upload commit 5a5b747865d7fb76f711bce2d9ce2a0f82a2a374-dirty
lecorguille
parents:
diff
changeset
|
71 |
b9a87af62223
planemo upload commit 5a5b747865d7fb76f711bce2d9ce2a0f82a2a374-dirty
lecorguille
parents:
diff
changeset
|
72 |
b9a87af62223
planemo upload commit 5a5b747865d7fb76f711bce2d9ce2a0f82a2a374-dirty
lecorguille
parents:
diff
changeset
|
73 ##plot start |
b9a87af62223
planemo upload commit 5a5b747865d7fb76f711bce2d9ce2a0f82a2a374-dirty
lecorguille
parents:
diff
changeset
|
74 |
b9a87af62223
planemo upload commit 5a5b747865d7fb76f711bce2d9ce2a0f82a2a374-dirty
lecorguille
parents:
diff
changeset
|
75 if (length(class)>2){ |
b9a87af62223
planemo upload commit 5a5b747865d7fb76f711bce2d9ce2a0f82a2a374-dirty
lecorguille
parents:
diff
changeset
|
76 for (k in 1:(length(class)-1)){ |
b9a87af62223
planemo upload commit 5a5b747865d7fb76f711bce2d9ce2a0f82a2a374-dirty
lecorguille
parents:
diff
changeset
|
77 for (l in (k+1):length(class)){ |
b9a87af62223
planemo upload commit 5a5b747865d7fb76f711bce2d9ce2a0f82a2a374-dirty
lecorguille
parents:
diff
changeset
|
78 #print(paste(class[k],"vs",class[l],sep=" ")) |
b9a87af62223
planemo upload commit 5a5b747865d7fb76f711bce2d9ce2a0f82a2a374-dirty
lecorguille
parents:
diff
changeset
|
79 plot(0, 0, type="n", xlim = xlim/60, ylim = ylim, main = paste("Base Peak Chromatograms \n","BPCs_",class[k]," vs ",class[l], sep=""), xlab = "Retention Time (min)", ylab = "BPC") |
b9a87af62223
planemo upload commit 5a5b747865d7fb76f711bce2d9ce2a0f82a2a374-dirty
lecorguille
parents:
diff
changeset
|
80 colvect<-NULL |
b9a87af62223
planemo upload commit 5a5b747865d7fb76f711bce2d9ce2a0f82a2a374-dirty
lecorguille
parents:
diff
changeset
|
81 for (j in 1:length(classnames[[k]])) { |
b9a87af62223
planemo upload commit 5a5b747865d7fb76f711bce2d9ce2a0f82a2a374-dirty
lecorguille
parents:
diff
changeset
|
82 tic <- TIC[[classnames[[k]][j]]] |
b9a87af62223
planemo upload commit 5a5b747865d7fb76f711bce2d9ce2a0f82a2a374-dirty
lecorguille
parents:
diff
changeset
|
83 # points(tic[,1]/60, tic[,2], col = cols[i], pch = pch[i], type="l") |
b9a87af62223
planemo upload commit 5a5b747865d7fb76f711bce2d9ce2a0f82a2a374-dirty
lecorguille
parents:
diff
changeset
|
84 points(tic[,1]/60, tic[,2], col = cols[classnames[[k]][j]], pch = pch[classnames[[k]][j]], type="l") |
b9a87af62223
planemo upload commit 5a5b747865d7fb76f711bce2d9ce2a0f82a2a374-dirty
lecorguille
parents:
diff
changeset
|
85 colvect<-append(colvect,cols[classnames[[k]][j]]) |
b9a87af62223
planemo upload commit 5a5b747865d7fb76f711bce2d9ce2a0f82a2a374-dirty
lecorguille
parents:
diff
changeset
|
86 } |
b9a87af62223
planemo upload commit 5a5b747865d7fb76f711bce2d9ce2a0f82a2a374-dirty
lecorguille
parents:
diff
changeset
|
87 for (j in 1:length(classnames[[l]])) { |
b9a87af62223
planemo upload commit 5a5b747865d7fb76f711bce2d9ce2a0f82a2a374-dirty
lecorguille
parents:
diff
changeset
|
88 # i=class2names[j] |
b9a87af62223
planemo upload commit 5a5b747865d7fb76f711bce2d9ce2a0f82a2a374-dirty
lecorguille
parents:
diff
changeset
|
89 tic <- TIC[[classnames[[l]][j]]] |
b9a87af62223
planemo upload commit 5a5b747865d7fb76f711bce2d9ce2a0f82a2a374-dirty
lecorguille
parents:
diff
changeset
|
90 points(tic[,1]/60, -tic[,2], col = cols[classnames[[l]][j]], pch = pch[classnames[[l]][j]], type="l") |
b9a87af62223
planemo upload commit 5a5b747865d7fb76f711bce2d9ce2a0f82a2a374-dirty
lecorguille
parents:
diff
changeset
|
91 colvect<-append(colvect,cols[classnames[[l]][j]]) |
b9a87af62223
planemo upload commit 5a5b747865d7fb76f711bce2d9ce2a0f82a2a374-dirty
lecorguille
parents:
diff
changeset
|
92 } |
b9a87af62223
planemo upload commit 5a5b747865d7fb76f711bce2d9ce2a0f82a2a374-dirty
lecorguille
parents:
diff
changeset
|
93 legend("topright",paste(basename(files[c(classnames[[k]],classnames[[l]])])), col = colvect, lty = lty, pch = pch) |
b9a87af62223
planemo upload commit 5a5b747865d7fb76f711bce2d9ce2a0f82a2a374-dirty
lecorguille
parents:
diff
changeset
|
94 } |
b9a87af62223
planemo upload commit 5a5b747865d7fb76f711bce2d9ce2a0f82a2a374-dirty
lecorguille
parents:
diff
changeset
|
95 } |
b9a87af62223
planemo upload commit 5a5b747865d7fb76f711bce2d9ce2a0f82a2a374-dirty
lecorguille
parents:
diff
changeset
|
96 }#end if length >2 |
b9a87af62223
planemo upload commit 5a5b747865d7fb76f711bce2d9ce2a0f82a2a374-dirty
lecorguille
parents:
diff
changeset
|
97 |
b9a87af62223
planemo upload commit 5a5b747865d7fb76f711bce2d9ce2a0f82a2a374-dirty
lecorguille
parents:
diff
changeset
|
98 if (length(class)==2){ |
b9a87af62223
planemo upload commit 5a5b747865d7fb76f711bce2d9ce2a0f82a2a374-dirty
lecorguille
parents:
diff
changeset
|
99 k=1 |
b9a87af62223
planemo upload commit 5a5b747865d7fb76f711bce2d9ce2a0f82a2a374-dirty
lecorguille
parents:
diff
changeset
|
100 l=2 |
b9a87af62223
planemo upload commit 5a5b747865d7fb76f711bce2d9ce2a0f82a2a374-dirty
lecorguille
parents:
diff
changeset
|
101 colvect<-NULL |
b9a87af62223
planemo upload commit 5a5b747865d7fb76f711bce2d9ce2a0f82a2a374-dirty
lecorguille
parents:
diff
changeset
|
102 plot(0, 0, type="n", xlim = xlim/60, ylim = ylim, main = paste("Base Peak Chromatograms \n","BPCs_",class[k],"vs",class[l], sep=""), xlab = "Retention Time (min)", ylab = "BPC") |
b9a87af62223
planemo upload commit 5a5b747865d7fb76f711bce2d9ce2a0f82a2a374-dirty
lecorguille
parents:
diff
changeset
|
103 |
b9a87af62223
planemo upload commit 5a5b747865d7fb76f711bce2d9ce2a0f82a2a374-dirty
lecorguille
parents:
diff
changeset
|
104 for (j in 1:length(classnames[[k]])) { |
b9a87af62223
planemo upload commit 5a5b747865d7fb76f711bce2d9ce2a0f82a2a374-dirty
lecorguille
parents:
diff
changeset
|
105 |
b9a87af62223
planemo upload commit 5a5b747865d7fb76f711bce2d9ce2a0f82a2a374-dirty
lecorguille
parents:
diff
changeset
|
106 tic <- TIC[[classnames[[k]][j]]] |
b9a87af62223
planemo upload commit 5a5b747865d7fb76f711bce2d9ce2a0f82a2a374-dirty
lecorguille
parents:
diff
changeset
|
107 # points(tic[,1]/60, tic[,2], col = cols[i], pch = pch[i], type="l") |
b9a87af62223
planemo upload commit 5a5b747865d7fb76f711bce2d9ce2a0f82a2a374-dirty
lecorguille
parents:
diff
changeset
|
108 points(tic[,1]/60, tic[,2], col = cols[classnames[[k]][j]], pch = pch[classnames[[k]][j]], type="l") |
b9a87af62223
planemo upload commit 5a5b747865d7fb76f711bce2d9ce2a0f82a2a374-dirty
lecorguille
parents:
diff
changeset
|
109 colvect<-append(colvect,cols[classnames[[k]][j]]) |
b9a87af62223
planemo upload commit 5a5b747865d7fb76f711bce2d9ce2a0f82a2a374-dirty
lecorguille
parents:
diff
changeset
|
110 } |
b9a87af62223
planemo upload commit 5a5b747865d7fb76f711bce2d9ce2a0f82a2a374-dirty
lecorguille
parents:
diff
changeset
|
111 for (j in 1:length(classnames[[l]])) { |
b9a87af62223
planemo upload commit 5a5b747865d7fb76f711bce2d9ce2a0f82a2a374-dirty
lecorguille
parents:
diff
changeset
|
112 # i=class2names[j] |
b9a87af62223
planemo upload commit 5a5b747865d7fb76f711bce2d9ce2a0f82a2a374-dirty
lecorguille
parents:
diff
changeset
|
113 tic <- TIC[[classnames[[l]][j]]] |
b9a87af62223
planemo upload commit 5a5b747865d7fb76f711bce2d9ce2a0f82a2a374-dirty
lecorguille
parents:
diff
changeset
|
114 points(tic[,1]/60, -tic[,2], col = cols[classnames[[l]][j]], pch = pch[classnames[[l]][j]], type="l") |
b9a87af62223
planemo upload commit 5a5b747865d7fb76f711bce2d9ce2a0f82a2a374-dirty
lecorguille
parents:
diff
changeset
|
115 colvect<-append(colvect,cols[classnames[[l]][j]]) |
b9a87af62223
planemo upload commit 5a5b747865d7fb76f711bce2d9ce2a0f82a2a374-dirty
lecorguille
parents:
diff
changeset
|
116 } |
b9a87af62223
planemo upload commit 5a5b747865d7fb76f711bce2d9ce2a0f82a2a374-dirty
lecorguille
parents:
diff
changeset
|
117 legend("topright",paste(basename(files[c(classnames[[k]],classnames[[l]])])), col = colvect, lty = lty, pch = pch) |
b9a87af62223
planemo upload commit 5a5b747865d7fb76f711bce2d9ce2a0f82a2a374-dirty
lecorguille
parents:
diff
changeset
|
118 |
b9a87af62223
planemo upload commit 5a5b747865d7fb76f711bce2d9ce2a0f82a2a374-dirty
lecorguille
parents:
diff
changeset
|
119 }#end length ==2 |
15
1a9bbd4670e8
planemo upload for repository https://github.com/workflow4metabolomics/xcms commit 92dd69e5b063aad05a9b2b75e21c78bfa46c4b94
lecorguille
parents:
5
diff
changeset
|
120 |
1a9bbd4670e8
planemo upload for repository https://github.com/workflow4metabolomics/xcms commit 92dd69e5b063aad05a9b2b75e21c78bfa46c4b94
lecorguille
parents:
5
diff
changeset
|
121 #case where only one class |
1a9bbd4670e8
planemo upload for repository https://github.com/workflow4metabolomics/xcms commit 92dd69e5b063aad05a9b2b75e21c78bfa46c4b94
lecorguille
parents:
5
diff
changeset
|
122 if (length(class)==1){ |
1a9bbd4670e8
planemo upload for repository https://github.com/workflow4metabolomics/xcms commit 92dd69e5b063aad05a9b2b75e21c78bfa46c4b94
lecorguille
parents:
5
diff
changeset
|
123 k=1 |
1a9bbd4670e8
planemo upload for repository https://github.com/workflow4metabolomics/xcms commit 92dd69e5b063aad05a9b2b75e21c78bfa46c4b94
lecorguille
parents:
5
diff
changeset
|
124 ylim = range(sapply(TIC, function(x) range(x[,2]))) |
1a9bbd4670e8
planemo upload for repository https://github.com/workflow4metabolomics/xcms commit 92dd69e5b063aad05a9b2b75e21c78bfa46c4b94
lecorguille
parents:
5
diff
changeset
|
125 colvect<-NULL |
1a9bbd4670e8
planemo upload for repository https://github.com/workflow4metabolomics/xcms commit 92dd69e5b063aad05a9b2b75e21c78bfa46c4b94
lecorguille
parents:
5
diff
changeset
|
126 plot(0, 0, type="n", xlim = xlim/60, ylim = ylim, main = paste("Base Peak Chromatograms \n","BPCs_",class[k], sep=""), xlab = "Retention Time (min)", ylab = "BPC") |
5
b9a87af62223
planemo upload commit 5a5b747865d7fb76f711bce2d9ce2a0f82a2a374-dirty
lecorguille
parents:
diff
changeset
|
127 |
15
1a9bbd4670e8
planemo upload for repository https://github.com/workflow4metabolomics/xcms commit 92dd69e5b063aad05a9b2b75e21c78bfa46c4b94
lecorguille
parents:
5
diff
changeset
|
128 for (j in 1:length(classnames[[k]])) { |
1a9bbd4670e8
planemo upload for repository https://github.com/workflow4metabolomics/xcms commit 92dd69e5b063aad05a9b2b75e21c78bfa46c4b94
lecorguille
parents:
5
diff
changeset
|
129 tic <- TIC[[classnames[[k]][j]]] |
1a9bbd4670e8
planemo upload for repository https://github.com/workflow4metabolomics/xcms commit 92dd69e5b063aad05a9b2b75e21c78bfa46c4b94
lecorguille
parents:
5
diff
changeset
|
130 # points(tic[,1]/60, tic[,2], col = cols[i], pch = pch[i], type="l") |
1a9bbd4670e8
planemo upload for repository https://github.com/workflow4metabolomics/xcms commit 92dd69e5b063aad05a9b2b75e21c78bfa46c4b94
lecorguille
parents:
5
diff
changeset
|
131 points(tic[,1]/60, tic[,2], col = cols[classnames[[k]][j]], pch = pch[classnames[[k]][j]], type="l") |
1a9bbd4670e8
planemo upload for repository https://github.com/workflow4metabolomics/xcms commit 92dd69e5b063aad05a9b2b75e21c78bfa46c4b94
lecorguille
parents:
5
diff
changeset
|
132 colvect<-append(colvect,cols[classnames[[k]][j]]) |
1a9bbd4670e8
planemo upload for repository https://github.com/workflow4metabolomics/xcms commit 92dd69e5b063aad05a9b2b75e21c78bfa46c4b94
lecorguille
parents:
5
diff
changeset
|
133 } |
1a9bbd4670e8
planemo upload for repository https://github.com/workflow4metabolomics/xcms commit 92dd69e5b063aad05a9b2b75e21c78bfa46c4b94
lecorguille
parents:
5
diff
changeset
|
134 |
1a9bbd4670e8
planemo upload for repository https://github.com/workflow4metabolomics/xcms commit 92dd69e5b063aad05a9b2b75e21c78bfa46c4b94
lecorguille
parents:
5
diff
changeset
|
135 legend("topright",paste(basename(files[c(classnames[[k]])])), col = colvect, lty = lty, pch = pch) |
1a9bbd4670e8
planemo upload for repository https://github.com/workflow4metabolomics/xcms commit 92dd69e5b063aad05a9b2b75e21c78bfa46c4b94
lecorguille
parents:
5
diff
changeset
|
136 |
1a9bbd4670e8
planemo upload for repository https://github.com/workflow4metabolomics/xcms commit 92dd69e5b063aad05a9b2b75e21c78bfa46c4b94
lecorguille
parents:
5
diff
changeset
|
137 }#end length ==1 |
1a9bbd4670e8
planemo upload for repository https://github.com/workflow4metabolomics/xcms commit 92dd69e5b063aad05a9b2b75e21c78bfa46c4b94
lecorguille
parents:
5
diff
changeset
|
138 |
5
b9a87af62223
planemo upload commit 5a5b747865d7fb76f711bce2d9ce2a0f82a2a374-dirty
lecorguille
parents:
diff
changeset
|
139 dev.off() #pdf(pdfname,w=16,h=10) |
b9a87af62223
planemo upload commit 5a5b747865d7fb76f711bce2d9ce2a0f82a2a374-dirty
lecorguille
parents:
diff
changeset
|
140 |
b9a87af62223
planemo upload commit 5a5b747865d7fb76f711bce2d9ce2a0f82a2a374-dirty
lecorguille
parents:
diff
changeset
|
141 invisible(TIC) |
b9a87af62223
planemo upload commit 5a5b747865d7fb76f711bce2d9ce2a0f82a2a374-dirty
lecorguille
parents:
diff
changeset
|
142 } |
b9a87af62223
planemo upload commit 5a5b747865d7fb76f711bce2d9ce2a0f82a2a374-dirty
lecorguille
parents:
diff
changeset
|
143 |
b9a87af62223
planemo upload commit 5a5b747865d7fb76f711bce2d9ce2a0f82a2a374-dirty
lecorguille
parents:
diff
changeset
|
144 |
b9a87af62223
planemo upload commit 5a5b747865d7fb76f711bce2d9ce2a0f82a2a374-dirty
lecorguille
parents:
diff
changeset
|
145 |
b9a87af62223
planemo upload commit 5a5b747865d7fb76f711bce2d9ce2a0f82a2a374-dirty
lecorguille
parents:
diff
changeset
|
146 #@author Y. Guitton |
b9a87af62223
planemo upload commit 5a5b747865d7fb76f711bce2d9ce2a0f82a2a374-dirty
lecorguille
parents:
diff
changeset
|
147 getTIC <- function(file,rtcor=NULL) { |
b9a87af62223
planemo upload commit 5a5b747865d7fb76f711bce2d9ce2a0f82a2a374-dirty
lecorguille
parents:
diff
changeset
|
148 object <- xcmsRaw(file) |
b9a87af62223
planemo upload commit 5a5b747865d7fb76f711bce2d9ce2a0f82a2a374-dirty
lecorguille
parents:
diff
changeset
|
149 cbind(if (is.null(rtcor)) object@scantime else rtcor, rawEIC(object,mzrange=range(object@env$mz))$intensity) |
b9a87af62223
planemo upload commit 5a5b747865d7fb76f711bce2d9ce2a0f82a2a374-dirty
lecorguille
parents:
diff
changeset
|
150 } |
b9a87af62223
planemo upload commit 5a5b747865d7fb76f711bce2d9ce2a0f82a2a374-dirty
lecorguille
parents:
diff
changeset
|
151 |
b9a87af62223
planemo upload commit 5a5b747865d7fb76f711bce2d9ce2a0f82a2a374-dirty
lecorguille
parents:
diff
changeset
|
152 ## |
b9a87af62223
planemo upload commit 5a5b747865d7fb76f711bce2d9ce2a0f82a2a374-dirty
lecorguille
parents:
diff
changeset
|
153 ## overlay TIC from all files in current folder or from xcmsSet, create pdf |
b9a87af62223
planemo upload commit 5a5b747865d7fb76f711bce2d9ce2a0f82a2a374-dirty
lecorguille
parents:
diff
changeset
|
154 ## |
b9a87af62223
planemo upload commit 5a5b747865d7fb76f711bce2d9ce2a0f82a2a374-dirty
lecorguille
parents:
diff
changeset
|
155 #@author Y. Guitton |
b9a87af62223
planemo upload commit 5a5b747865d7fb76f711bce2d9ce2a0f82a2a374-dirty
lecorguille
parents:
diff
changeset
|
156 getTICs <- function(xcmsSet=NULL,files=NULL, pdfname="TICs.pdf",rt=c("raw","corrected")) { |
b9a87af62223
planemo upload commit 5a5b747865d7fb76f711bce2d9ce2a0f82a2a374-dirty
lecorguille
parents:
diff
changeset
|
157 cat("Creating TIC pdf...\n") |
b9a87af62223
planemo upload commit 5a5b747865d7fb76f711bce2d9ce2a0f82a2a374-dirty
lecorguille
parents:
diff
changeset
|
158 |
b9a87af62223
planemo upload commit 5a5b747865d7fb76f711bce2d9ce2a0f82a2a374-dirty
lecorguille
parents:
diff
changeset
|
159 if (is.null(xcmsSet)) { |
b9a87af62223
planemo upload commit 5a5b747865d7fb76f711bce2d9ce2a0f82a2a374-dirty
lecorguille
parents:
diff
changeset
|
160 filepattern <- c("[Cc][Dd][Ff]", "[Nn][Cc]", "([Mm][Zz])?[Xx][Mm][Ll]", "[Mm][Zz][Dd][Aa][Tt][Aa]", "[Mm][Zz][Mm][Ll]") |
b9a87af62223
planemo upload commit 5a5b747865d7fb76f711bce2d9ce2a0f82a2a374-dirty
lecorguille
parents:
diff
changeset
|
161 filepattern <- paste(paste("\\.", filepattern, "$", sep = ""), collapse = "|") |
b9a87af62223
planemo upload commit 5a5b747865d7fb76f711bce2d9ce2a0f82a2a374-dirty
lecorguille
parents:
diff
changeset
|
162 if (is.null(files)) |
b9a87af62223
planemo upload commit 5a5b747865d7fb76f711bce2d9ce2a0f82a2a374-dirty
lecorguille
parents:
diff
changeset
|
163 files <- getwd() |
b9a87af62223
planemo upload commit 5a5b747865d7fb76f711bce2d9ce2a0f82a2a374-dirty
lecorguille
parents:
diff
changeset
|
164 info <- file.info(files) |
b9a87af62223
planemo upload commit 5a5b747865d7fb76f711bce2d9ce2a0f82a2a374-dirty
lecorguille
parents:
diff
changeset
|
165 listed <- list.files(files[info$isdir], pattern = filepattern, recursive = TRUE, full.names = TRUE) |
b9a87af62223
planemo upload commit 5a5b747865d7fb76f711bce2d9ce2a0f82a2a374-dirty
lecorguille
parents:
diff
changeset
|
166 files <- c(files[!info$isdir], listed) |
b9a87af62223
planemo upload commit 5a5b747865d7fb76f711bce2d9ce2a0f82a2a374-dirty
lecorguille
parents:
diff
changeset
|
167 } else { |
b9a87af62223
planemo upload commit 5a5b747865d7fb76f711bce2d9ce2a0f82a2a374-dirty
lecorguille
parents:
diff
changeset
|
168 files <- filepaths(xcmsSet) |
b9a87af62223
planemo upload commit 5a5b747865d7fb76f711bce2d9ce2a0f82a2a374-dirty
lecorguille
parents:
diff
changeset
|
169 } |
b9a87af62223
planemo upload commit 5a5b747865d7fb76f711bce2d9ce2a0f82a2a374-dirty
lecorguille
parents:
diff
changeset
|
170 |
b9a87af62223
planemo upload commit 5a5b747865d7fb76f711bce2d9ce2a0f82a2a374-dirty
lecorguille
parents:
diff
changeset
|
171 class<-as.vector(levels(xcmsSet@phenoData[,1])) #sometime phenoData have more than 1 column use first as class |
b9a87af62223
planemo upload commit 5a5b747865d7fb76f711bce2d9ce2a0f82a2a374-dirty
lecorguille
parents:
diff
changeset
|
172 |
b9a87af62223
planemo upload commit 5a5b747865d7fb76f711bce2d9ce2a0f82a2a374-dirty
lecorguille
parents:
diff
changeset
|
173 classnames<-vector("list",length(class)) |
b9a87af62223
planemo upload commit 5a5b747865d7fb76f711bce2d9ce2a0f82a2a374-dirty
lecorguille
parents:
diff
changeset
|
174 for (i in 1:length(class)){ |
b9a87af62223
planemo upload commit 5a5b747865d7fb76f711bce2d9ce2a0f82a2a374-dirty
lecorguille
parents:
diff
changeset
|
175 classnames[[i]]<-which( xcmsSet@phenoData[,1]==class[i]) |
b9a87af62223
planemo upload commit 5a5b747865d7fb76f711bce2d9ce2a0f82a2a374-dirty
lecorguille
parents:
diff
changeset
|
176 } |
b9a87af62223
planemo upload commit 5a5b747865d7fb76f711bce2d9ce2a0f82a2a374-dirty
lecorguille
parents:
diff
changeset
|
177 |
b9a87af62223
planemo upload commit 5a5b747865d7fb76f711bce2d9ce2a0f82a2a374-dirty
lecorguille
parents:
diff
changeset
|
178 N <- length(files) |
b9a87af62223
planemo upload commit 5a5b747865d7fb76f711bce2d9ce2a0f82a2a374-dirty
lecorguille
parents:
diff
changeset
|
179 TIC <- vector("list",N) |
b9a87af62223
planemo upload commit 5a5b747865d7fb76f711bce2d9ce2a0f82a2a374-dirty
lecorguille
parents:
diff
changeset
|
180 |
b9a87af62223
planemo upload commit 5a5b747865d7fb76f711bce2d9ce2a0f82a2a374-dirty
lecorguille
parents:
diff
changeset
|
181 for (i in 1:N) { |
b9a87af62223
planemo upload commit 5a5b747865d7fb76f711bce2d9ce2a0f82a2a374-dirty
lecorguille
parents:
diff
changeset
|
182 if (!is.null(xcmsSet) && rt == "corrected") |
b9a87af62223
planemo upload commit 5a5b747865d7fb76f711bce2d9ce2a0f82a2a374-dirty
lecorguille
parents:
diff
changeset
|
183 rtcor <- xcmsSet@rt$corrected[[i]] else |
b9a87af62223
planemo upload commit 5a5b747865d7fb76f711bce2d9ce2a0f82a2a374-dirty
lecorguille
parents:
diff
changeset
|
184 rtcor <- NULL |
b9a87af62223
planemo upload commit 5a5b747865d7fb76f711bce2d9ce2a0f82a2a374-dirty
lecorguille
parents:
diff
changeset
|
185 TIC[[i]] <- getTIC(files[i],rtcor=rtcor) |
b9a87af62223
planemo upload commit 5a5b747865d7fb76f711bce2d9ce2a0f82a2a374-dirty
lecorguille
parents:
diff
changeset
|
186 } |
b9a87af62223
planemo upload commit 5a5b747865d7fb76f711bce2d9ce2a0f82a2a374-dirty
lecorguille
parents:
diff
changeset
|
187 |
b9a87af62223
planemo upload commit 5a5b747865d7fb76f711bce2d9ce2a0f82a2a374-dirty
lecorguille
parents:
diff
changeset
|
188 pdf(pdfname,w=16,h=10) |
b9a87af62223
planemo upload commit 5a5b747865d7fb76f711bce2d9ce2a0f82a2a374-dirty
lecorguille
parents:
diff
changeset
|
189 cols <- rainbow(N) |
b9a87af62223
planemo upload commit 5a5b747865d7fb76f711bce2d9ce2a0f82a2a374-dirty
lecorguille
parents:
diff
changeset
|
190 lty = 1:N |
b9a87af62223
planemo upload commit 5a5b747865d7fb76f711bce2d9ce2a0f82a2a374-dirty
lecorguille
parents:
diff
changeset
|
191 pch = 1:N |
b9a87af62223
planemo upload commit 5a5b747865d7fb76f711bce2d9ce2a0f82a2a374-dirty
lecorguille
parents:
diff
changeset
|
192 #search for max x and max y in TICs |
b9a87af62223
planemo upload commit 5a5b747865d7fb76f711bce2d9ce2a0f82a2a374-dirty
lecorguille
parents:
diff
changeset
|
193 xlim = range(sapply(TIC, function(x) range(x[,1]))) |
b9a87af62223
planemo upload commit 5a5b747865d7fb76f711bce2d9ce2a0f82a2a374-dirty
lecorguille
parents:
diff
changeset
|
194 ylim = range(sapply(TIC, function(x) range(x[,2]))) |
b9a87af62223
planemo upload commit 5a5b747865d7fb76f711bce2d9ce2a0f82a2a374-dirty
lecorguille
parents:
diff
changeset
|
195 ylim = c(-ylim[2], ylim[2]) |
b9a87af62223
planemo upload commit 5a5b747865d7fb76f711bce2d9ce2a0f82a2a374-dirty
lecorguille
parents:
diff
changeset
|
196 |
b9a87af62223
planemo upload commit 5a5b747865d7fb76f711bce2d9ce2a0f82a2a374-dirty
lecorguille
parents:
diff
changeset
|
197 |
b9a87af62223
planemo upload commit 5a5b747865d7fb76f711bce2d9ce2a0f82a2a374-dirty
lecorguille
parents:
diff
changeset
|
198 ##plot start |
b9a87af62223
planemo upload commit 5a5b747865d7fb76f711bce2d9ce2a0f82a2a374-dirty
lecorguille
parents:
diff
changeset
|
199 if (length(class)>2){ |
b9a87af62223
planemo upload commit 5a5b747865d7fb76f711bce2d9ce2a0f82a2a374-dirty
lecorguille
parents:
diff
changeset
|
200 for (k in 1:(length(class)-1)){ |
b9a87af62223
planemo upload commit 5a5b747865d7fb76f711bce2d9ce2a0f82a2a374-dirty
lecorguille
parents:
diff
changeset
|
201 for (l in (k+1):length(class)){ |
b9a87af62223
planemo upload commit 5a5b747865d7fb76f711bce2d9ce2a0f82a2a374-dirty
lecorguille
parents:
diff
changeset
|
202 #print(paste(class[k],"vs",class[l],sep=" ")) |
b9a87af62223
planemo upload commit 5a5b747865d7fb76f711bce2d9ce2a0f82a2a374-dirty
lecorguille
parents:
diff
changeset
|
203 plot(0, 0, type="n", xlim = xlim/60, ylim = ylim, main = paste("Total Ion Chromatograms \n","TICs_",class[k]," vs ",class[l], sep=""), xlab = "Retention Time (min)", ylab = "TIC") |
b9a87af62223
planemo upload commit 5a5b747865d7fb76f711bce2d9ce2a0f82a2a374-dirty
lecorguille
parents:
diff
changeset
|
204 colvect<-NULL |
b9a87af62223
planemo upload commit 5a5b747865d7fb76f711bce2d9ce2a0f82a2a374-dirty
lecorguille
parents:
diff
changeset
|
205 for (j in 1:length(classnames[[k]])) { |
b9a87af62223
planemo upload commit 5a5b747865d7fb76f711bce2d9ce2a0f82a2a374-dirty
lecorguille
parents:
diff
changeset
|
206 |
b9a87af62223
planemo upload commit 5a5b747865d7fb76f711bce2d9ce2a0f82a2a374-dirty
lecorguille
parents:
diff
changeset
|
207 tic <- TIC[[classnames[[k]][j]]] |
b9a87af62223
planemo upload commit 5a5b747865d7fb76f711bce2d9ce2a0f82a2a374-dirty
lecorguille
parents:
diff
changeset
|
208 # points(tic[,1]/60, tic[,2], col = cols[i], pch = pch[i], type="l") |
b9a87af62223
planemo upload commit 5a5b747865d7fb76f711bce2d9ce2a0f82a2a374-dirty
lecorguille
parents:
diff
changeset
|
209 points(tic[,1]/60, tic[,2], col = cols[classnames[[k]][j]], pch = pch[classnames[[k]][j]], type="l") |
b9a87af62223
planemo upload commit 5a5b747865d7fb76f711bce2d9ce2a0f82a2a374-dirty
lecorguille
parents:
diff
changeset
|
210 colvect<-append(colvect,cols[classnames[[k]][j]]) |
b9a87af62223
planemo upload commit 5a5b747865d7fb76f711bce2d9ce2a0f82a2a374-dirty
lecorguille
parents:
diff
changeset
|
211 } |
b9a87af62223
planemo upload commit 5a5b747865d7fb76f711bce2d9ce2a0f82a2a374-dirty
lecorguille
parents:
diff
changeset
|
212 for (j in 1:length(classnames[[l]])) { |
b9a87af62223
planemo upload commit 5a5b747865d7fb76f711bce2d9ce2a0f82a2a374-dirty
lecorguille
parents:
diff
changeset
|
213 # i=class2names[j] |
b9a87af62223
planemo upload commit 5a5b747865d7fb76f711bce2d9ce2a0f82a2a374-dirty
lecorguille
parents:
diff
changeset
|
214 tic <- TIC[[classnames[[l]][j]]] |
b9a87af62223
planemo upload commit 5a5b747865d7fb76f711bce2d9ce2a0f82a2a374-dirty
lecorguille
parents:
diff
changeset
|
215 points(tic[,1]/60, -tic[,2], col = cols[classnames[[l]][j]], pch = pch[classnames[[l]][j]], type="l") |
b9a87af62223
planemo upload commit 5a5b747865d7fb76f711bce2d9ce2a0f82a2a374-dirty
lecorguille
parents:
diff
changeset
|
216 colvect<-append(colvect,cols[classnames[[l]][j]]) |
b9a87af62223
planemo upload commit 5a5b747865d7fb76f711bce2d9ce2a0f82a2a374-dirty
lecorguille
parents:
diff
changeset
|
217 } |
b9a87af62223
planemo upload commit 5a5b747865d7fb76f711bce2d9ce2a0f82a2a374-dirty
lecorguille
parents:
diff
changeset
|
218 legend("topright",paste(basename(files[c(classnames[[k]],classnames[[l]])])), col = colvect, lty = lty, pch = pch) |
b9a87af62223
planemo upload commit 5a5b747865d7fb76f711bce2d9ce2a0f82a2a374-dirty
lecorguille
parents:
diff
changeset
|
219 } |
b9a87af62223
planemo upload commit 5a5b747865d7fb76f711bce2d9ce2a0f82a2a374-dirty
lecorguille
parents:
diff
changeset
|
220 } |
b9a87af62223
planemo upload commit 5a5b747865d7fb76f711bce2d9ce2a0f82a2a374-dirty
lecorguille
parents:
diff
changeset
|
221 }#end if length >2 |
b9a87af62223
planemo upload commit 5a5b747865d7fb76f711bce2d9ce2a0f82a2a374-dirty
lecorguille
parents:
diff
changeset
|
222 if (length(class)==2){ |
b9a87af62223
planemo upload commit 5a5b747865d7fb76f711bce2d9ce2a0f82a2a374-dirty
lecorguille
parents:
diff
changeset
|
223 k=1 |
b9a87af62223
planemo upload commit 5a5b747865d7fb76f711bce2d9ce2a0f82a2a374-dirty
lecorguille
parents:
diff
changeset
|
224 l=2 |
b9a87af62223
planemo upload commit 5a5b747865d7fb76f711bce2d9ce2a0f82a2a374-dirty
lecorguille
parents:
diff
changeset
|
225 |
b9a87af62223
planemo upload commit 5a5b747865d7fb76f711bce2d9ce2a0f82a2a374-dirty
lecorguille
parents:
diff
changeset
|
226 plot(0, 0, type="n", xlim = xlim/60, ylim = ylim, main = paste("Total Ion Chromatograms \n","TICs_",class[k],"vs",class[l], sep=""), xlab = "Retention Time (min)", ylab = "TIC") |
b9a87af62223
planemo upload commit 5a5b747865d7fb76f711bce2d9ce2a0f82a2a374-dirty
lecorguille
parents:
diff
changeset
|
227 colvect<-NULL |
b9a87af62223
planemo upload commit 5a5b747865d7fb76f711bce2d9ce2a0f82a2a374-dirty
lecorguille
parents:
diff
changeset
|
228 for (j in 1:length(classnames[[k]])) { |
b9a87af62223
planemo upload commit 5a5b747865d7fb76f711bce2d9ce2a0f82a2a374-dirty
lecorguille
parents:
diff
changeset
|
229 tic <- TIC[[classnames[[k]][j]]] |
b9a87af62223
planemo upload commit 5a5b747865d7fb76f711bce2d9ce2a0f82a2a374-dirty
lecorguille
parents:
diff
changeset
|
230 # points(tic[,1]/60, tic[,2], col = cols[i], pch = pch[i], type="l") |
b9a87af62223
planemo upload commit 5a5b747865d7fb76f711bce2d9ce2a0f82a2a374-dirty
lecorguille
parents:
diff
changeset
|
231 points(tic[,1]/60, tic[,2], col = cols[classnames[[k]][j]], pch = pch[classnames[[k]][j]], type="l") |
b9a87af62223
planemo upload commit 5a5b747865d7fb76f711bce2d9ce2a0f82a2a374-dirty
lecorguille
parents:
diff
changeset
|
232 colvect<-append(colvect,cols[classnames[[k]][j]]) |
b9a87af62223
planemo upload commit 5a5b747865d7fb76f711bce2d9ce2a0f82a2a374-dirty
lecorguille
parents:
diff
changeset
|
233 } |
b9a87af62223
planemo upload commit 5a5b747865d7fb76f711bce2d9ce2a0f82a2a374-dirty
lecorguille
parents:
diff
changeset
|
234 for (j in 1:length(classnames[[l]])) { |
b9a87af62223
planemo upload commit 5a5b747865d7fb76f711bce2d9ce2a0f82a2a374-dirty
lecorguille
parents:
diff
changeset
|
235 # i=class2names[j] |
b9a87af62223
planemo upload commit 5a5b747865d7fb76f711bce2d9ce2a0f82a2a374-dirty
lecorguille
parents:
diff
changeset
|
236 tic <- TIC[[classnames[[l]][j]]] |
b9a87af62223
planemo upload commit 5a5b747865d7fb76f711bce2d9ce2a0f82a2a374-dirty
lecorguille
parents:
diff
changeset
|
237 points(tic[,1]/60, -tic[,2], col = cols[classnames[[l]][j]], pch = pch[classnames[[l]][j]], type="l") |
b9a87af62223
planemo upload commit 5a5b747865d7fb76f711bce2d9ce2a0f82a2a374-dirty
lecorguille
parents:
diff
changeset
|
238 colvect<-append(colvect,cols[classnames[[l]][j]]) |
b9a87af62223
planemo upload commit 5a5b747865d7fb76f711bce2d9ce2a0f82a2a374-dirty
lecorguille
parents:
diff
changeset
|
239 } |
b9a87af62223
planemo upload commit 5a5b747865d7fb76f711bce2d9ce2a0f82a2a374-dirty
lecorguille
parents:
diff
changeset
|
240 legend("topright",paste(basename(files[c(classnames[[k]],classnames[[l]])])), col = colvect, lty = lty, pch = pch) |
b9a87af62223
planemo upload commit 5a5b747865d7fb76f711bce2d9ce2a0f82a2a374-dirty
lecorguille
parents:
diff
changeset
|
241 |
b9a87af62223
planemo upload commit 5a5b747865d7fb76f711bce2d9ce2a0f82a2a374-dirty
lecorguille
parents:
diff
changeset
|
242 }#end length ==2 |
15
1a9bbd4670e8
planemo upload for repository https://github.com/workflow4metabolomics/xcms commit 92dd69e5b063aad05a9b2b75e21c78bfa46c4b94
lecorguille
parents:
5
diff
changeset
|
243 |
1a9bbd4670e8
planemo upload for repository https://github.com/workflow4metabolomics/xcms commit 92dd69e5b063aad05a9b2b75e21c78bfa46c4b94
lecorguille
parents:
5
diff
changeset
|
244 #case where only one class |
1a9bbd4670e8
planemo upload for repository https://github.com/workflow4metabolomics/xcms commit 92dd69e5b063aad05a9b2b75e21c78bfa46c4b94
lecorguille
parents:
5
diff
changeset
|
245 if (length(class)==1){ |
1a9bbd4670e8
planemo upload for repository https://github.com/workflow4metabolomics/xcms commit 92dd69e5b063aad05a9b2b75e21c78bfa46c4b94
lecorguille
parents:
5
diff
changeset
|
246 k=1 |
1a9bbd4670e8
planemo upload for repository https://github.com/workflow4metabolomics/xcms commit 92dd69e5b063aad05a9b2b75e21c78bfa46c4b94
lecorguille
parents:
5
diff
changeset
|
247 ylim = range(sapply(TIC, function(x) range(x[,2]))) |
1a9bbd4670e8
planemo upload for repository https://github.com/workflow4metabolomics/xcms commit 92dd69e5b063aad05a9b2b75e21c78bfa46c4b94
lecorguille
parents:
5
diff
changeset
|
248 |
1a9bbd4670e8
planemo upload for repository https://github.com/workflow4metabolomics/xcms commit 92dd69e5b063aad05a9b2b75e21c78bfa46c4b94
lecorguille
parents:
5
diff
changeset
|
249 plot(0, 0, type="n", xlim = xlim/60, ylim = ylim, main = paste("Total Ion Chromatograms \n","TICs_",class[k], sep=""), xlab = "Retention Time (min)", ylab = "TIC") |
1a9bbd4670e8
planemo upload for repository https://github.com/workflow4metabolomics/xcms commit 92dd69e5b063aad05a9b2b75e21c78bfa46c4b94
lecorguille
parents:
5
diff
changeset
|
250 colvect<-NULL |
1a9bbd4670e8
planemo upload for repository https://github.com/workflow4metabolomics/xcms commit 92dd69e5b063aad05a9b2b75e21c78bfa46c4b94
lecorguille
parents:
5
diff
changeset
|
251 for (j in 1:length(classnames[[k]])) { |
1a9bbd4670e8
planemo upload for repository https://github.com/workflow4metabolomics/xcms commit 92dd69e5b063aad05a9b2b75e21c78bfa46c4b94
lecorguille
parents:
5
diff
changeset
|
252 tic <- TIC[[classnames[[k]][j]]] |
1a9bbd4670e8
planemo upload for repository https://github.com/workflow4metabolomics/xcms commit 92dd69e5b063aad05a9b2b75e21c78bfa46c4b94
lecorguille
parents:
5
diff
changeset
|
253 # points(tic[,1]/60, tic[,2], col = cols[i], pch = pch[i], type="l") |
1a9bbd4670e8
planemo upload for repository https://github.com/workflow4metabolomics/xcms commit 92dd69e5b063aad05a9b2b75e21c78bfa46c4b94
lecorguille
parents:
5
diff
changeset
|
254 points(tic[,1]/60, tic[,2], col = cols[classnames[[k]][j]], pch = pch[classnames[[k]][j]], type="l") |
1a9bbd4670e8
planemo upload for repository https://github.com/workflow4metabolomics/xcms commit 92dd69e5b063aad05a9b2b75e21c78bfa46c4b94
lecorguille
parents:
5
diff
changeset
|
255 colvect<-append(colvect,cols[classnames[[k]][j]]) |
1a9bbd4670e8
planemo upload for repository https://github.com/workflow4metabolomics/xcms commit 92dd69e5b063aad05a9b2b75e21c78bfa46c4b94
lecorguille
parents:
5
diff
changeset
|
256 } |
1a9bbd4670e8
planemo upload for repository https://github.com/workflow4metabolomics/xcms commit 92dd69e5b063aad05a9b2b75e21c78bfa46c4b94
lecorguille
parents:
5
diff
changeset
|
257 |
1a9bbd4670e8
planemo upload for repository https://github.com/workflow4metabolomics/xcms commit 92dd69e5b063aad05a9b2b75e21c78bfa46c4b94
lecorguille
parents:
5
diff
changeset
|
258 legend("topright",paste(basename(files[c(classnames[[k]])])), col = colvect, lty = lty, pch = pch) |
1a9bbd4670e8
planemo upload for repository https://github.com/workflow4metabolomics/xcms commit 92dd69e5b063aad05a9b2b75e21c78bfa46c4b94
lecorguille
parents:
5
diff
changeset
|
259 |
1a9bbd4670e8
planemo upload for repository https://github.com/workflow4metabolomics/xcms commit 92dd69e5b063aad05a9b2b75e21c78bfa46c4b94
lecorguille
parents:
5
diff
changeset
|
260 }#end length ==1 |
1a9bbd4670e8
planemo upload for repository https://github.com/workflow4metabolomics/xcms commit 92dd69e5b063aad05a9b2b75e21c78bfa46c4b94
lecorguille
parents:
5
diff
changeset
|
261 |
5
b9a87af62223
planemo upload commit 5a5b747865d7fb76f711bce2d9ce2a0f82a2a374-dirty
lecorguille
parents:
diff
changeset
|
262 dev.off() #pdf(pdfname,w=16,h=10) |
b9a87af62223
planemo upload commit 5a5b747865d7fb76f711bce2d9ce2a0f82a2a374-dirty
lecorguille
parents:
diff
changeset
|
263 |
b9a87af62223
planemo upload commit 5a5b747865d7fb76f711bce2d9ce2a0f82a2a374-dirty
lecorguille
parents:
diff
changeset
|
264 invisible(TIC) |
b9a87af62223
planemo upload commit 5a5b747865d7fb76f711bce2d9ce2a0f82a2a374-dirty
lecorguille
parents:
diff
changeset
|
265 } |
b9a87af62223
planemo upload commit 5a5b747865d7fb76f711bce2d9ce2a0f82a2a374-dirty
lecorguille
parents:
diff
changeset
|
266 |
b9a87af62223
planemo upload commit 5a5b747865d7fb76f711bce2d9ce2a0f82a2a374-dirty
lecorguille
parents:
diff
changeset
|
267 |
b9a87af62223
planemo upload commit 5a5b747865d7fb76f711bce2d9ce2a0f82a2a374-dirty
lecorguille
parents:
diff
changeset
|
268 |
b9a87af62223
planemo upload commit 5a5b747865d7fb76f711bce2d9ce2a0f82a2a374-dirty
lecorguille
parents:
diff
changeset
|
269 ## |
b9a87af62223
planemo upload commit 5a5b747865d7fb76f711bce2d9ce2a0f82a2a374-dirty
lecorguille
parents:
diff
changeset
|
270 ## Get the polarities from all the samples of a condition |
b9a87af62223
planemo upload commit 5a5b747865d7fb76f711bce2d9ce2a0f82a2a374-dirty
lecorguille
parents:
diff
changeset
|
271 #@author Misharl Monsoor misharl.monsoor@sb-roscoff.fr ABiMS TEAM |
b9a87af62223
planemo upload commit 5a5b747865d7fb76f711bce2d9ce2a0f82a2a374-dirty
lecorguille
parents:
diff
changeset
|
272 #@author Gildas Le Corguille lecorguille@sb-roscoff.fr ABiMS TEAM |
b9a87af62223
planemo upload commit 5a5b747865d7fb76f711bce2d9ce2a0f82a2a374-dirty
lecorguille
parents:
diff
changeset
|
273 getSampleMetadata <- function(xcmsSet=NULL, sampleMetadataOutput="sampleMetadata.tsv") { |
b9a87af62223
planemo upload commit 5a5b747865d7fb76f711bce2d9ce2a0f82a2a374-dirty
lecorguille
parents:
diff
changeset
|
274 cat("Creating the sampleMetadata file...\n") |
b9a87af62223
planemo upload commit 5a5b747865d7fb76f711bce2d9ce2a0f82a2a374-dirty
lecorguille
parents:
diff
changeset
|
275 |
b9a87af62223
planemo upload commit 5a5b747865d7fb76f711bce2d9ce2a0f82a2a374-dirty
lecorguille
parents:
diff
changeset
|
276 #Create the sampleMetada dataframe |
b9a87af62223
planemo upload commit 5a5b747865d7fb76f711bce2d9ce2a0f82a2a374-dirty
lecorguille
parents:
diff
changeset
|
277 sampleMetadata=xset@phenoData |
b9a87af62223
planemo upload commit 5a5b747865d7fb76f711bce2d9ce2a0f82a2a374-dirty
lecorguille
parents:
diff
changeset
|
278 sampleNamesOrigin=rownames(sampleMetadata) |
b9a87af62223
planemo upload commit 5a5b747865d7fb76f711bce2d9ce2a0f82a2a374-dirty
lecorguille
parents:
diff
changeset
|
279 sampleNamesMakeNames=make.names(sampleNamesOrigin) |
b9a87af62223
planemo upload commit 5a5b747865d7fb76f711bce2d9ce2a0f82a2a374-dirty
lecorguille
parents:
diff
changeset
|
280 |
b9a87af62223
planemo upload commit 5a5b747865d7fb76f711bce2d9ce2a0f82a2a374-dirty
lecorguille
parents:
diff
changeset
|
281 if (any(duplicated(sampleNamesMakeNames))) { |
b9a87af62223
planemo upload commit 5a5b747865d7fb76f711bce2d9ce2a0f82a2a374-dirty
lecorguille
parents:
diff
changeset
|
282 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()) |
b9a87af62223
planemo upload commit 5a5b747865d7fb76f711bce2d9ce2a0f82a2a374-dirty
lecorguille
parents:
diff
changeset
|
283 for (sampleName in sampleNamesOrigin) { |
b9a87af62223
planemo upload commit 5a5b747865d7fb76f711bce2d9ce2a0f82a2a374-dirty
lecorguille
parents:
diff
changeset
|
284 write(paste(sampleName,"\t->\t",make.names(sampleName)),stderr()) |
b9a87af62223
planemo upload commit 5a5b747865d7fb76f711bce2d9ce2a0f82a2a374-dirty
lecorguille
parents:
diff
changeset
|
285 } |
b9a87af62223
planemo upload commit 5a5b747865d7fb76f711bce2d9ce2a0f82a2a374-dirty
lecorguille
parents:
diff
changeset
|
286 stop("\n\nERROR: One or more of your files will not be import by xcmsSet. It may due to bad characters in their filenames.") |
b9a87af62223
planemo upload commit 5a5b747865d7fb76f711bce2d9ce2a0f82a2a374-dirty
lecorguille
parents:
diff
changeset
|
287 } |
b9a87af62223
planemo upload commit 5a5b747865d7fb76f711bce2d9ce2a0f82a2a374-dirty
lecorguille
parents:
diff
changeset
|
288 |
b9a87af62223
planemo upload commit 5a5b747865d7fb76f711bce2d9ce2a0f82a2a374-dirty
lecorguille
parents:
diff
changeset
|
289 if (!all(sampleNamesOrigin == sampleNamesMakeNames)) { |
b9a87af62223
planemo upload commit 5a5b747865d7fb76f711bce2d9ce2a0f82a2a374-dirty
lecorguille
parents:
diff
changeset
|
290 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") |
b9a87af62223
planemo upload commit 5a5b747865d7fb76f711bce2d9ce2a0f82a2a374-dirty
lecorguille
parents:
diff
changeset
|
291 for (sampleName in sampleNamesOrigin) { |
b9a87af62223
planemo upload commit 5a5b747865d7fb76f711bce2d9ce2a0f82a2a374-dirty
lecorguille
parents:
diff
changeset
|
292 cat(paste(sampleName,"\t->\t",make.names(sampleName),"\n")) |
b9a87af62223
planemo upload commit 5a5b747865d7fb76f711bce2d9ce2a0f82a2a374-dirty
lecorguille
parents:
diff
changeset
|
293 } |
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 sampleMetadata$sampleMetadata=sampleNamesMakeNames |
b9a87af62223
planemo upload commit 5a5b747865d7fb76f711bce2d9ce2a0f82a2a374-dirty
lecorguille
parents:
diff
changeset
|
297 sampleMetadata=cbind(sampleMetadata["sampleMetadata"],sampleMetadata["class"]) #Reorder columns |
b9a87af62223
planemo upload commit 5a5b747865d7fb76f711bce2d9ce2a0f82a2a374-dirty
lecorguille
parents:
diff
changeset
|
298 rownames(sampleMetadata)=NULL |
b9a87af62223
planemo upload commit 5a5b747865d7fb76f711bce2d9ce2a0f82a2a374-dirty
lecorguille
parents:
diff
changeset
|
299 |
b9a87af62223
planemo upload commit 5a5b747865d7fb76f711bce2d9ce2a0f82a2a374-dirty
lecorguille
parents:
diff
changeset
|
300 #Create a list of files name in the current directory |
b9a87af62223
planemo upload commit 5a5b747865d7fb76f711bce2d9ce2a0f82a2a374-dirty
lecorguille
parents:
diff
changeset
|
301 list_files=xset@filepaths |
b9a87af62223
planemo upload commit 5a5b747865d7fb76f711bce2d9ce2a0f82a2a374-dirty
lecorguille
parents:
diff
changeset
|
302 #For each sample file, the following actions are done |
b9a87af62223
planemo upload commit 5a5b747865d7fb76f711bce2d9ce2a0f82a2a374-dirty
lecorguille
parents:
diff
changeset
|
303 for (file in list_files){ |
b9a87af62223
planemo upload commit 5a5b747865d7fb76f711bce2d9ce2a0f82a2a374-dirty
lecorguille
parents:
diff
changeset
|
304 #Check if the file is in the CDF format |
b9a87af62223
planemo upload commit 5a5b747865d7fb76f711bce2d9ce2a0f82a2a374-dirty
lecorguille
parents:
diff
changeset
|
305 if (!mzR:::netCDFIsFile(file)){ |
b9a87af62223
planemo upload commit 5a5b747865d7fb76f711bce2d9ce2a0f82a2a374-dirty
lecorguille
parents:
diff
changeset
|
306 |
b9a87af62223
planemo upload commit 5a5b747865d7fb76f711bce2d9ce2a0f82a2a374-dirty
lecorguille
parents:
diff
changeset
|
307 # If the column isn't exist, with add one filled with NA |
b9a87af62223
planemo upload commit 5a5b747865d7fb76f711bce2d9ce2a0f82a2a374-dirty
lecorguille
parents:
diff
changeset
|
308 if (is.null(sampleMetadata$polarity)) sampleMetadata$polarity=NA |
b9a87af62223
planemo upload commit 5a5b747865d7fb76f711bce2d9ce2a0f82a2a374-dirty
lecorguille
parents:
diff
changeset
|
309 |
b9a87af62223
planemo upload commit 5a5b747865d7fb76f711bce2d9ce2a0f82a2a374-dirty
lecorguille
parents:
diff
changeset
|
310 #Create a simple xcmsRaw object for each sample |
b9a87af62223
planemo upload commit 5a5b747865d7fb76f711bce2d9ce2a0f82a2a374-dirty
lecorguille
parents:
diff
changeset
|
311 xcmsRaw=xcmsRaw(file) |
b9a87af62223
planemo upload commit 5a5b747865d7fb76f711bce2d9ce2a0f82a2a374-dirty
lecorguille
parents:
diff
changeset
|
312 #Extract the polarity (a list of polarities) |
b9a87af62223
planemo upload commit 5a5b747865d7fb76f711bce2d9ce2a0f82a2a374-dirty
lecorguille
parents:
diff
changeset
|
313 polarity=xcmsRaw@polarity |
b9a87af62223
planemo upload commit 5a5b747865d7fb76f711bce2d9ce2a0f82a2a374-dirty
lecorguille
parents:
diff
changeset
|
314 #Verify if all the scans have the same polarity |
b9a87af62223
planemo upload commit 5a5b747865d7fb76f711bce2d9ce2a0f82a2a374-dirty
lecorguille
parents:
diff
changeset
|
315 uniq_list=unique(polarity) |
b9a87af62223
planemo upload commit 5a5b747865d7fb76f711bce2d9ce2a0f82a2a374-dirty
lecorguille
parents:
diff
changeset
|
316 if (length(uniq_list)>1){ |
b9a87af62223
planemo upload commit 5a5b747865d7fb76f711bce2d9ce2a0f82a2a374-dirty
lecorguille
parents:
diff
changeset
|
317 polarity="mixed" |
b9a87af62223
planemo upload commit 5a5b747865d7fb76f711bce2d9ce2a0f82a2a374-dirty
lecorguille
parents:
diff
changeset
|
318 } else { |
b9a87af62223
planemo upload commit 5a5b747865d7fb76f711bce2d9ce2a0f82a2a374-dirty
lecorguille
parents:
diff
changeset
|
319 polarity=as.character(uniq_list) |
b9a87af62223
planemo upload commit 5a5b747865d7fb76f711bce2d9ce2a0f82a2a374-dirty
lecorguille
parents:
diff
changeset
|
320 } |
b9a87af62223
planemo upload commit 5a5b747865d7fb76f711bce2d9ce2a0f82a2a374-dirty
lecorguille
parents:
diff
changeset
|
321 #Transforms the character to obtain only the sample name |
b9a87af62223
planemo upload commit 5a5b747865d7fb76f711bce2d9ce2a0f82a2a374-dirty
lecorguille
parents:
diff
changeset
|
322 filename=basename(file) |
b9a87af62223
planemo upload commit 5a5b747865d7fb76f711bce2d9ce2a0f82a2a374-dirty
lecorguille
parents:
diff
changeset
|
323 library(tools) |
b9a87af62223
planemo upload commit 5a5b747865d7fb76f711bce2d9ce2a0f82a2a374-dirty
lecorguille
parents:
diff
changeset
|
324 samplename=file_path_sans_ext(filename) |
b9a87af62223
planemo upload commit 5a5b747865d7fb76f711bce2d9ce2a0f82a2a374-dirty
lecorguille
parents:
diff
changeset
|
325 |
b9a87af62223
planemo upload commit 5a5b747865d7fb76f711bce2d9ce2a0f82a2a374-dirty
lecorguille
parents:
diff
changeset
|
326 #Set the polarity attribute |
b9a87af62223
planemo upload commit 5a5b747865d7fb76f711bce2d9ce2a0f82a2a374-dirty
lecorguille
parents:
diff
changeset
|
327 sampleMetadata$polarity[sampleMetadata$sampleMetadata==samplename]=polarity |
b9a87af62223
planemo upload commit 5a5b747865d7fb76f711bce2d9ce2a0f82a2a374-dirty
lecorguille
parents:
diff
changeset
|
328 |
b9a87af62223
planemo upload commit 5a5b747865d7fb76f711bce2d9ce2a0f82a2a374-dirty
lecorguille
parents:
diff
changeset
|
329 #Delete xcmsRaw object because it creates a bug for the fillpeaks step |
b9a87af62223
planemo upload commit 5a5b747865d7fb76f711bce2d9ce2a0f82a2a374-dirty
lecorguille
parents:
diff
changeset
|
330 rm(xcmsRaw) |
b9a87af62223
planemo upload commit 5a5b747865d7fb76f711bce2d9ce2a0f82a2a374-dirty
lecorguille
parents:
diff
changeset
|
331 } |
b9a87af62223
planemo upload commit 5a5b747865d7fb76f711bce2d9ce2a0f82a2a374-dirty
lecorguille
parents:
diff
changeset
|
332 |
b9a87af62223
planemo upload commit 5a5b747865d7fb76f711bce2d9ce2a0f82a2a374-dirty
lecorguille
parents:
diff
changeset
|
333 } |
b9a87af62223
planemo upload commit 5a5b747865d7fb76f711bce2d9ce2a0f82a2a374-dirty
lecorguille
parents:
diff
changeset
|
334 |
b9a87af62223
planemo upload commit 5a5b747865d7fb76f711bce2d9ce2a0f82a2a374-dirty
lecorguille
parents:
diff
changeset
|
335 write.table(sampleMetadata, sep="\t", quote=FALSE, row.names=FALSE, file=sampleMetadataOutput) |
b9a87af62223
planemo upload commit 5a5b747865d7fb76f711bce2d9ce2a0f82a2a374-dirty
lecorguille
parents:
diff
changeset
|
336 |
b9a87af62223
planemo upload commit 5a5b747865d7fb76f711bce2d9ce2a0f82a2a374-dirty
lecorguille
parents:
diff
changeset
|
337 return(list("sampleNamesOrigin"=sampleNamesOrigin,"sampleNamesMakeNames"=sampleNamesMakeNames)) |
b9a87af62223
planemo upload commit 5a5b747865d7fb76f711bce2d9ce2a0f82a2a374-dirty
lecorguille
parents:
diff
changeset
|
338 |
b9a87af62223
planemo upload commit 5a5b747865d7fb76f711bce2d9ce2a0f82a2a374-dirty
lecorguille
parents:
diff
changeset
|
339 } |
b9a87af62223
planemo upload commit 5a5b747865d7fb76f711bce2d9ce2a0f82a2a374-dirty
lecorguille
parents:
diff
changeset
|
340 |
b9a87af62223
planemo upload commit 5a5b747865d7fb76f711bce2d9ce2a0f82a2a374-dirty
lecorguille
parents:
diff
changeset
|
341 |
b9a87af62223
planemo upload commit 5a5b747865d7fb76f711bce2d9ce2a0f82a2a374-dirty
lecorguille
parents:
diff
changeset
|
342 ## |
b9a87af62223
planemo upload commit 5a5b747865d7fb76f711bce2d9ce2a0f82a2a374-dirty
lecorguille
parents:
diff
changeset
|
343 ## This function check if xcms will found all the files |
b9a87af62223
planemo upload commit 5a5b747865d7fb76f711bce2d9ce2a0f82a2a374-dirty
lecorguille
parents:
diff
changeset
|
344 ## |
b9a87af62223
planemo upload commit 5a5b747865d7fb76f711bce2d9ce2a0f82a2a374-dirty
lecorguille
parents:
diff
changeset
|
345 #@author Gildas Le Corguille lecorguille@sb-roscoff.fr ABiMS TEAM |
b9a87af62223
planemo upload commit 5a5b747865d7fb76f711bce2d9ce2a0f82a2a374-dirty
lecorguille
parents:
diff
changeset
|
346 checkFilesCompatibilityWithXcms <- function(directory) { |
b9a87af62223
planemo upload commit 5a5b747865d7fb76f711bce2d9ce2a0f82a2a374-dirty
lecorguille
parents:
diff
changeset
|
347 cat("Checking files filenames compatibilities with xmcs...\n") |
b9a87af62223
planemo upload commit 5a5b747865d7fb76f711bce2d9ce2a0f82a2a374-dirty
lecorguille
parents:
diff
changeset
|
348 # WHAT XCMS WILL FIND |
b9a87af62223
planemo upload commit 5a5b747865d7fb76f711bce2d9ce2a0f82a2a374-dirty
lecorguille
parents:
diff
changeset
|
349 filepattern <- c("[Cc][Dd][Ff]", "[Nn][Cc]", "([Mm][Zz])?[Xx][Mm][Ll]","[Mm][Zz][Dd][Aa][Tt][Aa]", "[Mm][Zz][Mm][Ll]") |
b9a87af62223
planemo upload commit 5a5b747865d7fb76f711bce2d9ce2a0f82a2a374-dirty
lecorguille
parents:
diff
changeset
|
350 filepattern <- paste(paste("\\.", filepattern, "$", sep = ""),collapse = "|") |
b9a87af62223
planemo upload commit 5a5b747865d7fb76f711bce2d9ce2a0f82a2a374-dirty
lecorguille
parents:
diff
changeset
|
351 info <- file.info(directory) |
b9a87af62223
planemo upload commit 5a5b747865d7fb76f711bce2d9ce2a0f82a2a374-dirty
lecorguille
parents:
diff
changeset
|
352 listed <- list.files(directory[info$isdir], pattern = filepattern,recursive = TRUE, full.names = TRUE) |
b9a87af62223
planemo upload commit 5a5b747865d7fb76f711bce2d9ce2a0f82a2a374-dirty
lecorguille
parents:
diff
changeset
|
353 files <- c(directory[!info$isdir], listed) |
b9a87af62223
planemo upload commit 5a5b747865d7fb76f711bce2d9ce2a0f82a2a374-dirty
lecorguille
parents:
diff
changeset
|
354 files_abs <- file.path(getwd(), files) |
b9a87af62223
planemo upload commit 5a5b747865d7fb76f711bce2d9ce2a0f82a2a374-dirty
lecorguille
parents:
diff
changeset
|
355 exists <- file.exists(files_abs) |
b9a87af62223
planemo upload commit 5a5b747865d7fb76f711bce2d9ce2a0f82a2a374-dirty
lecorguille
parents:
diff
changeset
|
356 files[exists] <- files_abs[exists] |
b9a87af62223
planemo upload commit 5a5b747865d7fb76f711bce2d9ce2a0f82a2a374-dirty
lecorguille
parents:
diff
changeset
|
357 files[exists] <- sub("//","/",files[exists]) |
b9a87af62223
planemo upload commit 5a5b747865d7fb76f711bce2d9ce2a0f82a2a374-dirty
lecorguille
parents:
diff
changeset
|
358 |
b9a87af62223
planemo upload commit 5a5b747865d7fb76f711bce2d9ce2a0f82a2a374-dirty
lecorguille
parents:
diff
changeset
|
359 # WHAT IS ON THE FILESYSTEM |
b9a87af62223
planemo upload commit 5a5b747865d7fb76f711bce2d9ce2a0f82a2a374-dirty
lecorguille
parents:
diff
changeset
|
360 filesystem_filepaths=system(paste("find $PWD/",directory," -not -name '\\.*' -not -path '*conda-env*' -type f -name \"*\"", sep=""), intern=T) |
b9a87af62223
planemo upload commit 5a5b747865d7fb76f711bce2d9ce2a0f82a2a374-dirty
lecorguille
parents:
diff
changeset
|
361 filesystem_filepaths=filesystem_filepaths[grep(filepattern, filesystem_filepaths, perl=T)] |
b9a87af62223
planemo upload commit 5a5b747865d7fb76f711bce2d9ce2a0f82a2a374-dirty
lecorguille
parents:
diff
changeset
|
362 |
b9a87af62223
planemo upload commit 5a5b747865d7fb76f711bce2d9ce2a0f82a2a374-dirty
lecorguille
parents:
diff
changeset
|
363 # COMPARISON |
b9a87af62223
planemo upload commit 5a5b747865d7fb76f711bce2d9ce2a0f82a2a374-dirty
lecorguille
parents:
diff
changeset
|
364 if (!is.na(table(filesystem_filepaths %in% files)["FALSE"])) { |
b9a87af62223
planemo upload commit 5a5b747865d7fb76f711bce2d9ce2a0f82a2a374-dirty
lecorguille
parents:
diff
changeset
|
365 write("\n\nERROR: List of the files which will not be imported by xcmsSet",stderr()) |
b9a87af62223
planemo upload commit 5a5b747865d7fb76f711bce2d9ce2a0f82a2a374-dirty
lecorguille
parents:
diff
changeset
|
366 write(filesystem_filepaths[!(filesystem_filepaths %in% files)],stderr()) |
b9a87af62223
planemo upload commit 5a5b747865d7fb76f711bce2d9ce2a0f82a2a374-dirty
lecorguille
parents:
diff
changeset
|
367 stop("\n\nERROR: One or more of your files will not be import by xcmsSet. It may due to bad characters in their filenames.") |
b9a87af62223
planemo upload commit 5a5b747865d7fb76f711bce2d9ce2a0f82a2a374-dirty
lecorguille
parents:
diff
changeset
|
368 |
b9a87af62223
planemo upload commit 5a5b747865d7fb76f711bce2d9ce2a0f82a2a374-dirty
lecorguille
parents:
diff
changeset
|
369 } |
b9a87af62223
planemo upload commit 5a5b747865d7fb76f711bce2d9ce2a0f82a2a374-dirty
lecorguille
parents:
diff
changeset
|
370 } |
b9a87af62223
planemo upload commit 5a5b747865d7fb76f711bce2d9ce2a0f82a2a374-dirty
lecorguille
parents:
diff
changeset
|
371 |
b9a87af62223
planemo upload commit 5a5b747865d7fb76f711bce2d9ce2a0f82a2a374-dirty
lecorguille
parents:
diff
changeset
|
372 |
b9a87af62223
planemo upload commit 5a5b747865d7fb76f711bce2d9ce2a0f82a2a374-dirty
lecorguille
parents:
diff
changeset
|
373 |
b9a87af62223
planemo upload commit 5a5b747865d7fb76f711bce2d9ce2a0f82a2a374-dirty
lecorguille
parents:
diff
changeset
|
374 ## |
b9a87af62223
planemo upload commit 5a5b747865d7fb76f711bce2d9ce2a0f82a2a374-dirty
lecorguille
parents:
diff
changeset
|
375 ## This function check if XML contains special caracters. It also checks integrity and completness. |
b9a87af62223
planemo upload commit 5a5b747865d7fb76f711bce2d9ce2a0f82a2a374-dirty
lecorguille
parents:
diff
changeset
|
376 ## |
b9a87af62223
planemo upload commit 5a5b747865d7fb76f711bce2d9ce2a0f82a2a374-dirty
lecorguille
parents:
diff
changeset
|
377 #@author Misharl Monsoor misharl.monsoor@sb-roscoff.fr ABiMS TEAM |
b9a87af62223
planemo upload commit 5a5b747865d7fb76f711bce2d9ce2a0f82a2a374-dirty
lecorguille
parents:
diff
changeset
|
378 checkXmlStructure <- function (directory) { |
b9a87af62223
planemo upload commit 5a5b747865d7fb76f711bce2d9ce2a0f82a2a374-dirty
lecorguille
parents:
diff
changeset
|
379 cat("Checking XML structure...\n") |
b9a87af62223
planemo upload commit 5a5b747865d7fb76f711bce2d9ce2a0f82a2a374-dirty
lecorguille
parents:
diff
changeset
|
380 |
b9a87af62223
planemo upload commit 5a5b747865d7fb76f711bce2d9ce2a0f82a2a374-dirty
lecorguille
parents:
diff
changeset
|
381 cmd=paste("IFS=$'\n'; for xml in $(find",directory,"-not -name '\\.*' -not -path '*conda-env*' -type f -iname '*.*ml*'); do if [ $(xmllint --nonet --noout \"$xml\" 2> /dev/null; echo $?) -gt 0 ]; then echo $xml;fi; done;") |
b9a87af62223
planemo upload commit 5a5b747865d7fb76f711bce2d9ce2a0f82a2a374-dirty
lecorguille
parents:
diff
changeset
|
382 capture=system(cmd,intern=TRUE) |
b9a87af62223
planemo upload commit 5a5b747865d7fb76f711bce2d9ce2a0f82a2a374-dirty
lecorguille
parents:
diff
changeset
|
383 |
b9a87af62223
planemo upload commit 5a5b747865d7fb76f711bce2d9ce2a0f82a2a374-dirty
lecorguille
parents:
diff
changeset
|
384 if (length(capture)>0){ |
b9a87af62223
planemo upload commit 5a5b747865d7fb76f711bce2d9ce2a0f82a2a374-dirty
lecorguille
parents:
diff
changeset
|
385 #message=paste("The following mzXML or mzML file is incorrect, please check these files first:",capture) |
b9a87af62223
planemo upload commit 5a5b747865d7fb76f711bce2d9ce2a0f82a2a374-dirty
lecorguille
parents:
diff
changeset
|
386 write("\n\nERROR: The following mzXML or mzML file(s) are incorrect, please check these files first:", stderr()) |
b9a87af62223
planemo upload commit 5a5b747865d7fb76f711bce2d9ce2a0f82a2a374-dirty
lecorguille
parents:
diff
changeset
|
387 write(capture, stderr()) |
b9a87af62223
planemo upload commit 5a5b747865d7fb76f711bce2d9ce2a0f82a2a374-dirty
lecorguille
parents:
diff
changeset
|
388 stop("ERROR: xcmsSet cannot continue with incorrect mzXML or mzML files") |
b9a87af62223
planemo upload commit 5a5b747865d7fb76f711bce2d9ce2a0f82a2a374-dirty
lecorguille
parents:
diff
changeset
|
389 } |
b9a87af62223
planemo upload commit 5a5b747865d7fb76f711bce2d9ce2a0f82a2a374-dirty
lecorguille
parents:
diff
changeset
|
390 |
b9a87af62223
planemo upload commit 5a5b747865d7fb76f711bce2d9ce2a0f82a2a374-dirty
lecorguille
parents:
diff
changeset
|
391 } |
b9a87af62223
planemo upload commit 5a5b747865d7fb76f711bce2d9ce2a0f82a2a374-dirty
lecorguille
parents:
diff
changeset
|
392 |
b9a87af62223
planemo upload commit 5a5b747865d7fb76f711bce2d9ce2a0f82a2a374-dirty
lecorguille
parents:
diff
changeset
|
393 |
b9a87af62223
planemo upload commit 5a5b747865d7fb76f711bce2d9ce2a0f82a2a374-dirty
lecorguille
parents:
diff
changeset
|
394 ## |
b9a87af62223
planemo upload commit 5a5b747865d7fb76f711bce2d9ce2a0f82a2a374-dirty
lecorguille
parents:
diff
changeset
|
395 ## This function check if XML contain special characters |
b9a87af62223
planemo upload commit 5a5b747865d7fb76f711bce2d9ce2a0f82a2a374-dirty
lecorguille
parents:
diff
changeset
|
396 ## |
b9a87af62223
planemo upload commit 5a5b747865d7fb76f711bce2d9ce2a0f82a2a374-dirty
lecorguille
parents:
diff
changeset
|
397 #@author Misharl Monsoor misharl.monsoor@sb-roscoff.fr ABiMS TEAM |
b9a87af62223
planemo upload commit 5a5b747865d7fb76f711bce2d9ce2a0f82a2a374-dirty
lecorguille
parents:
diff
changeset
|
398 deleteXmlBadCharacters<- function (directory) { |
b9a87af62223
planemo upload commit 5a5b747865d7fb76f711bce2d9ce2a0f82a2a374-dirty
lecorguille
parents:
diff
changeset
|
399 cat("Checking Non ASCII characters in the XML...\n") |
b9a87af62223
planemo upload commit 5a5b747865d7fb76f711bce2d9ce2a0f82a2a374-dirty
lecorguille
parents:
diff
changeset
|
400 |
b9a87af62223
planemo upload commit 5a5b747865d7fb76f711bce2d9ce2a0f82a2a374-dirty
lecorguille
parents:
diff
changeset
|
401 processed=F |
b9a87af62223
planemo upload commit 5a5b747865d7fb76f711bce2d9ce2a0f82a2a374-dirty
lecorguille
parents:
diff
changeset
|
402 l=system( paste("find",directory, "-not -name '\\.*' -not -path '*conda-env*' -type f -iname '*.*ml*'"),intern=TRUE) |
b9a87af62223
planemo upload commit 5a5b747865d7fb76f711bce2d9ce2a0f82a2a374-dirty
lecorguille
parents:
diff
changeset
|
403 for (i in l){ |
b9a87af62223
planemo upload commit 5a5b747865d7fb76f711bce2d9ce2a0f82a2a374-dirty
lecorguille
parents:
diff
changeset
|
404 cmd=paste("LC_ALL=C grep '[^ -~]' \"",i,"\"",sep="") |
b9a87af62223
planemo upload commit 5a5b747865d7fb76f711bce2d9ce2a0f82a2a374-dirty
lecorguille
parents:
diff
changeset
|
405 capture=suppressWarnings(system(cmd,intern=TRUE)) |
b9a87af62223
planemo upload commit 5a5b747865d7fb76f711bce2d9ce2a0f82a2a374-dirty
lecorguille
parents:
diff
changeset
|
406 if (length(capture)>0){ |
b9a87af62223
planemo upload commit 5a5b747865d7fb76f711bce2d9ce2a0f82a2a374-dirty
lecorguille
parents:
diff
changeset
|
407 cmd=paste("perl -i -pe 's/[^[:ascii:]]//g;'",i) |
b9a87af62223
planemo upload commit 5a5b747865d7fb76f711bce2d9ce2a0f82a2a374-dirty
lecorguille
parents:
diff
changeset
|
408 print( paste("WARNING: Non ASCII characters have been removed from the ",i,"file") ) |
b9a87af62223
planemo upload commit 5a5b747865d7fb76f711bce2d9ce2a0f82a2a374-dirty
lecorguille
parents:
diff
changeset
|
409 c=system(cmd,intern=TRUE) |
b9a87af62223
planemo upload commit 5a5b747865d7fb76f711bce2d9ce2a0f82a2a374-dirty
lecorguille
parents:
diff
changeset
|
410 capture="" |
b9a87af62223
planemo upload commit 5a5b747865d7fb76f711bce2d9ce2a0f82a2a374-dirty
lecorguille
parents:
diff
changeset
|
411 processed=T |
b9a87af62223
planemo upload commit 5a5b747865d7fb76f711bce2d9ce2a0f82a2a374-dirty
lecorguille
parents:
diff
changeset
|
412 } |
b9a87af62223
planemo upload commit 5a5b747865d7fb76f711bce2d9ce2a0f82a2a374-dirty
lecorguille
parents:
diff
changeset
|
413 } |
b9a87af62223
planemo upload commit 5a5b747865d7fb76f711bce2d9ce2a0f82a2a374-dirty
lecorguille
parents:
diff
changeset
|
414 if (processed) cat("\n\n") |
b9a87af62223
planemo upload commit 5a5b747865d7fb76f711bce2d9ce2a0f82a2a374-dirty
lecorguille
parents:
diff
changeset
|
415 return(processed) |
b9a87af62223
planemo upload commit 5a5b747865d7fb76f711bce2d9ce2a0f82a2a374-dirty
lecorguille
parents:
diff
changeset
|
416 } |
b9a87af62223
planemo upload commit 5a5b747865d7fb76f711bce2d9ce2a0f82a2a374-dirty
lecorguille
parents:
diff
changeset
|
417 |
b9a87af62223
planemo upload commit 5a5b747865d7fb76f711bce2d9ce2a0f82a2a374-dirty
lecorguille
parents:
diff
changeset
|
418 |
b9a87af62223
planemo upload commit 5a5b747865d7fb76f711bce2d9ce2a0f82a2a374-dirty
lecorguille
parents:
diff
changeset
|
419 ## |
b9a87af62223
planemo upload commit 5a5b747865d7fb76f711bce2d9ce2a0f82a2a374-dirty
lecorguille
parents:
diff
changeset
|
420 ## This function will compute MD5 checksum to check the data integrity |
b9a87af62223
planemo upload commit 5a5b747865d7fb76f711bce2d9ce2a0f82a2a374-dirty
lecorguille
parents:
diff
changeset
|
421 ## |
b9a87af62223
planemo upload commit 5a5b747865d7fb76f711bce2d9ce2a0f82a2a374-dirty
lecorguille
parents:
diff
changeset
|
422 #@author Gildas Le Corguille lecorguille@sb-roscoff.fr |
b9a87af62223
planemo upload commit 5a5b747865d7fb76f711bce2d9ce2a0f82a2a374-dirty
lecorguille
parents:
diff
changeset
|
423 getMd5sum <- function (directory) { |
b9a87af62223
planemo upload commit 5a5b747865d7fb76f711bce2d9ce2a0f82a2a374-dirty
lecorguille
parents:
diff
changeset
|
424 cat("Compute md5 checksum...\n") |
b9a87af62223
planemo upload commit 5a5b747865d7fb76f711bce2d9ce2a0f82a2a374-dirty
lecorguille
parents:
diff
changeset
|
425 # WHAT XCMS WILL FIND |
b9a87af62223
planemo upload commit 5a5b747865d7fb76f711bce2d9ce2a0f82a2a374-dirty
lecorguille
parents:
diff
changeset
|
426 filepattern <- c("[Cc][Dd][Ff]", "[Nn][Cc]", "([Mm][Zz])?[Xx][Mm][Ll]","[Mm][Zz][Dd][Aa][Tt][Aa]", "[Mm][Zz][Mm][Ll]") |
b9a87af62223
planemo upload commit 5a5b747865d7fb76f711bce2d9ce2a0f82a2a374-dirty
lecorguille
parents:
diff
changeset
|
427 filepattern <- paste(paste("\\.", filepattern, "$", sep = ""),collapse = "|") |
b9a87af62223
planemo upload commit 5a5b747865d7fb76f711bce2d9ce2a0f82a2a374-dirty
lecorguille
parents:
diff
changeset
|
428 info <- file.info(directory) |
b9a87af62223
planemo upload commit 5a5b747865d7fb76f711bce2d9ce2a0f82a2a374-dirty
lecorguille
parents:
diff
changeset
|
429 listed <- list.files(directory[info$isdir], pattern = filepattern,recursive = TRUE, full.names = TRUE) |
b9a87af62223
planemo upload commit 5a5b747865d7fb76f711bce2d9ce2a0f82a2a374-dirty
lecorguille
parents:
diff
changeset
|
430 files <- c(directory[!info$isdir], listed) |
b9a87af62223
planemo upload commit 5a5b747865d7fb76f711bce2d9ce2a0f82a2a374-dirty
lecorguille
parents:
diff
changeset
|
431 exists <- file.exists(files) |
b9a87af62223
planemo upload commit 5a5b747865d7fb76f711bce2d9ce2a0f82a2a374-dirty
lecorguille
parents:
diff
changeset
|
432 files <- files[exists] |
b9a87af62223
planemo upload commit 5a5b747865d7fb76f711bce2d9ce2a0f82a2a374-dirty
lecorguille
parents:
diff
changeset
|
433 |
b9a87af62223
planemo upload commit 5a5b747865d7fb76f711bce2d9ce2a0f82a2a374-dirty
lecorguille
parents:
diff
changeset
|
434 library(tools) |
b9a87af62223
planemo upload commit 5a5b747865d7fb76f711bce2d9ce2a0f82a2a374-dirty
lecorguille
parents:
diff
changeset
|
435 |
b9a87af62223
planemo upload commit 5a5b747865d7fb76f711bce2d9ce2a0f82a2a374-dirty
lecorguille
parents:
diff
changeset
|
436 #cat("\n\n") |
b9a87af62223
planemo upload commit 5a5b747865d7fb76f711bce2d9ce2a0f82a2a374-dirty
lecorguille
parents:
diff
changeset
|
437 |
b9a87af62223
planemo upload commit 5a5b747865d7fb76f711bce2d9ce2a0f82a2a374-dirty
lecorguille
parents:
diff
changeset
|
438 return(as.matrix(md5sum(files))) |
b9a87af62223
planemo upload commit 5a5b747865d7fb76f711bce2d9ce2a0f82a2a374-dirty
lecorguille
parents:
diff
changeset
|
439 } |
b9a87af62223
planemo upload commit 5a5b747865d7fb76f711bce2d9ce2a0f82a2a374-dirty
lecorguille
parents:
diff
changeset
|
440 |