Skip to contents

Identifies phenotype-associated cell subpopulations in single-cell data using regularized regression on matched bulk expression profiles.

Usage

DoScissor(
   path2load_scissor_cache = NULL,
   matched_bulk,
   sc_data,
   phenotype,
   label_type = "scissor",
   alpha = c(0.05,NULL),
   cutoff = 0.2,
   scissor_family = c("gaussian", "binomial", "cox"),
   reliability_test = FALSE,
   path2save_scissor_inputs = "Scissor_inputs.RData",
   reliability_test_n = 10,
   nfold = 10,
   ...
)

Arguments

path2load_scissor_cache

Path to precomputed Scissor inputs (RData file). If provided, skips recomputation (default: NULL).

matched_bulk

Normalized bulk expression matrix (features × samples). Column names must match phenotype identifiers.

sc_data

Seurat object containing single-cell RNA-seq data.

phenotype

Clinical outcome data. Can be: - Vector: named with sample IDs - Data frame: with row names matching bulk columns

label_type

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

alpha

Parameter used to balance the effect of the l1 norm and the network-based penalties. It can be a number or a searching vector. If alpha = NULL, a default searching vector is used. The range of alpha is between 0 and 1. A larger alpha lays more emphasis on the l1 norm.

cutoff

(default: 0.2). Higher values increase specificity.

scissor_family

Model family for outcome type: - "gaussian": Continuous outcomes - "binomial": Binary outcomes (default) - "cox": Survival outcomes

reliability_test

Logical to perform stability assessment when scissor_alpha is specified as a value between 0 and 1.(default: TRUE).

path2save_scissor_inputs

Path to save intermediate files (default: "Scissor_inputs.RData").

reliability_test_n

Number of CV folds for reliability test (default: 10).

nfold

Cross-validation folds for reliability test (default: 10).

...

Additional arguments passed to Scissor.v5.optimized.

Value

A list containing:

scRNA_data

A Seurat object with screened cells containing metadata:

scissor

"Positive"/"Negative"/"Neutral" classification

label_type

Outcome label used

scissor_result

Raw Scissor results

reliability_result

If reliability_test=TRUE, contains:

statistic

A value between 0 and 1

p

p-value of the test statistic

AUC_test_real

10 values of AUC for real data

AUC_test_back

A list of AUC for background data

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

Sun D, Guan X, Moran AE, Wu LY, Qian DZ, Schedin P, et al. Identifying phenotype-associated subpopulations by integrating bulk and single-cell sequencing data. Nat Biotechnol. 2022 Apr;40(4):527–38.

Examples

if (FALSE) { # \dontrun{
# Binary outcome example
res <- DoScissor(
  matched_bulk = bulk_matrix,
  sc_data = seurat_obj,
  phenotype = a_named_vector,
  scissor_family = "binomial"
)
} # }