Contents

1 GSEA algorithm

A common approach in analyzing gene expression profiles was identifying differential expressed genes that are deemed interesting. The enrichment analysis we demonstrated in Disease enrichment analysis vignette 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)1 directly addresses 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. Since it is likely that many relevant phenotypic differences are manifested by small but consistent changes in a set of genes.

Genes are ranked based on their phenotypes. Given a priori defined set of gens S (e.g., genes shareing the same DO category), the goal of GSEA is to determine whether the members of S are randomly distributed throughout the ranked gene list (L) or primarily found at the top or bottom.

There are three key elements of the GSEA method:

We implemented GSEA algorithm proposed by Subramanian1. Alexey Sergushichev implemented an algorithm for fast GSEA analysis in the fgsea2 package.

In DOSE3, user can use GSEA algorithm implemented in DOSE or fgsea by specifying the parameter by="DOSE" or by="fgsea". By default, DOSE use fgsea since it is much more fast.

1.1 Leading edge analysis and core enriched genes

Leading edge analysis reports Tags to indicate the percentage of genes contributing to the enrichment score, List to indicate where in the list the enrichment score is attained and Signal for enrichment signal strength.

It would also be very interesting to get the core enriched genes that contribute to the enrichment.

DOSE supports leading edge analysis and report core enriched genes in GSEA analysis.

1.2 gseDO fuction

In the following example, in order to speedup the compilation of this document, only gene sets with size above 120 were tested and only 100 permutations were performed.

library(DOSE)
data(geneList)
y <- gseDO(geneList,
           nPerm         = 100,
           minGSSize     = 120,
           pvalueCutoff  = 0.2,
           pAdjustMethod = "BH",
           verbose       = FALSE)
head(y, 3)
##                        ID                      Description setSize
## DOID:0060041 DOID:0060041         autism spectrum disorder     165
## DOID:12849     DOID:12849                autistic disorder     165
## DOID:0060040 DOID:0060040 pervasive developmental disorder     175
##              enrichmentScore       NES     pvalue   p.adjust    qvalues rank
## DOID:0060041      -0.3880133 -1.542078 0.01449275 0.07945344 0.03462604 2308
## DOID:12849        -0.3880133 -1.542078 0.01449275 0.07945344 0.03462604 2308
## DOID:0060040      -0.3909104 -1.545017 0.01515152 0.07945344 0.03462604 2308
##                                leading_edge
## DOID:0060041 tags=29%, list=18%, signal=24%
## DOID:12849   tags=29%, list=18%, signal=24%
## DOID:0060040 tags=30%, list=18%, signal=25%
##                                                                                                                                                                                                                                                                   core_enrichment
## DOID:0060041                     1760/9732/7337/5175/6532/54806/6326/1499/7157/221037/627/2571/3082/3791/27347/596/22829/23426/324/5021/4885/7248/8604/4208/26470/64221/9037/3952/93664/2944/7102/2550/4915/4922/26960/1746/2697/6863/2891/367/4128/7166/6505/18/9370/57502/79083
## DOID:12849                       1760/9732/7337/5175/6532/54806/6326/1499/7157/221037/627/2571/3082/3791/27347/596/22829/23426/324/5021/4885/7248/8604/4208/26470/64221/9037/3952/93664/2944/7102/2550/4915/4922/26960/1746/2697/6863/2891/367/4128/7166/6505/18/9370/57502/79083
## DOID:0060040 1760/9732/7337/5175/6532/54806/6326/1499/7157/221037/627/3399/2571/3082/3791/27347/596/22829/23426/324/5021/4885/7248/8604/3397/4208/3400/26470/64221/9037/3952/93664/2944/7102/2550/4915/4922/26960/1746/2697/6863/2891/367/4128/7166/6505/5348/18/9370/57502/79083

1.3 gseNCG fuction

ncg <- gseNCG(geneList,
              nPerm         = 100,
              minGSSize     = 120,
              pvalueCutoff  = 0.2,
              pAdjustMethod = "BH",
              verbose       = FALSE)
ncg <- setReadable(ncg, 'org.Hs.eg.db')
head(ncg, 3)
##                ID Description setSize enrichmentScore       NES     pvalue
## lung         lung        lung     173      -0.3880662 -1.629393 0.01492537
## breast     breast      breast     133      -0.4869070 -1.958353 0.01538462
## lymphoma lymphoma    lymphoma     188       0.2999589  1.294687 0.08823529
##            p.adjust    qvalues rank                   leading_edge
## lung     0.04615385 0.03238866 2775 tags=31%, list=22%, signal=25%
## breast   0.04615385 0.03238866 2930 tags=33%, list=23%, signal=26%
## lymphoma 0.17647059 0.12383901 2087 tags=21%, list=17%, signal=18%
##                                                                                                                                                                                                         core_enrichment
## lung     SETD2/ATXN3L/LRP1B/BRD3/ARID1A/INHBA/RB1/ADCY1/LYRM9/NF1/CTNNB1/TP53/SATB2/STK11/CTIF/CTNNA3/KDR/COL11A1/FLT3/APC/ADGRL3/FGFR3/NCAM2/DIP2C/APLNR/SLIT2/EPHA3/RUNX1T1/ZMYND10/ZFHX4/GLI3/TNN/PLSCR4/DACH1/ERBB4
## breast                                                                                   KMT2A/ERBB3/SETD2/ARID1A/GPS2/NCOR1/RB1/MAP2K4/NF1/TP53/PIK3R1/STK11/CDKN1B/PTGFR/APC/CCND1/TRAF5/MAP3K1/ESR1/TBX3/FOXA1/GATA3
## lymphoma                                        DUSP2/EZH2/PRDM1/MYC/ZWILCH/IKZF3/PLCG2/IDH2/HIST1H1C/MAGEC3/CD79B/ETV6/HIST1H1E/HIST1H1B/IRF8/CD28/SLC29A2/DUSP9/TNFAIP3/DNMT3A/SYK/TNF/BCR/HIST1H1D/DSC3/UBE2A/PABPC1

