Introduction

Here we are looking at putting together the easiest possible workflow for the package.

Requirements

suppressPackageStartupMessages({
  library("limma")
  library("eulerr")
  library("IlluminaHumanMethylation450kmanifest")
  library("IlluminaHumanMethylationEPICanno.ilm10b4.hg19")
  library("HGNChelper")
  library("tictoc")
  library("mitch")
  library("gplots")
  library("kableExtra")
  library("beeswarm")
  library("missMethyl")
  library("gridExtra")
  library("png")
})

CORES=16

Load data

Reactome pathways were downloaded on the 14th Sept 2023 from MsigDB.

We’ll also score the probes by the signed -log pvalue

if(!file.exists("aging_TableS1.csv")){
  options(timeout=1000000)
  download.file("https://datashare.ed.ac.uk/bitstream/handle/10283/3507/Supplementary_Table1_Limma_Age_EWAS_w1w3_Autosomes.csv?sequence=10&isAllowed=y",
    destfile="aging_TableS1.csv")
}

x <- read.csv("aging_TableS1.csv",header=TRUE)
head(x)
##      ProbeID UCSC_RefGene_Name   chr      pos Discovery.logFC Discovery.AveExpr
## 1 cg16867657            ELOVL2  chr6 11044877          0.0316             0.766
## 2 cg24724428            ELOVL2  chr6 11044888          0.0310            -1.730
## 3 cg12841266            LHFPL4  chr3  9594093          0.0152            -1.410
## 4 cg21572722            ELOVL2  chr6 11044894          0.0156            -1.280
## 5 cg17110586                   chr19 36454623          0.0170            -1.920
## 6 cg24866418            LHFPL4  chr3  9594082          0.0155            -1.320
##   Discovery.t Discovery.P.Value Discovery.adj.P.Val Discovery.B
## 1        91.6                 0                   0        1840
## 2        84.1                 0                   0        1680
## 3        78.6                 0                   0        1550
## 4        78.5                 0                   0        1550
## 5        75.1                 0                   0        1470
## 6        74.5                 0                   0        1460
##   Replication.logFC Replication.AveExpr Replication.t Replication.P.Value
## 1            0.0337               0.838           151                   0
## 2            0.0277              -1.780           116                   0
## 3            0.0147              -1.170           123                   0
## 4            0.0145              -0.997           117                   0
## 5            0.0160              -1.720           111                   0
## 6            0.0151              -1.120           121                   0
##   Replication.adj.P.Val Replication.B
## 1                     0          3990
## 2                     0          3060
## 3                     0          3270
## 4                     0          3090
## 5                     0          2930
## 6                     0          3200
y1 <- x[,"Discovery.t",drop=FALSE]
rownames(y1) <- x$ProbeID
y2 <- x[,"Replication.t",drop=FALSE]
rownames(y2) <- x$ProbeID
head(y1)
##            Discovery.t
## cg16867657        91.6
## cg24724428        84.1
## cg12841266        78.6
## cg21572722        78.5
## cg17110586        75.1
## cg24866418        74.5
head(y2)
##            Replication.t
## cg16867657           151
## cg24724428           116
## cg12841266           123
## cg21572722           117
## cg17110586           111
## cg24866418           121
l <- list("Discovery"=y1,"Replication"=y2)
str(l)
## List of 2
##  $ Discovery  :'data.frame': 756892 obs. of  1 variable:
##   ..$ Discovery.t: num [1:756892] 91.6 84.1 78.6 78.5 75.1 74.5 73.8 71.7 69.3 68.7 ...
##  $ Replication:'data.frame': 756892 obs. of  1 variable:
##   ..$ Replication.t: num [1:756892] 151 116 123 117 111 121 107 101 94.3 100 ...
gs_symbols <- gmt_import("c2.cp.reactome.v2023.1.Hs.symbols.gmt")

Curate the annotation

Use all probes on the chip.

Update old gene symbols.

