Here we are looking at putting together the easiest possible workflow for the package.
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
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")
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
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
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