Skip to contents

Identification of Pharmacological Subpopulations of Single Cells for Precision Medicine in Cancers

πŸ“š Full Documentation | πŸš€ Quick Start | πŸ“– Algorithm Details

Overview

Intratumoral heterogeneity poses a significant challenge to effective cancer treatment, as diverse cellular subpopulations within a tumor may exhibit distinct drug response profiles. scPharm is a computational framework that integrates single-cell RNA sequencing (scRNA-seq) data with pharmacogenomics profiles from the Genomics of Drug Sensitivity in Cancer (GDSC2) database to dissect therapeutic heterogeneity at single-cell resolution.

The framework employs Multiple Correspondence Analysis (MCA) for dimensionality reduction and Gene Set Enrichment Analysis (GSEA) to quantify drug sensitivity signatures, enabling the classification of individual cells into pharmacologically distinct subpopulations.

Key Capabilities

Module Function Description
Cell Classification scPharmIdentify() Stratifies cells into drug-sensitive and drug-resistant subpopulations based on pharmacogenomics signatures
Drug Prioritization scPharmDr() Ranks therapeutic agents by tumor cell sensitivity profiles using a composite scoring metric
Toxicity Prediction scPharmDse() Estimates potential drug side effects by evaluating sensitivity in non-malignant cells
Combination Therapy scPharmCombo() Identifies synergistic drug combinations targeting complementary resistant subpopulations

Methodological Framework

β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”
β”‚                           scPharm Workflow                                   β”‚
β”œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€
β”‚                                                                             β”‚
β”‚  β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”    β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”    β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”    β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”  β”‚
β”‚  β”‚  scRNA-seq  │───▢│     MCA     │───▢│    GSEA     │───▢│   Cell      β”‚  β”‚
β”‚  β”‚    Data     β”‚    β”‚  Embedding  β”‚    β”‚  Scoring    β”‚    β”‚   Labels    β”‚  β”‚
β”‚  β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜    β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜    β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜    β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜  β”‚
β”‚         β”‚                                                        β”‚          β”‚
β”‚         β–Ό                                                        β–Ό          β”‚
β”‚  β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”                                          β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”  β”‚
β”‚  β”‚   GDSC2     β”‚                                          β”‚    Drug     β”‚  β”‚
β”‚  β”‚  Profiles   β”‚                                          β”‚  Ranking    β”‚  β”‚
β”‚  β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜                                          β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜  β”‚
β”‚                                                                             β”‚
β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜

Installation

install.packages("scPharm", repos = "https://zaoqu-liu.r-universe.dev")

From GitHub

# install.packages("remotes")
remotes::install_github("Zaoqu-Liu/scPharm")

System Requirements

  • R β‰₯ 4.1
  • Seurat β‰₯ 4.0.1 (compatible with both V4 and V5)
  • Platform: Linux, macOS, Windows

Quick Start

library(scPharm)
library(Seurat)

# Load example Seurat object
# seurat_obj <- readRDS("your_data.rds")

# Step 1: Identify pharmacological subpopulations
result <- scPharmIdentify(
  seurat_obj,
  type = "tissue",        # "tissue" or "cellline"
  cancer = "LUAD",        # TCGA cancer type abbreviation
  drug = "Erlotinib",     # Drug name(s) or "all"
  nmcs = 50,              # Number of MCA components
  nfeatures = 200,        # Number of features for signature
  cores = 4               # Parallel cores
)

# Step 2: Compute drug prioritization scores
dr_scores <- scPharmDr(result)
head(dr_scores)

# Step 3: Predict drug side effects (tissue samples only)
dse_scores <- scPharmDse(result)

# Step 4: Identify potential drug combinations
combos <- scPharmCombo(result, dr_scores, topN = 5)

Documentation

For comprehensive documentation, visit https://zaoqu-liu.github.io/scPharm/

Tutorials

Output Structure

scPharmIdentify Output

The function returns a Seurat object with additional metadata columns:

Column Description
cell.label Cell type annotation ("tumor" or "adjacent")
scPharm_label_<drug> Drug response label ("sensitive", "resistant", or "other")
scPharm_nes_<drug> Normalized Enrichment Score (NES) for drug sensitivity

scPharmDr Output

Column Description
DRUG_ID GDSC drug identifier
DRUG_NAME Drug name
Dr Drug prioritization score (lower = more effective)

Citation

If you use scPharm in your research, please cite:

Tian P, Zheng J, Wang H, Liu Z. scPharm: Identification of pharmacological subpopulations of single cells for precision medicine in cancers. Briefings in Bioinformatics, 2024.

  • GDSC Database - Genomics of Drug Sensitivity in Cancer
  • Seurat - Single-cell analysis toolkit
  • CelliD - MCA-based cell identity analysis

License

This project is licensed under the MIT License - see the LICENSE file for details.

Contact