annotate GO-enrich.R @ 42:3a990910e7f4 draft default tip

"planemo upload commit be9070db4a3b178ab45ecd9c9c3ab369240f7617-dirty"
author proteore
date Fri, 09 Apr 2021 14:38:05 +0000
parents 3fd1ccc57a6a
children
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
42
3a990910e7f4 "planemo upload commit be9070db4a3b178ab45ecd9c9c3ab369240f7617-dirty"
proteore
parents: 41
diff changeset
1 options(warn = -1) #TURN OFF WARNINGS !!!!!!
3a990910e7f4 "planemo upload commit be9070db4a3b178ab45ecd9c9c3ab369240f7617-dirty"
proteore
parents: 41
diff changeset
2 suppressMessages(library(clusterProfiler, quietly = TRUE))
0
076349b72690 planemo upload commit 2e441b4969ae7cf9aeb227a1d47c43ef7268a5e6-dirty
proteore
parents:
diff changeset
3
076349b72690 planemo upload commit 2e441b4969ae7cf9aeb227a1d47c43ef7268a5e6-dirty
proteore
parents:
diff changeset
4 # Read file and return file content as data.frame
42
3a990910e7f4 "planemo upload commit be9070db4a3b178ab45ecd9c9c3ab369240f7617-dirty"
proteore
parents: 41
diff changeset
5 read_file <- function(path, header) {
3a990910e7f4 "planemo upload commit be9070db4a3b178ab45ecd9c9c3ab369240f7617-dirty"
proteore
parents: 41
diff changeset
6 file <- try(read.csv(path, header = header, sep = "\t",
3a990910e7f4 "planemo upload commit be9070db4a3b178ab45ecd9c9c3ab369240f7617-dirty"
proteore
parents: 41
diff changeset
7 stringsAsFactors = FALSE, quote = "", check.names = F),
3a990910e7f4 "planemo upload commit be9070db4a3b178ab45ecd9c9c3ab369240f7617-dirty"
proteore
parents: 41
diff changeset
8 silent = TRUE)
3a990910e7f4 "planemo upload commit be9070db4a3b178ab45ecd9c9c3ab369240f7617-dirty"
proteore
parents: 41
diff changeset
9 if (inherits(file, "try-error")) {
23
879367568ea6 planemo upload commit 4dbf0d227157012f8017e0e5f44e2821b0136a4c-dirty
proteore
parents: 22
diff changeset
10 stop("File not found !")
879367568ea6 planemo upload commit 4dbf0d227157012f8017e0e5f44e2821b0136a4c-dirty
proteore
parents: 22
diff changeset
11 }else{
42
3a990910e7f4 "planemo upload commit be9070db4a3b178ab45ecd9c9c3ab369240f7617-dirty"
proteore
parents: 41
diff changeset
12 file <- file[!apply(is.na(file) | file == "", 1, all), , drop = FALSE]
23
879367568ea6 planemo upload commit 4dbf0d227157012f8017e0e5f44e2821b0136a4c-dirty
proteore
parents: 22
diff changeset
13 return(file)
0
076349b72690 planemo upload commit 2e441b4969ae7cf9aeb227a1d47c43ef7268a5e6-dirty
proteore
parents:
diff changeset
14 }
076349b72690 planemo upload commit 2e441b4969ae7cf9aeb227a1d47c43ef7268a5e6-dirty
proteore
parents:
diff changeset
15 }
076349b72690 planemo upload commit 2e441b4969ae7cf9aeb227a1d47c43ef7268a5e6-dirty
proteore
parents:
diff changeset
16
42
3a990910e7f4 "planemo upload commit be9070db4a3b178ab45ecd9c9c3ab369240f7617-dirty"
proteore
parents: 41
diff changeset
17
3a990910e7f4 "planemo upload commit be9070db4a3b178ab45ecd9c9c3ab369240f7617-dirty"
proteore
parents: 41
diff changeset
18 #return the number of character from the longest description found
3a990910e7f4 "planemo upload commit be9070db4a3b178ab45ecd9c9c3ab369240f7617-dirty"
proteore
parents: 41
diff changeset
19 #(from the 10 first)
3a990910e7f4 "planemo upload commit be9070db4a3b178ab45ecd9c9c3ab369240f7617-dirty"
proteore
parents: 41
diff changeset
20 max_str_length_10_first <- function(vector) {
4
18275725e7cf planemo upload commit 9bdfcce89bdea8a0a85bfbf8f0fa9b943b17bea1-dirty
proteore
parents: 3
diff changeset
21 vector <- as.vector(vector)
42
3a990910e7f4 "planemo upload commit be9070db4a3b178ab45ecd9c9c3ab369240f7617-dirty"
proteore
parents: 41
diff changeset
22 nb_description <- length(vector)
3a990910e7f4 "planemo upload commit be9070db4a3b178ab45ecd9c9c3ab369240f7617-dirty"
proteore
parents: 41
diff changeset
23 if (nb_description >= 10) {
3a990910e7f4 "planemo upload commit be9070db4a3b178ab45ecd9c9c3ab369240f7617-dirty"
proteore
parents: 41
diff changeset
24 nb_description <- 10
3a990910e7f4 "planemo upload commit be9070db4a3b178ab45ecd9c9c3ab369240f7617-dirty"
proteore
parents: 41
diff changeset
25 }
3a990910e7f4 "planemo upload commit be9070db4a3b178ab45ecd9c9c3ab369240f7617-dirty"
proteore
parents: 41
diff changeset
26
4
18275725e7cf planemo upload commit 9bdfcce89bdea8a0a85bfbf8f0fa9b943b17bea1-dirty
proteore
parents: 3
diff changeset
27 return(max(nchar(vector[1:nb_description])))
18275725e7cf planemo upload commit 9bdfcce89bdea8a0a85bfbf8f0fa9b943b17bea1-dirty
proteore
parents: 3
diff changeset
28 }
18275725e7cf planemo upload commit 9bdfcce89bdea8a0a85bfbf8f0fa9b943b17bea1-dirty
proteore
parents: 3
diff changeset
29
42
3a990910e7f4 "planemo upload commit be9070db4a3b178ab45ecd9c9c3ab369240f7617-dirty"
proteore
parents: 41
diff changeset
30 str2bool <- function(x) {
3a990910e7f4 "planemo upload commit be9070db4a3b178ab45ecd9c9c3ab369240f7617-dirty"
proteore
parents: 41
diff changeset
31 if (any(is.element(c("t", "true"), tolower(x)))) {
3a990910e7f4 "planemo upload commit be9070db4a3b178ab45ecd9c9c3ab369240f7617-dirty"
proteore
parents: 41
diff changeset
32 return(TRUE)
3a990910e7f4 "planemo upload commit be9070db4a3b178ab45ecd9c9c3ab369240f7617-dirty"
proteore
parents: 41
diff changeset
33 }else if (any(is.element(c("f", "false"), tolower(x)))) {
3a990910e7f4 "planemo upload commit be9070db4a3b178ab45ecd9c9c3ab369240f7617-dirty"
proteore
parents: 41
diff changeset
34 return(FALSE)
3a990910e7f4 "planemo upload commit be9070db4a3b178ab45ecd9c9c3ab369240f7617-dirty"
proteore
parents: 41
diff changeset
35
23
879367568ea6 planemo upload commit 4dbf0d227157012f8017e0e5f44e2821b0136a4c-dirty
proteore
parents: 22
diff changeset
36 }else{
879367568ea6 planemo upload commit 4dbf0d227157012f8017e0e5f44e2821b0136a4c-dirty
proteore
parents: 22
diff changeset
37 return(NULL)
879367568ea6 planemo upload commit 4dbf0d227157012f8017e0e5f44e2821b0136a4c-dirty
proteore
parents: 22
diff changeset
38 }
879367568ea6 planemo upload commit 4dbf0d227157012f8017e0e5f44e2821b0136a4c-dirty
proteore
parents: 22
diff changeset
39 }
879367568ea6 planemo upload commit 4dbf0d227157012f8017e0e5f44e2821b0136a4c-dirty
proteore
parents: 22
diff changeset
40
9
60a3897346e0 planemo upload commit eb8dd48804bfbeb0f0c8076458de65d66d7f075b-dirty
proteore
parents: 8
diff changeset
41 #used before the limit was set to 50 characters
42
3a990910e7f4 "planemo upload commit be9070db4a3b178ab45ecd9c9c3ab369240f7617-dirty"
proteore
parents: 41
diff changeset
42 width_by_max_char <- function(nb_max_char) {
3a990910e7f4 "planemo upload commit be9070db4a3b178ab45ecd9c9c3ab369240f7617-dirty"
proteore
parents: 41
diff changeset
43 if (nb_max_char < 50) {
3a990910e7f4 "planemo upload commit be9070db4a3b178ab45ecd9c9c3ab369240f7617-dirty"
proteore
parents: 41
diff changeset
44 width <- 600
5
36c586c918eb planemo upload commit 654ba92763264fb669b084d7939700f8f1180217-dirty
proteore
parents: 4
diff changeset
45 } else if (nb_max_char < 75) {
42
3a990910e7f4 "planemo upload commit be9070db4a3b178ab45ecd9c9c3ab369240f7617-dirty"
proteore
parents: 41
diff changeset
46 width <- 800
5
36c586c918eb planemo upload commit 654ba92763264fb669b084d7939700f8f1180217-dirty
proteore
parents: 4
diff changeset
47 } else if (nb_max_char < 100) {
42
3a990910e7f4 "planemo upload commit be9070db4a3b178ab45ecd9c9c3ab369240f7617-dirty"
proteore
parents: 41
diff changeset
48 width <- 900
5
36c586c918eb planemo upload commit 654ba92763264fb669b084d7939700f8f1180217-dirty
proteore
parents: 4
diff changeset
49 } else {
42
3a990910e7f4 "planemo upload commit be9070db4a3b178ab45ecd9c9c3ab369240f7617-dirty"
proteore
parents: 41
diff changeset
50 width <- 1000
5
36c586c918eb planemo upload commit 654ba92763264fb669b084d7939700f8f1180217-dirty
proteore
parents: 4
diff changeset
51 }
42
3a990910e7f4 "planemo upload commit be9070db4a3b178ab45ecd9c9c3ab369240f7617-dirty"
proteore
parents: 41
diff changeset
52 return(width)
5
36c586c918eb planemo upload commit 654ba92763264fb669b084d7939700f8f1180217-dirty
proteore
parents: 4
diff changeset
53 }
4
18275725e7cf planemo upload commit 9bdfcce89bdea8a0a85bfbf8f0fa9b943b17bea1-dirty
proteore
parents: 3
diff changeset
54
42
3a990910e7f4 "planemo upload commit be9070db4a3b178ab45ecd9c9c3ab369240f7617-dirty"
proteore
parents: 41
diff changeset
55
3a990910e7f4 "planemo upload commit be9070db4a3b178ab45ecd9c9c3ab369240f7617-dirty"
proteore
parents: 41
diff changeset
56 repartition_go <- function(geneid, orgdb, ontology,
3a990910e7f4 "planemo upload commit be9070db4a3b178ab45ecd9c9c3ab369240f7617-dirty"
proteore
parents: 41
diff changeset
57 level = 3, readable = TRUE) {
3a990910e7f4 "planemo upload commit be9070db4a3b178ab45ecd9c9c3ab369240f7617-dirty"
proteore
parents: 41
diff changeset
58 ggo <- groupGO(gene = geneid,
3a990910e7f4 "planemo upload commit be9070db4a3b178ab45ecd9c9c3ab369240f7617-dirty"
proteore
parents: 41
diff changeset
59 OrgDb = orgdb,
3a990910e7f4 "planemo upload commit be9070db4a3b178ab45ecd9c9c3ab369240f7617-dirty"
proteore
parents: 41
diff changeset
60 ont = ontology,
3a990910e7f4 "planemo upload commit be9070db4a3b178ab45ecd9c9c3ab369240f7617-dirty"
proteore
parents: 41
diff changeset
61 level = level,
3a990910e7f4 "planemo upload commit be9070db4a3b178ab45ecd9c9c3ab369240f7617-dirty"
proteore
parents: 41
diff changeset
62 readable = TRUE)
40
25222be4a88b planemo upload commit c9d70181a2b587e53dcc4b5885b74b625def6b8c-dirty
proteore
parents: 38
diff changeset
63
7
b25f272d3505 planemo upload commit 46cd1d44f3be3058caa036851d95194ebff3caaf-dirty
proteore
parents: 6
diff changeset
64
42
3a990910e7f4 "planemo upload commit be9070db4a3b178ab45ecd9c9c3ab369240f7617-dirty"
proteore
parents: 41
diff changeset
65 if (length(ggo@result$ID) > 0) {
3a990910e7f4 "planemo upload commit be9070db4a3b178ab45ecd9c9c3ab369240f7617-dirty"
proteore
parents: 41
diff changeset
66 ggo@result$Description <- sapply(as.vector(ggo@result$Description), #nolint
3a990910e7f4 "planemo upload commit be9070db4a3b178ab45ecd9c9c3ab369240f7617-dirty"
proteore
parents: 41
diff changeset
67 function(x) {
3a990910e7f4 "planemo upload commit be9070db4a3b178ab45ecd9c9c3ab369240f7617-dirty"
proteore
parents: 41
diff changeset
68 ifelse(nchar(x) > 50,
3a990910e7f4 "planemo upload commit be9070db4a3b178ab45ecd9c9c3ab369240f7617-dirty"
proteore
parents: 41
diff changeset
69 substr(x, 1, 50), x)}, USE.NAMES = FALSE)
3a990910e7f4 "planemo upload commit be9070db4a3b178ab45ecd9c9c3ab369240f7617-dirty"
proteore
parents: 41
diff changeset
70
3a990910e7f4 "planemo upload commit be9070db4a3b178ab45ecd9c9c3ab369240f7617-dirty"
proteore
parents: 41
diff changeset
71
38
0d954174e0e9 planemo upload commit 3ff0fa577362e757a1e7692a0a397bdda3d4dfc8-dirty
proteore
parents: 37
diff changeset
72 name <- paste("GGO_", ontology, "_bar-plot", sep = "")
42
3a990910e7f4 "planemo upload commit be9070db4a3b178ab45ecd9c9c3ab369240f7617-dirty"
proteore
parents: 41
diff changeset
73 png(name, height = 720, width = 600)
3a990910e7f4 "planemo upload commit be9070db4a3b178ab45ecd9c9c3ab369240f7617-dirty"
proteore
parents: 41
diff changeset
74 p <- barplot(ggo, showCategory = 10)
38
0d954174e0e9 planemo upload commit 3ff0fa577362e757a1e7692a0a397bdda3d4dfc8-dirty
proteore
parents: 37
diff changeset
75 print(p)
0d954174e0e9 planemo upload commit 3ff0fa577362e757a1e7692a0a397bdda3d4dfc8-dirty
proteore
parents: 37
diff changeset
76 dev.off()
27
54f8e6f5c59d planemo upload commit d884b75cfc292105807c42c58f864d536dc9e431-dirty
proteore
parents: 26
diff changeset
77 ggo <- as.data.frame(ggo)
7
b25f272d3505 planemo upload commit 46cd1d44f3be3058caa036851d95194ebff3caaf-dirty
proteore
parents: 6
diff changeset
78 return(ggo)
b25f272d3505 planemo upload commit 46cd1d44f3be3058caa036851d95194ebff3caaf-dirty
proteore
parents: 6
diff changeset
79 }
0
076349b72690 planemo upload commit 2e441b4969ae7cf9aeb227a1d47c43ef7268a5e6-dirty
proteore
parents:
diff changeset
80 }
076349b72690 planemo upload commit 2e441b4969ae7cf9aeb227a1d47c43ef7268a5e6-dirty
proteore
parents:
diff changeset
81
42
3a990910e7f4 "planemo upload commit be9070db4a3b178ab45ecd9c9c3ab369240f7617-dirty"
proteore
parents: 41
diff changeset
82 # nolint end
3a990910e7f4 "planemo upload commit be9070db4a3b178ab45ecd9c9c3ab369240f7617-dirty"
proteore
parents: 41
diff changeset
83
0
076349b72690 planemo upload commit 2e441b4969ae7cf9aeb227a1d47c43ef7268a5e6-dirty
proteore
parents:
diff changeset
84 # GO over-representation test
42
3a990910e7f4 "planemo upload commit be9070db4a3b178ab45ecd9c9c3ab369240f7617-dirty"
proteore
parents: 41
diff changeset
85 enrich_go <- function(geneid, universe, orgdb, ontology, pval_cutoff,
3a990910e7f4 "planemo upload commit be9070db4a3b178ab45ecd9c9c3ab369240f7617-dirty"
proteore
parents: 41
diff changeset
86 qval_cutoff, plot) {
3a990910e7f4 "planemo upload commit be9070db4a3b178ab45ecd9c9c3ab369240f7617-dirty"
proteore
parents: 41
diff changeset
87 ego <- enrichGO(gene = geneid,
3a990910e7f4 "planemo upload commit be9070db4a3b178ab45ecd9c9c3ab369240f7617-dirty"
proteore
parents: 41
diff changeset
88
3a990910e7f4 "planemo upload commit be9070db4a3b178ab45ecd9c9c3ab369240f7617-dirty"
proteore
parents: 41
diff changeset
89 universe = universe,
3a990910e7f4 "planemo upload commit be9070db4a3b178ab45ecd9c9c3ab369240f7617-dirty"
proteore
parents: 41
diff changeset
90 OrgDb = orgdb,
3a990910e7f4 "planemo upload commit be9070db4a3b178ab45ecd9c9c3ab369240f7617-dirty"
proteore
parents: 41
diff changeset
91 ont = ontology,
3a990910e7f4 "planemo upload commit be9070db4a3b178ab45ecd9c9c3ab369240f7617-dirty"
proteore
parents: 41
diff changeset
92 pAdjustMethod = "BH",
3a990910e7f4 "planemo upload commit be9070db4a3b178ab45ecd9c9c3ab369240f7617-dirty"
proteore
parents: 41
diff changeset
93 pvalueCutoff = pval_cutoff,
3a990910e7f4 "planemo upload commit be9070db4a3b178ab45ecd9c9c3ab369240f7617-dirty"
proteore
parents: 41
diff changeset
94 qvalueCutoff = qval_cutoff,
3a990910e7f4 "planemo upload commit be9070db4a3b178ab45ecd9c9c3ab369240f7617-dirty"
proteore
parents: 41
diff changeset
95 readable = TRUE)
3a990910e7f4 "planemo upload commit be9070db4a3b178ab45ecd9c9c3ab369240f7617-dirty"
proteore
parents: 41
diff changeset
96
0
076349b72690 planemo upload commit 2e441b4969ae7cf9aeb227a1d47c43ef7268a5e6-dirty
proteore
parents:
diff changeset
97 # Plot bar & dot plots
42
3a990910e7f4 "planemo upload commit be9070db4a3b178ab45ecd9c9c3ab369240f7617-dirty"
proteore
parents: 41
diff changeset
98 #if there are enriched GoTerms
3a990910e7f4 "planemo upload commit be9070db4a3b178ab45ecd9c9c3ab369240f7617-dirty"
proteore
parents: 41
diff changeset
99
3a990910e7f4 "planemo upload commit be9070db4a3b178ab45ecd9c9c3ab369240f7617-dirty"
proteore
parents: 41
diff changeset
100
3a990910e7f4 "planemo upload commit be9070db4a3b178ab45ecd9c9c3ab369240f7617-dirty"
proteore
parents: 41
diff changeset
101
3a990910e7f4 "planemo upload commit be9070db4a3b178ab45ecd9c9c3ab369240f7617-dirty"
proteore
parents: 41
diff changeset
102 if (length(ego$ID) > 0) {
3a990910e7f4 "planemo upload commit be9070db4a3b178ab45ecd9c9c3ab369240f7617-dirty"
proteore
parents: 41
diff changeset
103
3a990910e7f4 "planemo upload commit be9070db4a3b178ab45ecd9c9c3ab369240f7617-dirty"
proteore
parents: 41
diff changeset
104 ego@result$Description <- sapply(ego@result$Description, function(x) { #nolint
3a990910e7f4 "planemo upload commit be9070db4a3b178ab45ecd9c9c3ab369240f7617-dirty"
proteore
parents: 41
diff changeset
105 ifelse(nchar(x) > 50, substr(x, 1, 50), x)
3a990910e7f4 "planemo upload commit be9070db4a3b178ab45ecd9c9c3ab369240f7617-dirty"
proteore
parents: 41
diff changeset
106 }, USE.NAMES = FALSE)
3a990910e7f4 "planemo upload commit be9070db4a3b178ab45ecd9c9c3ab369240f7617-dirty"
proteore
parents: 41
diff changeset
107
3a990910e7f4 "planemo upload commit be9070db4a3b178ab45ecd9c9c3ab369240f7617-dirty"
proteore
parents: 41
diff changeset
108
3a990910e7f4 "planemo upload commit be9070db4a3b178ab45ecd9c9c3ab369240f7617-dirty"
proteore
parents: 41
diff changeset
109 if ("dotplot" %in% plot) {
4
18275725e7cf planemo upload commit 9bdfcce89bdea8a0a85bfbf8f0fa9b943b17bea1-dirty
proteore
parents: 3
diff changeset
110 dot_name <- paste("EGO_", ontology, "_dot-plot", sep = "")
42
3a990910e7f4 "planemo upload commit be9070db4a3b178ab45ecd9c9c3ab369240f7617-dirty"
proteore
parents: 41
diff changeset
111 png(dot_name, height = 720, width = 600)
3a990910e7f4 "planemo upload commit be9070db4a3b178ab45ecd9c9c3ab369240f7617-dirty"
proteore
parents: 41
diff changeset
112 p <- dotplot(ego, showCategory = 10) #nolint
4
18275725e7cf planemo upload commit 9bdfcce89bdea8a0a85bfbf8f0fa9b943b17bea1-dirty
proteore
parents: 3
diff changeset
113 print(p)
18275725e7cf planemo upload commit 9bdfcce89bdea8a0a85bfbf8f0fa9b943b17bea1-dirty
proteore
parents: 3
diff changeset
114 dev.off()
18275725e7cf planemo upload commit 9bdfcce89bdea8a0a85bfbf8f0fa9b943b17bea1-dirty
proteore
parents: 3
diff changeset
115 }
18275725e7cf planemo upload commit 9bdfcce89bdea8a0a85bfbf8f0fa9b943b17bea1-dirty
proteore
parents: 3
diff changeset
116
42
3a990910e7f4 "planemo upload commit be9070db4a3b178ab45ecd9c9c3ab369240f7617-dirty"
proteore
parents: 41
diff changeset
117 if ("barplot" %in% plot) {
4
18275725e7cf planemo upload commit 9bdfcce89bdea8a0a85bfbf8f0fa9b943b17bea1-dirty
proteore
parents: 3
diff changeset
118 bar_name <- paste("EGO_", ontology, "_bar-plot", sep = "")
42
3a990910e7f4 "planemo upload commit be9070db4a3b178ab45ecd9c9c3ab369240f7617-dirty"
proteore
parents: 41
diff changeset
119 png(bar_name, height = 720, width = 600)
3a990910e7f4 "planemo upload commit be9070db4a3b178ab45ecd9c9c3ab369240f7617-dirty"
proteore
parents: 41
diff changeset
120 p <- barplot(ego, showCategory = 10)
2
1c98865a8508 planemo upload commit 01102a33a5c3fc56de61cd12784691b49334054b-dirty
proteore
parents: 1
diff changeset
121 print(p)
1c98865a8508 planemo upload commit 01102a33a5c3fc56de61cd12784691b49334054b-dirty
proteore
parents: 1
diff changeset
122 dev.off()
8
ea5fecd4aa69 planemo upload commit 229c140e131039467e2797f656d9acf916907dd7-dirty
proteore
parents: 7
diff changeset
123 }
42
3a990910e7f4 "planemo upload commit be9070db4a3b178ab45ecd9c9c3ab369240f7617-dirty"
proteore
parents: 41
diff changeset
124
27
54f8e6f5c59d planemo upload commit d884b75cfc292105807c42c58f864d536dc9e431-dirty
proteore
parents: 26
diff changeset
125 ego <- as.data.frame(ego)
2
1c98865a8508 planemo upload commit 01102a33a5c3fc56de61cd12784691b49334054b-dirty
proteore
parents: 1
diff changeset
126 return(ego)
1c98865a8508 planemo upload commit 01102a33a5c3fc56de61cd12784691b49334054b-dirty
proteore
parents: 1
diff changeset
127 } else {
42
3a990910e7f4 "planemo upload commit be9070db4a3b178ab45ecd9c9c3ab369240f7617-dirty"
proteore
parents: 41
diff changeset
128 warning(paste("No Go terms enriched (EGO) found for ",
3a990910e7f4 "planemo upload commit be9070db4a3b178ab45ecd9c9c3ab369240f7617-dirty"
proteore
parents: 41
diff changeset
129 ontology, "ontology"), immediate. = TRUE, noBreaks. = TRUE, call. = FALSE)
2
1c98865a8508 planemo upload commit 01102a33a5c3fc56de61cd12784691b49334054b-dirty
proteore
parents: 1
diff changeset
130 }
0
076349b72690 planemo upload commit 2e441b4969ae7cf9aeb227a1d47c43ef7268a5e6-dirty
proteore
parents:
diff changeset
131 }
076349b72690 planemo upload commit 2e441b4969ae7cf9aeb227a1d47c43ef7268a5e6-dirty
proteore
parents:
diff changeset
132
42
3a990910e7f4 "planemo upload commit be9070db4a3b178ab45ecd9c9c3ab369240f7617-dirty"
proteore
parents: 41
diff changeset
133
3a990910e7f4 "planemo upload commit be9070db4a3b178ab45ecd9c9c3ab369240f7617-dirty"
proteore
parents: 41
diff changeset
134 clean_ids <- function(ids) {
3a990910e7f4 "planemo upload commit be9070db4a3b178ab45ecd9c9c3ab369240f7617-dirty"
proteore
parents: 41
diff changeset
135 ids <- gsub(" ", "", ids)
3a990910e7f4 "planemo upload commit be9070db4a3b178ab45ecd9c9c3ab369240f7617-dirty"
proteore
parents: 41
diff changeset
136 ids <- ids[which(ids != "")]
3a990910e7f4 "planemo upload commit be9070db4a3b178ab45ecd9c9c3ab369240f7617-dirty"
proteore
parents: 41
diff changeset
137 ids <- ids[which(ids != "NA")]
3a990910e7f4 "planemo upload commit be9070db4a3b178ab45ecd9c9c3ab369240f7617-dirty"
proteore
parents: 41
diff changeset
138 ids <- ids[!is.na(ids)]
3a990910e7f4 "planemo upload commit be9070db4a3b178ab45ecd9c9c3ab369240f7617-dirty"
proteore
parents: 41
diff changeset
139
3a990910e7f4 "planemo upload commit be9070db4a3b178ab45ecd9c9c3ab369240f7617-dirty"
proteore
parents: 41
diff changeset
140 return(ids)
33
4b29214f2d4c planemo upload commit c6b2e31fccac66c2caa687b375cbf9947f7ba88e-dirty
proteore
parents: 32
diff changeset
141 }
4b29214f2d4c planemo upload commit c6b2e31fccac66c2caa687b375cbf9947f7ba88e-dirty
proteore
parents: 32
diff changeset
142
42
3a990910e7f4 "planemo upload commit be9070db4a3b178ab45ecd9c9c3ab369240f7617-dirty"
proteore
parents: 41
diff changeset
143 check_ids <- function(vector, type) {
3a990910e7f4 "planemo upload commit be9070db4a3b178ab45ecd9c9c3ab369240f7617-dirty"
proteore
parents: 41
diff changeset
144 uniprot_pattern <- "^([OPQ][0-9][A-Z0-9]{3}[0-9]|[A-NR-Z][0-9]([A-Z][A-Z0-9]{2}[0-9]){1,2})$" #nolint
3a990910e7f4 "planemo upload commit be9070db4a3b178ab45ecd9c9c3ab369240f7617-dirty"
proteore
parents: 41
diff changeset
145 entrez_id <- "^([0-9]+|[A-Z]{1,2}_[0-9]+|[A-Z]{1,2}_[A-Z]{1,4}[0-9]+)$" #nolint
3a990910e7f4 "planemo upload commit be9070db4a3b178ab45ecd9c9c3ab369240f7617-dirty"
proteore
parents: 41
diff changeset
146 if (type == "entrez") {
3a990910e7f4 "planemo upload commit be9070db4a3b178ab45ecd9c9c3ab369240f7617-dirty"
proteore
parents: 41
diff changeset
147 return(grepl(entrez_id, vector))
3a990910e7f4 "planemo upload commit be9070db4a3b178ab45ecd9c9c3ab369240f7617-dirty"
proteore
parents: 41
diff changeset
148 }else if (type == "uniprot") {
3a990910e7f4 "planemo upload commit be9070db4a3b178ab45ecd9c9c3ab369240f7617-dirty"
proteore
parents: 41
diff changeset
149 return(grepl(uniprot_pattern, vector))
0
076349b72690 planemo upload commit 2e441b4969ae7cf9aeb227a1d47c43ef7268a5e6-dirty
proteore
parents:
diff changeset
150 }
076349b72690 planemo upload commit 2e441b4969ae7cf9aeb227a1d47c43ef7268a5e6-dirty
proteore
parents:
diff changeset
151 }
076349b72690 planemo upload commit 2e441b4969ae7cf9aeb227a1d47c43ef7268a5e6-dirty
proteore
parents:
diff changeset
152
42
3a990910e7f4 "planemo upload commit be9070db4a3b178ab45ecd9c9c3ab369240f7617-dirty"
proteore
parents: 41
diff changeset
153 get_args <- function() {
0
076349b72690 planemo upload commit 2e441b4969ae7cf9aeb227a1d47c43ef7268a5e6-dirty
proteore
parents:
diff changeset
154 args <- commandArgs(TRUE)
42
3a990910e7f4 "planemo upload commit be9070db4a3b178ab45ecd9c9c3ab369240f7617-dirty"
proteore
parents: 41
diff changeset
155 if (length(args) < 1) {
0
076349b72690 planemo upload commit 2e441b4969ae7cf9aeb227a1d47c43ef7268a5e6-dirty
proteore
parents:
diff changeset
156 args <- c("--help")
076349b72690 planemo upload commit 2e441b4969ae7cf9aeb227a1d47c43ef7268a5e6-dirty
proteore
parents:
diff changeset
157 }
42
3a990910e7f4 "planemo upload commit be9070db4a3b178ab45ecd9c9c3ab369240f7617-dirty"
proteore
parents: 41
diff changeset
158
0
076349b72690 planemo upload commit 2e441b4969ae7cf9aeb227a1d47c43ef7268a5e6-dirty
proteore
parents:
diff changeset
159 # Help section
42
3a990910e7f4 "planemo upload commit be9070db4a3b178ab45ecd9c9c3ab369240f7617-dirty"
proteore
parents: 41
diff changeset
160 if ("--help" %in% args) {
0
076349b72690 planemo upload commit 2e441b4969ae7cf9aeb227a1d47c43ef7268a5e6-dirty
proteore
parents:
diff changeset
161 cat("clusterProfiler Enrichment Analysis
076349b72690 planemo upload commit 2e441b4969ae7cf9aeb227a1d47c43ef7268a5e6-dirty
proteore
parents:
diff changeset
162 Arguments:
076349b72690 planemo upload commit 2e441b4969ae7cf9aeb227a1d47c43ef7268a5e6-dirty
proteore
parents:
diff changeset
163 --input_type: type of input (list of id or filename)
076349b72690 planemo upload commit 2e441b4969ae7cf9aeb227a1d47c43ef7268a5e6-dirty
proteore
parents:
diff changeset
164 --input: input
076349b72690 planemo upload commit 2e441b4969ae7cf9aeb227a1d47c43ef7268a5e6-dirty
proteore
parents:
diff changeset
165 --ncol: the column number which contains list of input IDs
076349b72690 planemo upload commit 2e441b4969ae7cf9aeb227a1d47c43ef7268a5e6-dirty
proteore
parents:
diff changeset
166 --header: true/false if your file contains a header
076349b72690 planemo upload commit 2e441b4969ae7cf9aeb227a1d47c43ef7268a5e6-dirty
proteore
parents:
diff changeset
167 --id_type: the type of input IDs (UniProt/EntrezID)
076349b72690 planemo upload commit 2e441b4969ae7cf9aeb227a1d47c43ef7268a5e6-dirty
proteore
parents:
diff changeset
168 --universe_type: list or filename
076349b72690 planemo upload commit 2e441b4969ae7cf9aeb227a1d47c43ef7268a5e6-dirty
proteore
parents:
diff changeset
169 --universe: background IDs list
076349b72690 planemo upload commit 2e441b4969ae7cf9aeb227a1d47c43ef7268a5e6-dirty
proteore
parents:
diff changeset
170 --uncol: the column number which contains background IDs list
076349b72690 planemo upload commit 2e441b4969ae7cf9aeb227a1d47c43ef7268a5e6-dirty
proteore
parents:
diff changeset
171 --uheader: true/false if the background IDs file contains header
076349b72690 planemo upload commit 2e441b4969ae7cf9aeb227a1d47c43ef7268a5e6-dirty
proteore
parents:
diff changeset
172 --universe_id_type: the type of universe IDs (UniProt/EntrezID)
076349b72690 planemo upload commit 2e441b4969ae7cf9aeb227a1d47c43ef7268a5e6-dirty
proteore
parents:
diff changeset
173 --species
076349b72690 planemo upload commit 2e441b4969ae7cf9aeb227a1d47c43ef7268a5e6-dirty
proteore
parents:
diff changeset
174 --onto_opt: ontology options
076349b72690 planemo upload commit 2e441b4969ae7cf9aeb227a1d47c43ef7268a5e6-dirty
proteore
parents:
diff changeset
175 --go_function: groupGO/enrichGO
076349b72690 planemo upload commit 2e441b4969ae7cf9aeb227a1d47c43ef7268a5e6-dirty
proteore
parents:
diff changeset
176 --level: 1-3
076349b72690 planemo upload commit 2e441b4969ae7cf9aeb227a1d47c43ef7268a5e6-dirty
proteore
parents:
diff changeset
177 --pval_cutoff
076349b72690 planemo upload commit 2e441b4969ae7cf9aeb227a1d47c43ef7268a5e6-dirty
proteore
parents:
diff changeset
178 --qval_cutoff
42
3a990910e7f4 "planemo upload commit be9070db4a3b178ab45ecd9c9c3ab369240f7617-dirty"
proteore
parents: 41
diff changeset
179 --text_output: text output filename
4
18275725e7cf planemo upload commit 9bdfcce89bdea8a0a85bfbf8f0fa9b943b17bea1-dirty
proteore
parents: 3
diff changeset
180 --plot : type of visualization, dotplot or/and barplot \n")
42
3a990910e7f4 "planemo upload commit be9070db4a3b178ab45ecd9c9c3ab369240f7617-dirty"
proteore
parents: 41
diff changeset
181 q(save = "no")
0
076349b72690 planemo upload commit 2e441b4969ae7cf9aeb227a1d47c43ef7268a5e6-dirty
proteore
parents:
diff changeset
182 }
076349b72690 planemo upload commit 2e441b4969ae7cf9aeb227a1d47c43ef7268a5e6-dirty
proteore
parents:
diff changeset
183 # Parse arguments
42
3a990910e7f4 "planemo upload commit be9070db4a3b178ab45ecd9c9c3ab369240f7617-dirty"
proteore
parents: 41
diff changeset
184
3a990910e7f4 "planemo upload commit be9070db4a3b178ab45ecd9c9c3ab369240f7617-dirty"
proteore
parents: 41
diff changeset
185 parseargs <- function(x) strsplit(sub("^--", "", x), "=")
3a990910e7f4 "planemo upload commit be9070db4a3b178ab45ecd9c9c3ab369240f7617-dirty"
proteore
parents: 41
diff changeset
186 argsdf <- as.data.frame(do.call("rbind", parseargs(args)))
3a990910e7f4 "planemo upload commit be9070db4a3b178ab45ecd9c9c3ab369240f7617-dirty"
proteore
parents: 41
diff changeset
187 args <- as.list(as.character(argsdf$V2))
3a990910e7f4 "planemo upload commit be9070db4a3b178ab45ecd9c9c3ab369240f7617-dirty"
proteore
parents: 41
diff changeset
188 names(args) <- argsdf$V1
37
7269aea2cb95 planemo upload commit 3ff0fa577362e757a1e7692a0a397bdda3d4dfc8-dirty
proteore
parents: 35
diff changeset
189 return(args)
7269aea2cb95 planemo upload commit 3ff0fa577362e757a1e7692a0a397bdda3d4dfc8-dirty
proteore
parents: 35
diff changeset
190 }
7269aea2cb95 planemo upload commit 3ff0fa577362e757a1e7692a0a397bdda3d4dfc8-dirty
proteore
parents: 35
diff changeset
191
42
3a990910e7f4 "planemo upload commit be9070db4a3b178ab45ecd9c9c3ab369240f7617-dirty"
proteore
parents: 41
diff changeset
192 main <- function() { #nolint
37
7269aea2cb95 planemo upload commit 3ff0fa577362e757a1e7692a0a397bdda3d4dfc8-dirty
proteore
parents: 35
diff changeset
193 #get args from command
7269aea2cb95 planemo upload commit 3ff0fa577362e757a1e7692a0a397bdda3d4dfc8-dirty
proteore
parents: 35
diff changeset
194 args <- get_args()
7269aea2cb95 planemo upload commit 3ff0fa577362e757a1e7692a0a397bdda3d4dfc8-dirty
proteore
parents: 35
diff changeset
195
42
3a990910e7f4 "planemo upload commit be9070db4a3b178ab45ecd9c9c3ab369240f7617-dirty"
proteore
parents: 41
diff changeset
196 go_represent <- str2bool(args$go_represent)
3a990910e7f4 "planemo upload commit be9070db4a3b178ab45ecd9c9c3ab369240f7617-dirty"
proteore
parents: 41
diff changeset
197 go_enrich <- str2bool(args$go_enrich)
3a990910e7f4 "planemo upload commit be9070db4a3b178ab45ecd9c9c3ab369240f7617-dirty"
proteore
parents: 41
diff changeset
198 if (go_enrich) {
3a990910e7f4 "planemo upload commit be9070db4a3b178ab45ecd9c9c3ab369240f7617-dirty"
proteore
parents: 41
diff changeset
199 plot <- unlist(strsplit(args$plot, ","))
32
f2c0a2b44841 planemo upload commit bfee528de437dc698b227a274983af3f3106cbb3-dirty
proteore
parents: 31
diff changeset
200 }
42
3a990910e7f4 "planemo upload commit be9070db4a3b178ab45ecd9c9c3ab369240f7617-dirty"
proteore
parents: 41
diff changeset
201
2
1c98865a8508 planemo upload commit 01102a33a5c3fc56de61cd12784691b49334054b-dirty
proteore
parents: 1
diff changeset
202 suppressMessages(library(args$species, character.only = TRUE, quietly = TRUE))
42
3a990910e7f4 "planemo upload commit be9070db4a3b178ab45ecd9c9c3ab369240f7617-dirty"
proteore
parents: 41
diff changeset
203
0
076349b72690 planemo upload commit 2e441b4969ae7cf9aeb227a1d47c43ef7268a5e6-dirty
proteore
parents:
diff changeset
204 # Extract OrgDb
42
3a990910e7f4 "planemo upload commit be9070db4a3b178ab45ecd9c9c3ab369240f7617-dirty"
proteore
parents: 41
diff changeset
205 if (args$species == "org.Hs.eg.db") {
3a990910e7f4 "planemo upload commit be9070db4a3b178ab45ecd9c9c3ab369240f7617-dirty"
proteore
parents: 41
diff changeset
206 orgdb <- org.Hs.eg.db #nolint
3a990910e7f4 "planemo upload commit be9070db4a3b178ab45ecd9c9c3ab369240f7617-dirty"
proteore
parents: 41
diff changeset
207 } else if (args$species == "org.Mm.eg.db") {
3a990910e7f4 "planemo upload commit be9070db4a3b178ab45ecd9c9c3ab369240f7617-dirty"
proteore
parents: 41
diff changeset
208 orgdb <- org.Mm.eg.db #nolint
3a990910e7f4 "planemo upload commit be9070db4a3b178ab45ecd9c9c3ab369240f7617-dirty"
proteore
parents: 41
diff changeset
209 } else if (args$species == "org.Rn.eg.db") {
3a990910e7f4 "planemo upload commit be9070db4a3b178ab45ecd9c9c3ab369240f7617-dirty"
proteore
parents: 41
diff changeset
210 orgdb <- org.Rn.eg.db #nolint
0
076349b72690 planemo upload commit 2e441b4969ae7cf9aeb227a1d47c43ef7268a5e6-dirty
proteore
parents:
diff changeset
211 }
076349b72690 planemo upload commit 2e441b4969ae7cf9aeb227a1d47c43ef7268a5e6-dirty
proteore
parents:
diff changeset
212
076349b72690 planemo upload commit 2e441b4969ae7cf9aeb227a1d47c43ef7268a5e6-dirty
proteore
parents:
diff changeset
213 # Extract input IDs
42
3a990910e7f4 "planemo upload commit be9070db4a3b178ab45ecd9c9c3ab369240f7617-dirty"
proteore
parents: 41
diff changeset
214 input_type <- args$input_type
3a990910e7f4 "planemo upload commit be9070db4a3b178ab45ecd9c9c3ab369240f7617-dirty"
proteore
parents: 41
diff changeset
215 id_type <- args$id_type
3a990910e7f4 "planemo upload commit be9070db4a3b178ab45ecd9c9c3ab369240f7617-dirty"
proteore
parents: 41
diff changeset
216
0
076349b72690 planemo upload commit 2e441b4969ae7cf9aeb227a1d47c43ef7268a5e6-dirty
proteore
parents:
diff changeset
217 if (input_type == "text") {
42
3a990910e7f4 "planemo upload commit be9070db4a3b178ab45ecd9c9c3ab369240f7617-dirty"
proteore
parents: 41
diff changeset
218 input <- unlist(strsplit(strsplit(args$input, "[ \t\n]+")[[1]], ";"))
0
076349b72690 planemo upload commit 2e441b4969ae7cf9aeb227a1d47c43ef7268a5e6-dirty
proteore
parents:
diff changeset
219 } else if (input_type == "file") {
42
3a990910e7f4 "planemo upload commit be9070db4a3b178ab45ecd9c9c3ab369240f7617-dirty"
proteore
parents: 41
diff changeset
220 filename <- args$input
3a990910e7f4 "planemo upload commit be9070db4a3b178ab45ecd9c9c3ab369240f7617-dirty"
proteore
parents: 41
diff changeset
221 ncol <- args$ncol
0
076349b72690 planemo upload commit 2e441b4969ae7cf9aeb227a1d47c43ef7268a5e6-dirty
proteore
parents:
diff changeset
222 # Check ncol
076349b72690 planemo upload commit 2e441b4969ae7cf9aeb227a1d47c43ef7268a5e6-dirty
proteore
parents:
diff changeset
223 if (! as.numeric(gsub("c", "", ncol)) %% 1 == 0) {
076349b72690 planemo upload commit 2e441b4969ae7cf9aeb227a1d47c43ef7268a5e6-dirty
proteore
parents:
diff changeset
224 stop("Please enter the right format for column number: c[number]")
076349b72690 planemo upload commit 2e441b4969ae7cf9aeb227a1d47c43ef7268a5e6-dirty
proteore
parents:
diff changeset
225 } else {
42
3a990910e7f4 "planemo upload commit be9070db4a3b178ab45ecd9c9c3ab369240f7617-dirty"
proteore
parents: 41
diff changeset
226 ncol <- as.numeric(gsub("c", "", ncol))
0
076349b72690 planemo upload commit 2e441b4969ae7cf9aeb227a1d47c43ef7268a5e6-dirty
proteore
parents:
diff changeset
227 }
42
3a990910e7f4 "planemo upload commit be9070db4a3b178ab45ecd9c9c3ab369240f7617-dirty"
proteore
parents: 41
diff changeset
228
3a990910e7f4 "planemo upload commit be9070db4a3b178ab45ecd9c9c3ab369240f7617-dirty"
proteore
parents: 41
diff changeset
229 header <- str2bool(args$header) # Get file content
3a990910e7f4 "planemo upload commit be9070db4a3b178ab45ecd9c9c3ab369240f7617-dirty"
proteore
parents: 41
diff changeset
230 file <- read_file(filename, header) # Extract Protein IDs list
3a990910e7f4 "planemo upload commit be9070db4a3b178ab45ecd9c9c3ab369240f7617-dirty"
proteore
parents: 41
diff changeset
231 input <- unlist(sapply(as.character(file[, ncol]),
3a990910e7f4 "planemo upload commit be9070db4a3b178ab45ecd9c9c3ab369240f7617-dirty"
proteore
parents: 41
diff changeset
232 function(x) rapply(strsplit(x, ";"), c), USE.NAMES = FALSE))
0
076349b72690 planemo upload commit 2e441b4969ae7cf9aeb227a1d47c43ef7268a5e6-dirty
proteore
parents:
diff changeset
233 }
42
3a990910e7f4 "planemo upload commit be9070db4a3b178ab45ecd9c9c3ab369240f7617-dirty"
proteore
parents: 41
diff changeset
234 input <- clean_ids(input)
3a990910e7f4 "planemo upload commit be9070db4a3b178ab45ecd9c9c3ab369240f7617-dirty"
proteore
parents: 41
diff changeset
235
0
076349b72690 planemo upload commit 2e441b4969ae7cf9aeb227a1d47c43ef7268a5e6-dirty
proteore
parents:
diff changeset
236 ## Get input gene list from input IDs
42
3a990910e7f4 "planemo upload commit be9070db4a3b178ab45ecd9c9c3ab369240f7617-dirty"
proteore
parents: 41
diff changeset
237 #ID format Conversion
0
076349b72690 planemo upload commit 2e441b4969ae7cf9aeb227a1d47c43ef7268a5e6-dirty
proteore
parents:
diff changeset
238 #This case : from UNIPROT (protein id) to ENTREZ (gene id)
076349b72690 planemo upload commit 2e441b4969ae7cf9aeb227a1d47c43ef7268a5e6-dirty
proteore
parents:
diff changeset
239 #bitr = conversion function from clusterProfiler
42
3a990910e7f4 "planemo upload commit be9070db4a3b178ab45ecd9c9c3ab369240f7617-dirty"
proteore
parents: 41
diff changeset
240 if (id_type == "Uniprot" & any(check_ids(input, "uniprot"))) {
3a990910e7f4 "planemo upload commit be9070db4a3b178ab45ecd9c9c3ab369240f7617-dirty"
proteore
parents: 41
diff changeset
241 any(check_ids(input, "uniprot"))
3a990910e7f4 "planemo upload commit be9070db4a3b178ab45ecd9c9c3ab369240f7617-dirty"
proteore
parents: 41
diff changeset
242
3a990910e7f4 "planemo upload commit be9070db4a3b178ab45ecd9c9c3ab369240f7617-dirty"
proteore
parents: 41
diff changeset
243 idfrom <- "UNIPROT"
3a990910e7f4 "planemo upload commit be9070db4a3b178ab45ecd9c9c3ab369240f7617-dirty"
proteore
parents: 41
diff changeset
244 idto <- "ENTREZID"
3a990910e7f4 "planemo upload commit be9070db4a3b178ab45ecd9c9c3ab369240f7617-dirty"
proteore
parents: 41
diff changeset
245 suppressMessages(gene <- bitr(input, fromType = idfrom, toType = idto,
3a990910e7f4 "planemo upload commit be9070db4a3b178ab45ecd9c9c3ab369240f7617-dirty"
proteore
parents: 41
diff changeset
246 OrgDb = orgdb))
3a990910e7f4 "planemo upload commit be9070db4a3b178ab45ecd9c9c3ab369240f7617-dirty"
proteore
parents: 41
diff changeset
247
3a990910e7f4 "planemo upload commit be9070db4a3b178ab45ecd9c9c3ab369240f7617-dirty"
proteore
parents: 41
diff changeset
248 gene <- unique(gene$ENTREZID)
3a990910e7f4 "planemo upload commit be9070db4a3b178ab45ecd9c9c3ab369240f7617-dirty"
proteore
parents: 41
diff changeset
249 } else if (id_type == "Entrez" & any(check_ids(input, "entrez"))) {
3a990910e7f4 "planemo upload commit be9070db4a3b178ab45ecd9c9c3ab369240f7617-dirty"
proteore
parents: 41
diff changeset
250 gene <- unique(input)
0
076349b72690 planemo upload commit 2e441b4969ae7cf9aeb227a1d47c43ef7268a5e6-dirty
proteore
parents:
diff changeset
251 } else {
42
3a990910e7f4 "planemo upload commit be9070db4a3b178ab45ecd9c9c3ab369240f7617-dirty"
proteore
parents: 41
diff changeset
252
3a990910e7f4 "planemo upload commit be9070db4a3b178ab45ecd9c9c3ab369240f7617-dirty"
proteore
parents: 41
diff changeset
253 stop(paste(id_type, "not found in your ids list,
3a990910e7f4 "planemo upload commit be9070db4a3b178ab45ecd9c9c3ab369240f7617-dirty"
proteore
parents: 41
diff changeset
254 please check your IDs in input or the selected column of your input file"))
3a990910e7f4 "planemo upload commit be9070db4a3b178ab45ecd9c9c3ab369240f7617-dirty"
proteore
parents: 41
diff changeset
255
0
076349b72690 planemo upload commit 2e441b4969ae7cf9aeb227a1d47c43ef7268a5e6-dirty
proteore
parents:
diff changeset
256 }
076349b72690 planemo upload commit 2e441b4969ae7cf9aeb227a1d47c43ef7268a5e6-dirty
proteore
parents:
diff changeset
257
076349b72690 planemo upload commit 2e441b4969ae7cf9aeb227a1d47c43ef7268a5e6-dirty
proteore
parents:
diff changeset
258 ontology <- strsplit(args$onto_opt, ",")[[1]]
42
3a990910e7f4 "planemo upload commit be9070db4a3b178ab45ecd9c9c3ab369240f7617-dirty"
proteore
parents: 41
diff changeset
259
0
076349b72690 planemo upload commit 2e441b4969ae7cf9aeb227a1d47c43ef7268a5e6-dirty
proteore
parents:
diff changeset
260 ## Extract GGO/EGO arguments
42
3a990910e7f4 "planemo upload commit be9070db4a3b178ab45ecd9c9c3ab369240f7617-dirty"
proteore
parents: 41
diff changeset
261 if (go_represent) {
3a990910e7f4 "planemo upload commit be9070db4a3b178ab45ecd9c9c3ab369240f7617-dirty"
proteore
parents: 41
diff changeset
262 level <- as.numeric(args$level)
3a990910e7f4 "planemo upload commit be9070db4a3b178ab45ecd9c9c3ab369240f7617-dirty"
proteore
parents: 41
diff changeset
263
3a990910e7f4 "planemo upload commit be9070db4a3b178ab45ecd9c9c3ab369240f7617-dirty"
proteore
parents: 41
diff changeset
264 }
3a990910e7f4 "planemo upload commit be9070db4a3b178ab45ecd9c9c3ab369240f7617-dirty"
proteore
parents: 41
diff changeset
265
28
eafb37258a6f planemo upload commit 62db30a8a6c62c0106fda053ca75eb48e90ea705-dirty
proteore
parents: 27
diff changeset
266 if (go_enrich) {
0
076349b72690 planemo upload commit 2e441b4969ae7cf9aeb227a1d47c43ef7268a5e6-dirty
proteore
parents:
diff changeset
267 pval_cutoff <- as.numeric(args$pval_cutoff)
076349b72690 planemo upload commit 2e441b4969ae7cf9aeb227a1d47c43ef7268a5e6-dirty
proteore
parents:
diff changeset
268 qval_cutoff <- as.numeric(args$qval_cutoff)
076349b72690 planemo upload commit 2e441b4969ae7cf9aeb227a1d47c43ef7268a5e6-dirty
proteore
parents:
diff changeset
269 # Extract universe background genes (same as input file)
076349b72690 planemo upload commit 2e441b4969ae7cf9aeb227a1d47c43ef7268a5e6-dirty
proteore
parents:
diff changeset
270 if (!is.null(args$universe_type)) {
42
3a990910e7f4 "planemo upload commit be9070db4a3b178ab45ecd9c9c3ab369240f7617-dirty"
proteore
parents: 41
diff changeset
271 universe_type <- args$universe_type
0
076349b72690 planemo upload commit 2e441b4969ae7cf9aeb227a1d47c43ef7268a5e6-dirty
proteore
parents:
diff changeset
272 if (universe_type == "text") {
42
3a990910e7f4 "planemo upload commit be9070db4a3b178ab45ecd9c9c3ab369240f7617-dirty"
proteore
parents: 41
diff changeset
273 universe <- unlist(strsplit(strsplit(args$input, "[ \t\n]+")[[1]], ";"))
0
076349b72690 planemo upload commit 2e441b4969ae7cf9aeb227a1d47c43ef7268a5e6-dirty
proteore
parents:
diff changeset
274 } else if (universe_type == "file") {
42
3a990910e7f4 "planemo upload commit be9070db4a3b178ab45ecd9c9c3ab369240f7617-dirty"
proteore
parents: 41
diff changeset
275 universe_filename <- args$universe
3a990910e7f4 "planemo upload commit be9070db4a3b178ab45ecd9c9c3ab369240f7617-dirty"
proteore
parents: 41
diff changeset
276 universe_ncol <- args$uncol
0
076349b72690 planemo upload commit 2e441b4969ae7cf9aeb227a1d47c43ef7268a5e6-dirty
proteore
parents:
diff changeset
277 # Check ncol
076349b72690 planemo upload commit 2e441b4969ae7cf9aeb227a1d47c43ef7268a5e6-dirty
proteore
parents:
diff changeset
278 if (! as.numeric(gsub("c", "", universe_ncol)) %% 1 == 0) {
076349b72690 planemo upload commit 2e441b4969ae7cf9aeb227a1d47c43ef7268a5e6-dirty
proteore
parents:
diff changeset
279 stop("Please enter the right format for column number: c[number]")
076349b72690 planemo upload commit 2e441b4969ae7cf9aeb227a1d47c43ef7268a5e6-dirty
proteore
parents:
diff changeset
280 } else {
42
3a990910e7f4 "planemo upload commit be9070db4a3b178ab45ecd9c9c3ab369240f7617-dirty"
proteore
parents: 41
diff changeset
281 universe_ncol <- as.numeric(gsub("c", "", universe_ncol))
0
076349b72690 planemo upload commit 2e441b4969ae7cf9aeb227a1d47c43ef7268a5e6-dirty
proteore
parents:
diff changeset
282 }
42
3a990910e7f4 "planemo upload commit be9070db4a3b178ab45ecd9c9c3ab369240f7617-dirty"
proteore
parents: 41
diff changeset
283 universe_header <- str2bool(args$uheader)
0
076349b72690 planemo upload commit 2e441b4969ae7cf9aeb227a1d47c43ef7268a5e6-dirty
proteore
parents:
diff changeset
284 # Get file content
42
3a990910e7f4 "planemo upload commit be9070db4a3b178ab45ecd9c9c3ab369240f7617-dirty"
proteore
parents: 41
diff changeset
285 universe_file <- read_file(universe_filename, universe_header)
0
076349b72690 planemo upload commit 2e441b4969ae7cf9aeb227a1d47c43ef7268a5e6-dirty
proteore
parents:
diff changeset
286 # Extract Protein IDs list
42
3a990910e7f4 "planemo upload commit be9070db4a3b178ab45ecd9c9c3ab369240f7617-dirty"
proteore
parents: 41
diff changeset
287 universe <- unlist(sapply(universe_file[, universe_ncol],
3a990910e7f4 "planemo upload commit be9070db4a3b178ab45ecd9c9c3ab369240f7617-dirty"
proteore
parents: 41
diff changeset
288 function(x) rapply(strsplit(x, ";"), c), USE.NAMES = FALSE))
0
076349b72690 planemo upload commit 2e441b4969ae7cf9aeb227a1d47c43ef7268a5e6-dirty
proteore
parents:
diff changeset
289 }
42
3a990910e7f4 "planemo upload commit be9070db4a3b178ab45ecd9c9c3ab369240f7617-dirty"
proteore
parents: 41
diff changeset
290 universe <- clean_ids(input)
3a990910e7f4 "planemo upload commit be9070db4a3b178ab45ecd9c9c3ab369240f7617-dirty"
proteore
parents: 41
diff changeset
291 universe_id_type <- args$universe_id_type
0
076349b72690 planemo upload commit 2e441b4969ae7cf9aeb227a1d47c43ef7268a5e6-dirty
proteore
parents:
diff changeset
292 ##to initialize
42
3a990910e7f4 "planemo upload commit be9070db4a3b178ab45ecd9c9c3ab369240f7617-dirty"
proteore
parents: 41
diff changeset
293 if (universe_id_type == "Uniprot" & any(check_ids(universe, "uniprot"))) {
3a990910e7f4 "planemo upload commit be9070db4a3b178ab45ecd9c9c3ab369240f7617-dirty"
proteore
parents: 41
diff changeset
294 idfrom <- "UNIPROT"
3a990910e7f4 "planemo upload commit be9070db4a3b178ab45ecd9c9c3ab369240f7617-dirty"
proteore
parents: 41
diff changeset
295 idto <- "ENTREZID"
3a990910e7f4 "planemo upload commit be9070db4a3b178ab45ecd9c9c3ab369240f7617-dirty"
proteore
parents: 41
diff changeset
296 suppressMessages(universe_gene <- bitr(universe, fromType = idfrom,
3a990910e7f4 "planemo upload commit be9070db4a3b178ab45ecd9c9c3ab369240f7617-dirty"
proteore
parents: 41
diff changeset
297 toType = idto, OrgDb = orgdb))
3a990910e7f4 "planemo upload commit be9070db4a3b178ab45ecd9c9c3ab369240f7617-dirty"
proteore
parents: 41
diff changeset
298 universe_gene <- unique(universe_gene$ENTREZID)
3a990910e7f4 "planemo upload commit be9070db4a3b178ab45ecd9c9c3ab369240f7617-dirty"
proteore
parents: 41
diff changeset
299 } else if (universe_id_type == "Entrez" &
3a990910e7f4 "planemo upload commit be9070db4a3b178ab45ecd9c9c3ab369240f7617-dirty"
proteore
parents: 41
diff changeset
300 any(check_ids(universe, "entrez"))) {
3a990910e7f4 "planemo upload commit be9070db4a3b178ab45ecd9c9c3ab369240f7617-dirty"
proteore
parents: 41
diff changeset
301 universe_gene <- unique(unlist(universe))
0
076349b72690 planemo upload commit 2e441b4969ae7cf9aeb227a1d47c43ef7268a5e6-dirty
proteore
parents:
diff changeset
302 } else {
42
3a990910e7f4 "planemo upload commit be9070db4a3b178ab45ecd9c9c3ab369240f7617-dirty"
proteore
parents: 41
diff changeset
303 if (universe_type == "text") {
3a990910e7f4 "planemo upload commit be9070db4a3b178ab45ecd9c9c3ab369240f7617-dirty"
proteore
parents: 41
diff changeset
304 print(paste(universe_id_type, "not found in your background IDs list",
3a990910e7f4 "planemo upload commit be9070db4a3b178ab45ecd9c9c3ab369240f7617-dirty"
proteore
parents: 41
diff changeset
305 sep = " "))
0
076349b72690 planemo upload commit 2e441b4969ae7cf9aeb227a1d47c43ef7268a5e6-dirty
proteore
parents:
diff changeset
306 } else {
42
3a990910e7f4 "planemo upload commit be9070db4a3b178ab45ecd9c9c3ab369240f7617-dirty"
proteore
parents: 41
diff changeset
307 print(paste(universe_id_type, "not found in the column",
3a990910e7f4 "planemo upload commit be9070db4a3b178ab45ecd9c9c3ab369240f7617-dirty"
proteore
parents: 41
diff changeset
308 universe_ncol, "of your background IDs file", sep = " "))
3a990910e7f4 "planemo upload commit be9070db4a3b178ab45ecd9c9c3ab369240f7617-dirty"
proteore
parents: 41
diff changeset
309
0
076349b72690 planemo upload commit 2e441b4969ae7cf9aeb227a1d47c43ef7268a5e6-dirty
proteore
parents:
diff changeset
310 }
42
3a990910e7f4 "planemo upload commit be9070db4a3b178ab45ecd9c9c3ab369240f7617-dirty"
proteore
parents: 41
diff changeset
311 universe_gene <- NULL
3a990910e7f4 "planemo upload commit be9070db4a3b178ab45ecd9c9c3ab369240f7617-dirty"
proteore
parents: 41
diff changeset
312 }
0
076349b72690 planemo upload commit 2e441b4969ae7cf9aeb227a1d47c43ef7268a5e6-dirty
proteore
parents:
diff changeset
313 } else {
42
3a990910e7f4 "planemo upload commit be9070db4a3b178ab45ecd9c9c3ab369240f7617-dirty"
proteore
parents: 41
diff changeset
314 universe_gene <- NULL
0
076349b72690 planemo upload commit 2e441b4969ae7cf9aeb227a1d47c43ef7268a5e6-dirty
proteore
parents:
diff changeset
315 }
4
18275725e7cf planemo upload commit 9bdfcce89bdea8a0a85bfbf8f0fa9b943b17bea1-dirty
proteore
parents: 3
diff changeset
316 } else {
42
3a990910e7f4 "planemo upload commit be9070db4a3b178ab45ecd9c9c3ab369240f7617-dirty"
proteore
parents: 41
diff changeset
317 universe_gene <- NULL
0
076349b72690 planemo upload commit 2e441b4969ae7cf9aeb227a1d47c43ef7268a5e6-dirty
proteore
parents:
diff changeset
318 }
076349b72690 planemo upload commit 2e441b4969ae7cf9aeb227a1d47c43ef7268a5e6-dirty
proteore
parents:
diff changeset
319
076349b72690 planemo upload commit 2e441b4969ae7cf9aeb227a1d47c43ef7268a5e6-dirty
proteore
parents:
diff changeset
320 ##enrichGO : GO over-representation test
076349b72690 planemo upload commit 2e441b4969ae7cf9aeb227a1d47c43ef7268a5e6-dirty
proteore
parents:
diff changeset
321 for (onto in ontology) {
28
eafb37258a6f planemo upload commit 62db30a8a6c62c0106fda053ca75eb48e90ea705-dirty
proteore
parents: 27
diff changeset
322 if (go_represent) {
42
3a990910e7f4 "planemo upload commit be9070db4a3b178ab45ecd9c9c3ab369240f7617-dirty"
proteore
parents: 41
diff changeset
323 ggo <- repartition_go(gene, orgdb, onto, level, readable = TRUE)
3a990910e7f4 "planemo upload commit be9070db4a3b178ab45ecd9c9c3ab369240f7617-dirty"
proteore
parents: 41
diff changeset
324 if (is.list(ggo)) {
3a990910e7f4 "planemo upload commit be9070db4a3b178ab45ecd9c9c3ab369240f7617-dirty"
proteore
parents: 41
diff changeset
325 ggo <- as.data.frame(apply(ggo, c(1, 2),
3a990910e7f4 "planemo upload commit be9070db4a3b178ab45ecd9c9c3ab369240f7617-dirty"
proteore
parents: 41
diff changeset
326 function(x) gsub("^$|^ $", NA, x)))
3a990910e7f4 "planemo upload commit be9070db4a3b178ab45ecd9c9c3ab369240f7617-dirty"
proteore
parents: 41
diff changeset
327 } #convert "" and " " to NA
3a990910e7f4 "planemo upload commit be9070db4a3b178ab45ecd9c9c3ab369240f7617-dirty"
proteore
parents: 41
diff changeset
328 output_path <- paste("cluster_profiler_GGO_", onto, ".tsv", sep = "")
3a990910e7f4 "planemo upload commit be9070db4a3b178ab45ecd9c9c3ab369240f7617-dirty"
proteore
parents: 41
diff changeset
329 write.table(ggo, output_path, sep = "\t",
3a990910e7f4 "planemo upload commit be9070db4a3b178ab45ecd9c9c3ab369240f7617-dirty"
proteore
parents: 41
diff changeset
330 row.names = FALSE, quote = FALSE)
3a990910e7f4 "planemo upload commit be9070db4a3b178ab45ecd9c9c3ab369240f7617-dirty"
proteore
parents: 41
diff changeset
331
0
076349b72690 planemo upload commit 2e441b4969ae7cf9aeb227a1d47c43ef7268a5e6-dirty
proteore
parents:
diff changeset
332 }
4
18275725e7cf planemo upload commit 9bdfcce89bdea8a0a85bfbf8f0fa9b943b17bea1-dirty
proteore
parents: 3
diff changeset
333
28
eafb37258a6f planemo upload commit 62db30a8a6c62c0106fda053ca75eb48e90ea705-dirty
proteore
parents: 27
diff changeset
334 if (go_enrich) {
42
3a990910e7f4 "planemo upload commit be9070db4a3b178ab45ecd9c9c3ab369240f7617-dirty"
proteore
parents: 41
diff changeset
335 ego <- enrich_go(gene, universe_gene, orgdb, onto, pval_cutoff,
3a990910e7f4 "planemo upload commit be9070db4a3b178ab45ecd9c9c3ab369240f7617-dirty"
proteore
parents: 41
diff changeset
336 qval_cutoff, plot)
3a990910e7f4 "planemo upload commit be9070db4a3b178ab45ecd9c9c3ab369240f7617-dirty"
proteore
parents: 41
diff changeset
337 if (is.list(ego)) {
3a990910e7f4 "planemo upload commit be9070db4a3b178ab45ecd9c9c3ab369240f7617-dirty"
proteore
parents: 41
diff changeset
338 ego <- as.data.frame(apply(ego, c(1, 2),
3a990910e7f4 "planemo upload commit be9070db4a3b178ab45ecd9c9c3ab369240f7617-dirty"
proteore
parents: 41
diff changeset
339 function(x) gsub("^$|^ $", NA, x)))
3a990910e7f4 "planemo upload commit be9070db4a3b178ab45ecd9c9c3ab369240f7617-dirty"
proteore
parents: 41
diff changeset
340 } #convert "" and " " to NA
3a990910e7f4 "planemo upload commit be9070db4a3b178ab45ecd9c9c3ab369240f7617-dirty"
proteore
parents: 41
diff changeset
341 output_path <- paste("cluster_profiler_EGO_", onto, ".tsv", sep = "")
3a990910e7f4 "planemo upload commit be9070db4a3b178ab45ecd9c9c3ab369240f7617-dirty"
proteore
parents: 41
diff changeset
342 write.table(ego, output_path, sep = "\t",
3a990910e7f4 "planemo upload commit be9070db4a3b178ab45ecd9c9c3ab369240f7617-dirty"
proteore
parents: 41
diff changeset
343 row.names = FALSE, quote = FALSE)
0
076349b72690 planemo upload commit 2e441b4969ae7cf9aeb227a1d47c43ef7268a5e6-dirty
proteore
parents:
diff changeset
344 }
076349b72690 planemo upload commit 2e441b4969ae7cf9aeb227a1d47c43ef7268a5e6-dirty
proteore
parents:
diff changeset
345 }
076349b72690 planemo upload commit 2e441b4969ae7cf9aeb227a1d47c43ef7268a5e6-dirty
proteore
parents:
diff changeset
346 }
076349b72690 planemo upload commit 2e441b4969ae7cf9aeb227a1d47c43ef7268a5e6-dirty
proteore
parents:
diff changeset
347
42
3a990910e7f4 "planemo upload commit be9070db4a3b178ab45ecd9c9c3ab369240f7617-dirty"
proteore
parents: 41
diff changeset
348 if (!interactive()) {
37
7269aea2cb95 planemo upload commit 3ff0fa577362e757a1e7692a0a397bdda3d4dfc8-dirty
proteore
parents: 35
diff changeset
349 main()
7269aea2cb95 planemo upload commit 3ff0fa577362e757a1e7692a0a397bdda3d4dfc8-dirty
proteore
parents: 35
diff changeset
350 }