tic()
anno <- getAnnotation(IlluminaHumanMethylationEPICanno.ilm10b4.hg19)
myann <- data.frame(anno[,c("UCSC_RefGene_Name","UCSC_RefGene_Group","Islands_Name","Relation_to_Island")])
gp <- myann[,"UCSC_RefGene_Name",drop=FALSE]
gp2 <- strsplit(gp$UCSC_RefGene_Name,";")
names(gp2) <- rownames(gp)
gp2 <- lapply(gp2,unique)
gt <- stack(gp2)
colnames(gt) <- c("gene","probe")
gt$probe <- as.character(gt$probe)
dim(gt)
## [1] 684970      2
str(gt)
## 'data.frame':    684970 obs. of  2 variables:
##  $ gene : chr  "YTHDF1" "EIF2S3" "PKN3" "CCDC57" ...
##  $ probe: chr  "cg18478105" "cg09835024" "cg14361672" "cg01763666" ...
toc() #9.0s
## 9.083 sec elapsed
tic()
#new.hgnc.table <- getCurrentHumanMap()
new.hgnc.table <- readRDS("new.hgnc.table.rds")
fix <- checkGeneSymbols(gt$gene,map=new.hgnc.table)
## Warning in checkGeneSymbols(gt$gene, map = new.hgnc.table): Human gene symbols
## should be all upper-case except for the 'orf' in open reading frames. The case
## of some letters was corrected.
## Warning in checkGeneSymbols(gt$gene, map = new.hgnc.table): x contains
## non-approved gene symbols
fix2 <- fix[which(fix$x != fix$Suggested.Symbol),]
length(unique(fix2$x))
## [1] 3253
gt$gene <- fix$Suggested.Symbol
toc()
## 32.328 sec elapsed

Merge gene name and aggregate

This only works properly when mitch’s mapGeneIds function uses mean to aggregate (line 69 of mitch.R).

