expranno is an R package for downstream RNA-seq workflows built around Ensembl-ID expression matrices and sample metadata. It standardizes four core steps:
https://dai540.github.io/expranno/
-
annotate_expr()for human or mouse gene annotation -
merge_expr_meta()for stable expression-metadata integration -
run_cell_deconvolution()forimmunedeconv-based deconvolution -
run_signature_analysis()for GSVA or ssGSEA signature scoring
The package is intentionally narrow. It does not handle alignment, quantification, QC, or differential expression. Instead, it standardizes annotation presets, validation tables, provenance files, and downstream outputs once an expression matrix already exists.
It is designed for analysts working with bulk RNA-seq matrices where:
-
expr: first column isgene_id, remaining columns are samples -
meta: first column issample
For repeatable annotation, expranno ships fixed presets such as human_tpm_v102 and mouse_tpm_v102, plus bundled truth tables through example_annotation_truth().
Installation
Install from GitHub:
install.packages("pak")
pak::pak("dai540/expranno")Or:
install.packages("remotes")
remotes::install_github("dai540/expranno")Or install from a source tarball:
install.packages("path/to/expranno_<version>.tar.gz", repos = NULL, type = "source")Optional annotation and signature backends:
BiocManager::install(c(
"biomaRt",
"AnnotationDbi",
"org.Hs.eg.db",
"org.Mm.eg.db",
"ensembldb",
"EnsDb.Hsapiens.v86",
"EnsDb.Mmusculus.v79",
"GSVA"
))Optional deconvolution backend:
remotes::install_github("omnideconv/immunedeconv")Then load the package:
Citation
If you use expranno, cite the package as:
Dai (2026). expranno: Expression Annotation, Metadata Integration, Deconvolution, and Signature Analysis. R package. https://dai540.github.io/expranno/
You can also retrieve the citation from R:
citation("expranno")What expranno does
expranno does four things.
- Annotates Ensembl IDs with fixed-release human or mouse presets
- Benchmarks and validates annotation against truth tables
- Merges annotated expression with metadata into stable CSV outputs
- Runs deconvolution and signature scoring from the same annotated matrix
In practice, the package is doing this:
-
annotate_expr()writesexpr_anno.csvplus coverage, ambiguity, and provenance tables -
validate_annotation_engines()compares predicted fields against truth tables -
merge_expr_meta()writesexpr_meta_merged.csv -
run_cell_deconvolution()writescell_deconv_<method>.csv -
run_signature_analysis()writessignature_gsva.csvandsignature_ssgsea.csv -
run_expranno()orchestrates the full workflow and keeps the output layout stable
Stable outputs
expr_anno.csvannotation_report.csvannotation_ambiguity.csvannotation_provenance.csvannotation_validation_summary.csvannotation_validation_detail.csvexpr_meta_merged.csvcell_deconv_<method>.csvsignature_gsva.csvsignature_ssgsea.csvsession_info.txt
Example
library(expranno)
demo <- example_expranno_data()
result <- run_expranno(
expr = demo$expr,
meta = demo$meta,
annotation_preset = "human_tpm_v102",
expr_scale = "abundance",
duplicate_strategy = "mean",
output_dir = tempdir(),
run_deconvolution = FALSE,
run_signature = FALSE
)
result$annotation$reportTutorials
The tutorial site is organized around:
Getting Started- preset reference
- benchmarking and reproducibility
- human case study
- mouse case study
- function reference
What expranno cannot do yet
- It does not perform alignment, quantification, or read-level QC
- It does not replace native
immunedeconvorGSVAmethod-specific tuning - It does not provide a CRAN or Bioconductor release yet
- It does not implement a full reporting layer beyond CSV outputs, vignettes, and pkgdown docs
Package layout
-
R/annotate.R: annotation workflows and backends -
R/run.R: end-to-end wrapper -
R/signature.R: GSVA and ssGSEA scoring -
R/deconvolution.R: deconvolution wrapper -
R/benchmark.RandR/validation.R: benchmark and truth-table validation -
R/bioconductor.R: Bioconductor input/output helpers -
R/data-helpers.R: built-in examples, truth tables, and preset listing -
R/io.R: strict input validation and expression-metadata merging -
vignettes/: getting-started, design, and case-study articles -
inst/extdata/: bundled demo GMT and truth tables