This package is designed for reactome pathway-based analysis. Reactome is an open-source, open access, manually curated and peer-reviewed pathway database.
If you use Reactome in published research, please cite G. Yu (2015). In addition, please cite G. Yu (2012) when using compareCluster
in clusterProfiler, G Yu (2015) when applying enrichment analysis to NGS data using ChIPseeker.
G Yu, QY He.
ReactomePA: an R/Bioconductor package for reactome pathway analysis and visualization
Molecular BioSystems 2015, Accepted.
URL: http://dx.doi.org/10.1039/C5MB00663E
G Yu, LG Wang, Y Han, QY He.
clusterProfiler: an R package for comparing biological themes among gene clusters.
OMICS: A Journal of Integrative Biology 2012, 16(5):284-287.
URL: http://dx.doi.org/10.1089/omi.2011.0118
G Yu, LG Wang, QY He.
ChIPseeker: an R/Bioconductor package for ChIP peak annotation, comparison and visualization.
Bioinformatics 2015, 31(14):2382-2383.
Currently ReactomePA supports several model organisms, including ‘celegans’, ‘fly’, ‘human’, ‘mouse’, ‘rat’, ‘yeast’ and ‘zebrafish’. The input gene ID should be Entrez gene ID. We recommend using clusterProfiler::bitr
to convert biological IDs. For more detail, please refer to bitr: Biological Id TranslatoR.
Enrichment analysis is a widely used approach to identify biological themes. Here, we implement hypergeometric model to assess whether the number of selected genes associated with reactome pathway is larger than expected. The p values were calculated based the hypergeometric model1,
require(DOSE)
data(geneList)
de <- names(geneList)[abs(geneList) > 1.5]
head(de)
## [1] "4312" "8318" "10874" "55143" "55388" "991"
require(ReactomePA)
x <- enrichPathway(gene=de,pvalueCutoff=0.05, readable=T)
head(summary(x))
## ID Description GeneRatio BgRatio
## 68877 68877 Mitotic Prometaphase 25/248 100/6750
## 69278 69278 Cell Cycle, Mitotic 49/248 409/6750
## 2500257 2500257 Resolution of Sister Chromatid Cohesion 23/248 92/6750
## 1640170 1640170 Cell Cycle 54/248 498/6750
## 5663220 5663220 RHO GTPases Activate Formins 21/248 102/6750
## 68886 68886 M Phase 30/248 235/6750
## pvalue p.adjust qvalue
## 68877 8.513729e-15 5.031614e-12 4.445062e-12
## 69278 5.206358e-14 1.538479e-11 1.359133e-11
## 2500257 1.065524e-13 2.099083e-11 1.854386e-11
## 1640170 1.424702e-13 2.104997e-11 1.859611e-11
## 5663220 7.246336e-11 8.565169e-09 7.566700e-09
## 68886 1.535243e-09 1.512214e-07 1.335931e-07
## geneID
## 68877 CDCA8/CDC20/CENPE/CCNB2/NDC80/NCAPH/SKA1/CENPM/CENPN/CDK1/ERCC6L/MAD2L1/KIF18A/BIRC5/NCAPG/AURKB/CCNB1/KIF2C/PLK1/BUB1B/ZWINT/CENPU/SPC25/CENPI/TAOK1
## 69278 CDC45/CDCA8/MCM10/CDC20/FOXM1/KIF23/CENPE/MYBL2/CCNB2/NDC80/TOP2A/NCAPH/RRM2/UBE2C/SKA1/NEK2/CENPM/CENPN/CCNA2/CDK1/ERCC6L/MAD2L1/GINS1/KIF18A/CDT1/BIRC5/NCAPG/AURKB/GINS2/KIF20A/AURKA/CCNB1/MCM5/PTTG1/MCM2/KIF2C/CDC25A/CDC6/PLK1/BUB1B/ZWINT/CENPU/SPC25/CENPI/ESPL1/CCNE1/ORC6/ORC1/TAOK1
## 2500257 CDCA8/CDC20/CENPE/CCNB2/NDC80/SKA1/CENPM/CENPN/CDK1/ERCC6L/MAD2L1/KIF18A/BIRC5/AURKB/CCNB1/KIF2C/PLK1/BUB1B/ZWINT/CENPU/SPC25/CENPI/TAOK1
## 1640170 CDC45/CDCA8/MCM10/CDC20/FOXM1/KIF23/CENPE/MYBL2/CCNB2/NDC80/TOP2A/NCAPH/RRM2/UBE2C/HJURP/SKA1/NEK2/CENPM/CENPN/CCNA2/CDK1/ERCC6L/MAD2L1/GINS1/KIF18A/CDT1/BIRC5/NCAPG/AURKB/GINS2/CHEK1/KIF20A/AURKA/CCNB1/MCM5/PTTG1/LMNB1/MCM2/KIF2C/CDC25A/CDC6/PLK1/BUB1B/ZWINT/CENPU/SPC25/CENPI/ESPL1/RAD51/CCNE1/ORC6/ORC1/OIP5/TAOK1
## 5663220 CDCA8/CDC20/CENPE/NDC80/SKA1/CENPM/CENPN/ERCC6L/MAD2L1/KIF18A/BIRC5/AURKB/KIF2C/PLK1/BUB1B/ZWINT/CENPU/SPC25/CENPI/TAOK1/EVL
## 68886 CDCA8/CDC20/KIF23/CENPE/CCNB2/NDC80/NCAPH/UBE2C/SKA1/CENPM/CENPN/CDK1/ERCC6L/MAD2L1/KIF18A/BIRC5/NCAPG/AURKB/KIF20A/CCNB1/PTTG1/KIF2C/PLK1/BUB1B/ZWINT/CENPU/SPC25/CENPI/ESPL1/TAOK1
## Count
## 68877 25
## 69278 49
## 2500257 23
## 1640170 54
## 5663220 21
## 68886 30
For calculation/parameter details, please refer to the vignette of DOSE.
Pathway analysis using NGS data (eg, RNA-Seq and ChIP-Seq) can be performed by linking coding and non-coding regions to coding genes via ChIPseeker package, which can annotates genomic regions to their nearest genes, host genes, and flanking genes respectivly. In addtion, it provides a function, seq2gene, that simultaneously considering host genes, promoter region and flanking gene from intergenic region that may under control via cis-regulation. This function maps genomic regions to genes in a many-to-many manner and facilitate functional analysis. For more details, please refer to ChIPseeker2.
We implement barplot, dotplot enrichment map and category-gene-network for visualization. It is very common to visualize the enrichment result in bar or pie chart. We believe the pie chart is misleading and only provide bar chart.
barplot(x, showCategory=8)
dotplot(x, showCategory=15)
Enrichment map can be viusalized by enrichMap:
enrichMap(x, layout=igraph::layout.kamada.kawai, vertex.label.cex = 1)
In order to consider the potentially biological complexities in which a gene may belong to multiple annotation categories, we developed cnetplot function to extract the complex association between genes and diseases.
cnetplot(x, categorySize="pvalue", foldChange=geneList)
We have developed an R
package clusterProfiler3 for comparing biological themes among gene clusters. ReactomePA works fine with clusterProfiler and can compare biological themes at reactome pathway perspective.
require(clusterProfiler)
data(gcSample)
res <- compareCluster(gcSample, fun="enrichPathway")
plot(res)
A common approach in analyzing gene expression profiles was identifying differential expressed genes that are deemed interesting. The enrichPathway function we demonstrated previously were based on these differential expressed genes. This approach will find genes where the difference is large, but it will not detect a situation where the difference is small, but evidenced in coordinated way in a set of related genes. Gene Set Enrichment Analysis (GSEA)4 directly addressed this limitation. All genes can be used in GSEA; GSEA aggregates the per gene statistics across genes within a gene set, therefore making it possible to detect situations where all genes in a predefined set change in a small but coordinated way. For algorithm details, please refer to the vignette of DOSE5.
y <- gsePathway(geneList, nPerm=100,
minGSSize=120, pvalueCutoff=0.2,
pAdjustMethod="BH", verbose=FALSE)
res <- summary(y)
head(res)
## ID Description setSize enrichmentScore
## 422475 422475 Axon guidance 269 -0.3191994
## 1474244 1474244 Extracellular matrix organization 228 -0.4459249
## 109581 109581 Apoptosis 141 0.3948612
## 5357801 5357801 Programmed Cell Death 142 0.4017868
## 2467813 2467813 Separation of Sister Chromatids 130 0.6620115
## 2555396 2555396 Mitotic Metaphase and Anaphase 139 0.6608000
## NES pvalue p.adjust qvalues
## 422475 -1.338898 0.01204819 0.1493384 0.1094418
## 1474244 -1.863432 0.01282051 0.1493384 0.1094418
## 109581 1.717631 0.02325581 0.1493384 0.1094418
## 5357801 1.741336 0.02325581 0.1493384 0.1094418
## 2467813 2.842012 0.02777778 0.1493384 0.1094418
## 2555396 2.884012 0.02941176 0.1493384 0.1094418
enrichMap(y)
gseaplot(y, geneSetID = "1280215")
In ReactomePA, we also implemented viewPathway to visualized the pathway.
viewPathway("E2F mediated regulation of DNA replication", readable=TRUE, foldChange=geneList)
If you have any, let me know.
Here is the output of sessionInfo()
on the system on which this document was compiled:
## R version 3.2.3 (2015-12-10)
## Platform: x86_64-pc-linux-gnu (64-bit)
## Running under: Ubuntu 14.04.3 LTS
##
## locale:
## [1] LC_CTYPE=en_US.UTF-8 LC_NUMERIC=C
## [3] LC_TIME=en_US.UTF-8 LC_COLLATE=C
## [5] LC_MONETARY=en_US.UTF-8 LC_MESSAGES=en_US.UTF-8
## [7] LC_PAPER=en_US.UTF-8 LC_NAME=C
## [9] LC_ADDRESS=C LC_TELEPHONE=C
## [11] LC_MEASUREMENT=en_US.UTF-8 LC_IDENTIFICATION=C
##
## attached base packages:
## [1] parallel stats4 stats graphics grDevices utils datasets
## [8] methods base
##
## other attached packages:
## [1] graphite_1.16.0 ReactomePA_1.14.4 clusterProfiler_2.4.2
## [4] DOSE_2.8.2 org.Hs.eg.db_3.2.3 RSQLite_1.0.0
## [7] DBI_0.3.1 AnnotationDbi_1.32.2 IRanges_2.4.6
## [10] S4Vectors_0.8.5 Biobase_2.30.0 BiocGenerics_0.16.1
## [13] BiocStyle_1.8.0
##
## loaded via a namespace (and not attached):
## [1] Rcpp_0.12.2 XVector_0.10.0 formatR_1.2.1
## [4] plyr_1.8.3 zlibbioc_1.16.0 tools_3.2.3
## [7] digest_0.6.8 lattice_0.20-33 evaluate_0.8
## [10] gtable_0.1.2 png_0.1-7 graph_1.48.0
## [13] igraph_1.0.1 yaml_2.1.13 SparseM_1.7
## [16] topGO_2.22.0 stringr_1.0.0 httr_1.0.0
## [19] knitr_1.11 rappdirs_0.3 Biostrings_2.38.2
## [22] grid_3.2.3 qvalue_2.2.0 R6_2.1.1
## [25] GOSemSim_1.28.2 rmarkdown_0.8.1 reactome.db_1.54.1
## [28] GO.db_3.2.2 ggplot2_2.0.0 DO.db_2.9
## [31] reshape2_1.4.1 magrittr_1.5 scales_0.3.0
## [34] htmltools_0.2.6 splines_3.2.3 KEGGREST_1.10.0
## [37] colorspace_1.2-6 labeling_0.3 stringi_1.0-1
## [40] munsell_0.4.2
1.Boyle, E. I. et al. GO::TermFinder–open source software for accessing gene ontology information and finding significantly enriched gene ontology terms associated with a list of genes. Bioinformatics (Oxford, England) 20, 3710–3715 (2004).
2.Yu, G., Wang, L.-G. & He, Q.-Y. ChIPseeker: An r/Bioconductor package for chIP peak annotation, comparison and visualization. Bioinformatics 31, 2382–2383 (2015).
3.Yu, G., Wang, L.-G., Han, Y. & He, Q.-Y. clusterProfiler: an r package for comparing biological themes among gene clusters. OMICS: A Journal of Integrative Biology 16, 284–287 (2012).
4.Subramanian, A. et al. Gene set enrichment analysis: A knowledge-based approach for interpreting genome-wide expression profiles. Proceedings of the National Academy of Sciences of the United States of America 102, 15545–15550 (2005).
5.Yu, G., Wang, L.-G., Yan, G.-R. & He, Q.-Y. DOSE: An r/Bioconductor package for disease ontology semantic and enrichment analysis. Bioinformatics 31, 608–609 (2015).