Distill the main topics from the enrichment results, based on the graph derived from constructing an enrichment map
distill_enrichment(
res_enrich,
res_de,
annotation_obj,
gtl = NULL,
n_gs = nrow(res_enrich),
cluster_fun = "cluster_markov"
)
A data.frame
object, storing the result of the functional
enrichment analysis.
A DESeqResults
object. As for the dds
parameter, this is
also commonly used in the DESeq2
framework.
A data.frame
object, containing two columns, gene_id
with a set of unambiguous identifiers (e.g. ENSEMBL ids) and gene_name
,
containing e.g. HGNC-based gene symbols.
A GeneTonic
-list object, containing in its slots the arguments
specified above: dds
, res_de
, res_enrich
, and annotation_obj
- the names
of the list must be specified following the content they are expecting
Integer value, corresponding to the maximal number of gene sets to be used.
Character, referring to the name of the function used for
the community detection in the enrichment map graph. Could be one of "cluster_markov",
"cluster_louvain", or "cluster_walktrap", as they all return a communities
object.
A list containing three objects:
the distilled table of enrichment, distilled_table
, where the new meta-genesets
are identified and defined, specifying e.g. the names of each component, and the
genes associated to these.
the distilled graph for the enrichment map, distilled_em
, with the information
on the membership
the original res_enrich
, augmented with the information of the membership
related to the meta-genesets
library("macrophage")
library("DESeq2")
library("org.Hs.eg.db")
library("AnnotationDbi")
# dds object
data("gse", package = "macrophage")
dds_macrophage <- DESeqDataSet(gse, design = ~ line + condition)
#> using counts and average transcript lengths from tximeta
rownames(dds_macrophage) <- substr(rownames(dds_macrophage), 1, 15)
dds_macrophage <- estimateSizeFactors(dds_macrophage)
#> using 'avgTxLength' from assays(dds), correcting for library size
# annotation object
anno_df <- data.frame(
gene_id = rownames(dds_macrophage),
gene_name = mapIds(org.Hs.eg.db,
keys = rownames(dds_macrophage),
column = "SYMBOL",
keytype = "ENSEMBL"
),
stringsAsFactors = FALSE,
row.names = rownames(dds_macrophage)
)
#> 'select()' returned 1:many mapping between keys and columns
# res object
data(res_de_macrophage, package = "GeneTonic")
res_de <- res_macrophage_IFNg_vs_naive
# res_enrich object
data(res_enrich_macrophage, package = "GeneTonic")
res_enrich <- shake_topGOtableResult(topgoDE_macrophage_IFNg_vs_naive)
#> Found 500 gene sets in `topGOtableResult` object.
#> Converting for usage in GeneTonic...
res_enrich <- get_aggrscores(res_enrich, res_de, anno_df)
distilled <- distill_enrichment(res_enrich,
res_de,
annotation_obj,
n_gs = 100,
cluster_fun = "cluster_markov"
)
colnames(distilled$distilled_table)
#> [1] "metags_cluster" "metags_n_gs" "metags_genes"
#> [4] "metags_n_genes" "metags_gsidlist" "metags_gsdesclist"
#> [7] "metags_msgs" "metags_mcgs"
distilled$distilled_em
#> IGRAPH 3ff3ea7 UN-- 100 553 --
#> + attr: name (v/c), size (v/n), original_size (v/n), color.background
#> | (v/c), color.highlight (v/c), color.hover (v/c), color.border (v/c),
#> | membership (v/n), color (v/n), width (e/n), color (e/c)
#> + edges from 3ff3ea7 (vertex names):
#> [1] adaptive immune response--interferon-gamma-mediated signaling pathway
#> [2] adaptive immune response--antigen processing and presentation of endogenous peptide antigen via MHC class I
#> [3] adaptive immune response--positive regulation of T cell mediated cytotoxicity
#> [4] adaptive immune response--antigen processing and presentation via MHC class Ib
#> + ... omitted several edges