Skip to contents

Implements the scAB algorithm to identify phenotype-associated cell subpopulations in single-cell RNA-seq data by integrating matched bulk expression and phenotype information. Uses non-negative matrix factorization (NMF) with dual regularization for phenotype association and cell-cell similarity.

Usage

DoscAB(
  matched_bulk,
  sc_data,
  phenotype,
  label_type = "scAB",
  phenotype_class = c("binary", "survival"),
  alpha = 0.005,
  alpha_2 = 5e-05,
  maxiter = 2000,
  tred = 2
)

Arguments

matched_bulk

Normalized bulk expression matrix (genes × samples) where: - Columns match phenotype row names - Genes match features in sc_data

sc_data

Seurat object containing preprocessed single-cell data:

phenotype

Data frame with clinical annotations where: - Rows correspond to matched_bulk columns - For survival: contains time and status columns

label_type

Character specifying phenotype label type (e.g., "SBS1", "time"), stored in scRNA_data@misc

phenotype_class

Analysis mode: - "binary": Case-control design (e.g., responder/non-responder) - "survival": Time-to-event analysis data.frame

alpha

Coefficient of phenotype regularization (default=0.005).

alpha_2

Coefficent of cell-cell similarity regularization (default=5e-05).

maxiter

NMF optimization iterations (default=2000).

tred

Z-score threshold (default=2).

Value

A list containing:

scRNA_data

Filtered Seurat object with selected cells

scAB_result

scAB screening result

LICENSE

Licensed under the GNU General Public License version 3 (GPL-3.0). A copy of the license is available at https://www.gnu.org/licenses/gpl-3.0.en.html.

References

Zhang Q, Jin S, Zou X. scAB detects multiresolution cell states with clinical significance by integrating single-cell genomics and bulk sequencing data. Nucleic Acids Research. 2022 Nov 28;50(21):12112–30.

Examples

if (FALSE) { # \dontrun{
# Binary phenotype example
result <- DoscAB(
  matched_bulk = bulk_matrix,
  sc_data = seurat_obj,
  phenotype = clinical_df,
  label_type = "disease_status",
  phenotype_class = "binary",
  alpha = 0.005,
  alpha_2 = 5e-05,
  maxiter = 2000,
  tred = 2
)
} # }