# mitch aggregate function needs to be changes to `mean`
tic()
m <- mitch_import(x=l,DEtype="prescored",geneTable=gt)
## Note: Mean no. genes in input = 756892
## Note: no. genes in output = 22010
## Warning in mitch_import(x = l, DEtype = "prescored", geneTable = gt): Warning: less than half of the input genes are also in the
##         output
toc() #9.0s
## 8.951 sec elapsed
head(m)
##           Discovery Replication
## A1BG      0.6788421    5.449947
## A1BG-AS1 -1.1712308    5.327923
## A1CF     -3.4320000   -5.874042
## A2M      -3.2524000    2.005133
## A2M-AS1  -2.4300000    9.390000
## A2ML1    -3.9760257   -5.372314
tic()
mres <- mitch_calc(x=m,genesets=gs_symbols,minsetsize=5,cores=16, priority="effect")
## Note: Enrichments with large effect sizes may not be 
##             statistically significant.
toc() #11.45s
## 52.185 sec elapsed
mtable <- mres$enrichment_result
head(mtable,20)
##                                                                                          set
## 1614                                            REACTOME_FORMATION_OF_LATERAL_PLATE_MESODERM
## 422               REACTOME_REGULATION_OF_GENE_EXPRESSION_IN_EARLY_PANCREATIC_PRECURSOR_CELLS
## 655                                                              REACTOME_DOPAMINE_RECEPTORS
## 657                                                                   REACTOME_ADRENOCEPTORS
## 429                                                                        REACTOME_VITAMINS
## 216                                                REACTOME_CREATION_OF_C4_AND_C2_ACTIVATORS
## 521  REACTOME_FICOLINS_BIND_TO_REPETITIVE_CARBOHYDRATE_STRUCTURES_ON_THE_TARGET_CELL_SURFACE
## 421   REACTOME_REGULATION_OF_GENE_EXPRESSION_IN_ENDOCRINE_COMMITTED_NEUROG3_PROGENITOR_CELLS
## 213                                         REACTOME_LECTIN_PATHWAY_OF_COMPLEMENT_ACTIVATION
## 898                                                         REACTOME_ORGANIC_ANION_TRANSPORT
## 1631                                                    REACTOME_FORMATION_OF_AXIAL_MESODERM
## 265                                            REACTOME_CONJUGATION_OF_BENZOATE_WITH_GLYCINE
## 324                                                      REACTOME_DIGESTION_OF_DIETARY_LIPID
## 336                                                  REACTOME_MINERALOCORTICOID_BIOSYNTHESIS
## 1613                      REACTOME_EPITHELIAL_MESENCHYMAL_TRANSITION_EMT_DURING_GASTRULATION
## 1277                                                                      REACTOME_DIGESTION
## 455                                              REACTOME_HYALURONAN_BIOSYNTHESIS_AND_EXPORT
## 525                 REACTOME_POU5F1_OCT4_SOX2_NANOG_REPRESS_GENES_RELATED_TO_DIFFERENTIATION
## 1251     REACTOME_NEGATIVE_REGULATION_OF_ACTIVITY_OF_TFAP2_AP_2_FAMILY_TRANSCRIPTION_FACTORS
## 966                                            REACTOME_FGFRL1_MODULATION_OF_FGFR1_SIGNALING
##      setSize      pMANOVA s.Discovery s.Replication  p.Discovery p.Replication
## 1614       5 3.283952e-04   0.9263622     0.8665940 3.336096e-04  7.903240e-04
## 422        8 2.758795e-06   0.9320289     0.8567176 4.971602e-06  2.706169e-05
## 655        5 4.219051e-04   0.8963327     0.8708475 5.178194e-04  7.445147e-04
## 657        9 1.879816e-05   0.8622234     0.6536420 7.460976e-06  6.838310e-04
## 429        6 6.882623e-04   0.8713870     0.6348618 2.182981e-04  7.077140e-03
## 216       14 6.836794e-08  -0.8327163    -0.6846245 6.799872e-08  9.155991e-06
## 521        5 4.567625e-03  -0.8233674    -0.5919473 1.429076e-03  2.188556e-02
## 421        5 9.499771e-03   0.7056487     0.6605862 6.281144e-03  1.052175e-02
## 213        8 4.616328e-04  -0.7881556    -0.5190210 1.129743e-04  1.101403e-02
## 898        5 7.362288e-03  -0.8086980    -0.4373824 1.736854e-03  9.031444e-02
## 1631      14 9.302854e-06   0.6313875     0.6578469 4.293270e-05  2.020470e-05
## 265        6 6.916924e-03  -0.6994334    -0.5724338 3.005562e-03  1.516876e-02
## 324        7 4.351112e-03  -0.7023393    -0.4920758 1.289947e-03  2.415732e-02
## 336        6 9.304377e-03  -0.7122493    -0.4581288 2.514861e-03  5.196977e-02
## 1613       7 6.301217e-03   0.6547743     0.5327001 2.697916e-03  1.465571e-02
## 1277      17 1.969973e-06  -0.7092952    -0.4556878 4.092326e-07  1.141088e-03
## 455        5 2.600624e-02   0.5150557     0.6669484 4.609173e-02  9.799196e-03
## 525       10 1.352841e-03   0.5675545     0.5846818 1.883055e-03  1.365255e-03
## 1251      10 1.379160e-03   0.5568727     0.5923909 2.291665e-03  1.178120e-03
## 966       13 4.539372e-04   0.5548484     0.5359857 5.316545e-04  8.184563e-04
##         s.dist         SD p.adjustMANOVA
## 1614 1.2685157 0.04226252   2.200918e-03
## 422  1.2659553 0.05325316   2.649088e-05
## 655  1.2497150 0.01802070   2.760033e-03
## 657  1.0819783 0.14748934   1.543329e-04
## 429  1.0781303 0.16724856   4.170209e-03
## 216  1.0780200 0.10471676   9.277699e-07
## 521  1.0140688 0.16363874   2.343763e-02
## 421  0.9665993 0.03186399   4.227269e-02
## 213  0.9437013 0.19030692   2.960941e-03
## 898  0.9193997 0.26255979   3.463862e-02
## 1631 0.9118184 0.01870959   8.039624e-05
## 265  0.9038183 0.08980230   3.282540e-02
## 324  0.8575658 0.14867877   2.253794e-02
## 336  0.8468654 0.17969030   4.182620e-02
## 1613 0.8440965 0.08631954   3.052094e-02
## 1277 0.8430605 0.17932753   1.960422e-05
## 455  0.8426758 0.10740439   9.008914e-02
## 525  0.8148442 0.01211081   7.961882e-03
## 1251 0.8130401 0.02511515   8.087789e-03
## 966  0.7714515 0.01333795   2.922999e-03

