Skip to content
cccskills
FreePublished on GitHub

bioconductor-zenith

Zenith performs gene set analysis on the result of differential expression using linear (mixed) modeling with dream by considering the correlation between gene expression traits. This package implements the camera method from the limma package proposed by Wu and Smyth (2012). Zenith is a simple extension of camera to be compatible with linear mixed models implemented in variancePartition::dream().

The English summary is being prepared. Showing the original description.

Run score Not tested

See how to install

Files included (1)

  • SKILL.md4.5 KB

SKILL.md (original)

Review the instructions the agent will receive before you install.

Zenith

Workflows

Standard Workflow

Perform gene set enrichment analysis on differential expression results from a linear mixed model fit with dream and visualize the results.

library(zenith)
library(edgeR)
library(variancePartition)
library(tweeDEseqCountData)
library(kableExtra)

# 1. Filter low-expressed genes
data(pickrell)
geneCounts = exprs(pickrell.eset)
df_metadata = pData(pickrell.eset)
dsgn = model.matrix(~ gender, df_metadata)
keep = filterByExpr(geneCounts, dsgn, min.count=5)

# 2. Compute library size normalization
dge = DGEList(counts = geneCounts[keep,])
dge = calcNormFactors(dge)

# 3. Estimate precision weights
vobj = voomWithDreamWeights(dge, ~ gender, df_metadata)

# 4. Fit linear (mixed) model
fit = dream(vobj, ~ gender, df_metadata)
fit = eBayes(fit)

# 5. Load gene sets and run zenith
msdb.gs = get_MSigDB("H", to="ENSEMBL")
res.gsa = zenith_gsa(fit, msdb.gs, 'gendermale', progressbar=FALSE)
plotZenithResults(res.gsa)

Input: Raw RNA-seq counts and sample metadata. Output: A data frame of gene set enrichment statistics and a heatmap visualization of the top results.

When to Use

  • To perform gene set enrichment analysis on differential expression results generated from linear (mixed) models using variancePartition::dream().
  • To account for correlation between gene expression traits by extending the camera method from limma to linear mixed models.
  • To easily fetch and cache gene sets from MSigDB (using get_MSigDB) or Gene Ontology (using get_GeneOntology).

When NOT to Use

  • For simple fixed-effect designs without random effects or sample correlation; standard limma::camera is sufficient.
  • If you are not using variancePartition::dream for differential expression; zenith_gsa is specifically designed to take the output of dream().

Data Requirements

  • A fitted model object from variancePartition::dream() that has been processed with limma::eBayes().
  • A GeneSetCollection object containing gene sets (e.g., loaded via get_MSigDB or get_GeneOntology).
  • Gene identifiers in the gene sets must match the rownames of the fitted model (e.g., both using ENSEMBL or SYMBOL).

Key Parameters

  • to ("ENSEMBL"): Target gene identifier type (e.g., "ENSEMBL", "SYMBOL", "ENTREZ") in get_MSigDB or get_GeneOntology.
  • progressbar (FALSE): Logical indicating whether to show a progress bar during zenith_gsa execution.
  • coef ('gendermale'): The coefficient/contrast in the fitted model to evaluate for gene set enrichment.

Best Practices

  • Filter out low-expressed genes using edgeR::filterByExpr to improve statistical power and model stability.
  • Estimate precision weights using variancePartition::voomWithDreamWeights to account for the mean-variance relationship in RNA-seq count data.
  • Use plotZenithResults to visualize the top gene set enrichment results across coefficients or cell types.

Common Pitfalls

  • Gene identifier mismatch: Ensure the gene ID type specified in get_MSigDB(..., to=...) matches the ID type used as rownames in the expression matrix and the dream fit.
  • Running on raw counts: Always normalize counts using calcNormFactors and apply voomWithDreamWeights before fitting models with dream.

Alternatives

  • limma::camera for fixed-effect linear models.
  • EnrichmentBrowser::getGenesets for loading alternative gene set databases like KEGG or Enrichr.

Citations

  • Hoffman G (2026). Zenith: Gene set analysis for linear mixed models. R package.
  • Wu D, Smyth GK (2012). Camera: a competitive gene set test accounting for inter-gene correlation. Nucleic Acids Research.

References

Reviews

No reviews yet. Tell others what you thought.

Comments

No login needed. Share how it worked for you, ask a question, or note where it did not run.

No comments yet. Be the first to write one.

Comments are published right away. Do not include personal information such as email addresses or phone numbers. Up to 2 URLs.

0 / 1,000 characters

This form is protected by reCAPTCHA, and the Google Privacy Policy and Terms of Service apply.

More skills from this repository

The package contains functions for exploratory oligonucleotide array analysis. The dependence on tkWidgets only concerns few convenience functions. 'affy' is fully functional without it.

The English summary is being prepared. Showing the original description.

bioMate-AI/biomate-bioconductor-kb793Updated Jun 21, 2026

This tool uses the label-tree function from HyPhy to annotate a phylogenetic tree. It allows users to select a subset of leaves using either a regular expression or a list of sequence names, and then apply a specified label to these selecte

The English summary is being prepared. Showing the original description.

bioMate-AI/biomate-bioconductor-kb793Updated Jun 21, 2026

This package provides a client for the Bioconductor AnnotationHub web resource. The AnnotationHub web resource provides a central location where genomic files (e.g., VCF, bed, wig) and other resources from standard locations (e.g., UCSC, En

The English summary is being prepared. Showing the original description.

bioMate-AI/biomate-bioconductor-kb793Updated Jun 21, 2026

apeglm provides Bayesian shrinkage estimators for effect sizes for a variety of GLM models, using approximation of the posterior for individual coefficients.

The English summary is being prepared. Showing the original description.

bioMate-AI/biomate-bioconductor-kb793Updated Jun 21, 2026

ASURAT is a software for single-cell data analysis. Using ASURAT, one can simultaneously perform unsupervised clustering and biological interpretation in terms of cell type, disease, biological process, and signaling pathway activity. Inputting a single-cell RNA-seq data and knowledge-based databases, such as Cell Ontology, Gene Ontology, KEGG, etc., ASURAT transforms gene expression tables into original multivariate tables, termed sign-by-sample matrices (SSMs).

The English summary is being prepared. Showing the original description.

bioMate-AI/biomate-bioconductor-kb793Updated Jun 21, 2026

AUCell allows to identify cells with active gene sets (e.g. signatures, gene modules...) in single-cell RNA-seq data. AUCell uses the "Area Under the Curve" (AUC) to calculate whether a critical subset of the input gene set is enriched with

The English summary is being prepared. Showing the original description.

bioMate-AI/biomate-bioconductor-kb793Updated Jun 21, 2026

See all skills by bioMate-AI

Report a problem with this skill