annotate Analyse.R @ 5:5d25fe2fcab2 draft

use optparse
author sblanck
date Wed, 12 Apr 2017 03:45:10 -0400
parents 93451f832736
children a2b8c2aabeb0
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
2
93451f832736 Uploaded
sblanck
parents:
diff changeset
1 library(Biobase)
93451f832736 Uploaded
sblanck
parents:
diff changeset
2 library(GEOquery)
93451f832736 Uploaded
sblanck
parents:
diff changeset
3 library(GEOmetadb)
93451f832736 Uploaded
sblanck
parents:
diff changeset
4 library(limma)
93451f832736 Uploaded
sblanck
parents:
diff changeset
5 library(jsonlite)
93451f832736 Uploaded
sblanck
parents:
diff changeset
6 library(affy)
93451f832736 Uploaded
sblanck
parents:
diff changeset
7 library(dplyr)
93451f832736 Uploaded
sblanck
parents:
diff changeset
8
93451f832736 Uploaded
sblanck
parents:
diff changeset
9 cargs<-commandArgs()
93451f832736 Uploaded
sblanck
parents:
diff changeset
10 cargs<-cargs[(which(cargs=="--args")+1):length(cargs)]
93451f832736 Uploaded
sblanck
parents:
diff changeset
11 nbargs=length(cargs)
93451f832736 Uploaded
sblanck
parents:
diff changeset
12
93451f832736 Uploaded
sblanck
parents:
diff changeset
13 load(cargs[[nbargs-13]])
93451f832736 Uploaded
sblanck
parents:
diff changeset
14 targetFile=cargs[[nbargs-12]]
93451f832736 Uploaded
sblanck
parents:
diff changeset
15 condition1Name=cargs[[nbargs-11]]
93451f832736 Uploaded
sblanck
parents:
diff changeset
16 condition1=cargs[[nbargs-10]]
93451f832736 Uploaded
sblanck
parents:
diff changeset
17 condition2Name=cargs[[nbargs-9]]
93451f832736 Uploaded
sblanck
parents:
diff changeset
18 condition2=cargs[[nbargs-8]]
93451f832736 Uploaded
sblanck
parents:
diff changeset
19 nbresult=cargs[[nbargs-7]]
93451f832736 Uploaded
sblanck
parents:
diff changeset
20 result_export_eset=cargs[[nbargs-6]]
93451f832736 Uploaded
sblanck
parents:
diff changeset
21 result=cargs[[nbargs-5]]
93451f832736 Uploaded
sblanck
parents:
diff changeset
22 result.path=cargs[[nbargs-4]]
93451f832736 Uploaded
sblanck
parents:
diff changeset
23 result.tabular=cargs[[nbargs-3]]
93451f832736 Uploaded
sblanck
parents:
diff changeset
24 result.template=cargs[[nbargs-2]]
93451f832736 Uploaded
sblanck
parents:
diff changeset
25
93451f832736 Uploaded
sblanck
parents:
diff changeset
26 #file.copy(targetFile,"./targetFile.txt")
93451f832736 Uploaded
sblanck
parents:
diff changeset
27
93451f832736 Uploaded
sblanck
parents:
diff changeset
28 condition1_tmp <- strsplit(condition1,",")
93451f832736 Uploaded
sblanck
parents:
diff changeset
29 condition1 <-unlist(condition1_tmp)
93451f832736 Uploaded
sblanck
parents:
diff changeset
30
93451f832736 Uploaded
sblanck
parents:
diff changeset
31 condition2_tmp <- strsplit(condition2,",")
93451f832736 Uploaded
sblanck
parents:
diff changeset
32 condition2<-unlist(condition2_tmp)
93451f832736 Uploaded
sblanck
parents:
diff changeset
33
93451f832736 Uploaded
sblanck
parents:
diff changeset
34 conditions=c(condition1,condition2)
93451f832736 Uploaded
sblanck
parents:
diff changeset
35
93451f832736 Uploaded
sblanck
parents:
diff changeset
36 #nbresult=1000
93451f832736 Uploaded
sblanck
parents:
diff changeset
37 dir.create(result.path, showWarnings = TRUE, recursive = FALSE)
93451f832736 Uploaded
sblanck
parents:
diff changeset
38
93451f832736 Uploaded
sblanck
parents:
diff changeset
39 targets <- read.table(targetFile,sep="\t")
93451f832736 Uploaded
sblanck
parents:
diff changeset
40
93451f832736 Uploaded
sblanck
parents:
diff changeset
41 eset=eset[,which(rownames(eset@phenoData@data) %in% conditions)]
93451f832736 Uploaded
sblanck
parents:
diff changeset
42 #condition1Name=make.names(condition1Name)
93451f832736 Uploaded
sblanck
parents:
diff changeset
43 #condition2Name=make.names(condition2Name)
93451f832736 Uploaded
sblanck
parents:
diff changeset
44 #condition1Name=gsub("_","",condition1Name)
93451f832736 Uploaded
sblanck
parents:
diff changeset
45 #condition2Name=gsub("_","",condition2Name)
93451f832736 Uploaded
sblanck
parents:
diff changeset
46 #condition1Name
93451f832736 Uploaded
sblanck
parents:
diff changeset
47 #condition2Name
93451f832736 Uploaded
sblanck
parents:
diff changeset
48
93451f832736 Uploaded
sblanck
parents:
diff changeset
49
93451f832736 Uploaded
sblanck
parents:
diff changeset
50 eset@phenoData@data$source_name_ch1=""
93451f832736 Uploaded
sblanck
parents:
diff changeset
51 eset@phenoData@data$source_name_ch1[which(rownames(eset@phenoData@data) %in% condition1)]=condition1Name
93451f832736 Uploaded
sblanck
parents:
diff changeset
52 eset@phenoData@data$source_name_ch1[which(rownames(eset@phenoData@data) %in% condition2)]=condition2Name
93451f832736 Uploaded
sblanck
parents:
diff changeset
53 #condition1Name
93451f832736 Uploaded
sblanck
parents:
diff changeset
54 #condition2Name
93451f832736 Uploaded
sblanck
parents:
diff changeset
55
93451f832736 Uploaded
sblanck
parents:
diff changeset
56 condNames=paste0("G",as.numeric(as.character(pData(eset)["source_name_ch1"][,1])!=condition1Name))
93451f832736 Uploaded
sblanck
parents:
diff changeset
57 #condNames=make.names(targets[,2])
93451f832736 Uploaded
sblanck
parents:
diff changeset
58 #condNames=gsub("_","",condNames)
93451f832736 Uploaded
sblanck
parents:
diff changeset
59
93451f832736 Uploaded
sblanck
parents:
diff changeset
60 f <- as.factor(condNames)
93451f832736 Uploaded
sblanck
parents:
diff changeset
61 #eset$description <- factors
93451f832736 Uploaded
sblanck
parents:
diff changeset
62 design <- model.matrix(~ 0+f)
93451f832736 Uploaded
sblanck
parents:
diff changeset
63 design
93451f832736 Uploaded
sblanck
parents:
diff changeset
64
93451f832736 Uploaded
sblanck
parents:
diff changeset
65 colnames(design) <- levels(f)
93451f832736 Uploaded
sblanck
parents:
diff changeset
66 colnames(design)
93451f832736 Uploaded
sblanck
parents:
diff changeset
67 fit <- lmFit(eset, design)
93451f832736 Uploaded
sblanck
parents:
diff changeset
68 fit
93451f832736 Uploaded
sblanck
parents:
diff changeset
69 #cont.matrix <- makeContrasts(C1=paste0(condition1Name,"-",condition2Name), levels=design)
93451f832736 Uploaded
sblanck
parents:
diff changeset
70 cont.matrix <- makeContrasts(G0-G1, levels=design)
93451f832736 Uploaded
sblanck
parents:
diff changeset
71 cont.matrix
93451f832736 Uploaded
sblanck
parents:
diff changeset
72 fit2 <- contrasts.fit(fit, cont.matrix)
93451f832736 Uploaded
sblanck
parents:
diff changeset
73 fit2 <- eBayes(fit2)
93451f832736 Uploaded
sblanck
parents:
diff changeset
74 fit2
93451f832736 Uploaded
sblanck
parents:
diff changeset
75 tT <- topTable(fit2, adjust="fdr", sort.by="B", number=nbresult)
93451f832736 Uploaded
sblanck
parents:
diff changeset
76
93451f832736 Uploaded
sblanck
parents:
diff changeset
77 #head(exprs(eset))
93451f832736 Uploaded
sblanck
parents:
diff changeset
78
93451f832736 Uploaded
sblanck
parents:
diff changeset
79 gpl <- annotation(eset)
93451f832736 Uploaded
sblanck
parents:
diff changeset
80 if (substr(x = gpl,1,3)!="GPL"){
93451f832736 Uploaded
sblanck
parents:
diff changeset
81 #if the annotation info does not start with "GPL" we retrieve the correspondin GPL annotation
93451f832736 Uploaded
sblanck
parents:
diff changeset
82 mapping=read.csv("/galaxy-tools/transcriptomics/db/gplToBioc.csv",stringsAsFactors=FALSE)
93451f832736 Uploaded
sblanck
parents:
diff changeset
83 gpl=mapping[which(mapping$bioc_package==annotation(eset)),]$gpl
93451f832736 Uploaded
sblanck
parents:
diff changeset
84 gpl=gpl[1]
93451f832736 Uploaded
sblanck
parents:
diff changeset
85
93451f832736 Uploaded
sblanck
parents:
diff changeset
86 annotation(eset)=gpl
93451f832736 Uploaded
sblanck
parents:
diff changeset
87
93451f832736 Uploaded
sblanck
parents:
diff changeset
88 platf <- getGEO(gpl, AnnotGPL=TRUE)
93451f832736 Uploaded
sblanck
parents:
diff changeset
89 ncbifd <- data.frame(attr(dataTable(platf), "table"))
93451f832736 Uploaded
sblanck
parents:
diff changeset
90
93451f832736 Uploaded
sblanck
parents:
diff changeset
91 fData(eset)["ID"]=row.names(fData(eset))
93451f832736 Uploaded
sblanck
parents:
diff changeset
92 fData(eset)=merge(x=fData(eset),y=ncbifd,all.x = TRUE, by = "ID")
93451f832736 Uploaded
sblanck
parents:
diff changeset
93 colnames(fData(eset))[4]="ENTREZ_GENE_ID"
93451f832736 Uploaded
sblanck
parents:
diff changeset
94 row.names(fData(eset))=fData(eset)[,"ID"]
93451f832736 Uploaded
sblanck
parents:
diff changeset
95
93451f832736 Uploaded
sblanck
parents:
diff changeset
96 tT <- add_rownames(tT, "ID")
93451f832736 Uploaded
sblanck
parents:
diff changeset
97
93451f832736 Uploaded
sblanck
parents:
diff changeset
98 } else {
93451f832736 Uploaded
sblanck
parents:
diff changeset
99
93451f832736 Uploaded
sblanck
parents:
diff changeset
100 gpl <- annotation(eset)
93451f832736 Uploaded
sblanck
parents:
diff changeset
101 platf <- getGEO(gpl, AnnotGPL=TRUE)
93451f832736 Uploaded
sblanck
parents:
diff changeset
102 ncbifd <- data.frame(attr(dataTable(platf), "table"))
93451f832736 Uploaded
sblanck
parents:
diff changeset
103
93451f832736 Uploaded
sblanck
parents:
diff changeset
104 if (!("ID" %in% colnames(tT))){
93451f832736 Uploaded
sblanck
parents:
diff changeset
105 tT <- add_rownames(tT, "ID")}
93451f832736 Uploaded
sblanck
parents:
diff changeset
106
93451f832736 Uploaded
sblanck
parents:
diff changeset
107 }
93451f832736 Uploaded
sblanck
parents:
diff changeset
108
93451f832736 Uploaded
sblanck
parents:
diff changeset
109 tT <- merge(tT, ncbifd, by="ID")
93451f832736 Uploaded
sblanck
parents:
diff changeset
110 tT <- tT[order(tT$P.Value), ]
93451f832736 Uploaded
sblanck
parents:
diff changeset
111 tT <- subset(tT, select=c("Platform_SPOTID","ID","adj.P.Val","P.Value","t","B","logFC","Gene.symbol","Gene.title","Gene.ID","Chromosome.annotation","GO.Function.ID"))
93451f832736 Uploaded
sblanck
parents:
diff changeset
112 tT<-format(tT, digits=2, nsmall=2)
93451f832736 Uploaded
sblanck
parents:
diff changeset
113 head(tT)
93451f832736 Uploaded
sblanck
parents:
diff changeset
114 colnames(tT)=gsub(pattern = "\\.",replacement = "_",colnames(tT))
93451f832736 Uploaded
sblanck
parents:
diff changeset
115 matrixtT=as.matrix(tT)
93451f832736 Uploaded
sblanck
parents:
diff changeset
116 datajson=toJSON(matrixtT,pretty = TRUE)
93451f832736 Uploaded
sblanck
parents:
diff changeset
117
93451f832736 Uploaded
sblanck
parents:
diff changeset
118 htmlfile=readChar(result.template, file.info(result.template)$size)
93451f832736 Uploaded
sblanck
parents:
diff changeset
119 htmlfile=gsub(x=htmlfile,pattern = "###DATAJSON###",replacement = datajson, fixed = TRUE)
93451f832736 Uploaded
sblanck
parents:
diff changeset
120 dir.create(result.path, showWarnings = TRUE, recursive = FALSE)
93451f832736 Uploaded
sblanck
parents:
diff changeset
121
93451f832736 Uploaded
sblanck
parents:
diff changeset
122 boxplot="boxplot.png"
93451f832736 Uploaded
sblanck
parents:
diff changeset
123 png(boxplot,width=800,height = 400)
93451f832736 Uploaded
sblanck
parents:
diff changeset
124 par(mar=c(7,5,1,1))
93451f832736 Uploaded
sblanck
parents:
diff changeset
125 boxplot(exprs(eset),las=2,outline=FALSE)
93451f832736 Uploaded
sblanck
parents:
diff changeset
126 dev.off()
93451f832736 Uploaded
sblanck
parents:
diff changeset
127 htmlfile=gsub(x=htmlfile,pattern = "###BOXPLOT###",replacement = boxplot, fixed = TRUE)
93451f832736 Uploaded
sblanck
parents:
diff changeset
128 file.copy(boxplot,result.path)
93451f832736 Uploaded
sblanck
parents:
diff changeset
129
93451f832736 Uploaded
sblanck
parents:
diff changeset
130 histopvalue="histopvalue.png"
93451f832736 Uploaded
sblanck
parents:
diff changeset
131
93451f832736 Uploaded
sblanck
parents:
diff changeset
132 png(histopvalue,width=800,height = 400)
93451f832736 Uploaded
sblanck
parents:
diff changeset
133 par(mfrow=c(1,2))
93451f832736 Uploaded
sblanck
parents:
diff changeset
134 hist(fit2$F.p.value,nclass=100,main="Histogram of p-values", xlab="p-values",ylab="frequency")
93451f832736 Uploaded
sblanck
parents:
diff changeset
135 volcanoplot(fit2,coef=1,highlight=10,main="Volcano plot")
93451f832736 Uploaded
sblanck
parents:
diff changeset
136 htmlfile=gsub(x=htmlfile,pattern = "###HIST###",replacement = histopvalue, fixed = TRUE)
93451f832736 Uploaded
sblanck
parents:
diff changeset
137 dev.off()
93451f832736 Uploaded
sblanck
parents:
diff changeset
138 file.copy(histopvalue,result.path)
93451f832736 Uploaded
sblanck
parents:
diff changeset
139
93451f832736 Uploaded
sblanck
parents:
diff changeset
140 #write.table(tolower(c(condition1Name,condition2Name)),quote = FALSE,col.names = FALSE, row.names=FALSE,file=result_export_conditions)
93451f832736 Uploaded
sblanck
parents:
diff changeset
141 saveConditions=c(condition1Name,condition2Name)
93451f832736 Uploaded
sblanck
parents:
diff changeset
142 save(eset,saveConditions,file=result_export_eset)
93451f832736 Uploaded
sblanck
parents:
diff changeset
143 write.table(x=tT[,-1],file=result.tabular,quote=FALSE,row.names=FALSE,col.names=TRUE,sep="\t")
93451f832736 Uploaded
sblanck
parents:
diff changeset
144 write(htmlfile,result)
93451f832736 Uploaded
sblanck
parents:
diff changeset
145