Mercurial > repos > sblanck > smagexp
annotate MetaRNASeq.R @ 14:e5a94bc69bd6 draft
planemo upload for repository https://github.com/sblanck/smagexp/tree/master/smagexp_tools commit da1436252b5db4e90c39c95140558f0f93544160
author | sblanck |
---|---|
date | Tue, 16 May 2017 01:53:32 -0400 |
parents | 93451f832736 |
children | ef7d98f9eb51 |
rev | line source |
---|---|
14
e5a94bc69bd6
planemo upload for repository https://github.com/sblanck/smagexp/tree/master/smagexp_tools commit da1436252b5db4e90c39c95140558f0f93544160
sblanck
parents:
2
diff
changeset
|
1 #!/usr/bin/env Rscript |
e5a94bc69bd6
planemo upload for repository https://github.com/sblanck/smagexp/tree/master/smagexp_tools commit da1436252b5db4e90c39c95140558f0f93544160
sblanck
parents:
2
diff
changeset
|
2 # setup R error handling to go to stderr |
e5a94bc69bd6
planemo upload for repository https://github.com/sblanck/smagexp/tree/master/smagexp_tools commit da1436252b5db4e90c39c95140558f0f93544160
sblanck
parents:
2
diff
changeset
|
3 options( show.error.messages=F, error = function () { cat( geterrmessage(), file=stderr() ); q( "no", 1, F ) } ) |
e5a94bc69bd6
planemo upload for repository https://github.com/sblanck/smagexp/tree/master/smagexp_tools commit da1436252b5db4e90c39c95140558f0f93544160
sblanck
parents:
2
diff
changeset
|
4 |
e5a94bc69bd6
planemo upload for repository https://github.com/sblanck/smagexp/tree/master/smagexp_tools commit da1436252b5db4e90c39c95140558f0f93544160
sblanck
parents:
2
diff
changeset
|
5 # we need that to not crash galaxy with an UTF8 error on German LC settings. |
e5a94bc69bd6
planemo upload for repository https://github.com/sblanck/smagexp/tree/master/smagexp_tools commit da1436252b5db4e90c39c95140558f0f93544160
sblanck
parents:
2
diff
changeset
|
6 loc <- Sys.setlocale("LC_MESSAGES", "en_US.UTF-8") |
e5a94bc69bd6
planemo upload for repository https://github.com/sblanck/smagexp/tree/master/smagexp_tools commit da1436252b5db4e90c39c95140558f0f93544160
sblanck
parents:
2
diff
changeset
|
7 |
e5a94bc69bd6
planemo upload for repository https://github.com/sblanck/smagexp/tree/master/smagexp_tools commit da1436252b5db4e90c39c95140558f0f93544160
sblanck
parents:
2
diff
changeset
|
8 library("optparse") |
e5a94bc69bd6
planemo upload for repository https://github.com/sblanck/smagexp/tree/master/smagexp_tools commit da1436252b5db4e90c39c95140558f0f93544160
sblanck
parents:
2
diff
changeset
|
9 |
e5a94bc69bd6
planemo upload for repository https://github.com/sblanck/smagexp/tree/master/smagexp_tools commit da1436252b5db4e90c39c95140558f0f93544160
sblanck
parents:
2
diff
changeset
|
10 ##### Read options |
e5a94bc69bd6
planemo upload for repository https://github.com/sblanck/smagexp/tree/master/smagexp_tools commit da1436252b5db4e90c39c95140558f0f93544160
sblanck
parents:
2
diff
changeset
|
11 option_list=list( |
e5a94bc69bd6
planemo upload for repository https://github.com/sblanck/smagexp/tree/master/smagexp_tools commit da1436252b5db4e90c39c95140558f0f93544160
sblanck
parents:
2
diff
changeset
|
12 make_option("--input",type="character",default="NULL",help="list of rdata objects containing eset objects"), |
e5a94bc69bd6
planemo upload for repository https://github.com/sblanck/smagexp/tree/master/smagexp_tools commit da1436252b5db4e90c39c95140558f0f93544160
sblanck
parents:
2
diff
changeset
|
13 make_option("--result",type="character",default=NULL,help="text file containing result of the meta-analysis"), |
e5a94bc69bd6
planemo upload for repository https://github.com/sblanck/smagexp/tree/master/smagexp_tools commit da1436252b5db4e90c39c95140558f0f93544160
sblanck
parents:
2
diff
changeset
|
14 make_option("--htmloutput",type="character",default=NULL,help="Output html report"), |
e5a94bc69bd6
planemo upload for repository https://github.com/sblanck/smagexp/tree/master/smagexp_tools commit da1436252b5db4e90c39c95140558f0f93544160
sblanck
parents:
2
diff
changeset
|
15 make_option("--htmloutputpath",type="character",default="NULL",help="Path of output html report"), |
e5a94bc69bd6
planemo upload for repository https://github.com/sblanck/smagexp/tree/master/smagexp_tools commit da1436252b5db4e90c39c95140558f0f93544160
sblanck
parents:
2
diff
changeset
|
16 make_option("--htmltemplate",type="character",default=NULL,help="html template)") |
e5a94bc69bd6
planemo upload for repository https://github.com/sblanck/smagexp/tree/master/smagexp_tools commit da1436252b5db4e90c39c95140558f0f93544160
sblanck
parents:
2
diff
changeset
|
17 ); |
e5a94bc69bd6
planemo upload for repository https://github.com/sblanck/smagexp/tree/master/smagexp_tools commit da1436252b5db4e90c39c95140558f0f93544160
sblanck
parents:
2
diff
changeset
|
18 |
e5a94bc69bd6
planemo upload for repository https://github.com/sblanck/smagexp/tree/master/smagexp_tools commit da1436252b5db4e90c39c95140558f0f93544160
sblanck
parents:
2
diff
changeset
|
19 opt_parser = OptionParser(option_list=option_list); |
e5a94bc69bd6
planemo upload for repository https://github.com/sblanck/smagexp/tree/master/smagexp_tools commit da1436252b5db4e90c39c95140558f0f93544160
sblanck
parents:
2
diff
changeset
|
20 opt = parse_args(opt_parser); |
e5a94bc69bd6
planemo upload for repository https://github.com/sblanck/smagexp/tree/master/smagexp_tools commit da1436252b5db4e90c39c95140558f0f93544160
sblanck
parents:
2
diff
changeset
|
21 |
e5a94bc69bd6
planemo upload for repository https://github.com/sblanck/smagexp/tree/master/smagexp_tools commit da1436252b5db4e90c39c95140558f0f93544160
sblanck
parents:
2
diff
changeset
|
22 if(is.null(opt$input)){ |
e5a94bc69bd6
planemo upload for repository https://github.com/sblanck/smagexp/tree/master/smagexp_tools commit da1436252b5db4e90c39c95140558f0f93544160
sblanck
parents:
2
diff
changeset
|
23 print_help(opt_parser) |
e5a94bc69bd6
planemo upload for repository https://github.com/sblanck/smagexp/tree/master/smagexp_tools commit da1436252b5db4e90c39c95140558f0f93544160
sblanck
parents:
2
diff
changeset
|
24 stop("input required.", call.=FALSE) |
e5a94bc69bd6
planemo upload for repository https://github.com/sblanck/smagexp/tree/master/smagexp_tools commit da1436252b5db4e90c39c95140558f0f93544160
sblanck
parents:
2
diff
changeset
|
25 } |
e5a94bc69bd6
planemo upload for repository https://github.com/sblanck/smagexp/tree/master/smagexp_tools commit da1436252b5db4e90c39c95140558f0f93544160
sblanck
parents:
2
diff
changeset
|
26 |
e5a94bc69bd6
planemo upload for repository https://github.com/sblanck/smagexp/tree/master/smagexp_tools commit da1436252b5db4e90c39c95140558f0f93544160
sblanck
parents:
2
diff
changeset
|
27 #loading libraries |
e5a94bc69bd6
planemo upload for repository https://github.com/sblanck/smagexp/tree/master/smagexp_tools commit da1436252b5db4e90c39c95140558f0f93544160
sblanck
parents:
2
diff
changeset
|
28 |
e5a94bc69bd6
planemo upload for repository https://github.com/sblanck/smagexp/tree/master/smagexp_tools commit da1436252b5db4e90c39c95140558f0f93544160
sblanck
parents:
2
diff
changeset
|
29 suppressPackageStartupMessages(require(metaMA)) |
e5a94bc69bd6
planemo upload for repository https://github.com/sblanck/smagexp/tree/master/smagexp_tools commit da1436252b5db4e90c39c95140558f0f93544160
sblanck
parents:
2
diff
changeset
|
30 suppressPackageStartupMessages(require(affy)) |
e5a94bc69bd6
planemo upload for repository https://github.com/sblanck/smagexp/tree/master/smagexp_tools commit da1436252b5db4e90c39c95140558f0f93544160
sblanck
parents:
2
diff
changeset
|
31 suppressPackageStartupMessages(require(annaffy)) |
e5a94bc69bd6
planemo upload for repository https://github.com/sblanck/smagexp/tree/master/smagexp_tools commit da1436252b5db4e90c39c95140558f0f93544160
sblanck
parents:
2
diff
changeset
|
32 suppressPackageStartupMessages(require(VennDiagram)) |
e5a94bc69bd6
planemo upload for repository https://github.com/sblanck/smagexp/tree/master/smagexp_tools commit da1436252b5db4e90c39c95140558f0f93544160
sblanck
parents:
2
diff
changeset
|
33 suppressPackageStartupMessages(require(GEOquery)) |
e5a94bc69bd6
planemo upload for repository https://github.com/sblanck/smagexp/tree/master/smagexp_tools commit da1436252b5db4e90c39c95140558f0f93544160
sblanck
parents:
2
diff
changeset
|
34 |
e5a94bc69bd6
planemo upload for repository https://github.com/sblanck/smagexp/tree/master/smagexp_tools commit da1436252b5db4e90c39c95140558f0f93544160
sblanck
parents:
2
diff
changeset
|
35 listInput <- trimws( unlist( strsplit(trimws(opt$input), ",") ) ) |
e5a94bc69bd6
planemo upload for repository https://github.com/sblanck/smagexp/tree/master/smagexp_tools commit da1436252b5db4e90c39c95140558f0f93544160
sblanck
parents:
2
diff
changeset
|
36 |
e5a94bc69bd6
planemo upload for repository https://github.com/sblanck/smagexp/tree/master/smagexp_tools commit da1436252b5db4e90c39c95140558f0f93544160
sblanck
parents:
2
diff
changeset
|
37 listfiles=vector() |
e5a94bc69bd6
planemo upload for repository https://github.com/sblanck/smagexp/tree/master/smagexp_tools commit da1436252b5db4e90c39c95140558f0f93544160
sblanck
parents:
2
diff
changeset
|
38 listfilenames=vector() |
e5a94bc69bd6
planemo upload for repository https://github.com/sblanck/smagexp/tree/master/smagexp_tools commit da1436252b5db4e90c39c95140558f0f93544160
sblanck
parents:
2
diff
changeset
|
39 |
e5a94bc69bd6
planemo upload for repository https://github.com/sblanck/smagexp/tree/master/smagexp_tools commit da1436252b5db4e90c39c95140558f0f93544160
sblanck
parents:
2
diff
changeset
|
40 for (i in 1:length(listInput)) |
e5a94bc69bd6
planemo upload for repository https://github.com/sblanck/smagexp/tree/master/smagexp_tools commit da1436252b5db4e90c39c95140558f0f93544160
sblanck
parents:
2
diff
changeset
|
41 { |
e5a94bc69bd6
planemo upload for repository https://github.com/sblanck/smagexp/tree/master/smagexp_tools commit da1436252b5db4e90c39c95140558f0f93544160
sblanck
parents:
2
diff
changeset
|
42 inputFileInfo <- unlist( strsplit( listInput[i], ';' ) ) |
e5a94bc69bd6
planemo upload for repository https://github.com/sblanck/smagexp/tree/master/smagexp_tools commit da1436252b5db4e90c39c95140558f0f93544160
sblanck
parents:
2
diff
changeset
|
43 listfiles=c(listfiles,inputFileInfo[1]) |
e5a94bc69bd6
planemo upload for repository https://github.com/sblanck/smagexp/tree/master/smagexp_tools commit da1436252b5db4e90c39c95140558f0f93544160
sblanck
parents:
2
diff
changeset
|
44 listfilenames=c(listfilenames,inputFileInfo[2]) |
e5a94bc69bd6
planemo upload for repository https://github.com/sblanck/smagexp/tree/master/smagexp_tools commit da1436252b5db4e90c39c95140558f0f93544160
sblanck
parents:
2
diff
changeset
|
45 } |
e5a94bc69bd6
planemo upload for repository https://github.com/sblanck/smagexp/tree/master/smagexp_tools commit da1436252b5db4e90c39c95140558f0f93544160
sblanck
parents:
2
diff
changeset
|
46 |
2 | 47 cargs <- commandArgs() |
48 cargs <- cargs[(which(cargs == "--args")+1):length(cargs)] | |
49 nbargs=length(cargs) | |
50 listfiles=vector() | |
51 listfilenames=vector() | |
52 for (i in seq(1,nbargs-6,2)) { | |
53 listfiles=c(listfiles,cargs[[i]]) | |
54 listfilenames=c(listfilenames,cargs[[i+1]]) | |
55 } | |
56 #mod<-cargs[[length(cargs) - 6]] | |
14
e5a94bc69bd6
planemo upload for repository https://github.com/sblanck/smagexp/tree/master/smagexp_tools commit da1436252b5db4e90c39c95140558f0f93544160
sblanck
parents:
2
diff
changeset
|
57 outputfile <- opt$result |
e5a94bc69bd6
planemo upload for repository https://github.com/sblanck/smagexp/tree/master/smagexp_tools commit da1436252b5db4e90c39c95140558f0f93544160
sblanck
parents:
2
diff
changeset
|
58 result.html = opt$htmloutput |
e5a94bc69bd6
planemo upload for repository https://github.com/sblanck/smagexp/tree/master/smagexp_tools commit da1436252b5db4e90c39c95140558f0f93544160
sblanck
parents:
2
diff
changeset
|
59 html.files.path=opt$htmloutputpath |
e5a94bc69bd6
planemo upload for repository https://github.com/sblanck/smagexp/tree/master/smagexp_tools commit da1436252b5db4e90c39c95140558f0f93544160
sblanck
parents:
2
diff
changeset
|
60 result.template=opt$htmltemplate |
2 | 61 |
62 alpha=0.05 | |
63 | |
64 #print(comparison) | |
65 | |
66 listData=lapply(listfiles,read.table) | |
67 orderData=lapply(listData, function(x) x[order(x[1]), ]) | |
68 rawpval=lapply(orderData,function(x) x[6]) | |
69 rawpval=lapply(rawpval, function(x) as.numeric(unlist(x))) | |
70 | |
71 DE=list() | |
72 DE=lapply(orderData, function(x) ifelse(x[7]<=0.05,1,0)) | |
73 | |
74 FC=list() | |
75 FC=lapply(orderData, function(x) x[3]) | |
76 | |
77 DE=as.data.frame(DE) | |
78 colnames(DE)=listfilenames | |
79 FC=as.data.frame(FC) | |
80 colnames(FC)=listfilenames | |
81 # the comparison must only have two values and the conds must | |
82 # be a vector from those values, at least one of each. | |
83 | |
84 #if (length(comparison) != 2) { | |
85 # stop("Comparison type must be a tuple: ", cargs[length(cargs) - 8]) | |
86 #} | |
87 | |
88 sink("/dev/null") | |
89 dir.create(html.files.path, recursive=TRUE) | |
90 #library(DESeq) | |
91 #library(HTSFilter) | |
92 | |
93 #DE=list() | |
94 #FC=list() | |
95 #i=1 | |
96 | |
97 # Open the html output file | |
98 #file.conn = file(diag.html, open="w") | |
99 | |
100 #writeLines( c("<html><body>"), file.conn) | |
101 | |
102 # Perform deseq analysis on each study | |
103 #for(i in 1:length(listfiles)) | |
104 #{ | |
105 # f=listfiles[i] | |
106 # fname=listfilenames[i] | |
107 # study_name=unlist(strsplit(fname,"[.]"))[1] | |
108 # print(paste0("study.name ",study_name)) | |
109 # d <- read.table(f, sep=" ", header=TRUE, row.names=1) | |
110 # conds<-sapply(strsplit(colnames(d),"[.]"),FUN=function(x) x[1]) | |
111 # if (length(unique(conds)) != 2) { | |
112 # warning(as.data.frame(strsplit(colnames(d),"[.]"))) | |
113 # stop("You can only have two columns types: ", paste(conds,collapse=" ")) | |
114 # } | |
115 # if (!identical(sort(comparison), sort(unique(conds)))) { | |
116 # stop("Column types must use the two names from Comparison type, and vice versa. Must have at least one of each in the Column types.\nColumn types: ", cargs[2], "\n", "Comparison type: ", cargs[3]) | |
117 # } | |
118 # if (length(d) != length(conds)) { | |
119 # stop("Number of total sample columns in counts file must correspond to the columns types field. E.g. if column types is 'kidney,kidney,liver,liver' then number of sample columns in counts file must be 4 as well.") | |
120 # } | |
121 # | |
122 # cds <- newCountDataSet(d, conds) | |
123 # cds <- estimateSizeFactors(cds) | |
124 # | |
125 # cdsBlind <- estimateDispersions( cds, method="blind" ) | |
126 # | |
127 # if (length(conds) != 2) { | |
128 # cds <- estimateDispersions( cds ) | |
129 # norep = FALSE | |
130 # } | |
131 # | |
132 # if (length(conds) == 2) { | |
133 # cds <- estimateDispersions( cds, method=method, sharingMode=mod, fitType="parametric" ) | |
134 # norep = TRUE | |
135 # } | |
136 # | |
137 # filter<-HTSFilter(cds, plot=FALSE) | |
138 # cds.filter<-filter$filteredData | |
139 # on.index<-which(filter$on==1) | |
140 # | |
141 # res<-as.data.frame(matrix(NA,nrow=nrow(cds),ncol=ncol(cds))) | |
142 # nbT <- nbinomTest(cds.filter, comparison[1], comparison[2]) | |
143 # colnames(res)<-colnames(nbT) | |
144 # res[on.index,]<-nbT | |
145 # #write.table(res[order(res$padj), ], file=outputfile, quote=FALSE, row.names=FALSE, sep="\t") | |
146 # | |
147 # | |
148 # temp.pval.plot = file.path( html.files.path, paste("PvalHist",i,".png",sep="")) | |
149 # png( temp.pval.plot, width=500, height=500 ) | |
150 # hist(res$pval, breaks=100, col="skyblue", border="slateblue", main="") | |
151 # dev.off() | |
152 # | |
153 # writeLines( c("<h2>P-value histogram for ",study_name,"</h2>"), file.conn) | |
154 # writeLines( c("<img src='PvalHist",i,".png'><br/><br/>"), file.conn) | |
155 # | |
156 # #on enregistre la p-value | |
157 # rawpval[[study_name]]<-res$pval | |
158 # DE[[study_name]]<-ifelse(res$padj<=alpha,1,0) | |
159 # FC[[study_name]]<-res$log2FoldChange | |
160 # | |
161 # i=i+1 | |
162 #} | |
163 | |
164 | |
165 # combinations | |
166 library(metaRNASeq) | |
167 fishcomb<-fishercomb(rawpval, BHth=alpha) | |
168 warning(length(rawpval)) | |
169 invnormcomb<-invnorm(rawpval, nrep=c(8,8), BHth=alpha) | |
170 #DE[["fishercomb"]]<-ifelse(fishcomb$adjpval<=alpha,1,0) | |
171 #DE[["invnormcomb"]]<-ifelse(invnormcomb$adjpval<=alpha,1,0) | |
172 | |
173 signsFC<-mapply(FC,FUN=function(x) sign(x)) | |
174 sumsigns<-apply(signsFC,1,sum) | |
175 commonsgnFC<-ifelse(abs(sumsigns)==dim(signsFC)[2],sign(sumsigns),0) | |
176 | |
177 DEresults <- data.frame(DE=DE,"DE.fishercomb"=ifelse(fishcomb$adjpval<=alpha,1,0),"DE.invnorm"=ifelse(invnormcomb$adjpval<=alpha,1,0)) | |
178 | |
179 unionDE <- unique(c(fishcomb$DEindices,invnormcomb$DEindices)) | |
180 FC.selecDE <- data.frame(DEresults[unionDE,],FC[unionDE,],signFC=commonsgnFC[unionDE]) | |
181 keepDE <- FC.selecDE[which(abs(FC.selecDE$signFC)==1),] | |
182 | |
183 fishcomb_de <- rownames(keepDE)[which(keepDE[,"DE.fishercomb"]==1)] | |
184 invnorm_de <- rownames(keepDE)[which(keepDE[,"DE.invnorm"]==1)] | |
185 indstudy_de = list() | |
186 for (i in 1:length(listfiles)) { | |
187 currentIndstudy_de = rownames(keepDE)[which(keepDE[,i]==1)] | |
188 indstudy_de[[listfilenames[i]]]=currentIndstudy_de | |
189 } | |
190 | |
191 IDDIRRfishcomb=IDD.IRR(fishcomb_de,indstudy_de) | |
192 IDDIRRinvnorm=IDD.IRR(invnorm_de,indstudy_de) | |
193 | |
194 #conflits<-data.frame(ID=listData[[1]][rownames(DEresults),1],Fishercomb=DEresults[["DE.fishercomb"]],Invnormcomb=DEresults[["DE.invnorm"]],sign=commonsgnFC) | |
195 conflits<-data.frame(ID=listData[[1]][rownames(DEresults),1],DE=DEresults,FC=FC,signFC=commonsgnFC) | |
196 #write DE outputfile | |
197 write.table(conflits, outputfile,sep="\t",,row.names=FALSE) | |
198 library(VennDiagram) | |
199 DE_num=apply(DEresults, 2, FUN=function(x) which(x==1)) | |
200 venn.plot<-venn.diagram(x=as.list(DE_num),filename=NULL, col="black", fill=1:length(DE_num)+1,alpha=0.6) | |
201 temp.venn.plot = file.path( html.files.path, paste("venn.png")) | |
202 png(temp.venn.plot,width=500,height=500) | |
203 grid.draw(venn.plot) | |
204 dev.off() | |
205 | |
206 library(jsonlite) | |
207 matrixConflits=as.matrix(conflits) | |
208 datajson=toJSON(matrixConflits,pretty = TRUE) | |
209 summaryFishcombjson=toJSON(as.matrix(t(IDDIRRfishcomb)),pretty = TRUE) | |
210 summaryinvnormjson=toJSON(as.matrix(t(IDDIRRinvnorm)),pretty = TRUE) | |
211 | |
212 | |
213 #vennsplit=strsplit(result.venn,split="/")[[1]] | |
214 #venn=paste0("./",vennsplit[length(vennsplit)]) | |
215 | |
216 | |
217 vennFilename="venn.png" | |
218 vennFile=file.path(html.files.path,vennFilename) | |
219 htmlfile=readChar(result.template, file.info(result.template)$size) | |
220 htmlfile=gsub(x=htmlfile,pattern = "###DATAJSON###",replacement = datajson, fixed = TRUE) | |
221 htmlfile=gsub(x=htmlfile,pattern = "###FISHSUMMARYJSON###",replacement = summaryFishcombjson, fixed = TRUE) | |
222 htmlfile=gsub(x=htmlfile,pattern = "###INVSUMMARYJSON###",replacement = summaryinvnormjson, fixed = TRUE) | |
223 htmlfile=gsub(x=htmlfile,pattern = "###VENN###",replacement = vennFilename, fixed = TRUE) | |
224 write(htmlfile,result.html) | |
225 | |
226 #library(VennDiagram) | |
227 #flog.threshold(ERROR) | |
228 # | |
229 ##venn.plot<-venn.diagram(x = c(res[c(1:(length(res)-3))],meta=list(res$Meta)),filename = v, col = "black", fill = c(1:(length(res)-2)), margin=0.05, alpha = 0.6,imagetype = "png") | |
230 #dir.create(result.path, showWarnings = TRUE, recursive = FALSE) | |
231 # | |
232 #showVenn<-function(liste,file) | |
233 #{ | |
234 # venn.plot<-venn.diagram(x = liste, | |
235 # filename = vennFilename, col = "black", | |
236 # fill = 1:length(liste)+1, | |
237 # margin=0.05, alpha = 0.6,imagetype = "png") | |
238 ## png(file); | |
239 ## grid.draw(venn.plot); | |
240 ## dev.off(); | |
241 # | |
242 #} | |
243 # | |
244 #l=list() | |
245 #for(i in 1:length(esets)) | |
246 #{ | |
247 # l[[paste("study",i,sep="")]]<-res[[i]] | |
248 #} | |
249 #l[["Meta"]]=res[[length(res)-1]] | |
250 #showVenn(l,vennFile) | |
251 #file.copy(vennFilename,result.path) | |
252 | |
253 | |
254 #writeLines( c("<h2>Venn Plot</h2>"), file.conn) | |
255 #writeLines( c("<img src='venn.png'><br/><br/>"), file.conn) | |
256 #writeLines( c("</body></html>"), file.conn) | |
257 #close(file.conn) | |
258 #print("passe6") | |
259 #sink(NULL) |