This function performs scPP screening on single-cell data using matched bulk data and phenotype information. It supports binary, continuous, and survival phenotype types.
Usage
DoscPP(
matched_bulk,
sc_data,
phenotype,
label_type = "scPP",
phenotype_class = c("Binary", "Continuous", "Survival"),
ref_group = 0,
Log2FC_cutoff = 0.585,
estimate_cutoff = 0.2,
probs = 0.2
)
Arguments
- matched_bulk
Bulk expression data (genes × samples) where: - Column names must match
phenotype
row names- sc_data
Seurat object containing preprocessed single-cell data: - Normalized counts in
RNA
assay- phenotype
Data frame or tibble or named vector with: - Rownames matching
matched_bulk
columns - For survival: must contain time and status columns- label_type
Character specifying phenotype label type (e.g., "SBS1"), stored in
scRNA_data@misc
- phenotype_class
Analysis type (case-sensitive): -
"Binary"
: Case-control studies (e.g., tumor/normal) -"Continuous"
: Quantitative traits (e.g., drug response) -"Survival"
: Time-to-event data (requires time/status columns)- ref_group
Reference group or baseline for binary comparisons, e.g. "Normal" for Tumor/Normal studies and 0 for 0/1 case-control studies. (default: 0)
- Log2FC_cutoff
Minimum log2 fold-change for binary markers (default: 0.585)
- estimate_cutoff
Effect size threshold for continuous traits (default: 0.2)
- probs
Quantile cutoff for cell classification (default: 0.2)
Value
A list containing:
- scRNA_data
Seurat object with added metadata:
- ScPP
"Positive"/"Negative"/"Neutral" classification
- gene_list
List of genes used for screening
- AUC
A data.frame with area under the ROC curve:
- AUCup
AUC for positive
- AUCdown
AUC for negative
Algorithm Steps
Data Validation: Checks sample alignment between bulk and phenotype data
Marker Selection: Identifies phenotype-associated genes from bulk data
Single-cell Screening: Projects bulk markers onto single-cell data
Cell Classification: Categorizes cells based on phenotype association
Reference
WangX-Lab/ScPP [Internet]. [cited 2025 Aug 31]. Available from: https://github.com/WangX-Lab/ScPP
See also
Other screen_method:
DoscPAS()
Examples
if (FALSE) { # \dontrun{
# Binary phenotype analysis
res <- DoscPP(
matched_bulk = bulk_data,
sc_data = seurat_obj,
phenotype = ms_data,
label_type = "SBS1",
phenotype_class = "Binary"
)
# Survival analysis
surv_res <- DoscPP(
sc_data = seurat_obj,
matched_bulk = bulk_data,
phenotype = surv_df,
label_type = "OS_status",
phenotype_class = "Survival"
)
} # }