Case Study: Glioblastoma Analysis

Background

This vignette demonstrates the application of scFOCAL to glioblastoma (GBM) single-cell RNA sequencing data, as presented in our Nature Communications publication.

Study Overview

Dataset Description

  • Source: Multi-patient GBM scRNA-seq data
  • Cells: >100,000 cells from multiple patients
  • Cell types: Tumor cells (classified by transcriptional state) and TME cells
  • Transcriptional states: Based on Neftel et al., 2019 classification
    • Mesenchymal (MES)
    • Astrocyte-like (AC)
    • Neural progenitor-like (NPC)
    • Oligodendrocyte progenitor-like (OPC)

Research Questions

  1. Can we identify drug-sensitive and drug-resistant GBM cell populations?
  2. Which transcriptional states show differential drug sensitivity?
  3. What combination therapies might overcome resistance?

Analysis Workflow

Step 1: Data Preparation

The analysis begins with a preprocessed Seurat object containing:

# Example Seurat object structure
gbm_seurat <- readRDS("gbm_data.rds")

# Required metadata columns:
# - celltype: Cell type annotations
# - patient: Patient identifiers
# - state: Transcriptional state (for tumor cells)

# Check structure
head(gbm_seurat@meta.data)

Step 2: Define Cell Populations

# In scFOCAL GUI:
# 1. Select "celltype" as grouping variable
# 2. Define control populations: Immune cells, Stromal cells
# 3. Define test populations: MES, AC, NPC, OPC (tumor states)

Conceptual representation of cell population selection:

Step 3: Drug-Cell Connectivity Analysis

After calculating connectivity scores for all 1,679 compounds:

Step 4: Sensitive vs Resistant Classification

Step 5: Differential Connectivity Analysis

Identifying compounds with significantly different connectivity between sensitive and resistant populations:

Key Findings

1. Transcriptional State-Specific Drug Sensitivity

2. Combination Therapy Candidates

Based on differential connectivity analysis:

3. Patient-Level Heterogeneity

Biological Validation

Correlation with Known Resistance Markers

Conclusions

This case study demonstrates that scFOCAL can:

  1. Identify cell-level drug sensitivity within heterogeneous tumors
  2. Reveal transcriptional state-specific resistance patterns
  3. Suggest rational combination therapies based on pharmacotranscriptomic profiles
  4. Account for patient-level heterogeneity in drug response

References

  1. Suter RK, et al. Drug and single-cell gene expression integration identifies sensitive and resistant glioblastoma cell populations. Nature Communications (2026)
  2. Neftel C, et al. An integrative model of cellular states, plasticity, and genetics for glioblastoma. Cell (2019)

Session Info

sessionInfo()
## R version 4.6.1 (2026-06-24)
## Platform: x86_64-pc-linux-gnu
## Running under: Ubuntu 26.04 LTS
## 
## Matrix products: default
## BLAS:   /usr/lib/x86_64-linux-gnu/openblas-pthread/libblas.so.3 
## LAPACK: /usr/lib/x86_64-linux-gnu/openblas-pthread/libopenblasp-r0.3.32.so;  LAPACK version 3.12.0
## 
## locale:
##  [1] LC_CTYPE=en_US.UTF-8       LC_NUMERIC=C              
##  [3] LC_TIME=en_US.UTF-8        LC_COLLATE=en_US.UTF-8    
##  [5] LC_MONETARY=en_US.UTF-8    LC_MESSAGES=en_US.UTF-8   
##  [7] LC_PAPER=en_US.UTF-8       LC_NAME=C                 
##  [9] LC_ADDRESS=C               LC_TELEPHONE=C            
## [11] LC_MEASUREMENT=en_US.UTF-8 LC_IDENTIFICATION=C       
## 
## time zone: Etc/UTC
## tzcode source: system (glibc)
## 
## attached base packages:
## [1] stats     graphics  grDevices utils     datasets  methods   base     
## 
## other attached packages:
## [1] tidyr_1.3.2    dplyr_1.2.1    ggplot2_4.0.3  rmarkdown_2.31
## 
## loaded via a namespace (and not attached):
##  [1] Matrix_1.7-5       gtable_0.3.6       jsonlite_2.0.0     compiler_4.6.1    
##  [5] tidyselect_1.2.1   gridExtra_2.3.1    jquerylib_0.1.4    splines_4.6.1     
##  [9] scales_1.4.0       yaml_2.3.12        fastmap_1.2.0      lattice_0.22-9    
## [13] R6_2.6.1           labeling_0.4.3     generics_0.1.4     knitr_1.51        
## [17] tibble_3.3.1       maketools_1.3.2    bslib_0.11.0       pillar_1.11.1     
## [21] RColorBrewer_1.1-3 rlang_1.2.0        cachem_1.1.0       xfun_0.59         
## [25] sass_0.4.10        sys_3.4.3          S7_0.2.2           otel_0.2.0        
## [29] cli_3.6.6          mgcv_1.9-4         withr_3.0.3        magrittr_2.0.5    
## [33] digest_0.6.39      grid_4.6.1         nlme_3.1-169       lifecycle_1.0.5   
## [37] vctrs_0.7.3        evaluate_1.0.5     glue_1.8.1         farver_2.1.2      
## [41] buildtools_1.0.0   purrr_1.2.2        tools_4.6.1        pkgconfig_2.0.3   
## [45] htmltools_0.5.9