Rank-rank

mrank <- mres$ranked_profile

palette <- colorRampPalette(c("white", "yellow", "orange", "red", "darkred", "black"))
k <- MASS::kde2d(mrank[,1], mrank[,2])
X_AXIS = "Discovery"
Y_AXIS = "Replication"

filled.contour(k, color.palette = palette, plot.title = {
        abline(v = 0, h = 0, lty = 2, lwd = 2, col = "blue")
        title(main = "rank-rank plot", xlab = X_AXIS,
        ylab = Y_AXIS)
    })

pdf("fig6a.pdf")
palette <- colorRampPalette(c("white", "yellow", "orange", "red", "darkred", "black"))
k <- MASS::kde2d(mrank[,1], mrank[,2])
X_AXIS = "Discovery"
Y_AXIS = "Replication"

filled.contour(k, color.palette = palette, plot.title = {
        abline(v = 0, h = 0, lty = 2, lwd = 2, col = "blue")
        title(main = "rank-rank plot", xlab = X_AXIS,
        ylab = Y_AXIS)
    })
dev.off()
## png 
##   2

PW Scatter

head(mtable)
##                                                                             set
## 1614                               REACTOME_FORMATION_OF_LATERAL_PLATE_MESODERM
## 422  REACTOME_REGULATION_OF_GENE_EXPRESSION_IN_EARLY_PANCREATIC_PRECURSOR_CELLS
## 655                                                 REACTOME_DOPAMINE_RECEPTORS
## 657                                                      REACTOME_ADRENOCEPTORS
## 429                                                           REACTOME_VITAMINS
## 216                                   REACTOME_CREATION_OF_C4_AND_C2_ACTIVATORS
##      setSize      pMANOVA s.Discovery s.Replication  p.Discovery p.Replication
## 1614       5 3.283952e-04   0.9263622     0.8665940 3.336096e-04  7.903240e-04
## 422        8 2.758795e-06   0.9320289     0.8567176 4.971602e-06  2.706169e-05
## 655        5 4.219051e-04   0.8963327     0.8708475 5.178194e-04  7.445147e-04
## 657        9 1.879816e-05   0.8622234     0.6536420 7.460976e-06  6.838310e-04
## 429        6 6.882623e-04   0.8713870     0.6348618 2.182981e-04  7.077140e-03
## 216       14 6.836794e-08  -0.8327163    -0.6846245 6.799872e-08  9.155991e-06
##        s.dist         SD p.adjustMANOVA
## 1614 1.268516 0.04226252   2.200918e-03
## 422  1.265955 0.05325316   2.649088e-05
## 655  1.249715 0.01802070   2.760033e-03
## 657  1.081978 0.14748934   1.543329e-04
## 429  1.078130 0.16724856   4.170209e-03
## 216  1.078020 0.10471676   9.277699e-07
sig <- subset(mtable,p.adjustMANOVA<0.05)
plot(mtable$s.Discovery,mtable$s.Replication,pch=19,col="gray",
  xlab="Discovery",ylab="Replication",main="pathway enrichment score")
points(sig$s.Discovery,sig$s.Replication,pch=19,col="red")
abline(v = 0, h = 0, lty = 2, lwd = 2, col = "blue")

pdf("fig6b.pdf")
plot(mtable$s.Discovery,mtable$s.Replication,pch=19,col="gray",
  xlab="Discovery",ylab="Replication",main="pathway enrichment score")
points(sig$s.Discovery,sig$s.Replication,pch=19,col="red")
abline(v = 0, h = 0, lty = 2, lwd = 2, col = "blue")
dev.off()
## png 
##   2

Heatmap

