ASURAT
Workflows
Standard Workflow
Perform single-cell RNA-seq preprocessing, functional sign creation from databases, sign-by-sample matrix generation, clustering, and multifaceted visualization.
library(ASURAT)
library(SingleCellExperiment)
# 1. Add metadata and perform quality control filtering
pbmc <- add_metadata(sce = pbmc, mitochondria_symbol = "^MT-")
pbmc <- remove_variables(sce = pbmc, min_nsamples = 10)
pbmc <- remove_samples(sce = pbmc, min_nReads = 5000, max_nReads = 20000, min_nGenes = 100, max_nGenes = 1e+10, min_percMT = 0, max_percMT = 10)
pbmc <- remove_variables_second(sce = pbmc, min_meannReads = 0.05)
# 2. Create and select signs from databases
pbmc <- remove_signs(sce = pbmc, min_ngenes = 2, max_ngenes = 1000)
pbmc <- cluster_genesets(sce = pbmc, cormat = cormat, th_posi = 0.30, th_nega = -0.30)
pbmc <- create_signs(sce = pbmc, min_cnt_strg = 2, min_cnt_vari = 2)
# 3. Generate sign-by-sample matrix (SSM)
pbmc <- makeSignMatrix(sce = pbmc, weight_strg = 0.5, weight_vari = 0.5)
# 4. Identify significant signs
pbmc <- compute_sepI_all(sce = pbmc, labels = labels, nrand_samples = 200)
Input: A raw count SingleCellExperiment object and knowledge-based databases. Output: A SingleCellExperiment object containing a sign-by-sample matrix (SSM) with computed separation indices.
When to Use
- To simultaneously perform unsupervised clustering and biological interpretation of single-cell RNA-seq data using functional gene sets from databases like Cell Ontology, Gene Ontology, or KEGG.
- To transform normalized-and-centered gene expression matrices into sign-by-sample matrices (SSMs) using
makeSignMatrix.
- To identify significant biological markers (signs) for cell clusters using non-parametric separation indices computed via
compute_sepI_all.
- To visualize multifaceted single-cell datasets across multiple sign-by-sample matrices and gene expression levels simultaneously using
plot_multiheatmaps.
When NOT to Use
- For standard gene-level-only clustering without functional database integration, use
scran or Seurat because ASURAT is specifically designed for sign-based (gene set) multivariate analysis.
- For datasets lacking reliable functional annotations or established gene sets, use standard unsupervised clustering because ASURAT relies on knowledge-based databases to define signs.
Data Requirements
- Input format:
SingleCellExperiment object containing raw counts in assays(sce)$counts.
- Structure: Row names must be gene symbols (e.g.,
Symbol_TENx) and column names must be cell barcodes.
- Normalization state: Requires log-normalized and centered expression data (stored in
assay(sce, "centered")) to compute gene expression correlation matrices.
Key Parameters
- mitochondria_symbol ("^MT-"): Regular expression to identify mitochondrial genes for quality control.
- min_nsamples (10): Minimum number of non-zero expressing cells required to keep a gene.
- min_meannReads (0.05): Minimum mean read count across samples required to keep a gene.
- min_ngenes (2): Minimal number of genes in a functional gene set to be kept.
- max_ngenes (1000): Maximal number of genes in a functional gene set to be kept.
- th_posi (0.30): Positive correlation coefficient threshold for clustering gene sets.
- th_nega (-0.30): Negative correlation coefficient threshold for clustering gene sets.
- weight_strg (0.5): Weight parameter for strongly correlated gene sets (SCG) in SSM creation.
Best Practices
- Add metadata to both rows and columns using
add_metadata before performing quality control filtering.
- Perform log-normalization and center the data by subtracting the mean expression levels across cells before computing correlation matrices.
- Filter out redundant signs using semantic similarity matrices with
remove_signs_redundant to simplify the downstream analysis.
- Use
compute_sepI_all to find cluster-specific signs instead of standard parametric tests, as row vectors of SSMs are centered.
Common Pitfalls
- Using slot name "log-normalized" for
altExp(sce): This can cause errors when converting to Seurat objects using as.Seurat. Fix by using standard slot names like "logcounts".
- Setting excessive cutoff values in
remove_samples: This can produce biased results. Carefully inspect the distribution of nReads and nGenes before setting thresholds.
Alternatives
Seurat for standard graph-based clustering and cell cycle scoring.
scater for standard single-cell preprocessing and visualization.
ComplexHeatmap for general high-dimensional heatmap plotting.
Citations
- Iida K (2026), "ASURAT: Functional sign-based single-cell analysis".
References
- Homepage: bioconductor.org/packages/asurat
- Vignette: bioconductor.org/packages/release/bioc/vignettes/asurat/inst/doc/asurat.html
1---2name: asurat3description: ASURAT4---56# ASURAT78## Workflows910### Standard Workflow1112Perform single-cell RNA-seq preprocessing, functional sign creation from databases, sign-by-sample matrix generation, clustering, and multifaceted visualization.1314```r15library(ASURAT)16library(SingleCellExperiment)1718# 1. Add metadata and perform quality control filtering19pbmc <- add_metadata(sce = pbmc, mitochondria_symbol = "^MT-")20pbmc <- remove_variables(sce = pbmc, min_nsamples = 10)21pbmc <- remove_samples(sce = pbmc, min_nReads = 5000, max_nReads = 20000, min_nGenes = 100, max_nGenes = 1e+10, min_percMT = 0, max_percMT = 10)22pbmc <- remove_variables_second(sce = pbmc, min_meannReads = 0.05)2324# 2. Create and select signs from databases25pbmc <- remove_signs(sce = pbmc, min_ngenes = 2, max_ngenes = 1000)26pbmc <- cluster_genesets(sce = pbmc, cormat = cormat, th_posi = 0.30, th_nega = -0.30)27pbmc <- create_signs(sce = pbmc, min_cnt_strg = 2, min_cnt_vari = 2)2829# 3. Generate sign-by-sample matrix (SSM)30pbmc <- makeSignMatrix(sce = pbmc, weight_strg = 0.5, weight_vari = 0.5)3132# 4. Identify significant signs33pbmc <- compute_sepI_all(sce = pbmc, labels = labels, nrand_samples = 200)34```3536*Input:* A raw count `SingleCellExperiment` object and knowledge-based databases. *Output:* A `SingleCellExperiment` object containing a sign-by-sample matrix (SSM) with computed separation indices.3738## When to Use39- To simultaneously perform unsupervised clustering and biological interpretation of single-cell RNA-seq data using functional gene sets from databases like Cell Ontology, Gene Ontology, or KEGG.40- To transform normalized-and-centered gene expression matrices into sign-by-sample matrices (SSMs) using `makeSignMatrix`.41- To identify significant biological markers (signs) for cell clusters using non-parametric separation indices computed via `compute_sepI_all`.42- To visualize multifaceted single-cell datasets across multiple sign-by-sample matrices and gene expression levels simultaneously using `plot_multiheatmaps`.4344## When NOT to Use45- For standard gene-level-only clustering without functional database integration, use `scran` or `Seurat` because ASURAT is specifically designed for sign-based (gene set) multivariate analysis.46- For datasets lacking reliable functional annotations or established gene sets, use standard unsupervised clustering because ASURAT relies on knowledge-based databases to define signs.4748## Data Requirements49- **Input format:** `SingleCellExperiment` object containing raw counts in `assays(sce)$counts`.50- **Structure:** Row names must be gene symbols (e.g., `Symbol_TENx`) and column names must be cell barcodes.51- **Normalization state:** Requires log-normalized and centered expression data (stored in `assay(sce, "centered")`) to compute gene expression correlation matrices.5253## Key Parameters54- **mitochondria_symbol** ("^MT-"): Regular expression to identify mitochondrial genes for quality control.55- **min_nsamples** (10): Minimum number of non-zero expressing cells required to keep a gene.56- **min_meannReads** (0.05): Minimum mean read count across samples required to keep a gene.57- **min_ngenes** (2): Minimal number of genes in a functional gene set to be kept.58- **max_ngenes** (1000): Maximal number of genes in a functional gene set to be kept.59- **th_posi** (0.30): Positive correlation coefficient threshold for clustering gene sets.60- **th_nega** (-0.30): Negative correlation coefficient threshold for clustering gene sets.61- **weight_strg** (0.5): Weight parameter for strongly correlated gene sets (SCG) in SSM creation.6263## Best Practices64- Add metadata to both rows and columns using `add_metadata` before performing quality control filtering.65- Perform log-normalization and center the data by subtracting the mean expression levels across cells before computing correlation matrices.66- Filter out redundant signs using semantic similarity matrices with `remove_signs_redundant` to simplify the downstream analysis.67- Use `compute_sepI_all` to find cluster-specific signs instead of standard parametric tests, as row vectors of SSMs are centered.6869## Common Pitfalls70- Using slot name "log-normalized" for `altExp(sce)`: This can cause errors when converting to Seurat objects using `as.Seurat`. Fix by using standard slot names like "logcounts".71- Setting excessive cutoff values in `remove_samples`: This can produce biased results. Carefully inspect the distribution of `nReads` and `nGenes` before setting thresholds.7273## Alternatives74- `Seurat` for standard graph-based clustering and cell cycle scoring.75- `scater` for standard single-cell preprocessing and visualization.76- `ComplexHeatmap` for general high-dimensional heatmap plotting.7778## Citations79- Iida K (2026), "ASURAT: Functional sign-based single-cell analysis".8081## References82- Homepage: bioconductor.org/packages/asurat83- Vignette: bioconductor.org/packages/release/bioc/vignettes/asurat/inst/doc/asurat.html