Skip to content

mims-harvard/CONCERT

Repository files navigation

CONCERT predicts niche-aware perturbation responses in spatial transcriptomics

ProjectPage PaperPage CodePage Data License

Xiang Lin, Zhenglun Kong, Soumya Ghosh, Manolis Kellis, Marinka Zitnik

Advancements in spatial perturbation transcriptomics (SPT) have revolutionized our understanding of cellular behavior in native tissue contexts by integrating spatial and perturbation data. However, existing computational frameworks often fail to capture spatial complexities, focusing primarily on individual cell responses. To overcome this limitation, we propose CONCERT, a spatial-aware model designed to address novel counterfactual prediction (CP) tasks. CONCERT learns perturbation-specific kernels to capture various propagation patterns, enabling predicting response gene expression spatially. Beyond perturbation prediction, CONCERT uniquely enables counterfactual predictions of gene expression by switching one or more cell attributes, providing insights that are beyond the reach of current technologies. Leveraging this capability, we applied CONCERT to two additional datasets, addressing challenges that existing sequencing technologies cannot resolve. Evaluations on Perturb-map lung cancer datasets demonstrated that CONCERT consistently outperformed benchmark models, underscoring its potential to unravel spatially complex cellular mechanisms and drive therapeutic innovation.

⚡ Challenges from existing perturbation models

Ignoring cells' tissue context when predicting perturbations

issue

🔥 Challenges from existing spatial perturbation sequencing technologies

issue2

🛠️ Functions of CONCERT

  1. Predict perturbations on cells consdiering their niches (2D or 3D).
  2. Predict perturbations across slides.
  3. Impute missing cells with perturbation prediction.
  4. Learn scopes of perturbation effects on tissue space.
  5. Disentangle perturbation effects - intra or inter cells.

model

⚙️ Dependencies

Python - 3.10.12
torch==2.1.0
scanpy==1.10.1
sklearn==1.4.0
scipy==1.12.0
pandas==2.2.0
numpy==1.23.5
scvi-tools==1.3.3
wandb==0.22.1

💻 Run CONCERT

Example 1: train CONCERT on a single perturb-map data

  1. Model training
python src/run_concert_map.py \
  --config src/config.yaml \
  --sample GSM5808054 \
  --project_index map \
  --stage train \
  --data_file ../datasets/GSM5808054_data.h5 \
  --model_file model_map_GSM5808054.pt \
  --multi_kernel_mode True \
  --wandb \
  --wandb_project concert-map \
  --wandb_run train
  1. Define the spots for counterfactual prediction. Spots can be easily selected from the Shiny APP in the select_cells.R script in folder select_cells.

  2. Do perturbation prediction on the specified spots. Here we predict response gene expression of the spots in spots.txt with perturbagen Jak2-KO (knockout gene Jak2). Arguments --target_cell_tissue and --target_cell_perturbation are the targert cell/spot type and perturbation state for counterfactual prediction.

python src/run_concert_map.py  \
  --config src/config.yaml \
  --sample GSM5808054 \
  --project_index map \
  --stage eval \
  --data_file ../datasets/GSM5808054_data.h5 \
  --model_file model_map_GSM5808054.pt \
  --multi_kernel_mode True \
  --pert_cells select_cells/pert_cells_GSM5808054_patchclose_tumor_Jak2.txt \
  --target_cell_tissue tumor \
  --target_cell_perturbation Jak2
  1. Visualized the intermediate and final outputs - see folder outputs

Also see jupyter notebook showing the detailed steps of running CONCERT.

🗂️ Datasets

Dataset Raw data Processed data
Perturb-Map Raw Processed
Colon inflammation Raw Processed
Brain stroke Available from the authors of the original paper upon request Processed

⚖️ License

The code in this package is licensed under the MIT License.

📝 Reference

@article {Lin2025.11.08.686890,  
	author = {Lin, Xiang and Kong, Zhenglun and Ghosh, Soumya and Kellis, Manolis and Zitnik, Marinka},  
	title = {CONCERT predicts niche-aware perturbation responses in spatial transcriptomics},  
	elocation-id = {2025.11.08.686890},  
	year = {2025},  
	doi = {10.1101/2025.11.08.686890},  
	publisher = {Cold Spring Harbor Laboratory},  
	URL = {https://www.biorxiv.org/content/early/2025/11/10/2025.11.08.686890},  
	journal = {bioRxiv}  
}  

#### 💬 Questions
Please leave a Github issue or contact [Xiang Lin](mailto:xianglin226@gmail.com) or [Marinka Zitnik](mailto:marinka@zitnik.si)  

Releases

No releases published

Packages

No packages published