Mercurial > repos > mora-lab > reactomepa
comparison ReactomePA.R @ 1:66cd0f5b8c36 draft default tip
Uploaded
| author | mora-lab |
|---|---|
| date | Thu, 20 May 2021 08:39:40 +0000 |
| parents | |
| children |
comparison
equal
deleted
inserted
replaced
| 0:f6a9fe7e8066 | 1:66cd0f5b8c36 |
|---|---|
| 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 |
