scdown is a minimal downstream package for annotated single-cell RNA-seq.
It assumes that QC, normalization, clustering, and annotation are already done. The package is intentionally narrow and focuses on five practical jobs inside one dataset:
- cluster and annotation maps
- marker discovery
- annotation checks with known marker panels
- cluster-level expression and signature summaries
- exploratory ligand-receptor interaction ranking
Website: https://dai540.github.io/scdown/
Installation
Install from GitHub with pak:
install.packages("pak")
pak::pak("dai540/scdown")or remotes:
install.packages("remotes")
remotes::install_github("dai540/scdown")Or install from a source tarball:
install.packages("path/to/scdown_<version>.tar.gz", repos = NULL, type = "source")Then load the package:
Input contract
scdown() accepts:
- a long-format table with
cell,gene,value, and annotation columns - a list with
expr,cells, and optionalembedding - a
SingleCellExperiment - a
Seuratobject
The minimal metadata columns are:
cellannotation-
sampleif available
Minimal example
library(scdown)
obj <- scdown(
scdown_example(),
annotation_col = "annotation",
sample_col = "sample"
)
res <- run_core(
obj,
signatures = c("cytotoxic", "antigen_presentation")
)
build_scdown_report(obj)Main outputs
Typical outputs include:
- cluster map PNGs
- marker tables
- annotation check tables and heatmaps
- average-expression summaries
- cluster-similarity heatmaps
- signature score tables
- communication ranking tables
- one compact HTML report
What scdown does not do
scdown does not try to replace upstream or specialist tools.
- It does not do QC, ambient RNA correction, doublet detection, normalization, integration, or clustering.
- It does not do group-aware differential abundance or differential expression.
- It does not claim publication-grade communication inference.
Use Seurat, scater, scuttle, scran, SingleR, muscat, dreamlet, miloR, or CellChat for those stages.
Citation
citation("scdown")