mt <- head(mtable,30)
rownames(mt) <- mt$set
mt <- mt[,c("s.Discovery","s.Replication")]
rownames(mt) <- gsub("REACTOME_","",rownames(mt))
rownames(mt) <- gsub("_"," ",rownames(mt))
colfunc <- colorRampPalette(c("blue", "white", "red"))
heatmap.2(as.matrix(mt),scale="none",trace="none",margins=c(6,25),col=colfunc(25),cexRow=0.6,cexCol=1)

pdf("fig6c.pdf")
heatmap.2(as.matrix(mt),scale="none",trace="none",margins=c(6,25),col=colfunc(25),cexRow=0.6,cexCol=1)
dev.off()
## png 
##   2

Example 2d

det <- mres$detailed_sets$REACTOME_CREATION_OF_C4_AND_C2_ACTIVATORS

k <- MASS::kde2d(det[,1], det[,2])
X_AXIS = "Discovery"
Y_AXIS = "Replication"

XMAX=max(mrank[,1])
XMIN=min(mrank[,1])
YMAX=max(mrank[,2])
YMIN=min(mrank[,2])

filled.contour(k, color.palette = palette, xlim=c(XMIN,XMAX), ylim=c(YMIN,YMAX),
      plot.title = {
        abline(v = 0, h = 0, lty = 2, lwd = 2, col = "blue")
        title(main = "Creation of C4 and C2 Activators", xlab = X_AXIS,
        ylab = Y_AXIS)
    })

pdf("fig6d.pdf")
filled.contour(k, color.palette = palette, xlim=c(XMIN,XMAX), ylim=c(YMIN,YMAX),
      plot.title = {
        abline(v = 0, h = 0, lty = 2, lwd = 2, col = "blue")
        title(main = "Creation of C4 and C2 Activators", xlab = X_AXIS,
        ylab = Y_AXIS)
    })
dev.off()
## png 
##   2

Make a html report and some charts.

mitch_report(res=mres,outfile="aging_mitchreport.html",overwrite=TRUE)
## Dataset saved as " /tmp/RtmpTVsNs3/aging_mitchreport.rds ".
## 
## 
## processing file: mitch.Rmd
## 1/34                             
## 2/34 [checklibraries]            
## 3/34                             
## 4/34 [peek]                      
## 5/34                             
## 6/34 [metrics]                   
## 7/34                             
## 8/34 [scatterplot]
## 9/34                             
## 10/34 [contourplot]
## 11/34                             
## 12/34 [input_geneset_metrics1]    
## 13/34                             
## 14/34 [input_geneset_metrics2]
## 15/34                             
## 16/34 [input_geneset_metrics3]
## 17/34                             
## 18/34 [echart1d]                  
## 19/34 [echart2d]                  
## 20/34                             
## 21/34 [heatmap]
## 22/34                             
## 23/34 [effectsize]                
## 24/34                             
## 25/34 [results_table]             
## 26/34                             
## 27/34 [results_table_complete]    
## 28/34                             
## 29/34 [detailed_geneset_reports1d]
## 30/34                             
## 31/34 [detailed_geneset_reports2d]
## 32/34                             
## 33/34 [session_info]              
## 34/34
## output file: /gmea/figs/mitch.knit.md
## /usr/local/bin/pandoc +RTS -K512m -RTS /gmea/figs/mitch.knit.md --to html4 --from markdown+autolink_bare_uris+tex_math_single_backslash --output /tmp/RtmpTVsNs3/mitch_report.html --lua-filter /usr/local/lib/R/site-library/rmarkdown/rmarkdown/lua/pagebreak.lua --lua-filter /usr/local/lib/R/site-library/rmarkdown/rmarkdown/lua/latex-div.lua --embed-resources --standalone --variable bs3=TRUE --section-divs --template /usr/local/lib/R/site-library/rmarkdown/rmd/h/default.html --no-highlight --variable highlightjs=1 --variable theme=bootstrap --mathjax --variable 'mathjax-url=https://mathjax.rstudio.com/latest/MathJax.js?config=TeX-AMS-MML_HTMLorMML' --include-in-header /tmp/RtmpTVsNs3/rmarkdown-str2b67005e49fc76.html
## 
## Output created: /tmp/RtmpTVsNs3/mitch_report.html
## [1] TRUE
mitch_plots(res=mres,outfile="aging_mitchcharts.pdf")
## png 
##   2

