annotate GO-enrich.R @ 6:5e16cec55146 draft

planemo upload commit 2da0aec067fd35a8ec102ce27ec4bac8f54b1c30-dirty
author proteore
date Thu, 29 Mar 2018 11:43:28 -0400
parents 8a91f58782df
children 4609346d8108
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
0
bd052861852b planemo upload commit ffa3be72b850aecbfbd636de815967c06a8f643f-dirty
proteore
parents:
diff changeset
1 library(clusterProfiler)
bd052861852b planemo upload commit ffa3be72b850aecbfbd636de815967c06a8f643f-dirty
proteore
parents:
diff changeset
2
bd052861852b planemo upload commit ffa3be72b850aecbfbd636de815967c06a8f643f-dirty
proteore
parents:
diff changeset
3 #library(org.Sc.sgd.db)
bd052861852b planemo upload commit ffa3be72b850aecbfbd636de815967c06a8f643f-dirty
proteore
parents:
diff changeset
4 library(org.Hs.eg.db)
bd052861852b planemo upload commit ffa3be72b850aecbfbd636de815967c06a8f643f-dirty
proteore
parents:
diff changeset
5 library(org.Mm.eg.db)
bd052861852b planemo upload commit ffa3be72b850aecbfbd636de815967c06a8f643f-dirty
proteore
parents:
diff changeset
6
4
710414ebb6db planemo upload commit 0a42c3d46be24406936ca0036bb436e6e2524fd2-dirty
proteore
parents: 0
diff changeset
7 # Read file and return file content as data.frame
0
bd052861852b planemo upload commit ffa3be72b850aecbfbd636de815967c06a8f643f-dirty
proteore
parents:
diff changeset
8 readfile = function(filename, header) {
bd052861852b planemo upload commit ffa3be72b850aecbfbd636de815967c06a8f643f-dirty
proteore
parents:
diff changeset
9 if (header == "true") {
4
710414ebb6db planemo upload commit 0a42c3d46be24406936ca0036bb436e6e2524fd2-dirty
proteore
parents: 0
diff changeset
10 # Read only first line of the file as header:
710414ebb6db planemo upload commit 0a42c3d46be24406936ca0036bb436e6e2524fd2-dirty
proteore
parents: 0
diff changeset
11 headers <- read.table(filename, nrows = 1, header = FALSE, sep = "\t", stringsAsFactors = FALSE, fill = TRUE, na.strings=c("", "NA"), blank.lines.skip = TRUE, quote = "")
710414ebb6db planemo upload commit 0a42c3d46be24406936ca0036bb436e6e2524fd2-dirty
proteore
parents: 0
diff changeset
12 #Read the data of the files (skipping the first row)
710414ebb6db planemo upload commit 0a42c3d46be24406936ca0036bb436e6e2524fd2-dirty
proteore
parents: 0
diff changeset
13 file <- read.table(filename, skip = 1, header = FALSE, sep = "\t", stringsAsFactors = FALSE, fill = TRUE, na.strings=c("", "NA"), blank.lines.skip = TRUE, quote = "")
0
bd052861852b planemo upload commit ffa3be72b850aecbfbd636de815967c06a8f643f-dirty
proteore
parents:
diff changeset
14 # Remove empty rows
bd052861852b planemo upload commit ffa3be72b850aecbfbd636de815967c06a8f643f-dirty
proteore
parents:
diff changeset
15 file <- file[!apply(is.na(file) | file == "", 1, all), , drop=FALSE]
4
710414ebb6db planemo upload commit 0a42c3d46be24406936ca0036bb436e6e2524fd2-dirty
proteore
parents: 0
diff changeset
16 #And assign the header to the data
0
bd052861852b planemo upload commit ffa3be72b850aecbfbd636de815967c06a8f643f-dirty
proteore
parents:
diff changeset
17 names(file) <- headers
bd052861852b planemo upload commit ffa3be72b850aecbfbd636de815967c06a8f643f-dirty
proteore
parents:
diff changeset
18 }
bd052861852b planemo upload commit ffa3be72b850aecbfbd636de815967c06a8f643f-dirty
proteore
parents:
diff changeset
19 else {
4
710414ebb6db planemo upload commit 0a42c3d46be24406936ca0036bb436e6e2524fd2-dirty
proteore
parents: 0
diff changeset
20 file <- read.table(filename, header = FALSE, sep = "\t", stringsAsFactors = FALSE, fill = TRUE, na.strings=c("", "NA"), blank.lines.skip = TRUE, quote = "")
710414ebb6db planemo upload commit 0a42c3d46be24406936ca0036bb436e6e2524fd2-dirty
proteore
parents: 0
diff changeset
21 # Remove empty rows
0
bd052861852b planemo upload commit ffa3be72b850aecbfbd636de815967c06a8f643f-dirty
proteore
parents:
diff changeset
22 file <- file[!apply(is.na(file) | file == "", 1, all), , drop=FALSE]
bd052861852b planemo upload commit ffa3be72b850aecbfbd636de815967c06a8f643f-dirty
proteore
parents:
diff changeset
23 }
bd052861852b planemo upload commit ffa3be72b850aecbfbd636de815967c06a8f643f-dirty
proteore
parents:
diff changeset
24 return(file)
bd052861852b planemo upload commit ffa3be72b850aecbfbd636de815967c06a8f643f-dirty
proteore
parents:
diff changeset
25 }
bd052861852b planemo upload commit ffa3be72b850aecbfbd636de815967c06a8f643f-dirty
proteore
parents:
diff changeset
26
bd052861852b planemo upload commit ffa3be72b850aecbfbd636de815967c06a8f643f-dirty
proteore
parents:
diff changeset
27 repartition.GO <- function(geneid, orgdb, ontology, level=3, readable=TRUE) {
bd052861852b planemo upload commit ffa3be72b850aecbfbd636de815967c06a8f643f-dirty
proteore
parents:
diff changeset
28 ggo<-groupGO(gene=geneid,
bd052861852b planemo upload commit ffa3be72b850aecbfbd636de815967c06a8f643f-dirty
proteore
parents:
diff changeset
29 OrgDb = orgdb,
bd052861852b planemo upload commit ffa3be72b850aecbfbd636de815967c06a8f643f-dirty
proteore
parents:
diff changeset
30 ont=ontology,
bd052861852b planemo upload commit ffa3be72b850aecbfbd636de815967c06a8f643f-dirty
proteore
parents:
diff changeset
31 level=level,
bd052861852b planemo upload commit ffa3be72b850aecbfbd636de815967c06a8f643f-dirty
proteore
parents:
diff changeset
32 readable=TRUE)
bd052861852b planemo upload commit ffa3be72b850aecbfbd636de815967c06a8f643f-dirty
proteore
parents:
diff changeset
33 name <- paste("GGO.", ontology, ".png", sep = "")
bd052861852b planemo upload commit ffa3be72b850aecbfbd636de815967c06a8f643f-dirty
proteore
parents:
diff changeset
34 png(name)
5
8a91f58782df planemo upload commit c5f2b4b085a9911d1e4cc8d11367dd0363e626ab-dirty
proteore
parents: 4
diff changeset
35 p <- barplot(ggo, showCategory=10)
0
bd052861852b planemo upload commit ffa3be72b850aecbfbd636de815967c06a8f643f-dirty
proteore
parents:
diff changeset
36 print(p)
bd052861852b planemo upload commit ffa3be72b850aecbfbd636de815967c06a8f643f-dirty
proteore
parents:
diff changeset
37 dev.off()
bd052861852b planemo upload commit ffa3be72b850aecbfbd636de815967c06a8f643f-dirty
proteore
parents:
diff changeset
38 return(ggo)
bd052861852b planemo upload commit ffa3be72b850aecbfbd636de815967c06a8f643f-dirty
proteore
parents:
diff changeset
39 }
bd052861852b planemo upload commit ffa3be72b850aecbfbd636de815967c06a8f643f-dirty
proteore
parents:
diff changeset
40
bd052861852b planemo upload commit ffa3be72b850aecbfbd636de815967c06a8f643f-dirty
proteore
parents:
diff changeset
41 # GO over-representation test
6
5e16cec55146 planemo upload commit 2da0aec067fd35a8ec102ce27ec4bac8f54b1c30-dirty
proteore
parents: 5
diff changeset
42 enrich.GO <- function(geneid, universe, orgdb, ontology, pval_cutoff, qval_cutoff) {
0
bd052861852b planemo upload commit ffa3be72b850aecbfbd636de815967c06a8f643f-dirty
proteore
parents:
diff changeset
43 ego<-enrichGO(gene=geneid,
6
5e16cec55146 planemo upload commit 2da0aec067fd35a8ec102ce27ec4bac8f54b1c30-dirty
proteore
parents: 5
diff changeset
44 universe=universe,
0
bd052861852b planemo upload commit ffa3be72b850aecbfbd636de815967c06a8f643f-dirty
proteore
parents:
diff changeset
45 OrgDb=orgdb,
bd052861852b planemo upload commit ffa3be72b850aecbfbd636de815967c06a8f643f-dirty
proteore
parents:
diff changeset
46 keytype="ENTREZID",
bd052861852b planemo upload commit ffa3be72b850aecbfbd636de815967c06a8f643f-dirty
proteore
parents:
diff changeset
47 ont=ontology,
bd052861852b planemo upload commit ffa3be72b850aecbfbd636de815967c06a8f643f-dirty
proteore
parents:
diff changeset
48 pAdjustMethod="BH",
bd052861852b planemo upload commit ffa3be72b850aecbfbd636de815967c06a8f643f-dirty
proteore
parents:
diff changeset
49 pvalueCutoff=pval_cutoff,
bd052861852b planemo upload commit ffa3be72b850aecbfbd636de815967c06a8f643f-dirty
proteore
parents:
diff changeset
50 qvalueCutoff=qval_cutoff,
bd052861852b planemo upload commit ffa3be72b850aecbfbd636de815967c06a8f643f-dirty
proteore
parents:
diff changeset
51 readable=TRUE)
6
5e16cec55146 planemo upload commit 2da0aec067fd35a8ec102ce27ec4bac8f54b1c30-dirty
proteore
parents: 5
diff changeset
52 # Plot bar & dot plots
0
bd052861852b planemo upload commit ffa3be72b850aecbfbd636de815967c06a8f643f-dirty
proteore
parents:
diff changeset
53 bar_name <- paste("EGO.", ontology, ".bar.png", sep = "")
bd052861852b planemo upload commit ffa3be72b850aecbfbd636de815967c06a8f643f-dirty
proteore
parents:
diff changeset
54 png(bar_name)
bd052861852b planemo upload commit ffa3be72b850aecbfbd636de815967c06a8f643f-dirty
proteore
parents:
diff changeset
55 p <- barplot(ego)
bd052861852b planemo upload commit ffa3be72b850aecbfbd636de815967c06a8f643f-dirty
proteore
parents:
diff changeset
56 print(p)
bd052861852b planemo upload commit ffa3be72b850aecbfbd636de815967c06a8f643f-dirty
proteore
parents:
diff changeset
57 dev.off()
bd052861852b planemo upload commit ffa3be72b850aecbfbd636de815967c06a8f643f-dirty
proteore
parents:
diff changeset
58 dot_name <- paste("EGO.", ontology, ".dot.png", sep = "")
bd052861852b planemo upload commit ffa3be72b850aecbfbd636de815967c06a8f643f-dirty
proteore
parents:
diff changeset
59 png(dot_name)
5
8a91f58782df planemo upload commit c5f2b4b085a9911d1e4cc8d11367dd0363e626ab-dirty
proteore
parents: 4
diff changeset
60 p <- dotplot(ego, showCategory=10)
0
bd052861852b planemo upload commit ffa3be72b850aecbfbd636de815967c06a8f643f-dirty
proteore
parents:
diff changeset
61 print(p)
bd052861852b planemo upload commit ffa3be72b850aecbfbd636de815967c06a8f643f-dirty
proteore
parents:
diff changeset
62 dev.off()
bd052861852b planemo upload commit ffa3be72b850aecbfbd636de815967c06a8f643f-dirty
proteore
parents:
diff changeset
63 return(ego)
bd052861852b planemo upload commit ffa3be72b850aecbfbd636de815967c06a8f643f-dirty
proteore
parents:
diff changeset
64 }
bd052861852b planemo upload commit ffa3be72b850aecbfbd636de815967c06a8f643f-dirty
proteore
parents:
diff changeset
65
bd052861852b planemo upload commit ffa3be72b850aecbfbd636de815967c06a8f643f-dirty
proteore
parents:
diff changeset
66 clusterProfiler = function() {
bd052861852b planemo upload commit ffa3be72b850aecbfbd636de815967c06a8f643f-dirty
proteore
parents:
diff changeset
67 args <- commandArgs(TRUE)
bd052861852b planemo upload commit ffa3be72b850aecbfbd636de815967c06a8f643f-dirty
proteore
parents:
diff changeset
68 if(length(args)<1) {
bd052861852b planemo upload commit ffa3be72b850aecbfbd636de815967c06a8f643f-dirty
proteore
parents:
diff changeset
69 args <- c("--help")
bd052861852b planemo upload commit ffa3be72b850aecbfbd636de815967c06a8f643f-dirty
proteore
parents:
diff changeset
70 }
bd052861852b planemo upload commit ffa3be72b850aecbfbd636de815967c06a8f643f-dirty
proteore
parents:
diff changeset
71
bd052861852b planemo upload commit ffa3be72b850aecbfbd636de815967c06a8f643f-dirty
proteore
parents:
diff changeset
72 # Help section
bd052861852b planemo upload commit ffa3be72b850aecbfbd636de815967c06a8f643f-dirty
proteore
parents:
diff changeset
73 if("--help" %in% args) {
bd052861852b planemo upload commit ffa3be72b850aecbfbd636de815967c06a8f643f-dirty
proteore
parents:
diff changeset
74 cat("clusterProfiler Enrichment Analysis
bd052861852b planemo upload commit ffa3be72b850aecbfbd636de815967c06a8f643f-dirty
proteore
parents:
diff changeset
75 Arguments:
bd052861852b planemo upload commit ffa3be72b850aecbfbd636de815967c06a8f643f-dirty
proteore
parents:
diff changeset
76 --input_type: type of input (list of id or filename)
bd052861852b planemo upload commit ffa3be72b850aecbfbd636de815967c06a8f643f-dirty
proteore
parents:
diff changeset
77 --input: input
6
5e16cec55146 planemo upload commit 2da0aec067fd35a8ec102ce27ec4bac8f54b1c30-dirty
proteore
parents: 5
diff changeset
78 --ncol: the column number which contains list of input IDs
0
bd052861852b planemo upload commit ffa3be72b850aecbfbd636de815967c06a8f643f-dirty
proteore
parents:
diff changeset
79 --header: true/false if your file contains a header
bd052861852b planemo upload commit ffa3be72b850aecbfbd636de815967c06a8f643f-dirty
proteore
parents:
diff changeset
80 --id_type: the type of input IDs (UniProt/EntrezID)
6
5e16cec55146 planemo upload commit 2da0aec067fd35a8ec102ce27ec4bac8f54b1c30-dirty
proteore
parents: 5
diff changeset
81 --universe_type: list or filename
5e16cec55146 planemo upload commit 2da0aec067fd35a8ec102ce27ec4bac8f54b1c30-dirty
proteore
parents: 5
diff changeset
82 --universe: background IDs list
5e16cec55146 planemo upload commit 2da0aec067fd35a8ec102ce27ec4bac8f54b1c30-dirty
proteore
parents: 5
diff changeset
83 --uncol: the column number which contains background IDs list
5e16cec55146 planemo upload commit 2da0aec067fd35a8ec102ce27ec4bac8f54b1c30-dirty
proteore
parents: 5
diff changeset
84 --uheader: true/false if the background IDs file contains header
5e16cec55146 planemo upload commit 2da0aec067fd35a8ec102ce27ec4bac8f54b1c30-dirty
proteore
parents: 5
diff changeset
85 --universe_id_type: the type of universe IDs (UniProt/EntrezID)
0
bd052861852b planemo upload commit ffa3be72b850aecbfbd636de815967c06a8f643f-dirty
proteore
parents:
diff changeset
86 --species
bd052861852b planemo upload commit ffa3be72b850aecbfbd636de815967c06a8f643f-dirty
proteore
parents:
diff changeset
87 --onto_opt: ontology options
bd052861852b planemo upload commit ffa3be72b850aecbfbd636de815967c06a8f643f-dirty
proteore
parents:
diff changeset
88 --go_function: groupGO/enrichGO
bd052861852b planemo upload commit ffa3be72b850aecbfbd636de815967c06a8f643f-dirty
proteore
parents:
diff changeset
89 --level: 1-3
bd052861852b planemo upload commit ffa3be72b850aecbfbd636de815967c06a8f643f-dirty
proteore
parents:
diff changeset
90 --pval_cutoff
bd052861852b planemo upload commit ffa3be72b850aecbfbd636de815967c06a8f643f-dirty
proteore
parents:
diff changeset
91 --qval_cutoff
bd052861852b planemo upload commit ffa3be72b850aecbfbd636de815967c06a8f643f-dirty
proteore
parents:
diff changeset
92 --text_output: text output filename \n")
bd052861852b planemo upload commit ffa3be72b850aecbfbd636de815967c06a8f643f-dirty
proteore
parents:
diff changeset
93 q(save="no")
bd052861852b planemo upload commit ffa3be72b850aecbfbd636de815967c06a8f643f-dirty
proteore
parents:
diff changeset
94 }
bd052861852b planemo upload commit ffa3be72b850aecbfbd636de815967c06a8f643f-dirty
proteore
parents:
diff changeset
95 # Parse arguments
bd052861852b planemo upload commit ffa3be72b850aecbfbd636de815967c06a8f643f-dirty
proteore
parents:
diff changeset
96 parseArgs <- function(x) strsplit(sub("^--", "", x), "=")
bd052861852b planemo upload commit ffa3be72b850aecbfbd636de815967c06a8f643f-dirty
proteore
parents:
diff changeset
97 argsDF <- as.data.frame(do.call("rbind", parseArgs(args)))
bd052861852b planemo upload commit ffa3be72b850aecbfbd636de815967c06a8f643f-dirty
proteore
parents:
diff changeset
98 args <- as.list(as.character(argsDF$V2))
bd052861852b planemo upload commit ffa3be72b850aecbfbd636de815967c06a8f643f-dirty
proteore
parents:
diff changeset
99 names(args) <- argsDF$V1
6
5e16cec55146 planemo upload commit 2da0aec067fd35a8ec102ce27ec4bac8f54b1c30-dirty
proteore
parents: 5
diff changeset
100 #print(args)
0
bd052861852b planemo upload commit ffa3be72b850aecbfbd636de815967c06a8f643f-dirty
proteore
parents:
diff changeset
101
6
5e16cec55146 planemo upload commit 2da0aec067fd35a8ec102ce27ec4bac8f54b1c30-dirty
proteore
parents: 5
diff changeset
102 # Extract OrgDb
5e16cec55146 planemo upload commit 2da0aec067fd35a8ec102ce27ec4bac8f54b1c30-dirty
proteore
parents: 5
diff changeset
103 if (args$species=="human") {
5e16cec55146 planemo upload commit 2da0aec067fd35a8ec102ce27ec4bac8f54b1c30-dirty
proteore
parents: 5
diff changeset
104 orgdb<-org.Hs.eg.db
5e16cec55146 planemo upload commit 2da0aec067fd35a8ec102ce27ec4bac8f54b1c30-dirty
proteore
parents: 5
diff changeset
105 }
5e16cec55146 planemo upload commit 2da0aec067fd35a8ec102ce27ec4bac8f54b1c30-dirty
proteore
parents: 5
diff changeset
106 else if (args$species=="mouse") {
5e16cec55146 planemo upload commit 2da0aec067fd35a8ec102ce27ec4bac8f54b1c30-dirty
proteore
parents: 5
diff changeset
107 orgdb<-org.Mm.eg.db
5e16cec55146 planemo upload commit 2da0aec067fd35a8ec102ce27ec4bac8f54b1c30-dirty
proteore
parents: 5
diff changeset
108 }
5e16cec55146 planemo upload commit 2da0aec067fd35a8ec102ce27ec4bac8f54b1c30-dirty
proteore
parents: 5
diff changeset
109 else if (args$species=="rat") {
5e16cec55146 planemo upload commit 2da0aec067fd35a8ec102ce27ec4bac8f54b1c30-dirty
proteore
parents: 5
diff changeset
110 orgdb<-org.Rn.eg.db
5e16cec55146 planemo upload commit 2da0aec067fd35a8ec102ce27ec4bac8f54b1c30-dirty
proteore
parents: 5
diff changeset
111 }
5e16cec55146 planemo upload commit 2da0aec067fd35a8ec102ce27ec4bac8f54b1c30-dirty
proteore
parents: 5
diff changeset
112
5e16cec55146 planemo upload commit 2da0aec067fd35a8ec102ce27ec4bac8f54b1c30-dirty
proteore
parents: 5
diff changeset
113 # Extract input IDs
0
bd052861852b planemo upload commit ffa3be72b850aecbfbd636de815967c06a8f643f-dirty
proteore
parents:
diff changeset
114 input_type = args$input_type
bd052861852b planemo upload commit ffa3be72b850aecbfbd636de815967c06a8f643f-dirty
proteore
parents:
diff changeset
115 if (input_type == "text") {
4
710414ebb6db planemo upload commit 0a42c3d46be24406936ca0036bb436e6e2524fd2-dirty
proteore
parents: 0
diff changeset
116 input = strsplit(args$input, "[ \t\n]+")[[1]]
0
bd052861852b planemo upload commit ffa3be72b850aecbfbd636de815967c06a8f643f-dirty
proteore
parents:
diff changeset
117 }
bd052861852b planemo upload commit ffa3be72b850aecbfbd636de815967c06a8f643f-dirty
proteore
parents:
diff changeset
118 else if (input_type == "file") {
bd052861852b planemo upload commit ffa3be72b850aecbfbd636de815967c06a8f643f-dirty
proteore
parents:
diff changeset
119 filename = args$input
bd052861852b planemo upload commit ffa3be72b850aecbfbd636de815967c06a8f643f-dirty
proteore
parents:
diff changeset
120 ncol = args$ncol
bd052861852b planemo upload commit ffa3be72b850aecbfbd636de815967c06a8f643f-dirty
proteore
parents:
diff changeset
121 # Check ncol
bd052861852b planemo upload commit ffa3be72b850aecbfbd636de815967c06a8f643f-dirty
proteore
parents:
diff changeset
122 if (! as.numeric(gsub("c", "", ncol)) %% 1 == 0) {
6
5e16cec55146 planemo upload commit 2da0aec067fd35a8ec102ce27ec4bac8f54b1c30-dirty
proteore
parents: 5
diff changeset
123 stop("Please enter the right format for column number: c[number]")
0
bd052861852b planemo upload commit ffa3be72b850aecbfbd636de815967c06a8f643f-dirty
proteore
parents:
diff changeset
124 }
bd052861852b planemo upload commit ffa3be72b850aecbfbd636de815967c06a8f643f-dirty
proteore
parents:
diff changeset
125 else {
bd052861852b planemo upload commit ffa3be72b850aecbfbd636de815967c06a8f643f-dirty
proteore
parents:
diff changeset
126 ncol = as.numeric(gsub("c", "", ncol))
bd052861852b planemo upload commit ffa3be72b850aecbfbd636de815967c06a8f643f-dirty
proteore
parents:
diff changeset
127 }
bd052861852b planemo upload commit ffa3be72b850aecbfbd636de815967c06a8f643f-dirty
proteore
parents:
diff changeset
128 header = args$header
bd052861852b planemo upload commit ffa3be72b850aecbfbd636de815967c06a8f643f-dirty
proteore
parents:
diff changeset
129 # Get file content
bd052861852b planemo upload commit ffa3be72b850aecbfbd636de815967c06a8f643f-dirty
proteore
parents:
diff changeset
130 file = readfile(filename, header)
bd052861852b planemo upload commit ffa3be72b850aecbfbd636de815967c06a8f643f-dirty
proteore
parents:
diff changeset
131 # Extract Protein IDs list
bd052861852b planemo upload commit ffa3be72b850aecbfbd636de815967c06a8f643f-dirty
proteore
parents:
diff changeset
132 input = c()
bd052861852b planemo upload commit ffa3be72b850aecbfbd636de815967c06a8f643f-dirty
proteore
parents:
diff changeset
133 for (row in as.character(file[,ncol])) {
bd052861852b planemo upload commit ffa3be72b850aecbfbd636de815967c06a8f643f-dirty
proteore
parents:
diff changeset
134 input = c(input, strsplit(row, ";")[[1]][1])
bd052861852b planemo upload commit ffa3be72b850aecbfbd636de815967c06a8f643f-dirty
proteore
parents:
diff changeset
135 }
bd052861852b planemo upload commit ffa3be72b850aecbfbd636de815967c06a8f643f-dirty
proteore
parents:
diff changeset
136 }
bd052861852b planemo upload commit ffa3be72b850aecbfbd636de815967c06a8f643f-dirty
proteore
parents:
diff changeset
137 id_type = args$id_type
6
5e16cec55146 planemo upload commit 2da0aec067fd35a8ec102ce27ec4bac8f54b1c30-dirty
proteore
parents: 5
diff changeset
138 ## Get input gene list from input IDs
0
bd052861852b planemo upload commit ffa3be72b850aecbfbd636de815967c06a8f643f-dirty
proteore
parents:
diff changeset
139 #ID format Conversion
bd052861852b planemo upload commit ffa3be72b850aecbfbd636de815967c06a8f643f-dirty
proteore
parents:
diff changeset
140 #This case : from UNIPROT (protein id) to ENTREZ (gene id)
bd052861852b planemo upload commit ffa3be72b850aecbfbd636de815967c06a8f643f-dirty
proteore
parents:
diff changeset
141 #bitr = conversion function from clusterProfiler
bd052861852b planemo upload commit ffa3be72b850aecbfbd636de815967c06a8f643f-dirty
proteore
parents:
diff changeset
142 if (id_type=="Uniprot") {
bd052861852b planemo upload commit ffa3be72b850aecbfbd636de815967c06a8f643f-dirty
proteore
parents:
diff changeset
143 idFrom<-"UNIPROT"
bd052861852b planemo upload commit ffa3be72b850aecbfbd636de815967c06a8f643f-dirty
proteore
parents:
diff changeset
144 idTo<-"ENTREZID"
bd052861852b planemo upload commit ffa3be72b850aecbfbd636de815967c06a8f643f-dirty
proteore
parents:
diff changeset
145 gene<-bitr(input, fromType=idFrom, toType=idTo, OrgDb=orgdb)
6
5e16cec55146 planemo upload commit 2da0aec067fd35a8ec102ce27ec4bac8f54b1c30-dirty
proteore
parents: 5
diff changeset
146 gene<-unique(gene$ENTREZID)
0
bd052861852b planemo upload commit ffa3be72b850aecbfbd636de815967c06a8f643f-dirty
proteore
parents:
diff changeset
147 }
bd052861852b planemo upload commit ffa3be72b850aecbfbd636de815967c06a8f643f-dirty
proteore
parents:
diff changeset
148 else if (id_type=="Entrez") {
6
5e16cec55146 planemo upload commit 2da0aec067fd35a8ec102ce27ec4bac8f54b1c30-dirty
proteore
parents: 5
diff changeset
149 gene<-unique(input)
0
bd052861852b planemo upload commit ffa3be72b850aecbfbd636de815967c06a8f643f-dirty
proteore
parents:
diff changeset
150 }
bd052861852b planemo upload commit ffa3be72b850aecbfbd636de815967c06a8f643f-dirty
proteore
parents:
diff changeset
151
bd052861852b planemo upload commit ffa3be72b850aecbfbd636de815967c06a8f643f-dirty
proteore
parents:
diff changeset
152 ontology <- strsplit(args$onto_opt, ",")[[1]]
6
5e16cec55146 planemo upload commit 2da0aec067fd35a8ec102ce27ec4bac8f54b1c30-dirty
proteore
parents: 5
diff changeset
153 ## Extract GGO/EGO arguments
0
bd052861852b planemo upload commit ffa3be72b850aecbfbd636de815967c06a8f643f-dirty
proteore
parents:
diff changeset
154 if (args$go_represent == "true") {
bd052861852b planemo upload commit ffa3be72b850aecbfbd636de815967c06a8f643f-dirty
proteore
parents:
diff changeset
155 go_represent <- args$go_represent
bd052861852b planemo upload commit ffa3be72b850aecbfbd636de815967c06a8f643f-dirty
proteore
parents:
diff changeset
156 level <- as.numeric(args$level)
bd052861852b planemo upload commit ffa3be72b850aecbfbd636de815967c06a8f643f-dirty
proteore
parents:
diff changeset
157 }
bd052861852b planemo upload commit ffa3be72b850aecbfbd636de815967c06a8f643f-dirty
proteore
parents:
diff changeset
158 if (args$go_enrich == "true") {
bd052861852b planemo upload commit ffa3be72b850aecbfbd636de815967c06a8f643f-dirty
proteore
parents:
diff changeset
159 go_enrich <- args$go_enrich
bd052861852b planemo upload commit ffa3be72b850aecbfbd636de815967c06a8f643f-dirty
proteore
parents:
diff changeset
160 pval_cutoff <- as.numeric(args$pval_cutoff)
bd052861852b planemo upload commit ffa3be72b850aecbfbd636de815967c06a8f643f-dirty
proteore
parents:
diff changeset
161 qval_cutoff <- as.numeric(args$qval_cutoff)
6
5e16cec55146 planemo upload commit 2da0aec067fd35a8ec102ce27ec4bac8f54b1c30-dirty
proteore
parents: 5
diff changeset
162 # Extract universe background genes (same as input file)
5e16cec55146 planemo upload commit 2da0aec067fd35a8ec102ce27ec4bac8f54b1c30-dirty
proteore
parents: 5
diff changeset
163 if (!is.null(args$universe_type)) {
5e16cec55146 planemo upload commit 2da0aec067fd35a8ec102ce27ec4bac8f54b1c30-dirty
proteore
parents: 5
diff changeset
164 universe_type = args$universe_type
5e16cec55146 planemo upload commit 2da0aec067fd35a8ec102ce27ec4bac8f54b1c30-dirty
proteore
parents: 5
diff changeset
165 if (universe_type == "text") {
5e16cec55146 planemo upload commit 2da0aec067fd35a8ec102ce27ec4bac8f54b1c30-dirty
proteore
parents: 5
diff changeset
166 universe = strsplit(args$universe, "[ \t\n]+")[[1]]
5e16cec55146 planemo upload commit 2da0aec067fd35a8ec102ce27ec4bac8f54b1c30-dirty
proteore
parents: 5
diff changeset
167 }
5e16cec55146 planemo upload commit 2da0aec067fd35a8ec102ce27ec4bac8f54b1c30-dirty
proteore
parents: 5
diff changeset
168 else if (universe_type == "file") {
5e16cec55146 planemo upload commit 2da0aec067fd35a8ec102ce27ec4bac8f54b1c30-dirty
proteore
parents: 5
diff changeset
169 universe_filename = args$universe
5e16cec55146 planemo upload commit 2da0aec067fd35a8ec102ce27ec4bac8f54b1c30-dirty
proteore
parents: 5
diff changeset
170 universe_ncol = args$uncol
5e16cec55146 planemo upload commit 2da0aec067fd35a8ec102ce27ec4bac8f54b1c30-dirty
proteore
parents: 5
diff changeset
171 # Check ncol
5e16cec55146 planemo upload commit 2da0aec067fd35a8ec102ce27ec4bac8f54b1c30-dirty
proteore
parents: 5
diff changeset
172 if (! as.numeric(gsub("c", "", universe_ncol)) %% 1 == 0) {
5e16cec55146 planemo upload commit 2da0aec067fd35a8ec102ce27ec4bac8f54b1c30-dirty
proteore
parents: 5
diff changeset
173 stop("Please enter the right format for column number: c[number]")
5e16cec55146 planemo upload commit 2da0aec067fd35a8ec102ce27ec4bac8f54b1c30-dirty
proteore
parents: 5
diff changeset
174 }
5e16cec55146 planemo upload commit 2da0aec067fd35a8ec102ce27ec4bac8f54b1c30-dirty
proteore
parents: 5
diff changeset
175 else {
5e16cec55146 planemo upload commit 2da0aec067fd35a8ec102ce27ec4bac8f54b1c30-dirty
proteore
parents: 5
diff changeset
176 universe_ncol = as.numeric(gsub("c", "", universe_ncol))
5e16cec55146 planemo upload commit 2da0aec067fd35a8ec102ce27ec4bac8f54b1c30-dirty
proteore
parents: 5
diff changeset
177 }
5e16cec55146 planemo upload commit 2da0aec067fd35a8ec102ce27ec4bac8f54b1c30-dirty
proteore
parents: 5
diff changeset
178 universe_header = args$uheader
5e16cec55146 planemo upload commit 2da0aec067fd35a8ec102ce27ec4bac8f54b1c30-dirty
proteore
parents: 5
diff changeset
179 # Get file content
5e16cec55146 planemo upload commit 2da0aec067fd35a8ec102ce27ec4bac8f54b1c30-dirty
proteore
parents: 5
diff changeset
180 universe_file = readfile(universe_filename, universe_header)
5e16cec55146 planemo upload commit 2da0aec067fd35a8ec102ce27ec4bac8f54b1c30-dirty
proteore
parents: 5
diff changeset
181 # Extract Protein IDs list
5e16cec55146 planemo upload commit 2da0aec067fd35a8ec102ce27ec4bac8f54b1c30-dirty
proteore
parents: 5
diff changeset
182 universe = c()
5e16cec55146 planemo upload commit 2da0aec067fd35a8ec102ce27ec4bac8f54b1c30-dirty
proteore
parents: 5
diff changeset
183 for (row in as.character(universe_file[,universe_ncol])) {
5e16cec55146 planemo upload commit 2da0aec067fd35a8ec102ce27ec4bac8f54b1c30-dirty
proteore
parents: 5
diff changeset
184 universe = c(universe, strsplit(row, ";")[[1]][1])
5e16cec55146 planemo upload commit 2da0aec067fd35a8ec102ce27ec4bac8f54b1c30-dirty
proteore
parents: 5
diff changeset
185 }
5e16cec55146 planemo upload commit 2da0aec067fd35a8ec102ce27ec4bac8f54b1c30-dirty
proteore
parents: 5
diff changeset
186 }
5e16cec55146 planemo upload commit 2da0aec067fd35a8ec102ce27ec4bac8f54b1c30-dirty
proteore
parents: 5
diff changeset
187 universe_id_type = args$universe_id_type
5e16cec55146 planemo upload commit 2da0aec067fd35a8ec102ce27ec4bac8f54b1c30-dirty
proteore
parents: 5
diff changeset
188 ##to initialize
5e16cec55146 planemo upload commit 2da0aec067fd35a8ec102ce27ec4bac8f54b1c30-dirty
proteore
parents: 5
diff changeset
189 if (universe_id_type=="Uniprot") {
5e16cec55146 planemo upload commit 2da0aec067fd35a8ec102ce27ec4bac8f54b1c30-dirty
proteore
parents: 5
diff changeset
190 idFrom<-"UNIPROT"
5e16cec55146 planemo upload commit 2da0aec067fd35a8ec102ce27ec4bac8f54b1c30-dirty
proteore
parents: 5
diff changeset
191 idTo<-"ENTREZID"
5e16cec55146 planemo upload commit 2da0aec067fd35a8ec102ce27ec4bac8f54b1c30-dirty
proteore
parents: 5
diff changeset
192 universe_gene<-bitr(universe, fromType=idFrom, toType=idTo, OrgDb=orgdb)
5e16cec55146 planemo upload commit 2da0aec067fd35a8ec102ce27ec4bac8f54b1c30-dirty
proteore
parents: 5
diff changeset
193 universe_gene<-unique(universe_gene$ENTREZID)
5e16cec55146 planemo upload commit 2da0aec067fd35a8ec102ce27ec4bac8f54b1c30-dirty
proteore
parents: 5
diff changeset
194 }
5e16cec55146 planemo upload commit 2da0aec067fd35a8ec102ce27ec4bac8f54b1c30-dirty
proteore
parents: 5
diff changeset
195 else if (universe_id_type=="Entrez") {
5e16cec55146 planemo upload commit 2da0aec067fd35a8ec102ce27ec4bac8f54b1c30-dirty
proteore
parents: 5
diff changeset
196 universe_gene<-unique(universe)
5e16cec55146 planemo upload commit 2da0aec067fd35a8ec102ce27ec4bac8f54b1c30-dirty
proteore
parents: 5
diff changeset
197 }
5e16cec55146 planemo upload commit 2da0aec067fd35a8ec102ce27ec4bac8f54b1c30-dirty
proteore
parents: 5
diff changeset
198 }
5e16cec55146 planemo upload commit 2da0aec067fd35a8ec102ce27ec4bac8f54b1c30-dirty
proteore
parents: 5
diff changeset
199 else {
5e16cec55146 planemo upload commit 2da0aec067fd35a8ec102ce27ec4bac8f54b1c30-dirty
proteore
parents: 5
diff changeset
200 universe_gene = NULL
5e16cec55146 planemo upload commit 2da0aec067fd35a8ec102ce27ec4bac8f54b1c30-dirty
proteore
parents: 5
diff changeset
201 }
0
bd052861852b planemo upload commit ffa3be72b850aecbfbd636de815967c06a8f643f-dirty
proteore
parents:
diff changeset
202 }
bd052861852b planemo upload commit ffa3be72b850aecbfbd636de815967c06a8f643f-dirty
proteore
parents:
diff changeset
203
bd052861852b planemo upload commit ffa3be72b850aecbfbd636de815967c06a8f643f-dirty
proteore
parents:
diff changeset
204 ##enrichGO : GO over-representation test
bd052861852b planemo upload commit ffa3be72b850aecbfbd636de815967c06a8f643f-dirty
proteore
parents:
diff changeset
205 for (onto in ontology) {
bd052861852b planemo upload commit ffa3be72b850aecbfbd636de815967c06a8f643f-dirty
proteore
parents:
diff changeset
206 if (args$go_represent == "true") {
6
5e16cec55146 planemo upload commit 2da0aec067fd35a8ec102ce27ec4bac8f54b1c30-dirty
proteore
parents: 5
diff changeset
207 ggo<-repartition.GO(gene, orgdb, onto, level, readable=TRUE)
0
bd052861852b planemo upload commit ffa3be72b850aecbfbd636de815967c06a8f643f-dirty
proteore
parents:
diff changeset
208 write.table(ggo, args$text_output, append = TRUE, sep="\t", row.names = FALSE, quote=FALSE)
bd052861852b planemo upload commit ffa3be72b850aecbfbd636de815967c06a8f643f-dirty
proteore
parents:
diff changeset
209 }
bd052861852b planemo upload commit ffa3be72b850aecbfbd636de815967c06a8f643f-dirty
proteore
parents:
diff changeset
210 if (args$go_enrich == "true") {
6
5e16cec55146 planemo upload commit 2da0aec067fd35a8ec102ce27ec4bac8f54b1c30-dirty
proteore
parents: 5
diff changeset
211 ego<-enrich.GO(gene, universe_gene, orgdb, onto, pval_cutoff, qval_cutoff)
0
bd052861852b planemo upload commit ffa3be72b850aecbfbd636de815967c06a8f643f-dirty
proteore
parents:
diff changeset
212 write.table(ego, args$text_output, append = TRUE, sep="\t", row.names = FALSE, quote=FALSE)
bd052861852b planemo upload commit ffa3be72b850aecbfbd636de815967c06a8f643f-dirty
proteore
parents:
diff changeset
213 }
bd052861852b planemo upload commit ffa3be72b850aecbfbd636de815967c06a8f643f-dirty
proteore
parents:
diff changeset
214 }
bd052861852b planemo upload commit ffa3be72b850aecbfbd636de815967c06a8f643f-dirty
proteore
parents:
diff changeset
215 }
bd052861852b planemo upload commit ffa3be72b850aecbfbd636de815967c06a8f643f-dirty
proteore
parents:
diff changeset
216
bd052861852b planemo upload commit ffa3be72b850aecbfbd636de815967c06a8f643f-dirty
proteore
parents:
diff changeset
217 clusterProfiler()