The EMMA User’s Guide -
Enrichment Method MAtters
Functional Enrichment Analysis (FEA) is a key downstream step in omics workflows, commonly applied after differential expression analysis to support biological interpretation and generate pathway-level hypotheses. A wide range of tools and methods are available, mainly Over-Representation Analysis (ORA) (Khatri et al. 2012) and Gene Set Enrichment Analysis (GSEA) (Subramanian et al. 2005), leading to substantial heterogeneity in analytical choices and reported results.
Despite its widespread use, FEA is often insufficiently documented (Wijesooriya et al. 2022). Critical parameters such as background gene sets or multiple testing correction methods are frequently missing or inconsistently reported in scientific papers, limiting reproducibility and interpretability. Currently, no standardized framework exists to ensure transparent and reproducible documentation of FEA workflows, comparable to the MIAME guidelines (Brazma et al. 2001).
Similar approaches have been developed outside the Bioconductor
ecosystem to improve transparency and reproducibility in other
analytical contexts. For example, tidylog records
operations performed with dplyr and tidyr,
while omicslog
tracks transformations applied to omics-oriented objects. However, no
tool specifically addresses the metadata and provenance requirements of
FEA workflows.
To address this gap, we introduce EMMA (standing for Enrichment Methods MAtters), a framework that automatically captures key analytical parameters and provenance information during the execution of FEA methods.
This vignette demonstrates how EMMA integrates with
existing tools (e.g. clusterProfiler,
topGO,
Enrichr,
gprofiler2)
to execute enrichment analyses while systematically capturing analysis
parameters and provenance information during runtime, returning
enrichment results without altering their original
format, alongside structured and reusable metadata.
EMMA?Using EMMA allows you to:
EMMA work?EMMA works by wrapping an enrichment call, executing it,
and capturing relevant provenance information and parameters during
runtime. The recorded metadata is then attached directly to the result
object using R’s attribute system.
This approach enables EMMA to preserve provenance
information without modifying the original result structure or
introducing new classes, allowing users to continue working
seamlessly with standard outputs from existing tools.
While Bioconductor provides dedicated metadata slots for certain S4
classes (e.g. via metadata()), these are not consistently
available across all enrichment result types. By relying on attributes,
provenance information can be attached to any result object regardless
of its underlying class.
To install this package, start R and enter:
if (!requireNamespace("BiocManager", quietly = TRUE)) {
install.packages("BiocManager")}
BiocManager::install("EMMA")Once installed, the package can be loaded and attached to the current workspace as follows:
EMMA: the macrophage
datasetIn the remainder of this vignette, we will illustrate the main features of EMMA on a publicly available dataset from Alasoo, et al. “Shared genetic effects on chromatin and gene expression indicate a role for enhancer priming in immune response”, published in Nature Genetics, January 2018 (Alasoo et al. 2018).
The data is made available via the macrophage Bioconductor package, which contains the files output from the Salmon quantification (version 0.12.0, with GENCODE v29 reference), as well as the values summarized at the gene level, which we will use to exemplify.
In the macrophage experimental setting, the samples are
available from 6 different donors, in 4 different conditions (naive,
treated with Interferon gamma, with SL1344, or with a combination of
Interferon gamma and SL1344).
Let’s start by loading all the necessary packages:
library("EMMA")
library("macrophage")
library("DESeq2")
library("org.Hs.eg.db")
library("clusterProfiler")
library("mosdef")
library("topGO")
library("GO.db")We will show an example of how EMMA fits into a regular bulk RNA-seq data analysis workflow.
For this, we will load the macrophage data and perform
Differential Expression Analysis with DESeq2
# load data
data(gse, package = "macrophage")
# set up design
dds_macrophage <- DESeqDataSet(gse, design = ~ line + condition)
# preprocess
rownames(dds_macrophage) <- substr(rownames(dds_macrophage), 1, 15)
keep <- rowSums(counts(dds_macrophage) >= 10) >= 6
dds_macrophage <- dds_macrophage[keep, ]
# set seed for reproducibility
set.seed(2711)
# sample randomly for 2k genes
selected_genes <- sample(rownames(dds_macrophage), 2000)
dds_macrophage <- dds_macrophage[selected_genes, ]
# run DESeq
dds_macrophage <- DESeq(dds_macrophage)
# get de res for 1st contrast
IFNg_vs_naive <- results(dds_macrophage,
contrast = c("condition", "IFNg", "naive"),
lfcThreshold = 1, alpha = 0.05)
IFNg_vs_naive <- lfcShrink(dds_macrophage, coef = "condition_IFNg_vs_naive",
res = IFNg_vs_naive,
type = "apeglm")
IFNg_vs_naive$SYMBOL <- rowData(dds_macrophage)$SYMBOL
# get de res for 2st contrast
SL1344_vs_naive <- results(dds_macrophage,
contrast = c("condition", "SL1344", "naive"),
lfcThreshold = 1, alpha = 0.05)
SL1344_vs_naive <- lfcShrink(dds_macrophage, coef = "condition_SL1344_vs_naive",
res = SL1344_vs_naive,
type = "apeglm")
SL1344_vs_naive$SYMBOL <- rowData(dds_macrophage)$SYMBOL
# sort by adjusted p value
de_list <- list(
IFNg_vs_naive = IFNg_vs_naive,
SL1344_vs_naive = SL1344_vs_naive
)
de_list <- lapply(de_list, function(df) {
df <- df[order(df$padj), ]
df <- df[!is.na(df$padj) & df$padj <= 0.05, ]
df
})
# set background gene list
gene_universe <- rownames(dds_macrophage)Now that we have a list of DE genes for this contrast, we can perform
Functional Enrichment Analysis.
We do this first without the functionality provided by
EMMA.
In the following example, we will use the function
enrichGO() from clusterProfiler
EMMA frameworkFrom now on, we will complement the existing workflow with the
functionality provided by EMMA.
EMMA_run(): Capturing the recorded informationEMMA_run() accepts a function call
(e.g. enrichGO(...)) and executes it as it is, while
capturing the associated parameters and provenance information:
# perform FEA, but with EMMA!
fea_res <- enrichGO(gene = rownames(de_res),
universe = gene_universe,
keyType = "ENSEMBL",
OrgDb = org.Hs.eg.db,
ont = "BP",
pAdjustMethod = "BH",
pvalueCutoff = 0.05,
qvalueCutoff = 0.1) |>
EMMA_run() # simply pipe your call to EMMA_run()
# check res
fea_res#> #
#> # over-representation test
#> #
#> #...@organism Homo sapiens
#> #...@ontology BP
#> #...@keytype ENTREZID
#> #...@gene chr [1:103] "51778" "387751" "10537" "7453" "972" "441168" "2635" "80380" ...
#> #...pvalues adjusted by 'BH' with cutoff < 0.05
#> #...67 enriched terms found
#> 'data.frame': 67 obs. of 12 variables:
#> $ ID : chr "GO:0006955" "GO:0002376" "GO:0009607" "GO:0002250" ...
#> $ Description : chr "immune response" "immune system process" "response to biotic stimulus" "adaptive immune response" ...
#> $ GeneRatio : chr "29/80" "31/80" "24/80" "12/80" ...
#> $ BgRatio : chr "157/1447" "224/1447" "145/1447" "39/1447" ...
#> $ RichFactor : num 0.185 0.138 0.166 0.308 0.152 ...
#> $ FoldEnrichment: num 3.34 2.5 2.99 5.57 2.75 ...
#> $ zScore : num 7.51 5.92 6.12 6.99 5.63 ...
#> $ pvalue : num 4.14e-10 1.52e-07 2.18e-07 4.17e-07 1.18e-06 ...
#> $ p.adjust : num 5.90e-07 1.03e-04 1.03e-04 1.48e-04 3.08e-04 ...
#> $ qvalue : num 5.90e-07 1.03e-04 1.03e-04 1.48e-04 3.08e-04 ...
#> $ geneID : chr "ENSG00000090339/ENSG00000275718/ENSG00000204616/ENSG00000161217/ENSG00000213886/ENSG00000115415/ENSG00000117226"| __truncated__ "ENSG00000090339/ENSG00000275718/ENSG00000204616/ENSG00000161217/ENSG00000213886/ENSG00000115415/ENSG00000162367"| __truncated__ "ENSG00000275718/ENSG00000204616/ENSG00000213886/ENSG00000115415/ENSG00000117226/ENSG00000101412/ENSG00000100368"| __truncated__ "ENSG00000161217/ENSG00000116514/ENSG00000081985/ENSG00000100368/ENSG00000019582/ENSG00000234745/ENSG00000197646"| __truncated__ ...
#> $ Count : int 29 31 24 12 24 10 22 22 17 13 ...
#> #...Citation
#> S Xu, E Hu, Y Cai, Z Xie, X Luo, L Zhan, W Tang, Q Wang, B Liu, R Wang, W Xie, T Wu, L Xie, G Yu. Using clusterProfiler to characterize multiomics data. Nature Protocols. 2024, 19(11):3292-3320
… or you can simply wrap EMMA_run() around your
call:
# you can also pass the function name and its namespace
# e.g. `clusterProfiler::enrichGO(...)`
fea_res_nobg <- EMMA_run(
clusterProfiler::enrichGO(
# no universe set
gene = rownames(de_res),
keyType = "ENSEMBL",
OrgDb = org.Hs.eg.db,
ont = "BP",
pAdjustMethod = "BH",
pvalueCutoff = 0.05,
qvalueCutoff = 0.1,
readable = TRUE
)
)As you can see, EMMA returns the FEA results in their
native/standard format. EMMA also warns
you about good practices when performing FEA, like in this example, we
didn’t define a list of background genes (which can influence the
results leading e.g. to a larger amount of false discoveries, as a
consequence of over-optimistic smaller p-values (Wijesooriya et al. 2022)), so we get warned
about that.
EMMA_show(): Summarizing the recorded informationTo get a quick summary of what EMMA captured while we
ran the analysis, we use EMMA_show():
#> Number of Pathways: 67
#> Call: enrichGO(gene = rownames(de_res), universe = gene_universe, keyType = "ENSEMBL", OrgDb = org.Hs.eg.db, ont = "BP", pAdjustMethod = "BH", pvalueCutoff = 0.05, qvalueCutoff = 0.1)
#> Wrapper: FALSE
#> Package: clusterProfiler v. 4.21.0
#> Organism: Homo sapiens
#> Gene set library: GO
#> Gene set library version: 3.23.1
EMMA attaches the captured metadata to the attributes of
the results object. That’s why it is always a good practice to save the
original results, and not only the subsets of interest.
EMMA_get_record(): Retrieving the recorded
informationTo access the full recorded information, we use
EMMA_get_record():
#> $method
#> $method$call
#> enrichGO(gene = rownames(de_res), universe = gene_universe, keyType = "ENSEMBL",
#> OrgDb = org.Hs.eg.db, ont = "BP", pAdjustMethod = "BH", pvalueCutoff = 0.05,
#> qvalueCutoff = 0.1)
#>
#> $method$function_name
#> [1] "enrichGO"
#>
#> $method$package_name
#> [1] "clusterProfiler"
#>
#> $method$package_version
#> [1] "4.21.0"
#>
#> $method$wrapped_function
#> NULL
#>
#> $method$wrapped_package
#> NULL
#>
#> $method$wrapper
#> [1] FALSE
#>
#>
#> $input
#> $input$arguments
#> $input$arguments$gene
#> [1] "ENSG00000172399" "ENSG00000225492" "ENSG00000254838" "ENSG00000213886"
#> [5] "ENSG00000140105" "ENSG00000019582" "ENSG00000188820" "ENSG00000117226"
#> [9] "ENSG00000197646" "ENSG00000234745" "ENSG00000139597" "ENSG00000159363"
#> [13] "ENSG00000206341" "ENSG00000090539" "ENSG00000180616" "ENSG00000206503"
#> [17] "ENSG00000144649" "ENSG00000115415" "ENSG00000110665" "ENSG00000013374"
#> [21] "ENSG00000137193" "ENSG00000121270" "ENSG00000165949" "ENSG00000070915"
#> [25] "ENSG00000007968" "ENSG00000142621" "ENSG00000236567" "ENSG00000237988"
#> [29] "ENSG00000101412" "ENSG00000068079" "ENSG00000114127" "ENSG00000270120"
#> [33] "ENSG00000090339" "ENSG00000079156" "ENSG00000074660" "ENSG00000103154"
#> [37] "ENSG00000205846" "ENSG00000275718" "ENSG00000185499" "ENSG00000172738"
#> [41] "ENSG00000157551" "ENSG00000255491" "ENSG00000188389" "ENSG00000251230"
#> [45] "ENSG00000093009" "ENSG00000225864" "ENSG00000162367" "ENSG00000100368"
#> [49] "ENSG00000165935" "ENSG00000116016" "ENSG00000116514" "ENSG00000285761"
#> [53] "ENSG00000085999" "ENSG00000274461" "ENSG00000058335" "ENSG00000164125"
#> [57] "ENSG00000104894" "ENSG00000177465" "ENSG00000105639" "ENSG00000144837"
#> [61] "ENSG00000109756" "ENSG00000276411" "ENSG00000144136" "ENSG00000081985"
#> [65] "ENSG00000148429" "ENSG00000124508" "ENSG00000152939" "ENSG00000100985"
#> [69] "ENSG00000164292" "ENSG00000161217" "ENSG00000256713" "ENSG00000145362"
#> [73] "ENSG00000155287" "ENSG00000214826" "ENSG00000155324" "ENSG00000137628"
#> [77] "ENSG00000083097" "ENSG00000204616" "ENSG00000120262" "ENSG00000185433"
#> [81] "ENSG00000092345" "ENSG00000070501" "ENSG00000169891" "ENSG00000154783"
#> [85] "ENSG00000157827" "ENSG00000230521" "ENSG00000125355" "ENSG00000075240"
#> [89] "ENSG00000163958" "ENSG00000250240" "ENSG00000156273" "ENSG00000186815"
#> [93] "ENSG00000280649" "ENSG00000050767" "ENSG00000125900" "ENSG00000186854"
#> [97] "ENSG00000077152" "ENSG00000198719" "ENSG00000227463" "ENSG00000123485"
#> [101] "ENSG00000175445" "ENSG00000154920" "ENSG00000141086" "ENSG00000203446"
#> [105] "ENSG00000138496" "ENSG00000163421" "ENSG00000075618" "ENSG00000112149"
#>
#> $input$arguments$universe
#> [1] "ENSG00000206341" "ENSG00000255491" "ENSG00000159348" "ENSG00000103064"
#> [5] "ENSG00000105447" "ENSG00000109956" "ENSG00000261613" "ENSG00000167508"
#> [9] "ENSG00000235385" "ENSG00000125449" "ENSG00000015153" "ENSG00000104369"
#> [13] "ENSG00000180155" "ENSG00000185158" "ENSG00000182307" "ENSG00000135776"
#> [17] "ENSG00000078061" "ENSG00000105849" "ENSG00000127946" "ENSG00000285159"
#> [21] "ENSG00000169762" "ENSG00000196152" "ENSG00000162910" "ENSG00000127995"
#> [25] "ENSG00000149294" "ENSG00000255857" "ENSG00000156052" "ENSG00000078804"
#> [29] "ENSG00000242193" "ENSG00000168646" "ENSG00000117152" "ENSG00000274272"
#> [33] "ENSG00000164266" "ENSG00000177728" "ENSG00000266967" "ENSG00000102901"
#> [37] "ENSG00000259972" "ENSG00000260948" "ENSG00000168303" "ENSG00000243679"
#> [41] "ENSG00000105426" "ENSG00000101412" "ENSG00000107611" "ENSG00000284292"
#> [45] "ENSG00000186891" "ENSG00000149591" "ENSG00000196812" "ENSG00000260899"
#> [49] "ENSG00000180626" "ENSG00000280649" "ENSG00000130226" "ENSG00000198551"
#> [53] "ENSG00000075914" "ENSG00000229664" "ENSG00000179456" "ENSG00000272447"
#> [57] "ENSG00000225697" "ENSG00000270012" "ENSG00000183763" "ENSG00000095951"
#> [61] "ENSG00000258754" "ENSG00000147573" "ENSG00000266904" "ENSG00000105325"
#> [65] "ENSG00000175606" "ENSG00000140750" "ENSG00000100600" "ENSG00000131236"
#> [69] "ENSG00000142731" "ENSG00000105698" "ENSG00000125846" "ENSG00000171204"
#> [73] "ENSG00000170955" "ENSG00000280173" "ENSG00000113810" "ENSG00000189266"
#> [77] "ENSG00000284707" "ENSG00000176222" "ENSG00000159720" "ENSG00000149968"
#> [81] "ENSG00000236990" "ENSG00000088205" "ENSG00000158828" "ENSG00000145817"
#> [85] "ENSG00000176714" "ENSG00000066382" "ENSG00000169951" "ENSG00000144034"
#> [89] "ENSG00000279821" "ENSG00000106100" "ENSG00000284428" "ENSG00000197857"
#> [93] "ENSG00000258824" "ENSG00000100288" "ENSG00000160445" "ENSG00000081181"
#> [97] "ENSG00000171017" "ENSG00000169242" "ENSG00000261183" "ENSG00000115526"
#> [101] "ENSG00000174442" "ENSG00000185697" "ENSG00000283503" "ENSG00000228903"
#> [105] "ENSG00000257949" "ENSG00000135624" "ENSG00000173267" "ENSG00000116032"
#> [109] "ENSG00000162620" "ENSG00000180667" "ENSG00000130803" "ENSG00000214708"
#> [113] "ENSG00000145794" "ENSG00000104894" "ENSG00000164687" "ENSG00000154511"
#> [117] "ENSG00000247627" "ENSG00000219545" "ENSG00000260072" "ENSG00000263766"
#> [121] "ENSG00000132846" "ENSG00000174080" "ENSG00000162490" "ENSG00000242485"
#> [125] "ENSG00000100416" "ENSG00000124593" "ENSG00000273759" "ENSG00000125633"
#> [129] "ENSG00000100739" "ENSG00000186073" "ENSG00000164610" "ENSG00000165694"
#> [133] "ENSG00000206503" "ENSG00000166664" "ENSG00000264151" "ENSG00000125124"
#> [137] "ENSG00000111732" "ENSG00000105357" "ENSG00000054392" "ENSG00000059122"
#> [141] "ENSG00000135766" "ENSG00000130005" "ENSG00000153130" "ENSG00000244491"
#> [145] "ENSG00000198873" "ENSG00000164305" "ENSG00000128016" "ENSG00000106258"
#> [149] "ENSG00000258909" "ENSG00000198677" "ENSG00000140284" "ENSG00000181264"
#> [153] "ENSG00000176531" "ENSG00000084652" "ENSG00000157379" "ENSG00000275700"
#> [157] "ENSG00000164327" "ENSG00000099364" "ENSG00000183426" "ENSG00000174125"
#> [161] "ENSG00000230487" "ENSG00000057704" "ENSG00000185591" "ENSG00000125898"
#> [165] "ENSG00000267655" "ENSG00000110811" "ENSG00000139117" "ENSG00000070915"
#> [169] "ENSG00000179526" "ENSG00000146373" "ENSG00000139211" "ENSG00000158555"
#> [173] "ENSG00000101138" "ENSG00000104904" "ENSG00000198720" "ENSG00000166133"
#> [177] "ENSG00000224950" "ENSG00000172878" "ENSG00000145358" "ENSG00000116688"
#> [181] "ENSG00000113658" "ENSG00000169372" "ENSG00000175087" "ENSG00000103154"
#> [185] "ENSG00000273311" "ENSG00000187626" "ENSG00000144218" "ENSG00000230651"
#> [189] "ENSG00000169972" "ENSG00000149809" "ENSG00000138080" "ENSG00000104320"
#> [193] "ENSG00000243789" "ENSG00000152455" "ENSG00000197162" "ENSG00000177042"
#> [197] "ENSG00000136108" "ENSG00000179832" "ENSG00000154783" "ENSG00000251322"
#> [201] "ENSG00000255439" "ENSG00000163636" "ENSG00000138768" "ENSG00000257921"
#> [205] "ENSG00000183751" "ENSG00000137203" "ENSG00000138696" "ENSG00000235823"
#> [209] "ENSG00000177830" "ENSG00000099139" "ENSG00000115486" "ENSG00000143164"
#> [213] "ENSG00000153015" "ENSG00000258860" "ENSG00000147650" "ENSG00000167323"
#> [217] "ENSG00000196757" "ENSG00000143479" "ENSG00000168264" "ENSG00000154640"
#> [221] "ENSG00000121774" "ENSG00000093100" "ENSG00000184988" "ENSG00000164953"
#> [225] "ENSG00000277476" "ENSG00000141425" "ENSG00000049449" "ENSG00000149050"
#> [229] "ENSG00000280594" "ENSG00000174943" "ENSG00000197969" "ENSG00000158417"
#> [233] "ENSG00000076554" "ENSG00000163346" "ENSG00000120949" "ENSG00000187800"
#> [237] "ENSG00000059758" "ENSG00000125388" "ENSG00000232164" "ENSG00000077152"
#> [241] "ENSG00000198960" "ENSG00000259004" "ENSG00000125454" "ENSG00000139793"
#> [245] "ENSG00000234906" "ENSG00000245648" "ENSG00000164654" "ENSG00000144406"
#> [249] "ENSG00000139613" "ENSG00000234857" "ENSG00000187953" "ENSG00000135407"
#> [253] "ENSG00000119673" "ENSG00000249846" "ENSG00000128656" "ENSG00000079156"
#> [257] "ENSG00000198315" "ENSG00000141543" "ENSG00000035499" "ENSG00000206562"
#> [261] "ENSG00000136319" "ENSG00000175040" "ENSG00000136536" "ENSG00000226180"
#> [265] "ENSG00000144583" "ENSG00000120306" "ENSG00000256806" "ENSG00000197321"
#> [269] "ENSG00000125149" "ENSG00000196236" "ENSG00000102096" "ENSG00000165689"
#> [273] "ENSG00000178718" "ENSG00000276334" "ENSG00000113578" "ENSG00000105993"
#> [277] "ENSG00000057608" "ENSG00000283761" "ENSG00000171940" "ENSG00000115687"
#> [281] "ENSG00000280968" "ENSG00000123485" "ENSG00000235859" "ENSG00000073169"
#> [285] "ENSG00000229582" "ENSG00000184922" "ENSG00000164414" "ENSG00000177030"
#> [289] "ENSG00000142794" "ENSG00000152465" "ENSG00000196689" "ENSG00000148290"
#> [293] "ENSG00000177352" "ENSG00000177951" "ENSG00000005448" "ENSG00000188177"
#> [297] "ENSG00000227463" "ENSG00000087077" "ENSG00000260822" "ENSG00000130787"
#> [301] "ENSG00000196388" "ENSG00000258940" "ENSG00000147027" "ENSG00000125551"
#> [305] "ENSG00000172663" "ENSG00000129646" "ENSG00000152332" "ENSG00000121270"
#> [309] "ENSG00000261659" "ENSG00000177707" "ENSG00000106733" "ENSG00000102796"
#> [313] "ENSG00000229953" "ENSG00000197063" "ENSG00000111215" "ENSG00000155970"
#> [317] "ENSG00000170370" "ENSG00000204388" "ENSG00000063761" "ENSG00000239969"
#> [321] "ENSG00000072062" "ENSG00000133488" "ENSG00000125084" "ENSG00000285596"
#> [325] "ENSG00000163453" "ENSG00000105697" "ENSG00000105819" "ENSG00000117143"
#> [329] "ENSG00000213443" "ENSG00000197024" "ENSG00000174652" "ENSG00000266698"
#> [333] "ENSG00000184489" "ENSG00000131023" "ENSG00000095066" "ENSG00000163421"
#> [337] "ENSG00000062370" "ENSG00000260269" "ENSG00000108256" "ENSG00000170469"
#> [341] "ENSG00000214063" "ENSG00000173757" "ENSG00000101473" "ENSG00000107882"
#> [345] "ENSG00000163888" "ENSG00000197614" "ENSG00000227733" "ENSG00000101843"
#> [349] "ENSG00000185252" "ENSG00000155926" "ENSG00000111679" "ENSG00000114107"
#> [353] "ENSG00000234362" "ENSG00000164125" "ENSG00000136802" "ENSG00000197444"
#> [357] "ENSG00000227376" "ENSG00000105854" "ENSG00000175198" "ENSG00000165494"
#> [361] "ENSG00000279020" "ENSG00000117614" "ENSG00000159086" "ENSG00000078070"
#> [365] "ENSG00000148429" "ENSG00000280213" "ENSG00000227066" "ENSG00000279846"
#> [369] "ENSG00000090060" "ENSG00000198369" "ENSG00000198612" "ENSG00000143127"
#> [373] "ENSG00000237441" "ENSG00000128408" "ENSG00000213904" "ENSG00000116514"
#> [377] "ENSG00000164692" "ENSG00000246560" "ENSG00000128596" "ENSG00000189157"
#> [381] "ENSG00000101079" "ENSG00000175497" "ENSG00000183323" "ENSG00000008324"
#> [385] "ENSG00000196220" "ENSG00000071859" "ENSG00000050748" "ENSG00000139239"
#> [389] "ENSG00000173991" "ENSG00000157916" "ENSG00000141076" "ENSG00000162980"
#> [393] "ENSG00000082212" "ENSG00000203326" "ENSG00000087338" "ENSG00000130032"
#> [397] "ENSG00000254910" "ENSG00000119227" "ENSG00000164347" "ENSG00000198729"
#> [401] "ENSG00000099204" "ENSG00000272807" "ENSG00000271913" "ENSG00000204713"
#> [405] "ENSG00000197070" "ENSG00000069020" "ENSG00000167889" "ENSG00000143811"
#> [409] "ENSG00000078668" "ENSG00000231365" "ENSG00000280330" "ENSG00000257390"
#> [413] "ENSG00000185222" "ENSG00000125827" "ENSG00000125355" "ENSG00000169813"
#> [417] "ENSG00000109929" "ENSG00000047230" "ENSG00000105639" "ENSG00000166575"
#> [421] "ENSG00000261116" "ENSG00000112855" "ENSG00000134709" "ENSG00000071054"
#> [425] "ENSG00000094755" "ENSG00000131196" "ENSG00000230461" "ENSG00000196976"
#> [429] "ENSG00000177311" "ENSG00000158615" "ENSG00000251664" "ENSG00000151208"
#> [433] "ENSG00000255031" "ENSG00000022976" "ENSG00000175779" "ENSG00000173114"
#> [437] "ENSG00000069849" "ENSG00000003147" "ENSG00000215256" "ENSG00000250320"
#> [441] "ENSG00000137628" "ENSG00000100749" "ENSG00000174775" "ENSG00000165197"
#> [445] "ENSG00000174231" "ENSG00000175792" "ENSG00000203485" "ENSG00000256940"
#> [449] "ENSG00000226891" "ENSG00000265479" "ENSG00000280327" "ENSG00000196363"
#> [453] "ENSG00000109063" "ENSG00000145779" "ENSG00000099810" "ENSG00000172534"
#> [457] "ENSG00000187837" "ENSG00000168803" "ENSG00000239665" "ENSG00000132406"
#> [461] "ENSG00000130283" "ENSG00000122783" "ENSG00000250616" "ENSG00000146410"
#> [465] "ENSG00000232445" "ENSG00000145335" "ENSG00000081985" "ENSG00000184545"
#> [469] "ENSG00000196369" "ENSG00000214021" "ENSG00000072840" "ENSG00000215769"
#> [473] "ENSG00000272079" "ENSG00000204681" "ENSG00000047597" "ENSG00000136021"
#> [477] "ENSG00000130772" "ENSG00000231889" "ENSG00000141314" "ENSG00000139636"
#> [481] "ENSG00000140538" "ENSG00000270276" "ENSG00000187535" "ENSG00000285458"
#> [485] "ENSG00000284727" "ENSG00000113558" "ENSG00000166592" "ENSG00000260708"
#> [489] "ENSG00000083454" "ENSG00000173597" "ENSG00000168393" "ENSG00000186130"
#> [493] "ENSG00000141552" "ENSG00000117298" "ENSG00000284681" "ENSG00000164930"
#> [497] "ENSG00000186814" "ENSG00000213799" "ENSG00000259225" "ENSG00000275457"
#> [501] "ENSG00000243742" "ENSG00000135111" "ENSG00000055070" "ENSG00000175105"
#> [505] "ENSG00000174243" "ENSG00000120963" "ENSG00000261136" "ENSG00000242028"
#> [509] "ENSG00000166181" "ENSG00000197140" "ENSG00000152102" "ENSG00000105298"
#> [513] "ENSG00000007968" "ENSG00000067064" "ENSG00000148498" "ENSG00000112033"
#> [517] "ENSG00000177917" "ENSG00000152439" "ENSG00000136942" "ENSG00000257103"
#> [521] "ENSG00000269486" "ENSG00000196872" "ENSG00000121057" "ENSG00000285816"
#> [525] "ENSG00000187905" "ENSG00000135622" "ENSG00000104823" "ENSG00000167842"
#> [529] "ENSG00000155189" "ENSG00000188021" "ENSG00000088298" "ENSG00000159147"
#> [533] "ENSG00000261824" "ENSG00000189212" "ENSG00000148985" "ENSG00000081870"
#> [537] "ENSG00000167112" "ENSG00000086619" "ENSG00000164086" "ENSG00000006282"
#> [541] "ENSG00000280106" "ENSG00000135631" "ENSG00000170458" "ENSG00000196511"
#> [545] "ENSG00000117411" "ENSG00000168301" "ENSG00000183431" "ENSG00000163362"
#> [549] "ENSG00000138463" "ENSG00000100890" "ENSG00000198554" "ENSG00000198885"
#> [553] "ENSG00000146192" "ENSG00000124145" "ENSG00000102218" "ENSG00000143167"
#> [557] "ENSG00000117697" "ENSG00000255302" "ENSG00000115286" "ENSG00000149269"
#> [561] "ENSG00000179240" "ENSG00000188368" "ENSG00000184863" "ENSG00000280285"
#> [565] "ENSG00000150394" "ENSG00000141086" "ENSG00000177465" "ENSG00000225465"
#> [569] "ENSG00000175203" "ENSG00000165632" "ENSG00000139668" "ENSG00000009844"
#> [573] "ENSG00000198690" "ENSG00000119681" "ENSG00000067221" "ENSG00000066777"
#> [577] "ENSG00000111530" "ENSG00000110693" "ENSG00000204472" "ENSG00000185627"
#> [581] "ENSG00000213281" "ENSG00000179364" "ENSG00000025156" "ENSG00000139910"
#> [585] "ENSG00000262160" "ENSG00000159625" "ENSG00000106133" "ENSG00000105501"
#> [589] "ENSG00000140678" "ENSG00000101336" "ENSG00000198042" "ENSG00000100503"
#> [593] "ENSG00000101407" "ENSG00000118804" "ENSG00000279970" "ENSG00000044524"
#> [597] "ENSG00000135316" "ENSG00000184840" "ENSG00000230448" "ENSG00000270091"
#> [601] "ENSG00000174903" "ENSG00000179314" "ENSG00000171202" "ENSG00000110318"
#> [605] "ENSG00000149541" "ENSG00000142065" "ENSG00000125245" "ENSG00000182158"
#> [609] "ENSG00000205213" "ENSG00000130177" "ENSG00000115109" "ENSG00000090539"
#> [613] "ENSG00000166526" "ENSG00000173706" "ENSG00000240401" "ENSG00000172403"
#> [617] "ENSG00000150471" "ENSG00000175445" "ENSG00000013810" "ENSG00000276411"
#> [621] "ENSG00000213203" "ENSG00000038210" "ENSG00000213888" "ENSG00000111837"
#> [625] "ENSG00000228727" "ENSG00000107874" "ENSG00000254838" "ENSG00000050767"
#> [629] "ENSG00000221914" "ENSG00000108852" "ENSG00000115275" "ENSG00000169100"
#> [633] "ENSG00000103495" "ENSG00000255142" "ENSG00000250240" "ENSG00000141052"
#> [637] "ENSG00000043355" "ENSG00000107581" "ENSG00000143771" "ENSG00000205861"
#> [641] "ENSG00000123545" "ENSG00000197037" "ENSG00000083642" "ENSG00000164032"
#> [645] "ENSG00000143368" "ENSG00000203985" "ENSG00000223804" "ENSG00000157514"
#> [649] "ENSG00000083635" "ENSG00000186235" "ENSG00000243147" "ENSG00000136010"
#> [653] "ENSG00000107518" "ENSG00000158122" "ENSG00000134001" "ENSG00000104381"
#> [657] "ENSG00000107521" "ENSG00000083097" "ENSG00000151090" "ENSG00000165359"
#> [661] "ENSG00000116922" "ENSG00000146197" "ENSG00000073849" "ENSG00000137142"
#> [665] "ENSG00000075618" "ENSG00000087157" "ENSG00000011347" "ENSG00000166165"
#> [669] "ENSG00000125266" "ENSG00000013293" "ENSG00000196187" "ENSG00000103168"
#> [673] "ENSG00000136522" "ENSG00000180879" "ENSG00000260729" "ENSG00000129355"
#> [677] "ENSG00000103671" "ENSG00000123575" "ENSG00000284633" "ENSG00000264343"
#> [681] "ENSG00000117525" "ENSG00000149089" "ENSG00000108187" "ENSG00000162722"
#> [685] "ENSG00000173894" "ENSG00000165502" "ENSG00000178538" "ENSG00000159363"
#> [689] "ENSG00000113068" "ENSG00000169871" "ENSG00000204209" "ENSG00000162636"
#> [693] "ENSG00000105072" "ENSG00000114738" "ENSG00000163807" "ENSG00000129351"
#> [697] "ENSG00000123349" "ENSG00000172006" "ENSG00000101146" "ENSG00000250462"
#> [701] "ENSG00000156273" "ENSG00000074966" "ENSG00000186827" "ENSG00000173660"
#> [705] "ENSG00000142330" "ENSG00000003756" "ENSG00000249962" "ENSG00000179918"
#> [709] "ENSG00000233369" "ENSG00000234745" "ENSG00000236567" "ENSG00000242616"
#> [713] "ENSG00000128607" "ENSG00000228649" "ENSG00000112246" "ENSG00000229852"
#> [717] "ENSG00000273015" "ENSG00000169891" "ENSG00000113580" "ENSG00000126749"
#> [721] "ENSG00000226758" "ENSG00000120549" "ENSG00000280800" "ENSG00000279673"
#> [725] "ENSG00000188056" "ENSG00000130150" "ENSG00000108671" "ENSG00000179168"
#> [729] "ENSG00000114554" "ENSG00000126003" "ENSG00000147082" "ENSG00000168497"
#> [733] "ENSG00000157741" "ENSG00000177989" "ENSG00000103494" "ENSG00000151746"
#> [737] "ENSG00000118579" "ENSG00000169241" "ENSG00000168259" "ENSG00000110013"
#> [741] "ENSG00000253214" "ENSG00000168014" "ENSG00000109794" "ENSG00000163531"
#> [745] "ENSG00000137494" "ENSG00000247934" "ENSG00000147421" "ENSG00000280345"
#> [749] "ENSG00000162437" "ENSG00000131876" "ENSG00000130635" "ENSG00000272884"
#> [753] "ENSG00000136878" "ENSG00000170185" "ENSG00000158792" "ENSG00000074410"
#> [757] "ENSG00000171757" "ENSG00000275763" "ENSG00000179886" "ENSG00000254254"
#> [761] "ENSG00000171631" "ENSG00000128891" "ENSG00000168209" "ENSG00000266820"
#> [765] "ENSG00000186591" "ENSG00000281005" "ENSG00000185721" "ENSG00000065621"
#> [769] "ENSG00000104695" "ENSG00000140488" "ENSG00000162711" "ENSG00000185664"
#> [773] "ENSG00000164037" "ENSG00000257815" "ENSG00000180425" "ENSG00000274051"
#> [777] "ENSG00000136935" "ENSG00000075785" "ENSG00000134030" "ENSG00000169410"
#> [781] "ENSG00000168228" "ENSG00000279822" "ENSG00000132329" "ENSG00000164885"
#> [785] "ENSG00000174740" "ENSG00000184164" "ENSG00000167632" "ENSG00000234648"
#> [789] "ENSG00000100060" "ENSG00000055208" "ENSG00000168152" "ENSG00000114013"
#> [793] "ENSG00000260644" "ENSG00000130159" "ENSG00000197548" "ENSG00000136718"
#> [797] "ENSG00000145907" "ENSG00000167693" "ENSG00000132356" "ENSG00000253981"
#> [801] "ENSG00000162736" "ENSG00000159842" "ENSG00000267401" "ENSG00000160685"
#> [805] "ENSG00000198060" "ENSG00000175538" "ENSG00000055332" "ENSG00000132522"
#> [809] "ENSG00000164989" "ENSG00000142235" "ENSG00000274012" "ENSG00000171469"
#> [813] "ENSG00000167748" "ENSG00000255921" "ENSG00000085276" "ENSG00000243069"
#> [817] "ENSG00000245975" "ENSG00000168824" "ENSG00000159063" "ENSG00000101444"
#> [821] "ENSG00000236008" "ENSG00000143641" "ENSG00000110274" "ENSG00000211445"
#> [825] "ENSG00000122042" "ENSG00000081019" "ENSG00000283103" "ENSG00000064393"
#> [829] "ENSG00000196074" "ENSG00000272146" "ENSG00000107731" "ENSG00000104714"
#> [833] "ENSG00000180616" "ENSG00000197496" "ENSG00000137198" "ENSG00000164211"
#> [837] "ENSG00000185808" "ENSG00000148229" "ENSG00000116830" "ENSG00000186431"
#> [841] "ENSG00000197291" "ENSG00000100711" "ENSG00000274767" "ENSG00000110665"
#> [845] "ENSG00000038219" "ENSG00000167280" "ENSG00000135637" "ENSG00000198399"
#> [849] "ENSG00000072121" "ENSG00000085999" "ENSG00000251230" "ENSG00000270629"
#> [853] "ENSG00000144161" "ENSG00000111981" "ENSG00000197157" "ENSG00000160679"
#> [857] "ENSG00000112406" "ENSG00000276931" "ENSG00000227036" "ENSG00000275294"
#> [861] "ENSG00000119711" "ENSG00000186716" "ENSG00000225492" "ENSG00000276850"
#> [865] "ENSG00000164818" "ENSG00000204086" "ENSG00000119938" "ENSG00000234840"
#> [869] "ENSG00000162461" "ENSG00000137601" "ENSG00000120697" "ENSG00000157227"
#> [873] "ENSG00000108100" "ENSG00000100401" "ENSG00000124602" "ENSG00000278615"
#> [877] "ENSG00000215156" "ENSG00000141933" "ENSG00000102054" "ENSG00000166405"
#> [881] "ENSG00000158470" "ENSG00000085433" "ENSG00000147459" "ENSG00000165644"
#> [885] "ENSG00000173258" "ENSG00000136717" "ENSG00000161671" "ENSG00000226445"
#> [889] "ENSG00000177800" "ENSG00000164620" "ENSG00000264743" "ENSG00000077147"
#> [893] "ENSG00000226419" "ENSG00000176170" "ENSG00000160766" "ENSG00000259030"
#> [897] "ENSG00000137497" "ENSG00000143878" "ENSG00000139344" "ENSG00000237484"
#> [901] "ENSG00000104133" "ENSG00000250734" "ENSG00000170558" "ENSG00000152904"
#> [905] "ENSG00000247240" "ENSG00000143341" "ENSG00000282870" "ENSG00000165389"
#> [909] "ENSG00000019582" "ENSG00000285887" "ENSG00000225489" "ENSG00000165895"
#> [913] "ENSG00000155561" "ENSG00000011451" "ENSG00000256713" "ENSG00000205581"
#> [917] "ENSG00000140474" "ENSG00000140105" "ENSG00000163430" "ENSG00000248101"
#> [921] "ENSG00000103994" "ENSG00000177663" "ENSG00000268043" "ENSG00000144935"
#> [925] "ENSG00000227359" "ENSG00000167807" "ENSG00000110987" "ENSG00000130810"
#> [929] "ENSG00000168282" "ENSG00000120519" "ENSG00000267702" "ENSG00000177932"
#> [933] "ENSG00000273702" "ENSG00000162613" "ENSG00000246174" "ENSG00000159111"
#> [937] "ENSG00000106689" "ENSG00000188223" "ENSG00000165898" "ENSG00000106399"
#> [941] "ENSG00000178607" "ENSG00000143851" "ENSG00000132549" "ENSG00000162433"
#> [945] "ENSG00000260911" "ENSG00000225648" "ENSG00000171766" "ENSG00000115042"
#> [949] "ENSG00000104412" "ENSG00000105519" "ENSG00000177733" "ENSG00000106077"
#> [953] "ENSG00000255073" "ENSG00000215695" "ENSG00000228817" "ENSG00000137076"
#> [957] "ENSG00000127481" "ENSG00000169519" "ENSG00000203446" "ENSG00000158402"
#> [961] "ENSG00000133895" "ENSG00000271361" "ENSG00000135698" "ENSG00000172399"
#> [965] "ENSG00000129968" "ENSG00000003402" "ENSG00000162032" "ENSG00000107643"
#> [969] "ENSG00000155287" "ENSG00000114520" "ENSG00000104131" "ENSG00000111725"
#> [973] "ENSG00000153976" "ENSG00000147592" "ENSG00000058335" "ENSG00000158352"
#> [977] "ENSG00000143889" "ENSG00000229589" "ENSG00000158062" "ENSG00000100036"
#> [981] "ENSG00000264885" "ENSG00000065361" "ENSG00000204261" "ENSG00000165935"
#> [985] "ENSG00000155096" "ENSG00000166813" "ENSG00000197774" "ENSG00000284946"
#> [989] "ENSG00000154277" "ENSG00000134453" "ENSG00000152076" "ENSG00000177302"
#> [993] "ENSG00000224051" "ENSG00000142875" "ENSG00000110442" "ENSG00000146904"
#> [997] "ENSG00000134072" "ENSG00000165304" "ENSG00000044459" "ENSG00000166123"
#> [1001] "ENSG00000182224" "ENSG00000131051" "ENSG00000189043" "ENSG00000100030"
#> [1005] "ENSG00000235437" "ENSG00000148288" "ENSG00000184220" "ENSG00000111846"
#> [1009] "ENSG00000144649" "ENSG00000074706" "ENSG00000135835" "ENSG00000074660"
#> [1013] "ENSG00000159239" "ENSG00000181896" "ENSG00000177889" "ENSG00000196865"
#> [1017] "ENSG00000130300" "ENSG00000148339" "ENSG00000250198" "ENSG00000152492"
#> [1021] "ENSG00000179698" "ENSG00000134107" "ENSG00000214455" "ENSG00000164106"
#> [1025] "ENSG00000226383" "ENSG00000113721" "ENSG00000165338" "ENSG00000174945"
#> [1029] "ENSG00000203288" "ENSG00000123191" "ENSG00000198466" "ENSG00000081377"
#> [1033] "ENSG00000270022" "ENSG00000135829" "ENSG00000156603" "ENSG00000140320"
#> [1037] "ENSG00000130748" "ENSG00000248593" "ENSG00000245904" "ENSG00000003989"
#> [1041] "ENSG00000115053" "ENSG00000213445" "ENSG00000108433" "ENSG00000250067"
#> [1045] "ENSG00000197182" "ENSG00000144837" "ENSG00000125648" "ENSG00000162777"
#> [1049] "ENSG00000145979" "ENSG00000134874" "ENSG00000104872" "ENSG00000272419"
#> [1053] "ENSG00000241168" "ENSG00000013563" "ENSG00000186603" "ENSG00000008283"
#> [1057] "ENSG00000026559" "ENSG00000108439" "ENSG00000131435" "ENSG00000106608"
#> [1061] "ENSG00000231187" "ENSG00000157985" "ENSG00000100304" "ENSG00000028310"
#> [1065] "ENSG00000225151" "ENSG00000011590" "ENSG00000285634" "ENSG00000151694"
#> [1069] "ENSG00000152242" "ENSG00000137547" "ENSG00000132475" "ENSG00000164093"
#> [1073] "ENSG00000183741" "ENSG00000070371" "ENSG00000177640" "ENSG00000134597"
#> [1077] "ENSG00000171049" "ENSG00000213599" "ENSG00000183092" "ENSG00000137504"
#> [1081] "ENSG00000142669" "ENSG00000238164" "ENSG00000106624" "ENSG00000164283"
#> [1085] "ENSG00000011028" "ENSG00000169744" "ENSG00000142186" "ENSG00000084731"
#> [1089] "ENSG00000117385" "ENSG00000182742" "ENSG00000249309" "ENSG00000279672"
#> [1093] "ENSG00000167522" "ENSG00000139597" "ENSG00000184557" "ENSG00000174483"
#> [1097] "ENSG00000179630" "ENSG00000093009" "ENSG00000262979" "ENSG00000163638"
#> [1101] "ENSG00000130638" "ENSG00000122085" "ENSG00000176853" "ENSG00000117226"
#> [1105] "ENSG00000162946" "ENSG00000226259" "ENSG00000163939" "ENSG00000233058"
#> [1109] "ENSG00000175061" "ENSG00000272912" "ENSG00000180694" "ENSG00000144744"
#> [1113] "ENSG00000115415" "ENSG00000151012" "ENSG00000260743" "ENSG00000117133"
#> [1117] "ENSG00000108175" "ENSG00000152939" "ENSG00000170681" "ENSG00000100991"
#> [1121] "ENSG00000149488" "ENSG00000187688" "ENSG00000181396" "ENSG00000197245"
#> [1125] "ENSG00000161642" "ENSG00000145882" "ENSG00000181284" "ENSG00000184792"
#> [1129] "ENSG00000278175" "ENSG00000067369" "ENSG00000111962" "ENSG00000185385"
#> [1133] "ENSG00000163697" "ENSG00000106078" "ENSG00000186416" "ENSG00000267745"
#> [1137] "ENSG00000174718" "ENSG00000272933" "ENSG00000068079" "ENSG00000267629"
#> [1141] "ENSG00000177383" "ENSG00000140285" "ENSG00000270149" "ENSG00000157693"
#> [1145] "ENSG00000197302" "ENSG00000164823" "ENSG00000279091" "ENSG00000197180"
#> [1149] "ENSG00000011332" "ENSG00000198837" "ENSG00000122359" "ENSG00000013375"
#> [1153] "ENSG00000284981" "ENSG00000143324" "ENSG00000104472" "ENSG00000196387"
#> [1157] "ENSG00000166311" "ENSG00000182606" "ENSG00000260018" "ENSG00000179909"
#> [1161] "ENSG00000280079" "ENSG00000153993" "ENSG00000120071" "ENSG00000230521"
#> [1165] "ENSG00000285702" "ENSG00000007047" "ENSG00000142444" "ENSG00000138101"
#> [1169] "ENSG00000158113" "ENSG00000128918" "ENSG00000124659" "ENSG00000185272"
#> [1173] "ENSG00000167395" "ENSG00000164542" "ENSG00000068024" "ENSG00000139436"
#> [1177] "ENSG00000112877" "ENSG00000106346" "ENSG00000213658" "ENSG00000236539"
#> [1181] "ENSG00000162378" "ENSG00000188185" "ENSG00000129951" "ENSG00000115194"
#> [1185] "ENSG00000021776" "ENSG00000149091" "ENSG00000181852" "ENSG00000129255"
#> [1189] "ENSG00000111785" "ENSG00000152953" "ENSG00000171824" "ENSG00000261997"
#> [1193] "ENSG00000128805" "ENSG00000075420" "ENSG00000228203" "ENSG00000260810"
#> [1197] "ENSG00000188389" "ENSG00000280187" "ENSG00000162924" "ENSG00000121390"
#> [1201] "ENSG00000103037" "ENSG00000189319" "ENSG00000196605" "ENSG00000163482"
#> [1205] "ENSG00000232593" "ENSG00000112149" "ENSG00000255521" "ENSG00000099956"
#> [1209] "ENSG00000261795" "ENSG00000102359" "ENSG00000183696" "ENSG00000279456"
#> [1213] "ENSG00000115468" "ENSG00000258315" "ENSG00000215440" "ENSG00000275052"
#> [1217] "ENSG00000167105" "ENSG00000065183" "ENSG00000257365" "ENSG00000255355"
#> [1221] "ENSG00000101460" "ENSG00000170464" "ENSG00000273143" "ENSG00000269982"
#> [1225] "ENSG00000239653" "ENSG00000224578" "ENSG00000054967" "ENSG00000197646"
#> [1229] "ENSG00000130544" "ENSG00000198535" "ENSG00000205846" "ENSG00000046889"
#> [1233] "ENSG00000116455" "ENSG00000154309" "ENSG00000275410" "ENSG00000116903"
#> [1237] "ENSG00000164292" "ENSG00000167553" "ENSG00000133121" "ENSG00000118308"
#> [1241] "ENSG00000204177" "ENSG00000014824" "ENSG00000132429" "ENSG00000141098"
#> [1245] "ENSG00000124126" "ENSG00000064489" "ENSG00000157326" "ENSG00000089280"
#> [1249] "ENSG00000278864" "ENSG00000281571" "ENSG00000155511" "ENSG00000262089"
#> [1253] "ENSG00000189042" "ENSG00000104611" "ENSG00000075213" "ENSG00000259583"
#> [1257] "ENSG00000205309" "ENSG00000164171" "ENSG00000144120" "ENSG00000259590"
#> [1261] "ENSG00000171453" "ENSG00000198646" "ENSG00000214279" "ENSG00000271646"
#> [1265] "ENSG00000089351" "ENSG00000167333" "ENSG00000096384" "ENSG00000130204"
#> [1269] "ENSG00000168216" "ENSG00000108352" "ENSG00000157388" "ENSG00000126759"
#> [1273] "ENSG00000242689" "ENSG00000115461" "ENSG00000069869" "ENSG00000042088"
#> [1277] "ENSG00000120262" "ENSG00000104866" "ENSG00000242430" "ENSG00000127022"
#> [1281] "ENSG00000159873" "ENSG00000248905" "ENSG00000106682" "ENSG00000101639"
#> [1285] "ENSG00000269983" "ENSG00000199753" "ENSG00000164114" "ENSG00000269604"
#> [1289] "ENSG00000240801" "ENSG00000114127" "ENSG00000174928" "ENSG00000284770"
#> [1293] "ENSG00000133958" "ENSG00000183087" "ENSG00000170837" "ENSG00000105607"
#> [1297] "ENSG00000196510" "ENSG00000267858" "ENSG00000130414" "ENSG00000085415"
#> [1301] "ENSG00000182389" "ENSG00000186583" "ENSG00000123159" "ENSG00000164403"
#> [1305] "ENSG00000260075" "ENSG00000284968" "ENSG00000105705" "ENSG00000132535"
#> [1309] "ENSG00000142694" "ENSG00000272047" "ENSG00000265688" "ENSG00000243064"
#> [1313] "ENSG00000167536" "ENSG00000099308" "ENSG00000285437" "ENSG00000198719"
#> [1317] "ENSG00000091986" "ENSG00000063177" "ENSG00000219665" "ENSG00000260196"
#> [1321] "ENSG00000166189" "ENSG00000115935" "ENSG00000132481" "ENSG00000270060"
#> [1325] "ENSG00000161647" "ENSG00000173540" "ENSG00000225864" "ENSG00000235897"
#> [1329] "ENSG00000232931" "ENSG00000065989" "ENSG00000087460" "ENSG00000229368"
#> [1333] "ENSG00000146950" "ENSG00000177839" "ENSG00000127081" "ENSG00000095380"
#> [1337] "ENSG00000214013" "ENSG00000056972" "ENSG00000251046" "ENSG00000169299"
#> [1341] "ENSG00000170689" "ENSG00000254639" "ENSG00000134982" "ENSG00000272851"
#> [1345] "ENSG00000275389" "ENSG00000148019" "ENSG00000277534" "ENSG00000278993"
#> [1349] "ENSG00000144785" "ENSG00000172748" "ENSG00000137070" "ENSG00000174276"
#> [1353] "ENSG00000146648" "ENSG00000139915" "ENSG00000254561" "ENSG00000188820"
#> [1357] "ENSG00000233117" "ENSG00000258367" "ENSG00000250120" "ENSG00000155111"
#> [1361] "ENSG00000064300" "ENSG00000224356" "ENSG00000104408" "ENSG00000164983"
#> [1365] "ENSG00000177646" "ENSG00000120647" "ENSG00000100918" "ENSG00000144648"
#> [1369] "ENSG00000104660" "ENSG00000164088" "ENSG00000106443" "ENSG00000158683"
#> [1373] "ENSG00000107185" "ENSG00000259952" "ENSG00000124508" "ENSG00000221955"
#> [1377] "ENSG00000127125" "ENSG00000169896" "ENSG00000133026" "ENSG00000161179"
#> [1381] "ENSG00000229644" "ENSG00000127220" "ENSG00000263004" "ENSG00000166261"
#> [1385] "ENSG00000106554" "ENSG00000184708" "ENSG00000107282" "ENSG00000176125"
#> [1389] "ENSG00000157036" "ENSG00000006125" "ENSG00000162695" "ENSG00000257702"
#> [1393] "ENSG00000088247" "ENSG00000216490" "ENSG00000134545" "ENSG00000197808"
#> [1397] "ENSG00000134285" "ENSG00000158552" "ENSG00000138750" "ENSG00000103381"
#> [1401] "ENSG00000163431" "ENSG00000186318" "ENSG00000226380" "ENSG00000235174"
#> [1405] "ENSG00000112473" "ENSG00000229914" "ENSG00000136160" "ENSG00000209482"
#> [1409] "ENSG00000139218" "ENSG00000067167" "ENSG00000105011" "ENSG00000196459"
#> [1413] "ENSG00000181090" "ENSG00000260693" "ENSG00000242114" "ENSG00000087076"
#> [1417] "ENSG00000197780" "ENSG00000100150" "ENSG00000260669" "ENSG00000127838"
#> [1421] "ENSG00000176533" "ENSG00000185608" "ENSG00000130511" "ENSG00000095261"
#> [1425] "ENSG00000198053" "ENSG00000241404" "ENSG00000143850" "ENSG00000123444"
#> [1429] "ENSG00000279900" "ENSG00000188522" "ENSG00000223704" "ENSG00000090520"
#> [1433] "ENSG00000059804" "ENSG00000174842" "ENSG00000138376" "ENSG00000145687"
#> [1437] "ENSG00000087303" "ENSG00000160200" "ENSG00000249645" "ENSG00000213949"
#> [1441] "ENSG00000232774" "ENSG00000155008" "ENSG00000198355" "ENSG00000106049"
#> [1445] "ENSG00000100321" "ENSG00000100320" "ENSG00000142621" "ENSG00000254995"
#> [1449] "ENSG00000136367" "ENSG00000121578" "ENSG00000256061" "ENSG00000083093"
#> [1453] "ENSG00000114859" "ENSG00000169291" "ENSG00000100985" "ENSG00000172738"
#> [1457] "ENSG00000234608" "ENSG00000160948" "ENSG00000205710" "ENSG00000162430"
#> [1461] "ENSG00000205702" "ENSG00000087903" "ENSG00000189152" "ENSG00000126453"
#> [1465] "ENSG00000225783" "ENSG00000284491" "ENSG00000255455" "ENSG00000174669"
#> [1469] "ENSG00000162367" "ENSG00000168159" "ENSG00000234444" "ENSG00000128581"
#> [1473] "ENSG00000166881" "ENSG00000163513" "ENSG00000144136" "ENSG00000204616"
#> [1477] "ENSG00000231806" "ENSG00000168904" "ENSG00000100767" "ENSG00000230724"
#> [1481] "ENSG00000178053" "ENSG00000104936" "ENSG00000055044" "ENSG00000129295"
#> [1485] "ENSG00000161217" "ENSG00000215160" "ENSG00000091527" "ENSG00000148358"
#> [1489] "ENSG00000160551" "ENSG00000186564" "ENSG00000172757" "ENSG00000147535"
#> [1493] "ENSG00000272140" "ENSG00000169223" "ENSG00000141452" "ENSG00000272636"
#> [1497] "ENSG00000175984" "ENSG00000143622" "ENSG00000214189" "ENSG00000213886"
#> [1501] "ENSG00000246705" "ENSG00000182218" "ENSG00000104687" "ENSG00000165792"
#> [1505] "ENSG00000109756" "ENSG00000273294" "ENSG00000137868" "ENSG00000092841"
#> [1509] "ENSG00000151575" "ENSG00000125249" "ENSG00000185433" "ENSG00000256087"
#> [1513] "ENSG00000140262" "ENSG00000260686" "ENSG00000080493" "ENSG00000173933"
#> [1517] "ENSG00000110321" "ENSG00000133935" "ENSG00000148154" "ENSG00000213453"
#> [1521] "ENSG00000227540" "ENSG00000154930" "ENSG00000123143" "ENSG00000074855"
#> [1525] "ENSG00000267321" "ENSG00000157551" "ENSG00000116747" "ENSG00000264448"
#> [1529] "ENSG00000285644" "ENSG00000005249" "ENSG00000013374" "ENSG00000007171"
#> [1533] "ENSG00000142409" "ENSG00000183624" "ENSG00000167625" "ENSG00000146938"
#> [1537] "ENSG00000183020" "ENSG00000198546" "ENSG00000276509" "ENSG00000280145"
#> [1541] "ENSG00000117595" "ENSG00000270157" "ENSG00000173068" "ENSG00000236383"
#> [1545] "ENSG00000126562" "ENSG00000196083" "ENSG00000119684" "ENSG00000273374"
#> [1549] "ENSG00000179743" "ENSG00000157869" "ENSG00000116016" "ENSG00000100219"
#> [1553] "ENSG00000257086" "ENSG00000205086" "ENSG00000280798" "ENSG00000106804"
#> [1557] "ENSG00000127666" "ENSG00000167232" "ENSG00000133624" "ENSG00000270607"
#> [1561] "ENSG00000120832" "ENSG00000164169" "ENSG00000123131" "ENSG00000279641"
#> [1565] "ENSG00000258655" "ENSG00000161800" "ENSG00000134717" "ENSG00000227115"
#> [1569] "ENSG00000225439" "ENSG00000125900" "ENSG00000153246" "ENSG00000135913"
#> [1573] "ENSG00000108840" "ENSG00000240889" "ENSG00000204482" "ENSG00000224905"
#> [1577] "ENSG00000255224" "ENSG00000145431" "ENSG00000124299" "ENSG00000100228"
#> [1581] "ENSG00000256525" "ENSG00000246263" "ENSG00000075240" "ENSG00000276840"
#> [1585] "ENSG00000177084" "ENSG00000162441" "ENSG00000138030" "ENSG00000120868"
#> [1589] "ENSG00000116212" "ENSG00000137713" "ENSG00000070501" "ENSG00000079246"
#> [1593] "ENSG00000100938" "ENSG00000197296" "ENSG00000134748" "ENSG00000110911"
#> [1597] "ENSG00000135018" "ENSG00000054267" "ENSG00000145934" "ENSG00000228427"
#> [1601] "ENSG00000144891" "ENSG00000138642" "ENSG00000151693" "ENSG00000186854"
#> [1605] "ENSG00000197632" "ENSG00000213204" "ENSG00000144401" "ENSG00000227963"
#> [1609] "ENSG00000113758" "ENSG00000258938" "ENSG00000131781" "ENSG00000072571"
#> [1613] "ENSG00000134504" "ENSG00000105619" "ENSG00000099625" "ENSG00000175782"
#> [1617] "ENSG00000232783" "ENSG00000156804" "ENSG00000090382" "ENSG00000214940"
#> [1621] "ENSG00000157152" "ENSG00000244733" "ENSG00000010404" "ENSG00000047578"
#> [1625] "ENSG00000145439" "ENSG00000163958" "ENSG00000234191" "ENSG00000241360"
#> [1629] "ENSG00000154258" "ENSG00000227502" "ENSG00000173295" "ENSG00000102393"
#> [1633] "ENSG00000149582" "ENSG00000261359" "ENSG00000157827" "ENSG00000164252"
#> [1637] "ENSG00000237988" "ENSG00000123178" "ENSG00000198663" "ENSG00000131446"
#> [1641] "ENSG00000142959" "ENSG00000183628" "ENSG00000105229" "ENSG00000149177"
#> [1645] "ENSG00000234964" "ENSG00000244563" "ENSG00000159214" "ENSG00000170684"
#> [1649] "ENSG00000230069" "ENSG00000167264" "ENSG00000145220" "ENSG00000133835"
#> [1653] "ENSG00000135272" "ENSG00000173065" "ENSG00000107789" "ENSG00000269113"
#> [1657] "ENSG00000138688" "ENSG00000077254" "ENSG00000163701" "ENSG00000276791"
#> [1661] "ENSG00000070476" "ENSG00000119707" "ENSG00000205084" "ENSG00000168234"
#> [1665] "ENSG00000228434" "ENSG00000076944" "ENSG00000171443" "ENSG00000151849"
#> [1669] "ENSG00000163975" "ENSG00000151893" "ENSG00000144848" "ENSG00000049759"
#> [1673] "ENSG00000141905" "ENSG00000197579" "ENSG00000116141" "ENSG00000224023"
#> [1677] "ENSG00000183935" "ENSG00000147789" "ENSG00000174780" "ENSG00000112941"
#> [1681] "ENSG00000110237" "ENSG00000146267" "ENSG00000233757" "ENSG00000122482"
#> [1685] "ENSG00000155465" "ENSG00000119397" "ENSG00000240057" "ENSG00000136273"
#> [1689] "ENSG00000182175" "ENSG00000175931" "ENSG00000136152" "ENSG00000138496"
#> [1693] "ENSG00000163541" "ENSG00000168056" "ENSG00000188529" "ENSG00000220008"
#> [1697] "ENSG00000221968" "ENSG00000136261" "ENSG00000166900" "ENSG00000189001"
#> [1701] "ENSG00000108559" "ENSG00000167658" "ENSG00000269044" "ENSG00000231683"
#> [1705] "ENSG00000165282" "ENSG00000144893" "ENSG00000131941" "ENSG00000138613"
#> [1709] "ENSG00000165474" "ENSG00000154914" "ENSG00000106366" "ENSG00000105088"
#> [1713] "ENSG00000136279" "ENSG00000253327" "ENSG00000163607" "ENSG00000100239"
#> [1717] "ENSG00000142082" "ENSG00000048828" "ENSG00000214194" "ENSG00000267474"
#> [1721] "ENSG00000164494" "ENSG00000100368" "ENSG00000141401" "ENSG00000164188"
#> [1725] "ENSG00000167705" "ENSG00000163751" "ENSG00000267248" "ENSG00000180806"
#> [1729] "ENSG00000162929" "ENSG00000185345" "ENSG00000279714" "ENSG00000165661"
#> [1733] "ENSG00000104067" "ENSG00000143970" "ENSG00000254681" "ENSG00000131626"
#> [1737] "ENSG00000188783" "ENSG00000122390" "ENSG00000150527" "ENSG00000105669"
#> [1741] "ENSG00000214826" "ENSG00000278768" "ENSG00000111644" "ENSG00000170175"
#> [1745] "ENSG00000282936" "ENSG00000155729" "ENSG00000108469" "ENSG00000136720"
#> [1749] "ENSG00000233930" "ENSG00000159685" "ENSG00000181938" "ENSG00000179051"
#> [1753] "ENSG00000188886" "ENSG00000185829" "ENSG00000148362" "ENSG00000112294"
#> [1757] "ENSG00000196961" "ENSG00000028839" "ENSG00000134815" "ENSG00000180867"
#> [1761] "ENSG00000100216" "ENSG00000196526" "ENSG00000285761" "ENSG00000213411"
#> [1765] "ENSG00000102030" "ENSG00000040199" "ENSG00000107738" "ENSG00000177425"
#> [1769] "ENSG00000146426" "ENSG00000165152" "ENSG00000267426" "ENSG00000146143"
#> [1773] "ENSG00000185267" "ENSG00000132661" "ENSG00000254772" "ENSG00000174720"
#> [1777] "ENSG00000131238" "ENSG00000151702" "ENSG00000272755" "ENSG00000270120"
#> [1781] "ENSG00000109111" "ENSG00000135045" "ENSG00000162735" "ENSG00000080546"
#> [1785] "ENSG00000149930" "ENSG00000163293" "ENSG00000105397" "ENSG00000147533"
#> [1789] "ENSG00000099800" "ENSG00000159079" "ENSG00000107263" "ENSG00000198406"
#> [1793] "ENSG00000285641" "ENSG00000275718" "ENSG00000090889" "ENSG00000210082"
#> [1797] "ENSG00000181555" "ENSG00000169018" "ENSG00000155324" "ENSG00000106333"
#> [1801] "ENSG00000155666" "ENSG00000152705" "ENSG00000196693" "ENSG00000004487"
#> [1805] "ENSG00000279827" "ENSG00000144306" "ENSG00000174306" "ENSG00000165949"
#> [1809] "ENSG00000131019" "ENSG00000104973" "ENSG00000136490" "ENSG00000102878"
#> [1813] "ENSG00000102575" "ENSG00000187243" "ENSG00000129451" "ENSG00000101695"
#> [1817] "ENSG00000117519" "ENSG00000139324" "ENSG00000092345" "ENSG00000186815"
#> [1821] "ENSG00000145362" "ENSG00000274615" "ENSG00000166821" "ENSG00000064607"
#> [1825] "ENSG00000268362" "ENSG00000273760" "ENSG00000122705" "ENSG00000075884"
#> [1829] "ENSG00000274461" "ENSG00000132589" "ENSG00000131966" "ENSG00000148399"
#> [1833] "ENSG00000253846" "ENSG00000237892" "ENSG00000133398" "ENSG00000277511"
#> [1837] "ENSG00000128641" "ENSG00000090339" "ENSG00000248632" "ENSG00000100364"
#> [1841] "ENSG00000158486" "ENSG00000146574" "ENSG00000124120" "ENSG00000054965"
#> [1845] "ENSG00000254788" "ENSG00000277806" "ENSG00000065615" "ENSG00000120686"
#> [1849] "ENSG00000241343" "ENSG00000171612" "ENSG00000140553" "ENSG00000118276"
#> [1853] "ENSG00000213793" "ENSG00000061337" "ENSG00000115685" "ENSG00000008056"
#> [1857] "ENSG00000160219" "ENSG00000163728" "ENSG00000196458" "ENSG00000169733"
#> [1861] "ENSG00000155893" "ENSG00000139687" "ENSG00000137193" "ENSG00000197020"
#> [1865] "ENSG00000159479" "ENSG00000196391" "ENSG00000184470" "ENSG00000182173"
#> [1869] "ENSG00000084676" "ENSG00000185499" "ENSG00000108018" "ENSG00000182551"
#> [1873] "ENSG00000115541" "ENSG00000103353" "ENSG00000198189" "ENSG00000203666"
#> [1877] "ENSG00000266389" "ENSG00000080822" "ENSG00000184500" "ENSG00000166471"
#> [1881] "ENSG00000197417" "ENSG00000279311" "ENSG00000056586" "ENSG00000186193"
#> [1885] "ENSG00000164040" "ENSG00000263590" "ENSG00000144810" "ENSG00000196247"
#> [1889] "ENSG00000277687" "ENSG00000244063" "ENSG00000278299" "ENSG00000166562"
#> [1893] "ENSG00000198833" "ENSG00000253372" "ENSG00000164182" "ENSG00000120742"
#> [1897] "ENSG00000136891" "ENSG00000183876" "ENSG00000088280" "ENSG00000203993"
#> [1901] "ENSG00000146555" "ENSG00000079337" "ENSG00000224837" "ENSG00000260793"
#> [1905] "ENSG00000132967" "ENSG00000247315" "ENSG00000234390" "ENSG00000134569"
#> [1909] "ENSG00000116704" "ENSG00000128683" "ENSG00000225791" "ENSG00000166275"
#> [1913] "ENSG00000105372" "ENSG00000174748" "ENSG00000118985" "ENSG00000125735"
#> [1917] "ENSG00000110422" "ENSG00000146842" "ENSG00000198920" "ENSG00000169895"
#> [1921] "ENSG00000185495" "ENSG00000243704" "ENSG00000206532" "ENSG00000163512"
#> [1925] "ENSG00000104219" "ENSG00000101474" "ENSG00000072364" "ENSG00000203497"
#> [1929] "ENSG00000163001" "ENSG00000168769" "ENSG00000139722" "ENSG00000164073"
#> [1933] "ENSG00000179950" "ENSG00000116670" "ENSG00000154920" "ENSG00000049769"
#> [1937] "ENSG00000149054" "ENSG00000276550" "ENSG00000272767" "ENSG00000181704"
#> [1941] "ENSG00000274528" "ENSG00000124479" "ENSG00000172349" "ENSG00000226950"
#> [1945] "ENSG00000133250" "ENSG00000118260" "ENSG00000227825" "ENSG00000182093"
#> [1949] "ENSG00000047849" "ENSG00000273033" "ENSG00000070367" "ENSG00000090266"
#> [1953] "ENSG00000141873" "ENSG00000066557" "ENSG00000175455" "ENSG00000269374"
#> [1957] "ENSG00000066455" "ENSG00000240929" "ENSG00000064687" "ENSG00000164758"
#> [1961] "ENSG00000196313" "ENSG00000259244" "ENSG00000274333" "ENSG00000257181"
#> [1965] "ENSG00000004399" "ENSG00000072786" "ENSG00000127252" "ENSG00000180530"
#> [1969] "ENSG00000006194" "ENSG00000168502" "ENSG00000065057" "ENSG00000156860"
#> [1973] "ENSG00000149599" "ENSG00000188505" "ENSG00000108557" "ENSG00000172197"
#> [1977] "ENSG00000067836" "ENSG00000241170" "ENSG00000224614" "ENSG00000100888"
#> [1981] "ENSG00000206149" "ENSG00000279348" "ENSG00000148950" "ENSG00000101856"
#> [1985] "ENSG00000091592" "ENSG00000251003" "ENSG00000138794" "ENSG00000156374"
#> [1989] "ENSG00000205730" "ENSG00000172046" "ENSG00000197451" "ENSG00000153774"
#> [1993] "ENSG00000139645" "ENSG00000118369" "ENSG00000249228" "ENSG00000264920"
#> [1997] "ENSG00000167074" "ENSG00000163867" "ENSG00000104388" "ENSG00000089123"
#>
#> $input$arguments$keyType
#> [1] "ENSEMBL"
#>
#> $input$arguments$OrgDb
#> OrgDb object:
#> | DBSCHEMAVERSION: 2.1
#> | Db type: OrgDb
#> | Supporting package: AnnotationDbi
#> | DBSCHEMA: HUMAN_DB
#> | ORGANISM: Homo sapiens
#> | SPECIES: Human
#> | EGSOURCEDATE: 2026-Mar18
#> | EGSOURCENAME: Entrez Gene
#> | EGSOURCEURL: ftp://ftp.ncbi.nlm.nih.gov/gene/DATA
#> | CENTRALID: EG
#> | TAXID: 9606
#> | GOSOURCENAME: Gene Ontology
#> | GOSOURCEURL: https://current.geneontology.org/ontology/go-basic.obo
#> | GOSOURCEDATE: 2026-01-23
#> | GOEGSOURCEDATE: 2026-Mar18
#> | GOEGSOURCENAME: Entrez Gene
#> | GOEGSOURCEURL: ftp://ftp.ncbi.nlm.nih.gov/gene/DATA
#> | KEGGSOURCENAME: KEGG GENOME
#> | KEGGSOURCEURL: ftp://ftp.genome.jp/pub/kegg/genomes
#> | KEGGSOURCEDATE: 2011-Mar15
#> | GPSOURCENAME: UCSC Genome Bioinformatics (Homo sapiens)
#> | GPSOURCEURL: ftp://hgdownload.cse.ucsc.edu/goldenPath/hg38/database
#> | GPSOURCEDATE: UTC-Mar19
#> | ENSOURCEDATE: 2025-Sep03
#> | ENSOURCENAME: Ensembl
#> | ENSOURCEURL: ftp://ftp.ensembl.org/pub/current_fasta
#> | UPSOURCENAME: Uniprot
#> | UPSOURCEURL: http://www.UniProt.org/
#> | UPSOURCEDATE: Fri Mar 20 10:22:53 2026
#>
#> $input$arguments$ont
#> [1] "BP"
#>
#> $input$arguments$pAdjustMethod
#> [1] "BH"
#>
#> $input$arguments$pvalueCutoff
#> [1] 0.05
#>
#> $input$arguments$qvalueCutoff
#> [1] 0.1
#>
#>
#>
#> $annotation
#> $annotation$organism
#> [1] "Homo sapiens"
#>
#> $annotation$gene_set_db
#> [1] "GO"
#>
#> $annotation$gene_set_db_version
#> [1] "3.23.1"
#>
#>
#> $timestamp
#> [1] "2026-06-10 09:55:35 UTC"
#>
#> $session_info
#> R version 4.6.0 (2026-04-24)
#> Platform: x86_64-pc-linux-gnu
#> Running under: Ubuntu 24.04.4 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.26.so; LAPACK version 3.12.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] stats4 stats graphics grDevices utils datasets methods
#> [8] base
#>
#> other attached packages:
#> [1] topGO_2.65.0 SparseM_1.84-2
#> [3] GO.db_3.23.1 graph_1.91.0
#> [5] mosdef_1.9.0 clusterProfiler_4.21.0
#> [7] org.Hs.eg.db_3.23.1 AnnotationDbi_1.75.0
#> [9] DESeq2_1.53.0 SummarizedExperiment_1.43.0
#> [11] Biobase_2.73.1 MatrixGenerics_1.25.0
#> [13] matrixStats_1.5.0 GenomicRanges_1.65.0
#> [15] Seqinfo_1.3.0 IRanges_2.47.2
#> [17] S4Vectors_0.51.3 BiocGenerics_0.59.7
#> [19] generics_0.1.4 macrophage_1.29.0
#> [21] EMMA_0.99.4 BiocStyle_2.41.0
#>
#> loaded via a namespace (and not attached):
#> [1] splines_4.6.0 BiocIO_1.23.3 bitops_1.0-9
#> [4] ggplotify_0.1.3 filelock_1.0.3 BiasedUrn_2.0.12
#> [7] tibble_3.3.1 polyclip_1.10-7 enrichit_0.1.4
#> [10] XML_3.99-0.23 lifecycle_1.0.5 httr2_1.2.2
#> [13] processx_3.9.0 lattice_0.22-9 MASS_7.3-65
#> [16] magrittr_2.0.5 sass_0.4.10 rmarkdown_2.31
#> [19] jquerylib_0.1.4 yaml_2.3.12 otel_0.2.0
#> [22] ggtangle_0.1.2 DBI_1.3.0 buildtools_1.0.0
#> [25] RColorBrewer_1.1-3 abind_1.4-8 purrr_1.2.2
#> [28] RCurl_1.98-1.19 yulab.utils_0.2.4 tweenr_2.0.3
#> [31] rappdirs_0.3.4 aisdk_1.4.12 gdtools_0.5.1
#> [34] enrichplot_1.33.0 ggrepel_0.9.8 tidytree_0.4.7
#> [37] maketools_1.3.2 codetools_0.2-20 DelayedArray_0.39.3
#> [40] DOSE_4.7.0 DT_0.34.0 ggforce_0.5.0
#> [43] tidyselect_1.2.1 aplot_0.2.9 UCSC.utils_1.9.0
#> [46] farver_2.1.2 goseq_1.65.0 BiocFileCache_3.3.0
#> [49] GenomicAlignments_1.49.0 jsonlite_2.0.0 systemfonts_1.3.2
#> [52] bbmle_1.0.25.1 tools_4.6.0 ggnewscale_0.5.2
#> [55] progress_1.2.3 treeio_1.37.0 Rcpp_1.1.1-1.1
#> [58] glue_1.8.1 SparseArray_1.13.2 BiocBaseUtils_1.15.1
#> [61] mgcv_1.9-4 xfun_0.58 geneLenDataBase_1.49.0
#> [64] qvalue_2.45.0 GenomeInfoDb_1.49.1 dplyr_1.2.1
#> [67] numDeriv_2016.8-1.1 withr_3.0.2 BiocManager_1.30.27
#> [70] fastmap_1.2.0 callr_3.8.0 digest_0.6.39
#> [73] R6_2.6.1 gridGraphics_0.5-1 biomaRt_2.69.0
#> [76] RSQLite_3.53.1 cigarillo_1.3.0 tidyr_1.3.2
#> [79] fontLiberation_0.1.0 rtracklayer_1.73.0 prettyunits_1.2.0
#> [82] httr_1.4.8 htmlwidgets_1.6.4 S4Arrays_1.13.0
#> [85] scatterpie_0.2.6 pkgconfig_2.0.3 gtable_0.3.6
#> [88] blob_1.3.0 S7_0.2.2 XVector_0.53.0
#> [91] sys_3.4.3 htmltools_0.5.9 fontBitstreamVera_0.1.1
#> [94] scales_1.4.0 png_0.1-9 ggfun_0.2.0
#> [97] knitr_1.51 reshape2_1.4.5 rjson_0.2.23
#> [100] coda_0.19-4.1 nlme_3.1-169 curl_7.1.0
#> [103] bdsmatrix_1.3-7 cachem_1.1.0 stringr_1.6.0
#> [106] parallel_4.6.0 restfulr_0.0.16 apeglm_1.35.0
#> [109] pillar_1.11.1 grid_4.6.0 vctrs_0.7.3
#> [112] tidydr_0.0.6 dbplyr_2.5.2 cluster_2.1.8.2
#> [115] evaluate_1.0.5 GenomicFeatures_1.65.0 mvtnorm_1.4-1
#> [118] cli_3.6.6 locfit_1.5-9.12 compiler_4.6.0
#> [121] Rsamtools_2.29.0 rlang_1.2.0 crayon_1.5.3
#> [124] emdbook_1.3.14 ps_1.9.3 plyr_1.8.9
#> [127] fs_2.1.0 ggiraph_0.9.6 stringi_1.8.7
#> [130] BiocParallel_1.47.0 txdbmaker_1.9.0 Biostrings_2.81.3
#> [133] lazyeval_0.2.3 GOSemSim_2.39.0 fontquiver_0.2.1
#> [136] Matrix_1.7-5 hms_1.1.4 patchwork_1.3.2
#> [139] bit64_4.8.2 ggplot2_4.0.3 KEGGREST_1.53.0
#> [142] igraph_2.3.2 memoise_2.0.1 bslib_0.11.0
#> [145] ggtree_4.3.0 bit_4.6.0 ape_5.8-1
#> [148] gson_0.1.0
#>
#> $extra
#> list()
#>
#> $emma_version
#> [1] "0.99.4"
EMMA structures the EMMA_record attribute
(i.e. the recorded provenance information) into a list of elements:
├── EMMA_record
│ ├── method # how the analysis was performed
│ │ ├── call
│ │ ├── function_name
│ │ ├── package_name
│ │ ├── package_version
│ │ ├── wrapped_function
│ │ ├── wrapped_package
│ │ └── wrapper
│ ├── input # inputs used for the analysis
│ │ └── arguments
│ ├── annotation # annotation context
│ │ ├── organism
│ │ ├── gene_set_db
│ │ └── gene_set_db_version
│ ├── timestamp # when the analysis was run
│ ├── session_info # R session information
│ ├── extra # user-defined additions
│ └── emma_version#> $call
#> enrichGO(gene = rownames(de_res), universe = gene_universe, keyType = "ENSEMBL",
#> OrgDb = org.Hs.eg.db, ont = "BP", pAdjustMethod = "BH", pvalueCutoff = 0.05,
#> qvalueCutoff = 0.1)
#>
#> $function_name
#> [1] "enrichGO"
#>
#> $package_name
#> [1] "clusterProfiler"
#>
#> $package_version
#> [1] "4.21.0"
#>
#> $wrapped_function
#> NULL
#>
#> $wrapped_package
#> NULL
#>
#> $wrapper
#> [1] FALSE
With EMMA_run(), we can decide whether we want to save
the value of arguments used in our call or not. This can be useful, for
example, to avoid unnecessarily increasing the size of the result
object. For this, we can use the argument args_form:
fea_res_no_param <- enrichGO(gene = rownames(de_res),
universe = gene_universe,
keyType = "ENSEMBL",
OrgDb = org.Hs.eg.db,
ont = "BP",
pAdjustMethod = "BH",
pvalueCutoff = 0.05,
qvalueCutoff = 0.1,
readable = TRUE) |>
EMMA_run(args_form = "unevaluated") # when we don't want the values stored
# else set to evaluated (default)
# check
EMMA_get_record(fea_res_no_param)#> $method
#> $method$call
#> enrichGO(gene = rownames(de_res), universe = gene_universe, keyType = "ENSEMBL",
#> OrgDb = org.Hs.eg.db, ont = "BP", pAdjustMethod = "BH", pvalueCutoff = 0.05,
#> qvalueCutoff = 0.1, readable = TRUE)
#>
#> $method$function_name
#> [1] "enrichGO"
#>
#> $method$package_name
#> [1] "clusterProfiler"
#>
#> $method$package_version
#> [1] "4.21.0"
#>
#> $method$wrapped_function
#> NULL
#>
#> $method$wrapped_package
#> NULL
#>
#> $method$wrapper
#> [1] FALSE
#>
#>
#> $input
#> $input$arguments
#> $input$arguments$gene
#> rownames(de_res)
#>
#> $input$arguments$universe
#> gene_universe
#>
#> $input$arguments$keyType
#> [1] "ENSEMBL"
#>
#> $input$arguments$OrgDb
#> org.Hs.eg.db
#>
#> $input$arguments$ont
#> [1] "BP"
#>
#> $input$arguments$pAdjustMethod
#> [1] "BH"
#>
#> $input$arguments$pvalueCutoff
#> [1] 0.05
#>
#> $input$arguments$qvalueCutoff
#> [1] 0.1
#>
#> $input$arguments$readable
#> [1] TRUE
#>
#>
#>
#> $annotation
#> $annotation$organism
#> [1] "Homo sapiens"
#>
#> $annotation$gene_set_db
#> [1] "GO"
#>
#> $annotation$gene_set_db_version
#> [1] "3.23.1"
#>
#>
#> $timestamp
#> [1] "2026-06-10 09:55:59 UTC"
#>
#> $session_info
#> R version 4.6.0 (2026-04-24)
#> Platform: x86_64-pc-linux-gnu
#> Running under: Ubuntu 24.04.4 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.26.so; LAPACK version 3.12.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] stats4 stats graphics grDevices utils datasets methods
#> [8] base
#>
#> other attached packages:
#> [1] topGO_2.65.0 SparseM_1.84-2
#> [3] GO.db_3.23.1 graph_1.91.0
#> [5] mosdef_1.9.0 clusterProfiler_4.21.0
#> [7] org.Hs.eg.db_3.23.1 AnnotationDbi_1.75.0
#> [9] DESeq2_1.53.0 SummarizedExperiment_1.43.0
#> [11] Biobase_2.73.1 MatrixGenerics_1.25.0
#> [13] matrixStats_1.5.0 GenomicRanges_1.65.0
#> [15] Seqinfo_1.3.0 IRanges_2.47.2
#> [17] S4Vectors_0.51.3 BiocGenerics_0.59.7
#> [19] generics_0.1.4 macrophage_1.29.0
#> [21] EMMA_0.99.4 BiocStyle_2.41.0
#>
#> loaded via a namespace (and not attached):
#> [1] splines_4.6.0 BiocIO_1.23.3 bitops_1.0-9
#> [4] ggplotify_0.1.3 filelock_1.0.3 BiasedUrn_2.0.12
#> [7] tibble_3.3.1 polyclip_1.10-7 enrichit_0.1.4
#> [10] XML_3.99-0.23 lifecycle_1.0.5 httr2_1.2.2
#> [13] processx_3.9.0 lattice_0.22-9 MASS_7.3-65
#> [16] magrittr_2.0.5 sass_0.4.10 rmarkdown_2.31
#> [19] jquerylib_0.1.4 yaml_2.3.12 otel_0.2.0
#> [22] ggtangle_0.1.2 DBI_1.3.0 buildtools_1.0.0
#> [25] RColorBrewer_1.1-3 abind_1.4-8 purrr_1.2.2
#> [28] RCurl_1.98-1.19 yulab.utils_0.2.4 tweenr_2.0.3
#> [31] rappdirs_0.3.4 aisdk_1.4.12 gdtools_0.5.1
#> [34] enrichplot_1.33.0 ggrepel_0.9.8 tidytree_0.4.7
#> [37] maketools_1.3.2 codetools_0.2-20 DelayedArray_0.39.3
#> [40] DOSE_4.7.0 DT_0.34.0 ggforce_0.5.0
#> [43] tidyselect_1.2.1 aplot_0.2.9 UCSC.utils_1.9.0
#> [46] farver_2.1.2 goseq_1.65.0 BiocFileCache_3.3.0
#> [49] GenomicAlignments_1.49.0 jsonlite_2.0.0 systemfonts_1.3.2
#> [52] bbmle_1.0.25.1 tools_4.6.0 ggnewscale_0.5.2
#> [55] progress_1.2.3 treeio_1.37.0 Rcpp_1.1.1-1.1
#> [58] glue_1.8.1 SparseArray_1.13.2 BiocBaseUtils_1.15.1
#> [61] mgcv_1.9-4 xfun_0.58 geneLenDataBase_1.49.0
#> [64] qvalue_2.45.0 GenomeInfoDb_1.49.1 dplyr_1.2.1
#> [67] numDeriv_2016.8-1.1 withr_3.0.2 BiocManager_1.30.27
#> [70] fastmap_1.2.0 callr_3.8.0 digest_0.6.39
#> [73] R6_2.6.1 gridGraphics_0.5-1 biomaRt_2.69.0
#> [76] RSQLite_3.53.1 cigarillo_1.3.0 tidyr_1.3.2
#> [79] fontLiberation_0.1.0 rtracklayer_1.73.0 prettyunits_1.2.0
#> [82] httr_1.4.8 htmlwidgets_1.6.4 S4Arrays_1.13.0
#> [85] scatterpie_0.2.6 pkgconfig_2.0.3 gtable_0.3.6
#> [88] blob_1.3.0 S7_0.2.2 XVector_0.53.0
#> [91] sys_3.4.3 htmltools_0.5.9 fontBitstreamVera_0.1.1
#> [94] scales_1.4.0 png_0.1-9 ggfun_0.2.0
#> [97] knitr_1.51 reshape2_1.4.5 rjson_0.2.23
#> [100] coda_0.19-4.1 nlme_3.1-169 curl_7.1.0
#> [103] bdsmatrix_1.3-7 cachem_1.1.0 stringr_1.6.0
#> [106] parallel_4.6.0 restfulr_0.0.16 apeglm_1.35.0
#> [109] pillar_1.11.1 grid_4.6.0 vctrs_0.7.3
#> [112] tidydr_0.0.6 dbplyr_2.5.2 cluster_2.1.8.2
#> [115] evaluate_1.0.5 GenomicFeatures_1.65.0 mvtnorm_1.4-1
#> [118] cli_3.6.6 locfit_1.5-9.12 compiler_4.6.0
#> [121] Rsamtools_2.29.0 rlang_1.2.0 crayon_1.5.3
#> [124] emdbook_1.3.14 ps_1.9.3 plyr_1.8.9
#> [127] fs_2.1.0 ggiraph_0.9.6 stringi_1.8.7
#> [130] BiocParallel_1.47.0 txdbmaker_1.9.0 Biostrings_2.81.3
#> [133] lazyeval_0.2.3 GOSemSim_2.39.0 fontquiver_0.2.1
#> [136] Matrix_1.7-5 hms_1.1.4 patchwork_1.3.2
#> [139] bit64_4.8.2 ggplot2_4.0.3 KEGGREST_1.53.0
#> [142] igraph_2.3.2 memoise_2.0.1 bslib_0.11.0
#> [145] ggtree_4.3.0 bit_4.6.0 ape_5.8-1
#> [148] gson_0.1.0
#>
#> $extra
#> list()
#>
#> $emma_version
#> [1] "0.99.4"
We can also choose whether to save the R session information with the
record using the argument store_session_info, which
defaults to TRUE.
EMMA_explain(): Summarizing recorded information into
textEMMA_explain() generates a human-readable description of
the FEA, similar to a Materials and Methods section of a paper, by
summarizing the executed call, the parameters, software context, and
reference databases used.
#> ℹ You can always complete your text with additional information from `EMMA_get_record()`!
#> ℹ References:
#> Please cite S. Xu (2024) for using clusterProfiler. In addition, please
#> cite G. Yu (2010) when using GOSemSim, G. Yu (2015) when using DOSE and
#> G. Yu (2015) when using ChIPseeker.
#> G Yu. Thirteen years of clusterProfiler. The Innovation. 2024,
#> 5(6):100722
#> S Xu, E Hu, Y Cai, Z Xie, X Luo, L Zhan, W Tang, Q Wang, B Liu, R
#> Wang, W Xie, T Wu, L Xie, G Yu. Using clusterProfiler to characterize
#> multiomics data. Nature Protocols. 2024, 19(11):3292-3320
#> T Wu, E Hu, S Xu, M Chen, P Guo, Z Dai, T Feng, L Zhou, W Tang, L
#> Zhan, X Fu, S Liu, X Bo, and G Yu. clusterProfiler 4.0: A universal
#> enrichment tool for interpreting omics data. The Innovation. 2021,
#> 2(3):100141
#> Guangchuang Yu, Li-Gen Wang, Yanyan Han and Qing-Yu He.
#> clusterProfiler: an R package for comparing biological themes among
#> gene clusters. OMICS: A Journal of Integrative Biology 2012,
#> 16(5):284-287
#> To see these entries in BibTeX format, use 'format(<citation>,
#> bibtex=TRUE)', or 'toBibtex(.)'.
[1] “Functional Enrichment Analysis was performed using the enrichGO() function from the clusterProfiler package (version 4.21.0) with the GO database (version 3.23.1). A custom background gene set was provided (n = 2000). Multiple testing correction was performed using the BH method.”
EMMA with custom/wrapper functionsYou can also use a custom function that you developed, or a wrapper
function (from packages such as mosdef).
In this case, EMMA_run() will attempt to capture as much
metadata as possible:
mosdef_fea_res <- mosdef::run_goseq(de_genes = rownames(de_res),
bg_genes = gene_universe,
mapping = "org.Hs.eg.db",
id = "ensGene",
genome = "hg19") |>
EMMA_run(store_session_info = FALSE,
args_form = "unevaluated")
# quick inspection
EMMA_get_record(mosdef_fea_res)#> $method
#> $method$call
#> mosdef::run_goseq(de_genes = rownames(de_res), bg_genes = gene_universe,
#> mapping = "org.Hs.eg.db", id = "ensGene", genome = "hg19")
#>
#> $method$function_name
#> [1] "run_goseq"
#>
#> $method$package_name
#> [1] "mosdef"
#>
#> $method$package_version
#> [1] "1.9.0"
#>
#> $method$wrapped_function
#> [1] "goseq"
#>
#> $method$wrapped_package
#> [1] "goseq"
#>
#> $method$wrapper
#> [1] TRUE
#>
#>
#> $input
#> $input$arguments
#> $input$arguments$de_genes
#> rownames(de_res)
#>
#> $input$arguments$bg_genes
#> gene_universe
#>
#> $input$arguments$mapping
#> [1] "org.Hs.eg.db"
#>
#> $input$arguments$id
#> [1] "ensGene"
#>
#> $input$arguments$genome
#> [1] "hg19"
#>
#>
#>
#> $annotation
#> $annotation$organism
#> [1] "Homo sapiens"
#>
#> $annotation$gene_set_db
#> [1] "GO"
#>
#> $annotation$gene_set_db_version
#> [1] "3.23.1"
#>
#>
#> $timestamp
#> [1] "2026-06-10 09:56:03 UTC"
#>
#> $session_info
#> NULL
#>
#> $extra
#> list()
#>
#> $emma_version
#> [1] "0.99.4"
# a custom function (not from a package)
my_custom_function <- function(gene, universe = NULL,
ontology = "BP", id_type = "ENTREZID",
org_db_name = "org.Hs.eg.db",
organism = "hsapiens") {
res1 <- mosdef::run_topGO(de_genes = gene,
bg_genes = gene_universe,
ontology = ontology,
gene_id = id_type,
mapping = org_db_name,
add_gene_to_terms = TRUE)
res2 <- gprofiler2::gost(query = gene,
organism = organism,
custom_bg = gene_universe)
return(list(topGO_res = res1,
gost_res = res2
))
}
# run analysis with EMMA
frankenstein_fea <- my_custom_function(
gene = rownames(de_res),
universe = gene_universe,
ontology = "BP",
id_type = "ENSEMBL",
org_db_name = "org.Hs.eg.db",
organism = "hsapiens"
) |> EMMA_run(store_session_info = FALSE,
args_form = "unevaluated")
# quick inspection
EMMA_get_record(frankenstein_fea)#> $method
#> $method$call
#> my_custom_function(gene = rownames(de_res), universe = gene_universe,
#> ontology = "BP", id_type = "ENSEMBL", org_db_name = "org.Hs.eg.db",
#> organism = "hsapiens")
#>
#> $method$function_name
#> [1] "my_custom_function"
#>
#> $method$package_name
#> [1] NA
#>
#> $method$package_version
#> [1] NA
#>
#> $method$wrapped_function
#> [1] "run_topGO" "gost"
#>
#> $method$wrapped_package
#> [1] "mosdef" "gprofiler2"
#>
#> $method$wrapper
#> [1] TRUE
#>
#>
#> $input
#> $input$arguments
#> $input$arguments$gene
#> rownames(de_res)
#>
#> $input$arguments$universe
#> gene_universe
#>
#> $input$arguments$ontology
#> [1] "BP"
#>
#> $input$arguments$id_type
#> [1] "ENSEMBL"
#>
#> $input$arguments$org_db_name
#> [1] "org.Hs.eg.db"
#>
#> $input$arguments$organism
#> [1] "hsapiens"
#>
#>
#>
#> $annotation
#> $annotation$organism
#> [1] "hsapiens"
#>
#> $annotation$gene_set_db
#> [1] "CORUM" "GO:BP" "GO:CC" "GO:MF" "HP" "HPA" "KEGG" "MIRNA" "REAC"
#> [10] "TF" "WP"
#>
#> $annotation$gene_set_db_version
#> [1] "28.11.2022 Corum 4.1"
#> [2] "annotations: BioMart\nclasses: releases/2026-01-23"
#> [3] "annotations: 03.2026\nclasses: None"
#> [4] "annotations: HPA website: 25-11-06\nclasses: script: 26-01-20"
#> [5] "KEGG FTP Release 2026-03-15"
#> [6] "Release 10.0"
#> [7] "annotations: BioMart\nclasses: 2026-3-20"
#> [8] "annotations: TRANSFAC Release 2025.2\nclasses: v2"
#> [9] "20260310"
#>
#>
#> $timestamp
#> [1] "2026-06-10 09:56:16 UTC"
#>
#> $session_info
#> NULL
#>
#> $extra
#> list()
#>
#> $emma_version
#> [1] "0.99.4"
EMMA_add_custom_metadata(): Adding extra
informationThe user can always attach extra metadata that EMMA
might not be able to capture automatically. To keep everything
organized, we can use EMMA_add_custom_metadata()
function
frankenstein_fea2 <- EMMA_add_custom_metadata(res = frankenstein_fea,
extra = list(
wrapped_function_topGO = "runTest",
notes = "any other meaningful info"))
EMMA_get_record(frankenstein_fea2)$extra#> $wrapped_function_topGO
#> [1] "runTest"
#>
#> $notes
#> [1] "any other meaningful info"
Since the EMMA_record is attached as attribute to the
original results objects, it can be preserved when integrating results
into structured containers such as DeeDeeExperiment
(Abassi et al. 2026). This enables both
FEA results and their associated provenance information to be stored and
managed together, facilitating reproducibility, organization, and
sharing of complex omics analyses.
dde <- DeeDeeExperiment::DeeDeeExperiment(sce = dds_macrophage,
de_results = IFNg_vs_naive,
enrich_results = list(
IFNg_vs_naive = fea_res_no_param)
)
fea <- DeeDeeExperiment::getFEA(dde, format = "original")
EMMA_get_record(fea)#> $method
#> $method$call
#> enrichGO(gene = rownames(de_res), universe = gene_universe, keyType = "ENSEMBL",
#> OrgDb = org.Hs.eg.db, ont = "BP", pAdjustMethod = "BH", pvalueCutoff = 0.05,
#> qvalueCutoff = 0.1, readable = TRUE)
#>
#> $method$function_name
#> [1] "enrichGO"
#>
#> $method$package_name
#> [1] "clusterProfiler"
#>
#> $method$package_version
#> [1] "4.21.0"
#>
#> $method$wrapped_function
#> NULL
#>
#> $method$wrapped_package
#> NULL
#>
#> $method$wrapper
#> [1] FALSE
#>
#>
#> $input
#> $input$arguments
#> $input$arguments$gene
#> rownames(de_res)
#>
#> $input$arguments$universe
#> gene_universe
#>
#> $input$arguments$keyType
#> [1] "ENSEMBL"
#>
#> $input$arguments$OrgDb
#> org.Hs.eg.db
#>
#> $input$arguments$ont
#> [1] "BP"
#>
#> $input$arguments$pAdjustMethod
#> [1] "BH"
#>
#> $input$arguments$pvalueCutoff
#> [1] 0.05
#>
#> $input$arguments$qvalueCutoff
#> [1] 0.1
#>
#> $input$arguments$readable
#> [1] TRUE
#>
#>
#>
#> $annotation
#> $annotation$organism
#> [1] "Homo sapiens"
#>
#> $annotation$gene_set_db
#> [1] "GO"
#>
#> $annotation$gene_set_db_version
#> [1] "3.23.1"
#>
#>
#> $timestamp
#> [1] "2026-06-10 09:55:59 UTC"
#>
#> $session_info
#> R version 4.6.0 (2026-04-24)
#> Platform: x86_64-pc-linux-gnu
#> Running under: Ubuntu 24.04.4 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.26.so; LAPACK version 3.12.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] stats4 stats graphics grDevices utils datasets methods
#> [8] base
#>
#> other attached packages:
#> [1] topGO_2.65.0 SparseM_1.84-2
#> [3] GO.db_3.23.1 graph_1.91.0
#> [5] mosdef_1.9.0 clusterProfiler_4.21.0
#> [7] org.Hs.eg.db_3.23.1 AnnotationDbi_1.75.0
#> [9] DESeq2_1.53.0 SummarizedExperiment_1.43.0
#> [11] Biobase_2.73.1 MatrixGenerics_1.25.0
#> [13] matrixStats_1.5.0 GenomicRanges_1.65.0
#> [15] Seqinfo_1.3.0 IRanges_2.47.2
#> [17] S4Vectors_0.51.3 BiocGenerics_0.59.7
#> [19] generics_0.1.4 macrophage_1.29.0
#> [21] EMMA_0.99.4 BiocStyle_2.41.0
#>
#> loaded via a namespace (and not attached):
#> [1] splines_4.6.0 BiocIO_1.23.3 bitops_1.0-9
#> [4] ggplotify_0.1.3 filelock_1.0.3 BiasedUrn_2.0.12
#> [7] tibble_3.3.1 polyclip_1.10-7 enrichit_0.1.4
#> [10] XML_3.99-0.23 lifecycle_1.0.5 httr2_1.2.2
#> [13] processx_3.9.0 lattice_0.22-9 MASS_7.3-65
#> [16] magrittr_2.0.5 sass_0.4.10 rmarkdown_2.31
#> [19] jquerylib_0.1.4 yaml_2.3.12 otel_0.2.0
#> [22] ggtangle_0.1.2 DBI_1.3.0 buildtools_1.0.0
#> [25] RColorBrewer_1.1-3 abind_1.4-8 purrr_1.2.2
#> [28] RCurl_1.98-1.19 yulab.utils_0.2.4 tweenr_2.0.3
#> [31] rappdirs_0.3.4 aisdk_1.4.12 gdtools_0.5.1
#> [34] enrichplot_1.33.0 ggrepel_0.9.8 tidytree_0.4.7
#> [37] maketools_1.3.2 codetools_0.2-20 DelayedArray_0.39.3
#> [40] DOSE_4.7.0 DT_0.34.0 ggforce_0.5.0
#> [43] tidyselect_1.2.1 aplot_0.2.9 UCSC.utils_1.9.0
#> [46] farver_2.1.2 goseq_1.65.0 BiocFileCache_3.3.0
#> [49] GenomicAlignments_1.49.0 jsonlite_2.0.0 systemfonts_1.3.2
#> [52] bbmle_1.0.25.1 tools_4.6.0 ggnewscale_0.5.2
#> [55] progress_1.2.3 treeio_1.37.0 Rcpp_1.1.1-1.1
#> [58] glue_1.8.1 SparseArray_1.13.2 BiocBaseUtils_1.15.1
#> [61] mgcv_1.9-4 xfun_0.58 geneLenDataBase_1.49.0
#> [64] qvalue_2.45.0 GenomeInfoDb_1.49.1 dplyr_1.2.1
#> [67] numDeriv_2016.8-1.1 withr_3.0.2 BiocManager_1.30.27
#> [70] fastmap_1.2.0 callr_3.8.0 digest_0.6.39
#> [73] R6_2.6.1 gridGraphics_0.5-1 biomaRt_2.69.0
#> [76] RSQLite_3.53.1 cigarillo_1.3.0 tidyr_1.3.2
#> [79] fontLiberation_0.1.0 rtracklayer_1.73.0 prettyunits_1.2.0
#> [82] httr_1.4.8 htmlwidgets_1.6.4 S4Arrays_1.13.0
#> [85] scatterpie_0.2.6 pkgconfig_2.0.3 gtable_0.3.6
#> [88] blob_1.3.0 S7_0.2.2 XVector_0.53.0
#> [91] sys_3.4.3 htmltools_0.5.9 fontBitstreamVera_0.1.1
#> [94] scales_1.4.0 png_0.1-9 ggfun_0.2.0
#> [97] knitr_1.51 reshape2_1.4.5 rjson_0.2.23
#> [100] coda_0.19-4.1 nlme_3.1-169 curl_7.1.0
#> [103] bdsmatrix_1.3-7 cachem_1.1.0 stringr_1.6.0
#> [106] parallel_4.6.0 restfulr_0.0.16 apeglm_1.35.0
#> [109] pillar_1.11.1 grid_4.6.0 vctrs_0.7.3
#> [112] tidydr_0.0.6 dbplyr_2.5.2 cluster_2.1.8.2
#> [115] evaluate_1.0.5 GenomicFeatures_1.65.0 mvtnorm_1.4-1
#> [118] cli_3.6.6 locfit_1.5-9.12 compiler_4.6.0
#> [121] Rsamtools_2.29.0 rlang_1.2.0 crayon_1.5.3
#> [124] emdbook_1.3.14 ps_1.9.3 plyr_1.8.9
#> [127] fs_2.1.0 ggiraph_0.9.6 stringi_1.8.7
#> [130] BiocParallel_1.47.0 txdbmaker_1.9.0 Biostrings_2.81.3
#> [133] lazyeval_0.2.3 GOSemSim_2.39.0 fontquiver_0.2.1
#> [136] Matrix_1.7-5 hms_1.1.4 patchwork_1.3.2
#> [139] bit64_4.8.2 ggplot2_4.0.3 KEGGREST_1.53.0
#> [142] igraph_2.3.2 memoise_2.0.1 bslib_0.11.0
#> [145] ggtree_4.3.0 bit_4.6.0 ape_5.8-1
#> [148] gson_0.1.0
#>
#> $extra
#> list()
#>
#> $emma_version
#> [1] "0.99.4"
EMMA_freeze(): Recording the Analysis EnvironmentEMMA_freeze() records the R environment at the time of
analysis by generating a lockfile using renv. By default,
the snapshot is created with force = TRUE, allowing the
environment to be recorded even when inconsistencies (e.g. version
mismatches) are present.
This behavior reflects the goal of preserving the analysis environment as it was used in practice, rather than attempting to enforce a fully consistent state.
if (requireNamespace("renv", quietly = TRUE)) {
project_path <- tempdir()
dir.create(project_path)
EMMA_freeze(project = project_path,
file = "analysis.lock",
pkgs = loadedNamespaces(),
prompt = FALSE,
force = TRUE)
}#> [?25l[?25hThe following Bioconductor packages appear to be from a separate Bioconductor release:
#> - IRanges [installed 2.47.2 != latest 2.46.0]
#> - Biostrings [installed 2.81.3 != latest 2.80.1]
#> - BiocBaseUtils [installed 1.15.1 != latest 1.14.2]
#> - BiocGenerics [installed 0.59.7 != latest 0.58.1]
#> - qvalue [installed 2.45.0 != latest 2.44.0]
#> - clusterProfiler [installed 4.21.0 != latest 4.20.0]
#> - Seqinfo [installed 1.3.0 != latest 1.2.0]
#> - EMMA [installed 0.99.4 != latest <NA>]
#> - KEGGREST [installed 1.53.0 != latest 1.52.0]
#> - UCSC.utils [installed 1.9.0 != latest 1.8.0]
#> - DOSE [installed 4.7.0 != latest 4.6.0]
#> - S4Vectors [installed 0.51.3 != latest 0.50.1]
#> - SparseArray [installed 1.13.2 != latest 1.12.2]
#> - macrophage [installed 1.29.0 != latest 1.28.0]
#> - S4Arrays [installed 1.13.0 != latest 1.12.0]
#> - BiocFileCache [installed 3.3.0 != latest 3.2.0]
#> - GenomicRanges [installed 1.65.0 != latest 1.64.0]
#> - ggtree [installed 4.3.0 != latest 4.2.0]
#> - DeeDeeExperiment [installed 1.3.0 != latest 1.2.0]
#> - Rhtslib [installed 3.9.0 != latest 3.8.0]
#> - SummarizedExperiment [installed 1.43.0 != latest 1.42.0]
#> - GenomicAlignments [installed 1.49.0 != latest 1.48.0]
#> - BiocIO [installed 1.23.3 != latest 1.22.0]
#> - mosdef [installed 1.9.0 != latest 1.8.0]
#> - apeglm [installed 1.35.0 != latest 1.34.0]
#> - cigarillo [installed 1.3.0 != latest 1.2.0]
#> - Rsamtools [installed 2.29.0 != latest 2.28.0]
#> - graph [installed 1.91.0 != latest 1.90.0]
#> - MatrixGenerics [installed 1.25.0 != latest 1.24.0]
#> - rtracklayer [installed 1.73.0 != latest 1.72.0]
#> - txdbmaker [installed 1.9.0 != latest 1.8.0]
#> - Biobase [installed 2.73.1 != latest 2.72.0]
#> - BiocParallel [installed 1.47.0 != latest 1.46.0]
#> - limma [installed 3.69.2 != latest 3.68.4]
#> - edgeR [installed 4.11.1 != latest 4.10.1]
#> - geneLenDataBase [installed 1.49.0 != latest 1.48.0]
#> - GOSemSim [installed 2.39.0 != latest 2.38.0]
#> - enrichplot [installed 1.33.0 != latest 1.32.0]
#> - XVector [installed 0.53.0 != latest 0.52.0]
#> - treeio [installed 1.37.0 != latest 1.36.1]
#> - DESeq2 [installed 1.53.0 != latest 1.52.0]
#> - SingleCellExperiment [installed 1.35.1 != latest 1.34.0]
#> - GenomicFeatures [installed 1.65.0 != latest 1.64.0]
#> - GenomeInfoDb [installed 1.49.1 != latest 1.48.0]
#> - DelayedArray [installed 0.39.3 != latest 0.38.2]
#> - AnnotationDbi [installed 1.75.0 != latest 1.74.0]
#> - goseq [installed 1.65.0 != latest 1.64.0]
#> - BiocStyle [installed 2.41.0 != latest 2.40.0]
#> - topGO [installed 2.65.0 != latest 2.64.0]
#> - biomaRt [installed 2.69.0 != latest 2.68.0]
#> renv may be unable to restore these packages.
#> Bioconductor version: 3.23
#>
#> The following required packages are not installed:
#> - BiocVersion [required by AnnotationDbi, apeglm, Biobase, and 49 others]
#> Consider reinstalling these packages before snapshotting the lockfile.
#>
#> The following package(s) will be updated in the lockfile:
#>
#> # Bioconductor ---------------------------------------------------------------
#> - GO.db [* -> 3.23.1]
#> - org.Hs.eg.db [* -> 3.23.1]
#>
#> # Bioconductor 3.24 ----------------------------------------------------------
#> - geneLenDataBase [* -> 1.49.0]
#> - macrophage [* -> 1.29.0]
#>
#> # Local ----------------------------------------------------------------------
#> - buildtools [* -> 1.0.0]
#>
#> # RSPM -----------------------------------------------------------------------
#> - abind [* -> 1.4-8]
#> - aisdk [* -> 1.4.12]
#> - ape [* -> 5.8-1]
#> - aplot [* -> 0.2.9]
#> - askpass [* -> 1.2.1]
#> - base64enc [* -> 0.1-6]
#> - bbmle [* -> 1.0.25.1]
#> - bdsmatrix [* -> 1.3-7]
#> - BH [* -> 1.90.0-1]
#> - BiasedUrn [* -> 2.0.12]
#> - BiocManager [* -> 1.30.27]
#> - bit [* -> 4.6.0]
#> - bit64 [* -> 4.8.2]
#> - bitops [* -> 1.0-9]
#> - blob [* -> 1.3.0]
#> - bookdown [* -> 0.46]
#> - brio [* -> 1.1.5]
#> - bslib [* -> 0.11.0]
#> - cachem [* -> 1.1.0]
#> - callr [* -> 3.8.0]
#> - cffr [* -> 1.4.0]
#> - cli [* -> 3.6.6]
#> - cluster [* -> 2.1.8.2]
#> - coda [* -> 0.19-4.1]
#> - codetools [* -> 0.2-20]
#> - commonmark [* -> 2.0.0]
#> - cpp11 [* -> 0.5.5]
#> - crayon [* -> 1.5.3]
#> - credentials [* -> 2.0.3]
#> - crosstalk [* -> 1.2.2]
#> - curl [* -> 7.1.0]
#> - data.table [* -> 1.18.4]
#> - DBI [* -> 1.3.0]
#> - dbplyr [* -> 2.5.2]
#> - desc [* -> 1.4.3]
#> - digest [* -> 0.6.39]
#> - downlit [* -> 0.4.5]
#> - dplyr [* -> 1.2.1]
#> - DT [* -> 0.34.0]
#> - emdbook [* -> 1.3.14]
#> - enrichit [* -> 0.1.4]
#> - evaluate [* -> 1.0.5]
#> - fansi [* -> 1.0.7]
#> - farver [* -> 2.1.2]
#> - fastmap [* -> 1.2.0]
#> - filelock [* -> 1.0.3]
#> - fontawesome [* -> 0.5.3]
#> - fontBitstreamVera [* -> 0.1.1]
#> - fontLiberation [* -> 0.1.0]
#> - fontquiver [* -> 0.2.1]
#> - formatR [* -> 1.14]
#> - fs [* -> 2.1.0]
#> - futile.logger [* -> 1.4.9]
#> - futile.options [* -> 1.0.1]
#> - gdtools [* -> 0.5.1]
#> - generics [* -> 0.1.4]
#> - gert [* -> 2.3.1]
#> - ggforce [* -> 0.5.0]
#> - ggfun [* -> 0.2.0]
#> - ggiraph [* -> 0.9.6]
#> - ggnewscale [* -> 0.5.2]
#> - ggplot2 [* -> 4.0.3]
#> - ggplotify [* -> 0.1.3]
#> - ggrepel [* -> 0.9.8]
#> - ggtangle [* -> 0.1.2]
#> - gh [* -> 1.6.0]
#> - gitcreds [* -> 0.1.2]
#> - glue [* -> 1.8.1]
#> - gprofiler2 [* -> 0.2.4]
#> - gridExtra [* -> 2.3]
#> - gridGraphics [* -> 0.5-1]
#> - gson [* -> 0.1.0]
#> - gtable [* -> 0.3.6]
#> - highr [* -> 0.12]
#> - hms [* -> 1.1.4]
#> - htmltools [* -> 0.5.9]
#> - htmlwidgets [* -> 1.6.4]
#> - httr [* -> 1.4.8]
#> - httr2 [* -> 1.2.2]
#> - igraph [* -> 2.3.2]
#> - ini [* -> 0.3.1]
#> - isoband [* -> 0.3.0]
#> - jquerylib [* -> 0.1.4]
#> - jsonlite [* -> 2.0.0]
#> - jsonvalidate [* -> 1.5.0]
#> - katex [* -> 1.5.0]
#> - knitr [* -> 1.51]
#> - labeling [* -> 0.4.3]
#> - lambda.r [* -> 1.2.4]
#> - later [* -> 1.4.8]
#> - lattice [* -> 0.22-9]
#> - lazyeval [* -> 0.2.3]
#> - lifecycle [* -> 1.0.5]
#> - litedown [* -> 0.9]
#> - locfit [* -> 1.5-9.12]
#> - lubridate [* -> 1.9.5]
#> - magrittr [* -> 2.0.5]
#> - maketools [* -> 1.3.2]
#> - markdown [* -> 2.0]
#> - MASS [* -> 7.3-65]
#> - Matrix [* -> 1.7-5]
#> - matrixStats [* -> 1.5.0]
#> - memoise [* -> 2.0.1]
#> - mgcv [* -> 1.9-4]
#> - mime [* -> 0.13]
#> - mvtnorm [* -> 1.4-1]
#> - nlme [* -> 3.1-169]
#> - numDeriv [* -> 2016.8-1.1]
#> - openssl [* -> 2.4.2]
#> - otel [* -> 0.2.0]
#> - pak [* -> 0.10.0]
#> - patchwork [* -> 1.3.2]
#> - pdftools [* -> 3.9.0]
#> - pillar [* -> 1.11.1]
#> - pkgconfig [* -> 2.0.3]
#> - plotly [* -> 4.12.0]
#> - plyr [* -> 1.8.9]
#> - png [* -> 0.1-9]
#> - polyclip [* -> 1.10-7]
#> - postdoc [* -> 1.4.2]
#> - prettyunits [* -> 1.2.0]
#> - prismjs [* -> 2.1.0]
#> - processx [* -> 3.9.0]
#> - progress [* -> 1.2.3]
#> - promises [* -> 1.5.0]
#> - ps [* -> 1.9.3]
#> - purrr [* -> 1.2.2]
#> - qpdf [* -> 1.4.1]
#> - R6 [* -> 2.6.1]
#> - rappdirs [* -> 0.3.4]
#> - RColorBrewer [* -> 1.1-3]
#> - Rcpp [* -> 1.1.1-1.1]
#> - RcppArmadillo [* -> 15.2.7-1]
#> - RcppEigen [* -> 0.3.4.0.2]
#> - RcppNumerical [* -> 0.7-0]
#> - RCurl [* -> 1.98-1.19]
#> - remotes [* -> 2.5.0]
#> - renv [* -> 1.2.3]
#> - reshape2 [* -> 1.4.5]
#> - restfulr [* -> 0.0.16]
#> - rjson [* -> 0.2.23]
#> - rlang [* -> 1.2.0]
#> - rmarkdown [* -> 2.31]
#> - RSQLite [* -> 3.53.1]
#> - rstudioapi [* -> 0.18.0]
#> - S7 [* -> 0.2.2]
#> - sass [* -> 0.4.10]
#> - scales [* -> 1.4.0]
#> - scatterpie [* -> 0.2.6]
#> - snow [* -> 0.4-4]
#> - SparseM [* -> 1.84-2]
#> - statmod [* -> 1.5.2]
#> - stringi [* -> 1.8.7]
#> - stringr [* -> 1.6.0]
#> - sys [* -> 3.4.3]
#> - systemfonts [* -> 1.3.2]
#> - tibble [* -> 3.3.1]
#> - tidydr [* -> 0.0.6]
#> - tidyr [* -> 1.3.2]
#> - tidyselect [* -> 1.2.1]
#> - tidytree [* -> 0.4.7]
#> - timechange [* -> 0.4.0]
#> - tinytex [* -> 0.59]
#> - tweenr [* -> 2.0.3]
#> - unix [* -> 1.6.0]
#> - utf8 [* -> 1.2.6]
#> - V8 [* -> 8.2.0]
#> - vctrs [* -> 0.7.3]
#> - viridisLite [* -> 0.4.3]
#> - withr [* -> 3.0.2]
#> - writexl [* -> 1.5.4]
#> - xfun [* -> 0.58]
#> - XML [* -> 3.99-0.23]
#> - xml2 [* -> 1.5.2]
#> - yaml [* -> 2.3.12]
#> - yulab.utils [* -> 0.2.4]
#> - zip [* -> 2.3.3]
#>
#> # https://bioc.r-universe.dev ------------------------------------------------
#> - AnnotationDbi [* -> 1.75.0]
#> - apeglm [* -> 1.35.0]
#> - Biobase [* -> 2.73.1]
#> - BiocBaseUtils [* -> 1.15.1]
#> - BiocFileCache [* -> 3.3.0]
#> - BiocGenerics [* -> 0.59.7]
#> - BiocIO [* -> 1.23.3]
#> - BiocParallel [* -> 1.47.0]
#> - BiocStyle [* -> 2.41.0]
#> - biomaRt [* -> 2.69.0]
#> - Biostrings [* -> 2.81.3]
#> - cigarillo [* -> 1.3.0]
#> - clusterProfiler [* -> 4.21.0]
#> - DeeDeeExperiment [* -> 1.3.0]
#> - DelayedArray [* -> 0.39.3]
#> - DESeq2 [* -> 1.53.0]
#> - DOSE [* -> 4.7.0]
#> - edgeR [* -> 4.11.1]
#> - enrichplot [* -> 1.33.0]
#> - GenomeInfoDb [* -> 1.49.1]
#> - GenomicAlignments [* -> 1.49.0]
#> - GenomicFeatures [* -> 1.65.0]
#> - GenomicRanges [* -> 1.65.0]
#> - ggtree [* -> 4.3.0]
#> - GOSemSim [* -> 2.39.0]
#> - goseq [* -> 1.65.0]
#> - graph [* -> 1.91.0]
#> - IRanges [* -> 2.47.2]
#> - KEGGREST [* -> 1.53.0]
#> - limma [* -> 3.69.2]
#> - MatrixGenerics [* -> 1.25.0]
#> - mosdef [* -> 1.9.0]
#> - qvalue [* -> 2.45.0]
#> - Rhtslib [* -> 3.9.0]
#> - Rsamtools [* -> 2.29.0]
#> - rtracklayer [* -> 1.73.0]
#> - S4Arrays [* -> 1.13.0]
#> - S4Vectors [* -> 0.51.3]
#> - Seqinfo [* -> 1.3.0]
#> - SingleCellExperiment [* -> 1.35.1]
#> - SparseArray [* -> 1.13.2]
#> - SummarizedExperiment [* -> 1.43.0]
#> - topGO [* -> 2.65.0]
#> - treeio [* -> 1.37.0]
#> - txdbmaker [* -> 1.9.0]
#> - UCSC.utils [* -> 1.9.0]
#> - XVector [* -> 0.53.0]
#>
#> # https://biocstaging.r-universe.dev -----------------------------------------
#> - EMMA [* -> 0.99.4]
#>
#> The version of R recorded in the lockfile will be updated:
#> - R [* -> 4.6.0]
#>
#> - Lockfile written to "/tmp/RtmpiJ4sPQ/analysis.lock".
EMMA with iterative workflowsIn real-world analyses, multiple FEA results from different contrasts
are often analyzed in parallel This can be conveniently handled using
iterative approaches such as lapply().
fea_res_list <- lapply(de_list, function(dea){
#### perform fea with EMMA_run ####
enrichGO(gene = rownames(dea),
universe = gene_universe,
keyType = "ENSEMBL",
OrgDb = org.Hs.eg.db,
ont = "BP",
pAdjustMethod = "BH",
pvalueCutoff = 0.05,
qvalueCutoff = 0.1,
readable = TRUE) |>
EMMA_run()
})
#### print the metadata summary for each contrast ####
invisible(lapply(names(fea_res_list), function(nm) {
cat("\n###", nm)
EMMA_show(fea_res_list[[nm]])
}))#>
#> ### IFNg_vs_naive
#> Number of Pathways: 67
#> Call: enrichGO(gene = rownames(dea), universe = gene_universe, keyType = "ENSEMBL", OrgDb = org.Hs.eg.db, ont = "BP", pAdjustMethod = "BH", pvalueCutoff = 0.05, qvalueCutoff = 0.1, readable = TRUE)
#> Wrapper: FALSE
#> Package: clusterProfiler v. 4.21.0
#> Organism: Homo sapiens
#> Gene set library: GO
#> Gene set library version: 3.23.1
#>
#>
#> ### SL1344_vs_naive
#> Number of Pathways: 87
#> Call: enrichGO(gene = rownames(dea), universe = gene_universe, keyType = "ENSEMBL", OrgDb = org.Hs.eg.db, ont = "BP", pAdjustMethod = "BH", pvalueCutoff = 0.05, qvalueCutoff = 0.1, readable = TRUE)
#> Wrapper: FALSE
#> Package: clusterProfiler v. 4.21.0
#> Organism: Homo sapiens
#> Gene set library: GO
#> Gene set library version: 3.23.1
#### add more info to the metadata ####
fea_res_list <- setNames(lapply(names(fea_res_list), function(nm) {
EMMA_add_custom_metadata(fea_res_list[[nm]], extra = list(contrast_name = nm))
}),
names(fea_res_list))
#### get the raw metadata ####
record_list <- list()
record_list <- setNames(lapply(names(fea_res_list), function(mn){
EMMA_get_record(fea_res_list[[mn]])
}),
names(fea_res_list))
record_list$SL1344_vs_naive$extra#> $contrast_name
#> [1] "SL1344_vs_naive"
#> [1] "clusterProfiler"
EMMA currently provides metadata capture support for
several commonly used FEA tools, including methods from clusterProfiler,
gprofiler2,
and related wrappers/custom functions such as mosdef.
EMMA is designed to be extensible, and support for
additional FEA methods and packages will continue to expand over
time.
#> R version 4.6.0 (2026-04-24)
#> Platform: x86_64-pc-linux-gnu
#> Running under: Ubuntu 24.04.4 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.26.so; LAPACK version 3.12.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] stats4 stats graphics grDevices utils datasets methods
#> [8] base
#>
#> other attached packages:
#> [1] topGO_2.65.0 SparseM_1.84-2
#> [3] GO.db_3.23.1 graph_1.91.0
#> [5] mosdef_1.9.0 clusterProfiler_4.21.0
#> [7] org.Hs.eg.db_3.23.1 AnnotationDbi_1.75.0
#> [9] DESeq2_1.53.0 SummarizedExperiment_1.43.0
#> [11] Biobase_2.73.1 MatrixGenerics_1.25.0
#> [13] matrixStats_1.5.0 GenomicRanges_1.65.0
#> [15] Seqinfo_1.3.0 IRanges_2.47.2
#> [17] S4Vectors_0.51.3 BiocGenerics_0.59.7
#> [19] generics_0.1.4 macrophage_1.29.0
#> [21] EMMA_0.99.4 BiocStyle_2.41.0
#>
#> loaded via a namespace (and not attached):
#> [1] splines_4.6.0 BiocIO_1.23.3
#> [3] bitops_1.0-9 ggplotify_0.1.3
#> [5] filelock_1.0.3 BiasedUrn_2.0.12
#> [7] tibble_3.3.1 polyclip_1.10-7
#> [9] enrichit_0.1.4 XML_3.99-0.23
#> [11] lifecycle_1.0.5 httr2_1.2.2
#> [13] edgeR_4.11.1 processx_3.9.0
#> [15] lattice_0.22-9 MASS_7.3-65
#> [17] magrittr_2.0.5 limma_3.69.2
#> [19] plotly_4.12.0 sass_0.4.10
#> [21] rmarkdown_2.31 jquerylib_0.1.4
#> [23] yaml_2.3.12 otel_0.2.0
#> [25] ggtangle_0.1.2 DBI_1.3.0
#> [27] buildtools_1.0.0 RColorBrewer_1.1-3
#> [29] abind_1.4-8 purrr_1.2.2
#> [31] RCurl_1.98-1.19 yulab.utils_0.2.4
#> [33] tweenr_2.0.3 rappdirs_0.3.4
#> [35] aisdk_1.4.12 gdtools_0.5.1
#> [37] enrichplot_1.33.0 ggrepel_0.9.8
#> [39] tidytree_0.4.7 maketools_1.3.2
#> [41] codetools_0.2-20 DelayedArray_0.39.3
#> [43] DOSE_4.7.0 DT_0.34.0
#> [45] ggforce_0.5.0 tidyselect_1.2.1
#> [47] aplot_0.2.9 UCSC.utils_1.9.0
#> [49] farver_2.1.2 goseq_1.65.0
#> [51] BiocFileCache_3.3.0 GenomicAlignments_1.49.0
#> [53] jsonlite_2.0.0 systemfonts_1.3.2
#> [55] bbmle_1.0.25.1 DeeDeeExperiment_1.3.0
#> [57] tools_4.6.0 ggnewscale_0.5.2
#> [59] progress_1.2.3 treeio_1.37.0
#> [61] Rcpp_1.1.1-1.1 glue_1.8.1
#> [63] SparseArray_1.13.2 BiocBaseUtils_1.15.1
#> [65] mgcv_1.9-4 xfun_0.58
#> [67] geneLenDataBase_1.49.0 qvalue_2.45.0
#> [69] GenomeInfoDb_1.49.1 dplyr_1.2.1
#> [71] numDeriv_2016.8-1.1 withr_3.0.2
#> [73] BiocManager_1.30.27 fastmap_1.2.0
#> [75] callr_3.8.0 digest_0.6.39
#> [77] R6_2.6.1 gridGraphics_0.5-1
#> [79] biomaRt_2.69.0 RSQLite_3.53.1
#> [81] cigarillo_1.3.0 tidyr_1.3.2
#> [83] renv_1.2.3 data.table_1.18.4
#> [85] fontLiberation_0.1.0 rtracklayer_1.73.0
#> [87] prettyunits_1.2.0 httr_1.4.8
#> [89] htmlwidgets_1.6.4 S4Arrays_1.13.0
#> [91] scatterpie_0.2.6 pkgconfig_2.0.3
#> [93] gtable_0.3.6 blob_1.3.0
#> [95] S7_0.2.2 SingleCellExperiment_1.35.1
#> [97] XVector_0.53.0 sys_3.4.3
#> [99] htmltools_0.5.9 fontBitstreamVera_0.1.1
#> [101] scales_1.4.0 png_0.1-9
#> [103] ggfun_0.2.0 knitr_1.51
#> [105] reshape2_1.4.5 rjson_0.2.23
#> [107] coda_0.19-4.1 nlme_3.1-169
#> [109] curl_7.1.0 bdsmatrix_1.3-7
#> [111] cachem_1.1.0 stringr_1.6.0
#> [113] parallel_4.6.0 restfulr_0.0.16
#> [115] apeglm_1.35.0 pillar_1.11.1
#> [117] grid_4.6.0 vctrs_0.7.3
#> [119] tidydr_0.0.6 dbplyr_2.5.2
#> [121] cluster_2.1.8.2 evaluate_1.0.5
#> [123] GenomicFeatures_1.65.0 mvtnorm_1.4-1
#> [125] cli_3.6.6 locfit_1.5-9.12
#> [127] compiler_4.6.0 Rsamtools_2.29.0
#> [129] rlang_1.2.0 crayon_1.5.3
#> [131] gprofiler2_0.2.4 emdbook_1.3.14
#> [133] ps_1.9.3 plyr_1.8.9
#> [135] fs_2.1.0 writexl_1.5.4
#> [137] ggiraph_0.9.6 stringi_1.8.7
#> [139] viridisLite_0.4.3 BiocParallel_1.47.0
#> [141] txdbmaker_1.9.0 Biostrings_2.81.3
#> [143] lazyeval_0.2.3 GOSemSim_2.39.0
#> [145] fontquiver_0.2.1 Matrix_1.7-5
#> [147] hms_1.1.4 patchwork_1.3.2
#> [149] bit64_4.8.2 ggplot2_4.0.3
#> [151] statmod_1.5.2 KEGGREST_1.53.0
#> [153] igraph_2.3.2 memoise_2.0.1
#> [155] bslib_0.11.0 ggtree_4.3.0
#> [157] bit_4.6.0 ape_5.8-1
#> [159] gson_0.1.0
EMMA: the macrophage dataset
EMMA
framework
EMMA_run():
Capturing the recorded informationEMMA_show():
Summarizing the recorded informationEMMA_get_record():
Retrieving the recorded informationEMMA_explain():
Summarizing recorded information into textEMMA with
custom/wrapper functionsEMMA_add_custom_metadata():
Adding extra informationEMMA_freeze():
Recording the Analysis EnvironmentEMMA with iterative
workflows