1.4 gseDGN fuction

dgn <- gseDGN(geneList,
              nPerm         = 100,
              minGSSize     = 120,
              pvalueCutoff  = 0.2,
              pAdjustMethod = "BH",
              verbose       = FALSE)
dgn <- setReadable(dgn, 'org.Hs.eg.db')
head(dgn, 3)
##                          ID        Description setSize enrichmentScore
## umls:C0032914 umls:C0032914      Pre-Eclampsia     334      -0.3066475
## umls:C0338656 umls:C0338656 Impaired cognition     342      -0.3266625
## umls:C0004936 umls:C0004936   Mental disorders     348      -0.3087838
##                     NES     pvalue p.adjust    qvalues rank
## umls:C0032914 -1.313172 0.01190476 0.105042 0.06511376 1909
## umls:C0338656 -1.400314 0.01190476 0.105042 0.06511376 1997
## umls:C0004936 -1.322042 0.01204819 0.105042 0.06511376 2007
##                                 leading_edge
## umls:C0032914 tags=29%, list=15%, signal=25%
## umls:C0338656 tags=23%, list=16%, signal=20%
## umls:C0004936 tags=20%, list=16%, signal=17%
##                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                           core_enrichment
## umls:C0032914 PLAC1/PSG5/ERCC2/ADD1/ACTG2/PECAM1/PGF/VEGFC/DDAH2/F7/PDE5A/ADAM12/CAPN10/LTF/SOD3/COL4A6/TEK/IL5/PRCP/HPGD/SCNN1A/MBL2/CYP1A1/IL1R1/INSR/PROC/HP/VWF/HDC/EFNA1/FABP2/MMP3/NPR1/OXTR/LPA/EDIL3/MGP/APLNR/PYGM/SELP/FGF1/GJA4/FGF14/MMP13/SLC22A5/COL1A2/ANG/COL1A1/LEPR/PROS1/FGF2/PPARG/CRHBP/SYNPO/COL3A1/LPL/THBD/MMP10/COL5A2/LEP/PTGER3/MMP2/PDGFC/GSTM1/CFH/NOV/ESR1/IGF1R/TPBG/HSPA1L/HSPG2/VCAN/COL5A1/SPARC/NR3C2/CLU/ENPP1/F13A1/HTRA1/F3/AGTR1/GSTT1/PLAT/AR/IRS1/IL6ST/COL4A5/THBS4/IGF1/ELN/ADIPOQ/CORIN/HLA-DQA1/FABP4/CX3CR1
## umls:C0338656                                                                                                          NR3C1/CAPN3/SLC2A10/CREBBP/ZNF224/ITM2B/ELK3/CLN5/GAD1/BACE1/HGF/SERPINA3/MBL2/SST/EGR1/INSR/UTRN/ARL4D/PVALB/EEF1A2/DYM/CD36/RAB40AL/RBMS3/TREM2/PER3/OXTR/TSC1/CDR1/IGFALS/TPPP/SELP/NGF/BCHE/KCNS3/APBB2/TRPM4/RUNX1T1/MME/ABCB1/PPARG/MVP/NME8/SPG11/LPL/SLC26A4/FHL5/KL/LEP/FTO/NAIP/SORL1/ESR1/ABCC8/CST3/LAMA2/HHAT/LRP1/CLU/ALB/SPON1/NTS/HTRA1/GSTT1/GRIA2/MAGI2/IRS1/TAT/COL4A5/AASS/IGF1/ITPR1/BMP4/LRP2/MAPT/ERBB4/GRP
## umls:C0004936                                                                                                                                                 BDNF/BCL9/NR3C1/PCLO/DEAF1/FZD4/CREBBP/ITIH3/GLI1/GAD1/GRM5/CUL3/NUCB2/CHRM2/WFS1/PROC/HTR1A/PRKG1/HPGDS/DBH/MMP3/APC/FZD10/OXTR/NDN/PTPRN2/TPPP/SGCE/NGF/LEPR/ABCB1/CRHBP/SHH/MAGEL2/GLT8D1/LEP/FTO/PER2/ATXN1/CADPS2/NRXN3/CTNND2/XBP1/TCF4/ESR1/NTF3/HSPG2/CACNA1C/GABBR1/MAGI1/NR3C2/NTRK2/ANOS1/APOD/TAC1/ZBTB20/GRIA2/UCN/MAOA/CARTPT/TPH1/SLC1A1/CACNA1D/MAOB/ADH1B/NLGN4X/ERBB4/GRP

2 Visualization

References

1. 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).

2. S., A. An algorithm for fast preranked gene set enrichment analysis using cumulative statistic calculation. biorxiv doi:10.1101/060012

3. 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).