annotate lib.r @ 22:65e3e1a39e16 draft

planemo upload commit 23ad0382ec59d66220fd94684a6d158fdef2c7f5-dirty
author lecorguille
date Fri, 22 Jul 2016 11:25:17 -0400
parents 339d92b2c503
children 2a4a811c663d
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
9
c02d80efba80 planemo upload commit d8cc436fd91f5748dc396d0527a0a303d3221835
lecorguille
parents:
diff changeset
1 # lib.r version="2.2.1"
c02d80efba80 planemo upload commit d8cc436fd91f5748dc396d0527a0a303d3221835
lecorguille
parents:
diff changeset
2
c02d80efba80 planemo upload commit d8cc436fd91f5748dc396d0527a0a303d3221835
lecorguille
parents:
diff changeset
3 #The function create a pdf from the different png generated by diffreport
c02d80efba80 planemo upload commit d8cc436fd91f5748dc396d0527a0a303d3221835
lecorguille
parents:
diff changeset
4 diffreport_png2pdf <- function(filebase, new_file_path) {
c02d80efba80 planemo upload commit d8cc436fd91f5748dc396d0527a0a303d3221835
lecorguille
parents:
diff changeset
5
c02d80efba80 planemo upload commit d8cc436fd91f5748dc396d0527a0a303d3221835
lecorguille
parents:
diff changeset
6 pdfEicOutput = paste(new_file_path,filebase,"-eic_visible_pdf",sep="")
c02d80efba80 planemo upload commit d8cc436fd91f5748dc396d0527a0a303d3221835
lecorguille
parents:
diff changeset
7 pdfBoxOutput = paste(new_file_path,filebase,"-box_visible_pdf",sep="")
c02d80efba80 planemo upload commit d8cc436fd91f5748dc396d0527a0a303d3221835
lecorguille
parents:
diff changeset
8
14
e98ca7f0dcbd planemo upload commit 2761472c8afc41d54cecd54cabd1c5a5713514a3-dirty
lecorguille
parents: 9
diff changeset
9 system(paste("gm convert ",filebase,"_eic/*.png ",filebase,"_eic.pdf",sep=""))
e98ca7f0dcbd planemo upload commit 2761472c8afc41d54cecd54cabd1c5a5713514a3-dirty
lecorguille
parents: 9
diff changeset
10 system(paste("gm convert ",filebase,"_box/*.png ",filebase,"_box.pdf",sep=""))
9
c02d80efba80 planemo upload commit d8cc436fd91f5748dc396d0527a0a303d3221835
lecorguille
parents:
diff changeset
11
c02d80efba80 planemo upload commit d8cc436fd91f5748dc396d0527a0a303d3221835
lecorguille
parents:
diff changeset
12 file.copy(paste(filebase,"_eic.pdf",sep=""), pdfEicOutput)
c02d80efba80 planemo upload commit d8cc436fd91f5748dc396d0527a0a303d3221835
lecorguille
parents:
diff changeset
13 file.copy(paste(filebase,"_box.pdf",sep=""), pdfBoxOutput)
c02d80efba80 planemo upload commit d8cc436fd91f5748dc396d0527a0a303d3221835
lecorguille
parents:
diff changeset
14 }
c02d80efba80 planemo upload commit d8cc436fd91f5748dc396d0527a0a303d3221835
lecorguille
parents:
diff changeset
15
c02d80efba80 planemo upload commit d8cc436fd91f5748dc396d0527a0a303d3221835
lecorguille
parents:
diff changeset
16 #The function annotateDiffreport without the corr function which bugs
c02d80efba80 planemo upload commit d8cc436fd91f5748dc396d0527a0a303d3221835
lecorguille
parents:
diff changeset
17 annotatediff <- function(xset=xset, listArguments=listArguments, variableMetadataOutput="variableMetadata.tsv", dataMatrixOutput="dataMatrix.tsv",new_file_path=NULL) {
c02d80efba80 planemo upload commit d8cc436fd91f5748dc396d0527a0a303d3221835
lecorguille
parents:
diff changeset
18 # Resolve the bug with x11, with the function png
c02d80efba80 planemo upload commit d8cc436fd91f5748dc396d0527a0a303d3221835
lecorguille
parents:
diff changeset
19 options(bitmapType='cairo')
c02d80efba80 planemo upload commit d8cc436fd91f5748dc396d0527a0a303d3221835
lecorguille
parents:
diff changeset
20
c02d80efba80 planemo upload commit d8cc436fd91f5748dc396d0527a0a303d3221835
lecorguille
parents:
diff changeset
21 #Check if the fillpeaks step has been done previously, if it hasn't, there is an error message and the execution is stopped.
c02d80efba80 planemo upload commit d8cc436fd91f5748dc396d0527a0a303d3221835
lecorguille
parents:
diff changeset
22 res=try(is.null(xset@filled))
c02d80efba80 planemo upload commit d8cc436fd91f5748dc396d0527a0a303d3221835
lecorguille
parents:
diff changeset
23
c02d80efba80 planemo upload commit d8cc436fd91f5748dc396d0527a0a303d3221835
lecorguille
parents:
diff changeset
24 # ------ annot -------
c02d80efba80 planemo upload commit d8cc436fd91f5748dc396d0527a0a303d3221835
lecorguille
parents:
diff changeset
25 listArguments[["calcCiS"]]=as.logical(listArguments[["calcCiS"]])
c02d80efba80 planemo upload commit d8cc436fd91f5748dc396d0527a0a303d3221835
lecorguille
parents:
diff changeset
26 listArguments[["calcIso"]]=as.logical(listArguments[["calcIso"]])
c02d80efba80 planemo upload commit d8cc436fd91f5748dc396d0527a0a303d3221835
lecorguille
parents:
diff changeset
27 listArguments[["calcCaS"]]=as.logical(listArguments[["calcCaS"]])
18
85b8351ded6c planemo upload commit a57205d251bdebafdee164225fd03ac4d821e49c-dirty
lecorguille
parents: 15
diff changeset
28
85b8351ded6c planemo upload commit a57205d251bdebafdee164225fd03ac4d821e49c-dirty
lecorguille
parents: 15
diff changeset
29 # common parameters
85b8351ded6c planemo upload commit a57205d251bdebafdee164225fd03ac4d821e49c-dirty
lecorguille
parents: 15
diff changeset
30 listArguments4annotate = list(object=xset,
85b8351ded6c planemo upload commit a57205d251bdebafdee164225fd03ac4d821e49c-dirty
lecorguille
parents: 15
diff changeset
31 nSlaves=listArguments[["nSlaves"]],sigma=listArguments[["sigma"]],perfwhm=listArguments[["perfwhm"]],
85b8351ded6c planemo upload commit a57205d251bdebafdee164225fd03ac4d821e49c-dirty
lecorguille
parents: 15
diff changeset
32 maxcharge=listArguments[["maxcharge"]],maxiso=listArguments[["maxiso"]],minfrac=listArguments[["minfrac"]],
85b8351ded6c planemo upload commit a57205d251bdebafdee164225fd03ac4d821e49c-dirty
lecorguille
parents: 15
diff changeset
33 ppm=listArguments[["ppm"]],mzabs=listArguments[["mzabs"]],quick=listArguments[["quick"]],
85b8351ded6c planemo upload commit a57205d251bdebafdee164225fd03ac4d821e49c-dirty
lecorguille
parents: 15
diff changeset
34 polarity=listArguments[["polarity"]],max_peaks=listArguments[["max_peaks"]],intval=listArguments[["intval"]])
85b8351ded6c planemo upload commit a57205d251bdebafdee164225fd03ac4d821e49c-dirty
lecorguille
parents: 15
diff changeset
35
85b8351ded6c planemo upload commit a57205d251bdebafdee164225fd03ac4d821e49c-dirty
lecorguille
parents: 15
diff changeset
36 # quick == FALSE
85b8351ded6c planemo upload commit a57205d251bdebafdee164225fd03ac4d821e49c-dirty
lecorguille
parents: 15
diff changeset
37 if(listArguments[["quick"]]==FALSE) {
85b8351ded6c planemo upload commit a57205d251bdebafdee164225fd03ac4d821e49c-dirty
lecorguille
parents: 15
diff changeset
38 listArguments4annotate = append(listArguments4annotate,
85b8351ded6c planemo upload commit a57205d251bdebafdee164225fd03ac4d821e49c-dirty
lecorguille
parents: 15
diff changeset
39 list(graphMethod=listArguments[["graphMethod"]],cor_eic_th=listArguments[["cor_eic_th"]],pval=listArguments[["pval"]],
85b8351ded6c planemo upload commit a57205d251bdebafdee164225fd03ac4d821e49c-dirty
lecorguille
parents: 15
diff changeset
40 calcCiS=listArguments[["calcCiS"]],calcIso=listArguments[["calcIso"]],calcCaS=listArguments[["calcCaS"]]))
85b8351ded6c planemo upload commit a57205d251bdebafdee164225fd03ac4d821e49c-dirty
lecorguille
parents: 15
diff changeset
41 # no ruleset
85b8351ded6c planemo upload commit a57205d251bdebafdee164225fd03ac4d821e49c-dirty
lecorguille
parents: 15
diff changeset
42 if (!is.null(listArguments[["multiplier"]])) {
85b8351ded6c planemo upload commit a57205d251bdebafdee164225fd03ac4d821e49c-dirty
lecorguille
parents: 15
diff changeset
43 listArguments4annotate = append(listArguments4annotate,
85b8351ded6c planemo upload commit a57205d251bdebafdee164225fd03ac4d821e49c-dirty
lecorguille
parents: 15
diff changeset
44 list(multiplier=listArguments[["multiplier"]]))
85b8351ded6c planemo upload commit a57205d251bdebafdee164225fd03ac4d821e49c-dirty
lecorguille
parents: 15
diff changeset
45 }
85b8351ded6c planemo upload commit a57205d251bdebafdee164225fd03ac4d821e49c-dirty
lecorguille
parents: 15
diff changeset
46 # ruleset
85b8351ded6c planemo upload commit a57205d251bdebafdee164225fd03ac4d821e49c-dirty
lecorguille
parents: 15
diff changeset
47 else {
22
65e3e1a39e16 planemo upload commit 23ad0382ec59d66220fd94684a6d158fdef2c7f5-dirty
lecorguille
parents: 21
diff changeset
48 rulset=read.table(listArguments[["rules"]], h=T, sep=";")
65e3e1a39e16 planemo upload commit 23ad0382ec59d66220fd94684a6d158fdef2c7f5-dirty
lecorguille
parents: 21
diff changeset
49 if (ncol(rulset) < 4) rulset=read.table(listArguments[["rules"]], h=T, sep="\t")
65e3e1a39e16 planemo upload commit 23ad0382ec59d66220fd94684a6d158fdef2c7f5-dirty
lecorguille
parents: 21
diff changeset
50 if (ncol(rulset) < 4) rulset=read.table(listArguments[["rules"]], h=T, sep=",")
65e3e1a39e16 planemo upload commit 23ad0382ec59d66220fd94684a6d158fdef2c7f5-dirty
lecorguille
parents: 21
diff changeset
51 if (ncol(rulset) < 4) {
65e3e1a39e16 planemo upload commit 23ad0382ec59d66220fd94684a6d158fdef2c7f5-dirty
lecorguille
parents: 21
diff changeset
52 error_message="Your ruleset file seems not well formatted. The column separators accepted are ; , and tabulation"
65e3e1a39e16 planemo upload commit 23ad0382ec59d66220fd94684a6d158fdef2c7f5-dirty
lecorguille
parents: 21
diff changeset
53 print(error_message)
65e3e1a39e16 planemo upload commit 23ad0382ec59d66220fd94684a6d158fdef2c7f5-dirty
lecorguille
parents: 21
diff changeset
54 stop(error_message)
65e3e1a39e16 planemo upload commit 23ad0382ec59d66220fd94684a6d158fdef2c7f5-dirty
lecorguille
parents: 21
diff changeset
55 }
65e3e1a39e16 planemo upload commit 23ad0382ec59d66220fd94684a6d158fdef2c7f5-dirty
lecorguille
parents: 21
diff changeset
56
18
85b8351ded6c planemo upload commit a57205d251bdebafdee164225fd03ac4d821e49c-dirty
lecorguille
parents: 15
diff changeset
57 listArguments4annotate = append(listArguments4annotate,
20
16220e5f5499 planemo upload commit af7a06815ba291bf272e6f30a44aee58cf745070-dirty
lecorguille
parents: 18
diff changeset
58 list(rules=rulset))
18
85b8351ded6c planemo upload commit a57205d251bdebafdee164225fd03ac4d821e49c-dirty
lecorguille
parents: 15
diff changeset
59 }
9
c02d80efba80 planemo upload commit d8cc436fd91f5748dc396d0527a0a303d3221835
lecorguille
parents:
diff changeset
60 }
18
85b8351ded6c planemo upload commit a57205d251bdebafdee164225fd03ac4d821e49c-dirty
lecorguille
parents: 15
diff changeset
61
85b8351ded6c planemo upload commit a57205d251bdebafdee164225fd03ac4d821e49c-dirty
lecorguille
parents: 15
diff changeset
62 # launch annotate
85b8351ded6c planemo upload commit a57205d251bdebafdee164225fd03ac4d821e49c-dirty
lecorguille
parents: 15
diff changeset
63 xa = do.call("annotate", listArguments4annotate)
9
c02d80efba80 planemo upload commit d8cc436fd91f5748dc396d0527a0a303d3221835
lecorguille
parents:
diff changeset
64 peakList=getPeaklist(xa,intval=listArguments[["intval"]])
c02d80efba80 planemo upload commit d8cc436fd91f5748dc396d0527a0a303d3221835
lecorguille
parents:
diff changeset
65 peakList=cbind(groupnames(xa@xcmsSet),peakList); colnames(peakList)[1] = c("name");
c02d80efba80 planemo upload commit d8cc436fd91f5748dc396d0527a0a303d3221835
lecorguille
parents:
diff changeset
66
c02d80efba80 planemo upload commit d8cc436fd91f5748dc396d0527a0a303d3221835
lecorguille
parents:
diff changeset
67
c02d80efba80 planemo upload commit d8cc436fd91f5748dc396d0527a0a303d3221835
lecorguille
parents:
diff changeset
68 # --- Multi condition : diffreport ---
c02d80efba80 planemo upload commit d8cc436fd91f5748dc396d0527a0a303d3221835
lecorguille
parents:
diff changeset
69 diffrep=NULL
c02d80efba80 planemo upload commit d8cc436fd91f5748dc396d0527a0a303d3221835
lecorguille
parents:
diff changeset
70 if (!is.null(listArguments[["runDiffreport"]]) & nlevels(sampclass(xset))>=2) {
c02d80efba80 planemo upload commit d8cc436fd91f5748dc396d0527a0a303d3221835
lecorguille
parents:
diff changeset
71 #Check if the fillpeaks step has been done previously, if it hasn't, there is an error message and the execution is stopped.
c02d80efba80 planemo upload commit d8cc436fd91f5748dc396d0527a0a303d3221835
lecorguille
parents:
diff changeset
72 res=try(is.null(xset@filled))
c02d80efba80 planemo upload commit d8cc436fd91f5748dc396d0527a0a303d3221835
lecorguille
parents:
diff changeset
73 classes=levels(sampclass(xset))
c02d80efba80 planemo upload commit d8cc436fd91f5748dc396d0527a0a303d3221835
lecorguille
parents:
diff changeset
74 x=1:(length(classes)-1)
c02d80efba80 planemo upload commit d8cc436fd91f5748dc396d0527a0a303d3221835
lecorguille
parents:
diff changeset
75 for (i in seq(along=x) ) {
c02d80efba80 planemo upload commit d8cc436fd91f5748dc396d0527a0a303d3221835
lecorguille
parents:
diff changeset
76 y=1:(length(classes))
c02d80efba80 planemo upload commit d8cc436fd91f5748dc396d0527a0a303d3221835
lecorguille
parents:
diff changeset
77 for (n in seq(along=y)){
c02d80efba80 planemo upload commit d8cc436fd91f5748dc396d0527a0a303d3221835
lecorguille
parents:
diff changeset
78 if(i+n <= length(classes)){
c02d80efba80 planemo upload commit d8cc436fd91f5748dc396d0527a0a303d3221835
lecorguille
parents:
diff changeset
79 filebase=paste(classes[i],class2=classes[i+n],sep="-vs-")
c02d80efba80 planemo upload commit d8cc436fd91f5748dc396d0527a0a303d3221835
lecorguille
parents:
diff changeset
80
c02d80efba80 planemo upload commit d8cc436fd91f5748dc396d0527a0a303d3221835
lecorguille
parents:
diff changeset
81 diffrep=diffreport(object=xset,class1=classes[i],class2=classes[i+n],filebase=filebase,eicmax=listArguments[["eicmax"]],eicwidth=listArguments[["eicwidth"]],sortpval=TRUE,value=listArguments[["value"]],h=listArguments[["h"]],w=listArguments[["w"]],mzdec=listArguments[["mzdec"]])
c02d80efba80 planemo upload commit d8cc436fd91f5748dc396d0527a0a303d3221835
lecorguille
parents:
diff changeset
82 #combines results
c02d80efba80 planemo upload commit d8cc436fd91f5748dc396d0527a0a303d3221835
lecorguille
parents:
diff changeset
83 diffreportTSV=merge(peakList, diffrep[,c("name","fold","tstat","pvalue")], by.x="name", by.y="name", sort=F)
c02d80efba80 planemo upload commit d8cc436fd91f5748dc396d0527a0a303d3221835
lecorguille
parents:
diff changeset
84 diffreportTSV=cbind(diffreportTSV[,!(colnames(diffreportTSV) %in% c(sampnames(xa@xcmsSet)))],diffreportTSV[,(colnames(diffreportTSV) %in% c(sampnames(xa@xcmsSet)))])
c02d80efba80 planemo upload commit d8cc436fd91f5748dc396d0527a0a303d3221835
lecorguille
parents:
diff changeset
85
c02d80efba80 planemo upload commit d8cc436fd91f5748dc396d0527a0a303d3221835
lecorguille
parents:
diff changeset
86 if(listArguments[["sortpval"]]){
c02d80efba80 planemo upload commit d8cc436fd91f5748dc396d0527a0a303d3221835
lecorguille
parents:
diff changeset
87 diffreportTSV=diffreportTSV[order(diffreportTSV$pvalue), ]
c02d80efba80 planemo upload commit d8cc436fd91f5748dc396d0527a0a303d3221835
lecorguille
parents:
diff changeset
88 }
c02d80efba80 planemo upload commit d8cc436fd91f5748dc396d0527a0a303d3221835
lecorguille
parents:
diff changeset
89
c02d80efba80 planemo upload commit d8cc436fd91f5748dc396d0527a0a303d3221835
lecorguille
parents:
diff changeset
90 if (listArguments[["convert_param"]]){
c02d80efba80 planemo upload commit d8cc436fd91f5748dc396d0527a0a303d3221835
lecorguille
parents:
diff changeset
91 #converting the retention times (seconds) into minutes
c02d80efba80 planemo upload commit d8cc436fd91f5748dc396d0527a0a303d3221835
lecorguille
parents:
diff changeset
92 diffreportTSV$rt=diffreportTSV$rt/60;diffreportTSV$rtmin=diffreportTSV$rtmin/60; diffreportTSV$rtmax=diffreportTSV$rtmax/60;
c02d80efba80 planemo upload commit d8cc436fd91f5748dc396d0527a0a303d3221835
lecorguille
parents:
diff changeset
93 }
c02d80efba80 planemo upload commit d8cc436fd91f5748dc396d0527a0a303d3221835
lecorguille
parents:
diff changeset
94 write.table(diffreportTSV, sep="\t", quote=FALSE, row.names=FALSE, file=paste(new_file_path,filebase,"-tabular_visible_tabular",sep=""))
c02d80efba80 planemo upload commit d8cc436fd91f5748dc396d0527a0a303d3221835
lecorguille
parents:
diff changeset
95
c02d80efba80 planemo upload commit d8cc436fd91f5748dc396d0527a0a303d3221835
lecorguille
parents:
diff changeset
96 if (listArguments[["eicmax"]] != 0) {
c02d80efba80 planemo upload commit d8cc436fd91f5748dc396d0527a0a303d3221835
lecorguille
parents:
diff changeset
97 diffreport_png2pdf(filebase, new_file_path)
c02d80efba80 planemo upload commit d8cc436fd91f5748dc396d0527a0a303d3221835
lecorguille
parents:
diff changeset
98 }
c02d80efba80 planemo upload commit d8cc436fd91f5748dc396d0527a0a303d3221835
lecorguille
parents:
diff changeset
99 }
c02d80efba80 planemo upload commit d8cc436fd91f5748dc396d0527a0a303d3221835
lecorguille
parents:
diff changeset
100 }
c02d80efba80 planemo upload commit d8cc436fd91f5748dc396d0527a0a303d3221835
lecorguille
parents:
diff changeset
101 }
c02d80efba80 planemo upload commit d8cc436fd91f5748dc396d0527a0a303d3221835
lecorguille
parents:
diff changeset
102 }
c02d80efba80 planemo upload commit d8cc436fd91f5748dc396d0527a0a303d3221835
lecorguille
parents:
diff changeset
103
c02d80efba80 planemo upload commit d8cc436fd91f5748dc396d0527a0a303d3221835
lecorguille
parents:
diff changeset
104
c02d80efba80 planemo upload commit d8cc436fd91f5748dc396d0527a0a303d3221835
lecorguille
parents:
diff changeset
105
c02d80efba80 planemo upload commit d8cc436fd91f5748dc396d0527a0a303d3221835
lecorguille
parents:
diff changeset
106
c02d80efba80 planemo upload commit d8cc436fd91f5748dc396d0527a0a303d3221835
lecorguille
parents:
diff changeset
107 # --- variableMetadata ---
c02d80efba80 planemo upload commit d8cc436fd91f5748dc396d0527a0a303d3221835
lecorguille
parents:
diff changeset
108 variableMetadata=peakList[,!(make.names(colnames(peakList)) %in% c(make.names(sampnames(xa@xcmsSet))))]
c02d80efba80 planemo upload commit d8cc436fd91f5748dc396d0527a0a303d3221835
lecorguille
parents:
diff changeset
109 # if we have 2 conditions, we keep stat of diffrep
c02d80efba80 planemo upload commit d8cc436fd91f5748dc396d0527a0a303d3221835
lecorguille
parents:
diff changeset
110 if (!is.null(listArguments[["runDiffreport"]]) & nlevels(sampclass(xset))==2) {
c02d80efba80 planemo upload commit d8cc436fd91f5748dc396d0527a0a303d3221835
lecorguille
parents:
diff changeset
111 variableMetadata = merge(variableMetadata, diffrep[,c("name","fold","tstat","pvalue")],by.x="name", by.y="name", sort=F)
c02d80efba80 planemo upload commit d8cc436fd91f5748dc396d0527a0a303d3221835
lecorguille
parents:
diff changeset
112 if(exists("listArguments[[\"sortpval\"]]")){
c02d80efba80 planemo upload commit d8cc436fd91f5748dc396d0527a0a303d3221835
lecorguille
parents:
diff changeset
113 variableMetadata=variableMetadata[order(variableMetadata$pvalue), ]
c02d80efba80 planemo upload commit d8cc436fd91f5748dc396d0527a0a303d3221835
lecorguille
parents:
diff changeset
114 }
c02d80efba80 planemo upload commit d8cc436fd91f5748dc396d0527a0a303d3221835
lecorguille
parents:
diff changeset
115 }
c02d80efba80 planemo upload commit d8cc436fd91f5748dc396d0527a0a303d3221835
lecorguille
parents:
diff changeset
116
c02d80efba80 planemo upload commit d8cc436fd91f5748dc396d0527a0a303d3221835
lecorguille
parents:
diff changeset
117 variableMetadataOri=variableMetadata
c02d80efba80 planemo upload commit d8cc436fd91f5748dc396d0527a0a303d3221835
lecorguille
parents:
diff changeset
118 if (listArguments[["convert_param"]]){
c02d80efba80 planemo upload commit d8cc436fd91f5748dc396d0527a0a303d3221835
lecorguille
parents:
diff changeset
119 #converting the retention times (seconds) into minutes
c02d80efba80 planemo upload commit d8cc436fd91f5748dc396d0527a0a303d3221835
lecorguille
parents:
diff changeset
120 print("converting the retention times into minutes in the variableMetadata")
c02d80efba80 planemo upload commit d8cc436fd91f5748dc396d0527a0a303d3221835
lecorguille
parents:
diff changeset
121 variableMetadata$rt=variableMetadata$rt/60;variableMetadata$rtmin=variableMetadata$rtmin/60; variableMetadata$rtmax=variableMetadata$rtmax/60;
c02d80efba80 planemo upload commit d8cc436fd91f5748dc396d0527a0a303d3221835
lecorguille
parents:
diff changeset
122 }
c02d80efba80 planemo upload commit d8cc436fd91f5748dc396d0527a0a303d3221835
lecorguille
parents:
diff changeset
123 #Transform metabolites name
c02d80efba80 planemo upload commit d8cc436fd91f5748dc396d0527a0a303d3221835
lecorguille
parents:
diff changeset
124 variableMetadata$name= paste("M",round(variableMetadata$mz,digits=listArguments[["num_digits"]]),"T",round(variableMetadata$rt),sep="")
c02d80efba80 planemo upload commit d8cc436fd91f5748dc396d0527a0a303d3221835
lecorguille
parents:
diff changeset
125 write.table(variableMetadata, sep="\t", quote=FALSE, row.names=FALSE, file=variableMetadataOutput)
c02d80efba80 planemo upload commit d8cc436fd91f5748dc396d0527a0a303d3221835
lecorguille
parents:
diff changeset
126
c02d80efba80 planemo upload commit d8cc436fd91f5748dc396d0527a0a303d3221835
lecorguille
parents:
diff changeset
127 # --- dataMatrix ---
c02d80efba80 planemo upload commit d8cc436fd91f5748dc396d0527a0a303d3221835
lecorguille
parents:
diff changeset
128 dataMatrix = peakList[,(make.names(colnames(peakList)) %in% c(make.names(sampnames(xa@xcmsSet))))]
c02d80efba80 planemo upload commit d8cc436fd91f5748dc396d0527a0a303d3221835
lecorguille
parents:
diff changeset
129 dataMatrix=cbind(peakList$name,dataMatrix); colnames(dataMatrix)[1] = c("name");
c02d80efba80 planemo upload commit d8cc436fd91f5748dc396d0527a0a303d3221835
lecorguille
parents:
diff changeset
130
c02d80efba80 planemo upload commit d8cc436fd91f5748dc396d0527a0a303d3221835
lecorguille
parents:
diff changeset
131 if (listArguments[["convert_param"]]){
c02d80efba80 planemo upload commit d8cc436fd91f5748dc396d0527a0a303d3221835
lecorguille
parents:
diff changeset
132 #converting the retention times (seconds) into minutes
c02d80efba80 planemo upload commit d8cc436fd91f5748dc396d0527a0a303d3221835
lecorguille
parents:
diff changeset
133 print("converting the retention times into minutes in the dataMatrix ids")
c02d80efba80 planemo upload commit d8cc436fd91f5748dc396d0527a0a303d3221835
lecorguille
parents:
diff changeset
134 peakList$rt=peakList$rt/60
c02d80efba80 planemo upload commit d8cc436fd91f5748dc396d0527a0a303d3221835
lecorguille
parents:
diff changeset
135 }
c02d80efba80 planemo upload commit d8cc436fd91f5748dc396d0527a0a303d3221835
lecorguille
parents:
diff changeset
136 dataMatrix$name= paste("M",round(peakList$mz,digits=listArguments[["num_digits"]]),"T",round(peakList$rt),sep="")
c02d80efba80 planemo upload commit d8cc436fd91f5748dc396d0527a0a303d3221835
lecorguille
parents:
diff changeset
137 write.table(dataMatrix, sep="\t", quote=FALSE, row.names=FALSE, file=dataMatrixOutput)
c02d80efba80 planemo upload commit d8cc436fd91f5748dc396d0527a0a303d3221835
lecorguille
parents:
diff changeset
138
c02d80efba80 planemo upload commit d8cc436fd91f5748dc396d0527a0a303d3221835
lecorguille
parents:
diff changeset
139 return(list("xa"=xa,"diffrep"=diffrep,"variableMetadata"=variableMetadataOri));
c02d80efba80 planemo upload commit d8cc436fd91f5748dc396d0527a0a303d3221835
lecorguille
parents:
diff changeset
140
c02d80efba80 planemo upload commit d8cc436fd91f5748dc396d0527a0a303d3221835
lecorguille
parents:
diff changeset
141 }
c02d80efba80 planemo upload commit d8cc436fd91f5748dc396d0527a0a303d3221835
lecorguille
parents:
diff changeset
142
c02d80efba80 planemo upload commit d8cc436fd91f5748dc396d0527a0a303d3221835
lecorguille
parents:
diff changeset
143
15
77a191e37af4 planemo upload commit 9d47e3b467dbbe0af0d90a937c5e9f2c4b958c4b
lecorguille
parents: 14
diff changeset
144 combinexsAnnos_function <- function(xaP, xaN, listOFlistArgumentsP,listOFlistArgumentsN, diffrepP=NULL,diffrepN=NULL,convert_param=FALSE,pos=TRUE,tol=2,ruleset=NULL,keep_meta=TRUE, variableMetadataOutput="variableMetadata.tsv"){
9
c02d80efba80 planemo upload commit d8cc436fd91f5748dc396d0527a0a303d3221835
lecorguille
parents:
diff changeset
145
c02d80efba80 planemo upload commit d8cc436fd91f5748dc396d0527a0a303d3221835
lecorguille
parents:
diff changeset
146 #Load the two Rdata to extract the xset objects from positive and negative mode
c02d80efba80 planemo upload commit d8cc436fd91f5748dc396d0527a0a303d3221835
lecorguille
parents:
diff changeset
147 cat("\tObject xset from positive mode\n")
c02d80efba80 planemo upload commit d8cc436fd91f5748dc396d0527a0a303d3221835
lecorguille
parents:
diff changeset
148 print(xaP)
c02d80efba80 planemo upload commit d8cc436fd91f5748dc396d0527a0a303d3221835
lecorguille
parents:
diff changeset
149 cat("\n")
c02d80efba80 planemo upload commit d8cc436fd91f5748dc396d0527a0a303d3221835
lecorguille
parents:
diff changeset
150
c02d80efba80 planemo upload commit d8cc436fd91f5748dc396d0527a0a303d3221835
lecorguille
parents:
diff changeset
151 cat("\tObject xset from negative mode\n")
c02d80efba80 planemo upload commit d8cc436fd91f5748dc396d0527a0a303d3221835
lecorguille
parents:
diff changeset
152 print(xaN)
c02d80efba80 planemo upload commit d8cc436fd91f5748dc396d0527a0a303d3221835
lecorguille
parents:
diff changeset
153 cat("\n")
c02d80efba80 planemo upload commit d8cc436fd91f5748dc396d0527a0a303d3221835
lecorguille
parents:
diff changeset
154
c02d80efba80 planemo upload commit d8cc436fd91f5748dc396d0527a0a303d3221835
lecorguille
parents:
diff changeset
155 cat("\n")
c02d80efba80 planemo upload commit d8cc436fd91f5748dc396d0527a0a303d3221835
lecorguille
parents:
diff changeset
156 cat("\tCombining...\n")
c02d80efba80 planemo upload commit d8cc436fd91f5748dc396d0527a0a303d3221835
lecorguille
parents:
diff changeset
157 #Convert the string to numeric for creating matrix
c02d80efba80 planemo upload commit d8cc436fd91f5748dc396d0527a0a303d3221835
lecorguille
parents:
diff changeset
158 row=as.numeric(strsplit(ruleset,",")[[1]][1])
c02d80efba80 planemo upload commit d8cc436fd91f5748dc396d0527a0a303d3221835
lecorguille
parents:
diff changeset
159 column=as.numeric(strsplit(ruleset,",")[[1]][2])
c02d80efba80 planemo upload commit d8cc436fd91f5748dc396d0527a0a303d3221835
lecorguille
parents:
diff changeset
160 ruleset=cbind(row,column)
c02d80efba80 planemo upload commit d8cc436fd91f5748dc396d0527a0a303d3221835
lecorguille
parents:
diff changeset
161 #Test if the file comes from an older version tool
c02d80efba80 planemo upload commit d8cc436fd91f5748dc396d0527a0a303d3221835
lecorguille
parents:
diff changeset
162 if ((!is.null(xaP)) & (!is.null(xaN))) {
c02d80efba80 planemo upload commit d8cc436fd91f5748dc396d0527a0a303d3221835
lecorguille
parents:
diff changeset
163 #Launch the combinexsannos function from CAMERA
c02d80efba80 planemo upload commit d8cc436fd91f5748dc396d0527a0a303d3221835
lecorguille
parents:
diff changeset
164 cAnnot=combinexsAnnos(xaP, xaN,pos=pos,tol=tol,ruleset=ruleset)
c02d80efba80 planemo upload commit d8cc436fd91f5748dc396d0527a0a303d3221835
lecorguille
parents:
diff changeset
165 } else {
c02d80efba80 planemo upload commit d8cc436fd91f5748dc396d0527a0a303d3221835
lecorguille
parents:
diff changeset
166 stop("You must relauch the CAMERA.annotate step with the lastest version.")
c02d80efba80 planemo upload commit d8cc436fd91f5748dc396d0527a0a303d3221835
lecorguille
parents:
diff changeset
167 }
c02d80efba80 planemo upload commit d8cc436fd91f5748dc396d0527a0a303d3221835
lecorguille
parents:
diff changeset
168
c02d80efba80 planemo upload commit d8cc436fd91f5748dc396d0527a0a303d3221835
lecorguille
parents:
diff changeset
169
c02d80efba80 planemo upload commit d8cc436fd91f5748dc396d0527a0a303d3221835
lecorguille
parents:
diff changeset
170
c02d80efba80 planemo upload commit d8cc436fd91f5748dc396d0527a0a303d3221835
lecorguille
parents:
diff changeset
171 if(pos){
c02d80efba80 planemo upload commit d8cc436fd91f5748dc396d0527a0a303d3221835
lecorguille
parents:
diff changeset
172 xa=xaP
15
77a191e37af4 planemo upload commit 9d47e3b467dbbe0af0d90a937c5e9f2c4b958c4b
lecorguille
parents: 14
diff changeset
173 listOFlistArgumentsP=listOFlistArguments
9
c02d80efba80 planemo upload commit d8cc436fd91f5748dc396d0527a0a303d3221835
lecorguille
parents:
diff changeset
174 mode="neg. Mode"
c02d80efba80 planemo upload commit d8cc436fd91f5748dc396d0527a0a303d3221835
lecorguille
parents:
diff changeset
175 } else {
c02d80efba80 planemo upload commit d8cc436fd91f5748dc396d0527a0a303d3221835
lecorguille
parents:
diff changeset
176 xa=xaN
15
77a191e37af4 planemo upload commit 9d47e3b467dbbe0af0d90a937c5e9f2c4b958c4b
lecorguille
parents: 14
diff changeset
177 listOFlistArgumentsN=listOFlistArguments
9
c02d80efba80 planemo upload commit d8cc436fd91f5748dc396d0527a0a303d3221835
lecorguille
parents:
diff changeset
178 mode="pos. Mode"
c02d80efba80 planemo upload commit d8cc436fd91f5748dc396d0527a0a303d3221835
lecorguille
parents:
diff changeset
179 }
15
77a191e37af4 planemo upload commit 9d47e3b467dbbe0af0d90a937c5e9f2c4b958c4b
lecorguille
parents: 14
diff changeset
180 intval = "into"; for (steps in names(listOFlistArguments)) { if (!is.null(listOFlistArguments[[steps]]$intval)) intval = listOFlistArguments[[steps]]$intval }
77a191e37af4 planemo upload commit 9d47e3b467dbbe0af0d90a937c5e9f2c4b958c4b
lecorguille
parents: 14
diff changeset
181 peakList=getPeaklist(xa,intval=intval)
9
c02d80efba80 planemo upload commit d8cc436fd91f5748dc396d0527a0a303d3221835
lecorguille
parents:
diff changeset
182 peakList=cbind(groupnames(xa@xcmsSet),peakList); colnames(peakList)[1] = c("name");
c02d80efba80 planemo upload commit d8cc436fd91f5748dc396d0527a0a303d3221835
lecorguille
parents:
diff changeset
183 variableMetadata=cbind(peakList, cAnnot[, c("isotopes", "adduct", "pcgroup",mode)]);
c02d80efba80 planemo upload commit d8cc436fd91f5748dc396d0527a0a303d3221835
lecorguille
parents:
diff changeset
184 variableMetadata=variableMetadata[,!(colnames(variableMetadata) %in% c(sampnames(xa@xcmsSet)))]
c02d80efba80 planemo upload commit d8cc436fd91f5748dc396d0527a0a303d3221835
lecorguille
parents:
diff changeset
185
c02d80efba80 planemo upload commit d8cc436fd91f5748dc396d0527a0a303d3221835
lecorguille
parents:
diff changeset
186 #Test if there are more than two classes (conditions)
c02d80efba80 planemo upload commit d8cc436fd91f5748dc396d0527a0a303d3221835
lecorguille
parents:
diff changeset
187 if ( nlevels(sampclass(xaP@xcmsSet))==2 & (!is.null(diffrepN)) & (!is.null(diffrepP))) {
c02d80efba80 planemo upload commit d8cc436fd91f5748dc396d0527a0a303d3221835
lecorguille
parents:
diff changeset
188 diffrepP = diffrepP[,c("name","fold","tstat","pvalue")]; colnames(diffrepP) = paste("P.",colnames(diffrepP),sep="")
c02d80efba80 planemo upload commit d8cc436fd91f5748dc396d0527a0a303d3221835
lecorguille
parents:
diff changeset
189 diffrepN = diffrepN[,c("name","fold","tstat","pvalue")]; colnames(diffrepN) = paste("N.",colnames(diffrepN),sep="")
c02d80efba80 planemo upload commit d8cc436fd91f5748dc396d0527a0a303d3221835
lecorguille
parents:
diff changeset
190
c02d80efba80 planemo upload commit d8cc436fd91f5748dc396d0527a0a303d3221835
lecorguille
parents:
diff changeset
191 variableMetadata = merge(variableMetadata, diffrepP, by.x="name", by.y="P.name")
c02d80efba80 planemo upload commit d8cc436fd91f5748dc396d0527a0a303d3221835
lecorguille
parents:
diff changeset
192 variableMetadata = merge(variableMetadata, diffrepN, by.x="name", by.y="N.name")
c02d80efba80 planemo upload commit d8cc436fd91f5748dc396d0527a0a303d3221835
lecorguille
parents:
diff changeset
193 }
c02d80efba80 planemo upload commit d8cc436fd91f5748dc396d0527a0a303d3221835
lecorguille
parents:
diff changeset
194
c02d80efba80 planemo upload commit d8cc436fd91f5748dc396d0527a0a303d3221835
lecorguille
parents:
diff changeset
195 rownames(variableMetadata) = NULL
c02d80efba80 planemo upload commit d8cc436fd91f5748dc396d0527a0a303d3221835
lecorguille
parents:
diff changeset
196 #TODO: checker
c02d80efba80 planemo upload commit d8cc436fd91f5748dc396d0527a0a303d3221835
lecorguille
parents:
diff changeset
197 #colnames(variableMetadata)[1:2] = c("name","mz/rt");
c02d80efba80 planemo upload commit d8cc436fd91f5748dc396d0527a0a303d3221835
lecorguille
parents:
diff changeset
198
c02d80efba80 planemo upload commit d8cc436fd91f5748dc396d0527a0a303d3221835
lecorguille
parents:
diff changeset
199 #If the user want to convert the retention times (seconds) into minutes.
c02d80efba80 planemo upload commit d8cc436fd91f5748dc396d0527a0a303d3221835
lecorguille
parents:
diff changeset
200 if (listArguments[["convert_param"]]){
c02d80efba80 planemo upload commit d8cc436fd91f5748dc396d0527a0a303d3221835
lecorguille
parents:
diff changeset
201 #converting the retention times (seconds) into minutes
c02d80efba80 planemo upload commit d8cc436fd91f5748dc396d0527a0a303d3221835
lecorguille
parents:
diff changeset
202 cat("\tConverting the retention times into minutes\n")
c02d80efba80 planemo upload commit d8cc436fd91f5748dc396d0527a0a303d3221835
lecorguille
parents:
diff changeset
203 variableMetadata$rtmed=cAnnot$rt/60; variableMetadata$rtmin=cAnnot$rtmin/60; variableMetadata$rtmax=cAnnot$rtmax/60;
c02d80efba80 planemo upload commit d8cc436fd91f5748dc396d0527a0a303d3221835
lecorguille
parents:
diff changeset
204 }
c02d80efba80 planemo upload commit d8cc436fd91f5748dc396d0527a0a303d3221835
lecorguille
parents:
diff changeset
205
c02d80efba80 planemo upload commit d8cc436fd91f5748dc396d0527a0a303d3221835
lecorguille
parents:
diff changeset
206 #If the user want to keep only the metabolites which match a difference
c02d80efba80 planemo upload commit d8cc436fd91f5748dc396d0527a0a303d3221835
lecorguille
parents:
diff changeset
207 if(keep_meta){
c02d80efba80 planemo upload commit d8cc436fd91f5748dc396d0527a0a303d3221835
lecorguille
parents:
diff changeset
208 variableMetadata=variableMetadata[variableMetadata[,c(mode)]!="",]
c02d80efba80 planemo upload commit d8cc436fd91f5748dc396d0527a0a303d3221835
lecorguille
parents:
diff changeset
209 }
c02d80efba80 planemo upload commit d8cc436fd91f5748dc396d0527a0a303d3221835
lecorguille
parents:
diff changeset
210
c02d80efba80 planemo upload commit d8cc436fd91f5748dc396d0527a0a303d3221835
lecorguille
parents:
diff changeset
211 #Write the output into a tsv file
c02d80efba80 planemo upload commit d8cc436fd91f5748dc396d0527a0a303d3221835
lecorguille
parents:
diff changeset
212 write.table(variableMetadata, sep="\t", quote=FALSE, row.names=FALSE, file=variableMetadataOutput)
c02d80efba80 planemo upload commit d8cc436fd91f5748dc396d0527a0a303d3221835
lecorguille
parents:
diff changeset
213 return(variableMetadata);
c02d80efba80 planemo upload commit d8cc436fd91f5748dc396d0527a0a303d3221835
lecorguille
parents:
diff changeset
214
c02d80efba80 planemo upload commit d8cc436fd91f5748dc396d0527a0a303d3221835
lecorguille
parents:
diff changeset
215 }