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,
verbose = TRUE,
...
)Arguments
- matched_bulk
Normalized bulk expression matrix (genes × samples) where: - Columns match
phenotyperow names - Genes match features insc_data- sc_data
Seurat object containing preprocessed single-cell data:
- phenotype
Data frame with clinical annotations where: - Rows correspond to
matched_bulkcolumns - For survival: containstimeandstatuscolumns- 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).
- verbose
Logical indicating whether to print progress messages. Default:
TRUE.- ...
For future update.
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.
See also
Other screen_method:
DoDEGAS(),
DoScissor(),
DoscPAS(),
DoscPP()
Other scAB:
NMF.optimized(),
create_scAB.v5(),
findSubset.optimized(),
scAB.optimized(),
select_K.optimized()