Mercurial > repos > lecorguille > camera_annotate
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 |
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 } |