1
|
1 ###############################################################################
|
|
2 #title: Reactome Pathway enrich Analysis of a gene set
|
|
3 #author: xiaowei
|
|
4 # time: Mar.31 2021
|
|
5 ###############################################################################
|
|
6
|
|
7
|
|
8 #####################
|
|
9 #Input argument for this function
|
|
10 #####################
|
|
11 # title
|
|
12 # Reactome Pathway enrich Analysis of a gene set
|
|
13
|
|
14 # description
|
|
15 #Input a vector of all different expression gene and Output the enriched Significant Reactome Pathways
|
|
16
|
|
17 # basic input:
|
|
18 # genelist, g, 1, character, an csv file contained all different expression genes with entrez gene id, and has one column as DEgenes
|
|
19
|
|
20 # Optional:
|
|
21 # pvalueCutoff , p , 1, numeric , Cutoff value of p-value,
|
|
22 # organism , o , 1, character, one of 'human', 'rat', 'mouse', 'celegans', 'yeast', 'zebrafish' and 'fly',
|
|
23 # pAdjustMethod , w , 1, character, one of 'holm', 'hochberg', 'hommel', 'bonferroni', 'BH', 'BY', 'fdr', 'none',
|
|
24 # minGSSize , i , 1, integer , minimal size of genes annotated by Ontology term for testing,
|
|
25 # maxGSSize , a , 1, integer , maximal size of each geneSet for analyzing,
|
|
26 # convertId , c , 0, logical , whether papping gene ID to gene Name,
|
|
27
|
|
28
|
|
29 # OUT:
|
|
30 # sigP, s, 1, character, output csv file name
|
|
31
|
|
32 ##############################################################################
|
|
33 #Input argument
|
|
34 ###############################################################################
|
|
35 #args <- commandArgs(trailingOnly = TRUE)
|
|
36
|
|
37 spec <- matrix(c("genelist", "g", 1, "character", "an csv file contained all different expression genes with entrez gene id",
|
|
38 "pvalueCutoff", "p", 1, "numeric", "Cutoff value of p-value",
|
|
39 "organism", "o", 1, "character", "one of 'human', 'rat', 'mouse', 'celegans', 'yeast', 'zebrafish' and 'fly'",
|
|
40 "pAdjustMethod","w", 1, "character", "one of 'holm', 'hochberg', 'hommel', 'bonferroni', 'BH', 'BY', 'fdr', 'none'",
|
|
41 "minGSSize", "i",1, "integer", "minimal size of genes annotated by Ontology term for testing",
|
|
42 "maxGSSize", "a",1, "integer", "maximal size of each geneSet for analyzing",
|
|
43 "convertId", "c",0, "logical", "whether papping gene ID to gene Name",
|
|
44 "sigP", "s", 1, "character", "output csv file name"),
|
|
45 byrow = TRUE, ncol = 5)
|
|
46
|
|
47
|
|
48 if (!requireNamespace("getopt", quietly = TRUE))
|
|
49 install.packages("getopt")
|
|
50
|
|
51
|
|
52 opt <- getopt::getopt(spec)
|
|
53
|
|
54 #-------整理输入的参数----------------
|
|
55 de <- opt$genelist
|
|
56 if(is.null(opt$pvalueCutoff)){
|
|
57 pvalueCutoff = 0.05
|
|
58 }else{
|
|
59 pvalueCutoff <- opt$pvalueCutoff
|
|
60 }
|
|
61
|
|
62 if(is.null(opt$organism)){
|
|
63 organism <- "human"
|
|
64 }else{
|
|
65 organism <- opt$organism
|
|
66 }
|
|
67
|
|
68 if(is.null(opt$pAdjustMethod)){
|
|
69 pAdjustMethod <- "BH"
|
|
70 }else{
|
|
71 pAdjustMethod <- opt$pAdjustMethod
|
|
72 }
|
|
73
|
|
74 if(is.null(opt$minGSSize)){
|
|
75 minGSSize <- 10
|
|
76 }else{
|
|
77 minGSSize <- opt$minGSSize
|
|
78 }
|
|
79
|
|
80 if(is.null(opt$maxGSSize)){
|
|
81 maxGSSize <- 500
|
|
82 }else{
|
|
83 maxGSSize <- opt$maxGSSize
|
|
84 }
|
|
85
|
|
86
|
|
87 if(is.null(opt$convertId)){
|
|
88 convertId <- FALSE
|
|
89 }else{
|
|
90 convertId <- opt$convertId
|
|
91 }
|
|
92
|
|
93 if(is.null(opt$sigP)){
|
|
94 opt$sigP <- "Significant_Reactome_Pathway_result.csv"
|
|
95 }
|
|
96
|
|
97 ###############################################################################
|
|
98 #运行代码
|
|
99 ###############################################################################
|
|
100 de <- read.csv(de)
|
|
101 de <- de$DEgenes
|
|
102
|
|
103 suppressPackageStartupMessages(
|
|
104 if (!requireNamespace("ReactomePA", quietly = TRUE)){
|
|
105 if (!requireNamespace("BiocManager", quietly = TRUE))
|
|
106 install.packages("BiocManager")
|
|
107 BiocManager::install("ReactomePA")
|
|
108 })
|
|
109
|
|
110 #suppressPackageStartupMessages(library(ReactomePA))
|
|
111
|
|
112 #Pathway Enrichment Analysis of a gene set
|
|
113 result_sigP <- ReactomePA::enrichPathway(gene=de, #entrez id 的基因 向量
|
|
114 pvalueCutoff= pvalueCutoff, #p值阈值
|
|
115 organism = organism, #有机体是"human"、"rat"、"mouse"、"celegans"、"yeast"、"zebrafish"、"fly"其中一个
|
|
116 pAdjustMethod = pAdjustMethod, #"holm", "hochberg", "hommel", "bonferroni", "BH", "BY", "fdr", "none" 其中一个
|
|
117 #unverse, #背景基因
|
|
118 minGSSize = minGSSize, #检验本体术语时,限制最少基因个数
|
|
119 maxGSSize = maxGSSize, #分析基因集时,限制最大基因个数
|
|
120 readable=convertId) #是否将geneID映射到基因名称
|
|
121
|
|
122 result_sigP <- as.data.frame(result_sigP)
|
|
123
|
|
124
|
|
125
|
|
126 ###############################################################################
|
|
127 #输出
|
|
128 ###############################################################################
|
|
129 write.csv(result_sigP, file = opt$sigP, row.names = FALSE)
|
|
130
|
|
131
|
|
132
|