Session information

save.image("aging_example.Rdata")

sessionInfo()
## R version 4.3.2 (2023-10-31)
## Platform: x86_64-pc-linux-gnu (64-bit)
## Running under: Ubuntu 22.04.3 LTS
## 
## Matrix products: default
## BLAS:   /usr/lib/x86_64-linux-gnu/openblas-pthread/libblas.so.3 
## LAPACK: /usr/lib/x86_64-linux-gnu/openblas-pthread/libopenblasp-r0.3.20.so;  LAPACK version 3.10.0
## 
## locale:
##  [1] LC_CTYPE=en_US.UTF-8       LC_NUMERIC=C              
##  [3] LC_TIME=en_US.UTF-8        LC_COLLATE=en_US.UTF-8    
##  [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       
## 
## time zone: Etc/UTC
## tzcode source: system (glibc)
## 
## attached base packages:
## [1] parallel  stats4    stats     graphics  grDevices utils     datasets 
## [8] methods   base     
## 
## other attached packages:
##  [1] pkgload_1.3.3                                      
##  [2] GGally_2.2.0                                       
##  [3] ggplot2_3.4.4                                      
##  [4] reshape2_1.4.4                                     
##  [5] gtools_3.9.5                                       
##  [6] tibble_3.2.1                                       
##  [7] dplyr_1.1.4                                        
##  [8] echarts4r_0.4.5                                    
##  [9] png_0.1-8                                          
## [10] gridExtra_2.3                                      
## [11] gplots_3.1.3                                       
## [12] missMethyl_1.36.0                                  
## [13] IlluminaHumanMethylation450kanno.ilmn12.hg19_0.6.1 
## [14] beeswarm_0.4.0                                     
## [15] kableExtra_1.3.4                                   
## [16] mitch_1.15.0                                       
## [17] limma_3.58.1                                       
## [18] tictoc_1.2                                         
## [19] HGNChelper_0.8.1                                   
## [20] IlluminaHumanMethylationEPICanno.ilm10b4.hg19_0.6.0
## [21] IlluminaHumanMethylation450kmanifest_0.4.0         
## [22] minfi_1.48.0                                       
## [23] bumphunter_1.44.0                                  
## [24] locfit_1.5-9.8                                     
## [25] iterators_1.0.14                                   
## [26] foreach_1.5.2                                      
## [27] Biostrings_2.70.1                                  
## [28] XVector_0.42.0                                     
## [29] eulerr_7.0.0                                       
## [30] DESeq2_1.42.0                                      
## [31] SummarizedExperiment_1.32.0                        
## [32] Biobase_2.62.0                                     
## [33] MatrixGenerics_1.14.0                              
## [34] matrixStats_1.2.0                                  
## [35] GenomicRanges_1.54.1                               
## [36] GenomeInfoDb_1.38.2                                
## [37] IRanges_2.36.0                                     
## [38] S4Vectors_0.40.2                                   
## [39] BiocGenerics_0.48.1                                
## 
## loaded via a namespace (and not attached):
##   [1] splines_4.3.2             later_1.3.2              
##   [3] BiocIO_1.12.0             bitops_1.0-7             
##   [5] filelock_1.0.3            BiasedUrn_2.0.11         
##   [7] polyclip_1.10-6           preprocessCore_1.64.0    
##   [9] XML_3.99-0.16             lifecycle_1.0.4          
##  [11] lattice_0.22-5            MASS_7.3-60              
##  [13] base64_2.0.1              scrime_1.3.5             
##  [15] magrittr_2.0.3            sass_0.4.8               
##  [17] rmarkdown_2.25            jquerylib_0.1.4          
##  [19] yaml_2.3.8                httpuv_1.6.13            
##  [21] doRNG_1.8.6               askpass_1.2.0            
##  [23] DBI_1.1.3                 RColorBrewer_1.1-3       
##  [25] abind_1.4-5               zlibbioc_1.48.0          
##  [27] rvest_1.0.3               quadprog_1.5-8           
##  [29] purrr_1.0.2               RCurl_1.98-1.13          
##  [31] rappdirs_0.3.3            GenomeInfoDbData_1.2.11  
##  [33] genefilter_1.84.0         annotate_1.80.0          
##  [35] svglite_2.1.3             DelayedMatrixStats_1.24.0
##  [37] codetools_0.2-19          DelayedArray_0.28.0      
##  [39] xml2_1.3.6                tidyselect_1.2.0         
##  [41] farver_2.1.1              beanplot_1.3.1           
##  [43] BiocFileCache_2.10.1      webshot_0.5.5            
##  [45] illuminaio_0.44.0         GenomicAlignments_1.38.0 
##  [47] jsonlite_1.8.8            multtest_2.58.0          
##  [49] ellipsis_0.3.2            survival_3.5-7           
##  [51] systemfonts_1.0.5         polylabelr_0.2.0         
##  [53] tools_4.3.2               progress_1.2.3           
##  [55] Rcpp_1.0.11               glue_1.6.2               
##  [57] SparseArray_1.2.2         xfun_0.41                
##  [59] HDF5Array_1.30.0          withr_2.5.2              
##  [61] fastmap_1.1.1             rhdf5filters_1.14.1      
##  [63] fansi_1.0.6               openssl_2.1.1            
##  [65] caTools_1.18.2            digest_0.6.33            
##  [67] R6_2.5.1                  mime_0.12                
##  [69] colorspace_2.1-0          biomaRt_2.58.0           
##  [71] RSQLite_2.3.4             utf8_1.2.4               
##  [73] tidyr_1.3.0               generics_0.1.3           
##  [75] data.table_1.14.10        rtracklayer_1.62.0       
##  [77] prettyunits_1.2.0         httr_1.4.7               
##  [79] htmlwidgets_1.6.4         S4Arrays_1.2.0           
##  [81] ggstats_0.5.1             pkgconfig_2.0.3          
##  [83] gtable_0.3.4              blob_1.2.4               
##  [85] siggenes_1.76.0           htmltools_0.5.7          
##  [87] scales_1.3.0              rstudioapi_0.15.0        
##  [89] knitr_1.45                tzdb_0.4.0               
##  [91] rjson_0.2.21              nlme_3.1-163             
##  [93] curl_5.2.0                org.Hs.eg.db_3.18.0      
##  [95] cachem_1.0.8              rhdf5_2.46.1             
##  [97] stringr_1.5.1             KernSmooth_2.23-22       
##  [99] AnnotationDbi_1.64.1      restfulr_0.0.15          
## [101] GEOquery_2.70.0           pillar_1.9.0             
## [103] grid_4.3.2                reshape_0.8.9            
## [105] vctrs_0.6.5               promises_1.2.1           
## [107] dbplyr_2.4.0              xtable_1.8-4             
## [109] evaluate_0.23             readr_2.1.4              
## [111] GenomicFeatures_1.54.1    cli_3.6.2                
## [113] compiler_4.3.2            Rsamtools_2.18.0         
## [115] rlang_1.1.2               crayon_1.5.2             
## [117] rngtools_1.5.2            labeling_0.4.3           
## [119] nor1mix_1.3-2             mclust_6.0.1             
## [121] plyr_1.8.9                stringi_1.8.3            
## [123] viridisLite_0.4.2         BiocParallel_1.36.0      
## [125] munsell_0.5.0             Matrix_1.6-1.1           
## [127] hms_1.1.3                 sparseMatrixStats_1.14.0 
## [129] bit64_4.0.5               Rhdf5lib_1.24.1          
## [131] KEGGREST_1.42.0           statmod_1.5.0            
## [133] shiny_1.8.0               highr_0.10               
## [135] memoise_2.0.1             bslib_0.6.1              
## [137] bit_4.0.5