Here we are looking at putting together the easiest possible workflow for the package.
Source code: https://github.com/markziemann/gmea/blob/main/figs/GSE158422_pkgdev.Rmd
Load packages.
suppressPackageStartupMessages({
library("limma")
library("eulerr")
library("IlluminaHumanMethylation450kmanifest")
library("IlluminaHumanMethylationEPICanno.ilm10b4.hg19")
library("HGNChelper")
library("tictoc")
library("mitch")
library("kableExtra")
library("beeswarm")
library("missMethyl")
library("gridExtra")
library("png")
})
CORES=24
Reactome pathways were downloaded on the 14th Sept 2023 from MsigDB.
if (!file.exists("GSE158422_design.rds")) {
download.file("https://ziemann-lab.net/public/gmea_prototype/GSE158422_design.rds", "GSE158422_design.rds")
}
design <- readRDS("GSE158422_design.rds")
if (!file.exists("GSE158422_design.rds")) {
download.file("https://ziemann-lab.net/public/gmea_prototype/GSE158422_mx.rds","GSE158422_mx.rds")
}
mval <- readRDS("GSE158422_mx.rds")
gs_symbols <- gmt_import("c2.cp.reactome.v2023.1.Hs.symbols.gmt")
Use all probes on the chip.
Updating gene names using the HGNC package because a lot of them have been updated over time.
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
## 16.775 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()
## 101.017 sec elapsed
Start with curating the sample info and design matrix.
sex <- as.data.frame(design)$sex
tumor <- as.data.frame(design)$tumor
patient <- as.character(unlist(lapply(1:ncol(mval),function(i) {c(i,i)})))
patient <- head(patient,ncol(mval))
design <- model.matrix(~ patient + tumor )
Here we conduct a differential analysis using limma.
tic()
fit.reduced <- lmFit(mval,design)
fit.reduced <- eBayes(fit.reduced)
dm <- topTable(fit.reduced,coef=ncol(design), number = Inf)
head(dm) %>%
kbl(caption = "Top significant probes") %>%
kable_paper("hover", full_width = F)
logFC | AveExpr | t | P.Value | adj.P.Val | B | |
---|---|---|---|---|---|---|
cg09792881 | 2.665975 | -2.378207 | 13.96817 | 0 | 0 | 28.32697 |
cg10512745 | 2.947029 | -2.653537 | 13.82913 | 0 | 0 | 28.01071 |
cg16732616 | 3.038300 | -2.276311 | 13.63501 | 0 | 0 | 27.56509 |
cg17094249 | -1.689047 | -1.559014 | -13.45369 | 0 | 0 | 27.14446 |
cg02084219 | -1.669232 | -1.612728 | -13.36646 | 0 | 0 | 26.94058 |
cg17627973 | 1.242911 | 1.462876 | 13.29508 | 0 | 0 | 26.77302 |
toc() #25.53, 25.50, 25.51
## 24.155 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=dm,DEtype="limma",geneTable=gt)
## The input is a single dataframe; one contrast only. Converting
## it to a list for you.
## Note: Mean no. genes in input = 839473
## Note: no. genes in output = 22633
## Warning in mitch_import(x = dm, DEtype = "limma", geneTable = gt): Warning: less than half of the input genes are also in the
## output
toc() #9.58s, 9.71, 9.69
## 9.745 sec elapsed
head(m) %>%
kbl(caption = "Example of differential gene methylation scores used for pathway analysis") %>%
kable_paper("hover", full_width = F)
x | |
---|---|
A1BG | 2.247889 |
A1BG-AS1 | 1.535073 |
A1CF | -5.216983 |
A2M | -1.420111 |
A2M-AS1 | -2.201265 |
A2ML1 | -2.534895 |
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() #10.92, 10.733, 10.91
## 7.525 sec elapsed
mtable <- mres$enrichment_result
up <- subset(mtable,s.dist>0 & p.adjustANOVA<0.05)
dn <- subset(mtable,s.dist<0 & p.adjustANOVA<0.05)
nrow(up)
## [1] 370
nrow(dn)
## [1] 36
head(up,10) %>%
kbl(caption = "Top significant pathways with higher methylation") %>%
kable_paper("hover", full_width = F)
set | setSize | pANOVA | s.dist | p.adjustANOVA | |
---|---|---|---|---|---|
422 | REACTOME_REGULATION_OF_GENE_EXPRESSION_IN_EARLY_PANCREATIC_PRECURSOR_CELLS | 8 | 0.0000150 | 0.8837017 | 0.0001807 |
1614 | REACTOME_FORMATION_OF_LATERAL_PLATE_MESODERM | 5 | 0.0007870 | 0.8668906 | 0.0054759 |
512 | REACTOME_FBXW7_MUTANTS_AND_NOTCH1_IN_CANCER | 5 | 0.0093968 | 0.6706735 | 0.0404616 |
65 | REACTOME_ENDOSOMAL_VACUOLAR_PATHWAY | 11 | 0.0001825 | 0.6515138 | 0.0016553 |
429 | REACTOME_VITAMINS | 6 | 0.0065132 | 0.6413577 | 0.0297073 |
1350 | REACTOME_INTERLEUKIN_9_SIGNALING | 7 | 0.0063199 | 0.5959642 | 0.0289063 |
419 | REACTOME_REGULATION_OF_GENE_EXPRESSION_IN_LATE_STAGE_BRANCHING_MORPHOGENESIS_PANCREATIC_BUD_PRECURSOR_CELLS | 15 | 0.0000782 | 0.5889351 | 0.0007975 |
525 | REACTOME_POU5F1_OCT4_SOX2_NANOG_REPRESS_GENES_RELATED_TO_DIFFERENTIATION | 10 | 0.0012932 | 0.5875260 | 0.0081984 |
59 | REACTOME_REGULATION_OF_GENE_EXPRESSION_BY_HYPOXIA_INDUCIBLE_FACTOR | 11 | 0.0008068 | 0.5833420 | 0.0055660 |
657 | REACTOME_ADRENOCEPTORS | 9 | 0.0033716 | 0.5642877 | 0.0178585 |
head(dn,10) %>%
kbl(caption = "Top significant pathways with lower methylation") %>%
kable_paper("hover", full_width = F)
set | setSize | pANOVA | s.dist | p.adjustANOVA | |
---|---|---|---|---|---|
628 | REACTOME_OLFACTORY_SIGNALING_PATHWAY | 372 | 0.0000000 | -0.8202892 | 0.0000000 |
110 | REACTOME_BETA_DEFENSINS | 37 | 0.0000000 | -0.8126719 | 0.0000000 |
1055 | REACTOME_METAL_SEQUESTRATION_BY_ANTIMICROBIAL_PROTEINS | 6 | 0.0006322 | -0.8055421 | 0.0046134 |
301 | REACTOME_DIGESTION_OF_DIETARY_CARBOHYDRATE | 10 | 0.0000109 | -0.8031826 | 0.0001353 |
1007 | REACTOME_CD22_MEDIATED_BCR_REGULATION | 5 | 0.0030659 | -0.7645925 | 0.0164091 |
111 | REACTOME_DEFENSINS | 46 | 0.0000000 | -0.7625606 | 0.0000000 |
971 | REACTOME_MELANIN_BIOSYNTHESIS | 5 | 0.0060595 | -0.7086972 | 0.0280272 |
1060 | REACTOME_ANTIMICROBIAL_PEPTIDES | 89 | 0.0000000 | -0.6720620 | 0.0000000 |
145 | REACTOME_AMINO_ACID_CONJUGATION | 9 | 0.0007054 | -0.6520018 | 0.0050360 |
1415 | REACTOME_BIOSYNTHESIS_OF_MARESIN_LIKE_SPMS | 6 | 0.0094041 | -0.6121890 | 0.0404616 |
top <- rbind(up[1:10,],dn[1:10,])
top <- top[order(top$s.dist),]
barnames <- gsub("_"," ",gsub("REACTOME_","",top$set))
cols <- as.character(((sign(top$s.dist)+1)/2)+1)
cols <- gsub("1","blue",gsub("2","red",cols))
par(mar = c(5.1, 29.1, 4.1, 2.1))
barplot(abs(top$s.dist),horiz=TRUE,las=1,names.arg=barnames, cex.names=0.8,
cex.axis=0.8,col=cols, xlab="Enrichment score",main="Reactomes")
mtext("whole gene")
grid()
par( mar = c(5.1, 4.1, 4.1, 2.1) )
Make a html report and some charts.
mitch_report(res=mres,outfile="GSE158422_pkgdev_mitchreport.html",overwrite=TRUE)
## Note: overwriting existing report
## Dataset saved as " /tmp/Rtmp374vyR/GSE158422_pkgdev_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: /home/mdz/projects/gmea/figs/mitch.knit.md
## /usr/bin/pandoc +RTS -K512m -RTS /home/mdz/projects/gmea/figs/mitch.knit.md --to html4 --from markdown+autolink_bare_uris+tex_math_single_backslash --output /tmp/Rtmp374vyR/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 --self-contained --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/Rtmp374vyR/rmarkdown-str12766660db727.html
##
## Output created: /tmp/Rtmp374vyR/mitch_report.html
## [1] TRUE
mitch_plots(res=mres,outfile="GSE158422_pkgdev_mitchcharts.pdf")
## png
## 2
Now do the same but filter for promoters. Using the UCSC_RefGene_Name field of the annotation and using TSS probes only.
head(myann) %>%
kbl(caption = "This is what the annotation looks like") %>%
kable_paper("hover", full_width = F)
UCSC_RefGene_Name | UCSC_RefGene_Group | Islands_Name | Relation_to_Island | |
---|---|---|---|---|
cg18478105 | YTHDF1 | TSS200 | chr20:61846843-61848103 | Island |
cg09835024 | EIF2S3 | TSS1500 | chrX:24072558-24073135 | Island |
cg14361672 | PKN3 | TSS1500 | chr9:131464843-131465830 | N_Shore |
cg01763666 | CCDC57 | Body | OpenSea | |
cg12950382 | INF2;INF2 | Body;Body | OpenSea | |
cg02115394 | CDC16;CDC16 | TSS200;TSS200 | chr13:115000148-115000874 | Island |
table(unlist(strsplit(myann$UCSC_RefGene_Group,";")))
##
## 1stExon 3'UTR 5'UTR Body ExonBnd TSS1500 TSS200
## 70366 39553 200962 709569 16535 200780 121655
# promoter prep
tic()
keep=c("TSS200","TSS1500")
annos <- strsplit(myann$UCSC_RefGene_Group,";")
genes <- strsplit(myann$UCSC_RefGene_Name,";")
keeps <- lapply(1:nrow(myann), function(i) {
unique(genes[[i]][annos[[i]] %in% keep])
})
names(keeps) <- rownames(myann)
gt2 <- stack(keeps)
colnames(gt2) <- c("gene","probe")
toc() #15.4 16.2 20.3
## 17.533 sec elapsed
# fix gene symbols
tic()
fix <- checkGeneSymbols(gt2$gene,map=new.hgnc.table)
## Warning in checkGeneSymbols(gt2$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(gt2$gene, map = new.hgnc.table): x contains
## non-approved gene symbols
fix2 <- fix[which(fix$x != fix$Suggested.Symbol),]
length(unique(fix2$x))
## [1] 3093
gt2$gene <- fix$Suggested.Symbol
toc()
## 38.071 sec elapsed
tic()
# need to remove probes not associated to promoters
dm2 <- dm[(which(rownames(dm) %in% gt2$probe)),]
m2 <- mitch_import(x=dm2,DEtype="limma",geneTable=gt2)
## The input is a single dataframe; one contrast only. Converting
## it to a list for you.
## Note: Mean no. genes in input = 188962
## Note: no. genes in output = 21942
## Note: estimated proportion of input genes in output = 0.116
toc() #9.68, 9.78, 9.62
## 2.627 sec elapsed
head(m2) %>%
kbl(caption = "This is what the differential methylation scores look like") %>%
kable_paper("hover", full_width = F)
x | |
---|---|
A1BG | -1.6893930 |
A1BG-AS1 | 7.4749338 |
A1CF | -5.5418729 |
A2M | 2.1354129 |
A2ML1 | -0.7887281 |
A2MP1 | -3.4129398 |
dim(m2)
## [1] 21942 1
tic()
mres <- mitch_calc(x=m2,genesets=gs_symbols,minsetsize=5,cores=16, priority="effect")
## Note: Enrichments with large effect sizes may not be
## statistically significant.
toc() #11.12, 10.99, 11.01
## 7.703 sec elapsed
mtable <- mres$enrichment_result
up <- subset(mtable,s.dist>0 & p.adjustANOVA<0.05)
dn <- subset(mtable,s.dist<0 & p.adjustANOVA<0.05)
nrow(up)
## [1] 205
nrow(dn)
## [1] 34
head(up,10) %>%
kbl(caption = "Top significant pathways with increased promoter methylation") %>%
kable_paper("hover", full_width = F)
set | setSize | pANOVA | s.dist | p.adjustANOVA | |
---|---|---|---|---|---|
422 | REACTOME_REGULATION_OF_GENE_EXPRESSION_IN_EARLY_PANCREATIC_PRECURSOR_CELLS | 8 | 0.0000148 | 0.8843120 | 0.0005156 |
1613 | REACTOME_FORMATION_OF_LATERAL_PLATE_MESODERM | 5 | 0.0021550 | 0.7922050 | 0.0209248 |
710 | REACTOME_CASPASE_ACTIVATION_VIA_DEPENDENCE_RECEPTORS_IN_THE_ABSENCE_OF_LIGAND | 9 | 0.0004436 | 0.6761045 | 0.0064413 |
1308 | REACTOME_RUNX3_REGULATES_YAP1_MEDIATED_TRANSCRIPTION | 8 | 0.0012209 | 0.6602079 | 0.0133564 |
656 | REACTOME_ADRENOCEPTORS | 9 | 0.0007581 | 0.6481912 | 0.0092437 |
584 | REACTOME_DEFECTIVE_CHST3_CAUSES_SEDCJD | 7 | 0.0035519 | 0.6362760 | 0.0306776 |
340 | REACTOME_VEGF_LIGAND_RECEPTOR_INTERACTIONS | 7 | 0.0043090 | 0.6230030 | 0.0346624 |
402 | REACTOME_YAP1_AND_WWTR1_TAZ_STIMULATED_GENE_EXPRESSION | 15 | 0.0000340 | 0.6180234 | 0.0009295 |
662 | REACTOME_PROSTANOID_LIGAND_RECEPTORS | 9 | 0.0013899 | 0.6153032 | 0.0149072 |
742 | REACTOME_REGULATION_OF_COMMISSURAL_AXON_PATHFINDING_BY_SLIT_AND_ROBO | 10 | 0.0007783 | 0.6136148 | 0.0092556 |
head(dn,10) %>%
kbl(caption = "Top significant pathways with lower promoter methylation") %>%
kable_paper("hover", full_width = F)
set | setSize | pANOVA | s.dist | p.adjustANOVA | |
---|---|---|---|---|---|
1054 | REACTOME_METAL_SEQUESTRATION_BY_ANTIMICROBIAL_PROTEINS | 6 | 0.0003670 | -0.8397915 | 0.0058467 |
1006 | REACTOME_CD22_MEDIATED_BCR_REGULATION | 5 | 0.0019146 | -0.8012855 | 0.0190412 |
110 | REACTOME_BETA_DEFENSINS | 37 | 0.0000000 | -0.7904662 | 0.0000000 |
628 | REACTOME_OLFACTORY_SIGNALING_PATHWAY | 354 | 0.0000000 | -0.7803852 | 0.0000000 |
111 | REACTOME_DEFENSINS | 46 | 0.0000000 | -0.7365550 | 0.0000000 |
301 | REACTOME_DIGESTION_OF_DIETARY_CARBOHYDRATE | 10 | 0.0000731 | -0.7241838 | 0.0016871 |
499 | REACTOME_INTERACTION_WITH_CUMULUS_CELLS_AND_THE_ZONA_PELLUCIDA | 11 | 0.0001264 | -0.6673948 | 0.0025929 |
1059 | REACTOME_ANTIMICROBIAL_PEPTIDES | 89 | 0.0000000 | -0.6588060 | 0.0000000 |
1414 | REACTOME_BIOSYNTHESIS_OF_MARESIN_LIKE_SPMS | 6 | 0.0052566 | -0.6578835 | 0.0395695 |
782 | REACTOME_TYPE_I_HEMIDESMOSOME_ASSEMBLY | 11 | 0.0005761 | -0.5993882 | 0.0074438 |
top <- rbind(up[1:10,],dn[1:10,])
top<- top[order(top$s.dist),]
barnames <- gsub("_"," ",gsub("REACTOME_","",top$set))
cols <- as.character(((sign(top$s.dist)+1)/2)+1)
cols <- gsub("1","blue",gsub("2","red",cols))
par(mar = c(5.1, 29.1, 4.1, 2.1))
barplot(abs(top$s.dist),horiz=TRUE,las=1,names.arg=barnames, cex.names=0.8,
cex.axis=0.8,col=cols, xlab="Enrichment score",main="Reactomes")
mtext("promoter only")
grid()
par( mar = c(5.1, 4.1, 4.1, 2.1) )
save.image("GSE158422_pkgdev.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/blas/libblas.so.3.10.0
## LAPACK: /usr/lib/x86_64-linux-gnu/lapack/liblapack.so.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: Australia/Melbourne
## 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.1.2
## [3] ggplot2_3.4.4
## [4] reshape2_1.4.4
## [5] gplots_3.1.3
## [6] gtools_3.9.4
## [7] tibble_3.2.1
## [8] dplyr_1.1.3
## [9] echarts4r_0.4.5
## [10] png_0.1-8
## [11] gridExtra_2.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] tictoc_1.2
## [18] HGNChelper_0.8.1
## [19] IlluminaHumanMethylationEPICanno.ilm10b4.hg19_0.6.0
## [20] IlluminaHumanMethylation450kmanifest_0.4.0
## [21] minfi_1.48.0
## [22] bumphunter_1.44.0
## [23] locfit_1.5-9.8
## [24] iterators_1.0.14
## [25] foreach_1.5.2
## [26] Biostrings_2.70.1
## [27] XVector_0.42.0
## [28] SummarizedExperiment_1.32.0
## [29] Biobase_2.62.0
## [30] MatrixGenerics_1.14.0
## [31] matrixStats_1.1.0
## [32] GenomicRanges_1.54.1
## [33] GenomeInfoDb_1.38.1
## [34] IRanges_2.36.0
## [35] S4Vectors_0.40.1
## [36] BiocGenerics_0.48.1
## [37] eulerr_7.0.0
## [38] limma_3.58.1
##
## loaded via a namespace (and not attached):
## [1] splines_4.3.2 later_1.3.1
## [3] BiocIO_1.12.0 bitops_1.0-7
## [5] filelock_1.0.2 preprocessCore_1.64.0
## [7] XML_3.99-0.15 lifecycle_1.0.4
## [9] lattice_0.22-5 MASS_7.3-60
## [11] base64_2.0.1 scrime_1.3.5
## [13] magrittr_2.0.3 sass_0.4.7
## [15] rmarkdown_2.25 jquerylib_0.1.4
## [17] yaml_2.3.7 httpuv_1.6.12
## [19] doRNG_1.8.6 askpass_1.2.0
## [21] DBI_1.1.3 RColorBrewer_1.1-3
## [23] abind_1.4-5 zlibbioc_1.48.0
## [25] rvest_1.0.3 quadprog_1.5-8
## [27] purrr_1.0.2 RCurl_1.98-1.13
## [29] rappdirs_0.3.3 GenomeInfoDbData_1.2.11
## [31] genefilter_1.84.0 annotate_1.80.0
## [33] svglite_2.1.2 DelayedMatrixStats_1.24.0
## [35] codetools_0.2-19 DelayedArray_0.28.0
## [37] xml2_1.3.5 tidyselect_1.2.0
## [39] beanplot_1.3.1 BiocFileCache_2.10.1
## [41] webshot_0.5.5 illuminaio_0.44.0
## [43] GenomicAlignments_1.38.0 jsonlite_1.8.7
## [45] multtest_2.58.0 ellipsis_0.3.2
## [47] survival_3.5-7 systemfonts_1.0.5
## [49] tools_4.3.2 progress_1.2.2
## [51] Rcpp_1.0.11 glue_1.6.2
## [53] SparseArray_1.2.2 xfun_0.41
## [55] HDF5Array_1.30.0 withr_2.5.2
## [57] fastmap_1.1.1 rhdf5filters_1.14.1
## [59] fansi_1.0.5 openssl_2.1.1
## [61] caTools_1.18.2 digest_0.6.33
## [63] R6_2.5.1 mime_0.12
## [65] colorspace_2.1-0 biomaRt_2.58.0
## [67] RSQLite_2.3.3 utf8_1.2.4
## [69] tidyr_1.3.0 generics_0.1.3
## [71] data.table_1.14.8 rtracklayer_1.62.0
## [73] prettyunits_1.2.0 httr_1.4.7
## [75] htmlwidgets_1.6.2 S4Arrays_1.2.0
## [77] pkgconfig_2.0.3 gtable_0.3.4
## [79] blob_1.2.4 siggenes_1.76.0
## [81] htmltools_0.5.7 scales_1.2.1
## [83] knitr_1.45 rstudioapi_0.15.0
## [85] tzdb_0.4.0 rjson_0.2.21
## [87] nlme_3.1-163 curl_5.1.0
## [89] org.Hs.eg.db_3.18.0 cachem_1.0.8
## [91] rhdf5_2.46.0 stringr_1.5.0
## [93] KernSmooth_2.23-22 AnnotationDbi_1.64.1
## [95] restfulr_0.0.15 GEOquery_2.70.0
## [97] pillar_1.9.0 grid_4.3.2
## [99] reshape_0.8.9 vctrs_0.6.4
## [101] promises_1.2.1 dbplyr_2.4.0
## [103] xtable_1.8-4 evaluate_0.23
## [105] readr_2.1.4 GenomicFeatures_1.54.1
## [107] cli_3.6.1 compiler_4.3.2
## [109] Rsamtools_2.18.0 rlang_1.1.2
## [111] crayon_1.5.2 rngtools_1.5.2
## [113] nor1mix_1.3-0 mclust_6.0.0
## [115] plyr_1.8.9 stringi_1.7.12
## [117] viridisLite_0.4.2 BiocParallel_1.36.0
## [119] munsell_0.5.0 Matrix_1.6-3
## [121] hms_1.1.3 sparseMatrixStats_1.14.0
## [123] bit64_4.0.5 Rhdf5lib_1.24.0
## [125] KEGGREST_1.42.0 statmod_1.5.0
## [127] shiny_1.7.5.1 highr_0.10
## [129] memoise_2.0.1 bslib_0.5.1
## [131] bit_4.0.5