BioPlayground

🧬
목록으로

공간 셀 디컨볼루션: Tangram·cell2location으로 스팟 속 세포를 풀어내기

Visium 스팟에 섞인 여러 세포 유형의 비율을 추정합니다. Tangram의 최적 수송, cell2location의 베이즈 모델, RCTD의 회귀 접근을 비교하고 직접 실습합시다.

심화
|
20
|
검증 완료 (2026-07-24)
spatial deconvolutionTangramcell2locationcell type proportion
진행률0/73 (0%)

스팟 하나에 세포가 몇 개 숨어 있는가

S35에서 봤듯이, Visium의 55μm 스팟에는 보통 1~10개의 세포가 들어갑니다. 스팟 발현은 이 세포들의 혼합물입니다. 뇌 조직의 한 스팟에 뉴런 3개, 성상세포 2개, 올리고덴드로사이트 1개가 있다면, 그 스팟의 발현 프로파일은 이 세 유형의 가중 평균입니다.

디컨볼루션(deconvolution)은 이 혼합물을 풀어내는 과정입니다 — 각 스팟에서 어떤 세포 유형이 얼마나 기여하는지를 추정합니다. 이를 위해서는 참조(reference) 데이터, 즉 각 세포 유형의 순수한 발현 프로파일이 필요합니다. 보통 같은 조직에서 얻은 scRNA-seq 데이터가 이 참조 역할을 합니다.

이 편에서는 디컨볼루션이 수학적으로 어떤 문제인지 정식화하고, Tangram, cell2location, RCTD 세 도구의 접근 방식을 비교한 뒤, Tangram으로 직접 실습합니다.

수학적 정식화: 혼합물 모델

스팟 jj의 발현 벡터를 yjRG\mathbf{y}_j \in \mathbb{R}^G (G개 유전자)라 하고, 세포 유형 kk의 참조 발현 프로파일을 rkRG\mathbf{r}_k \in \mathbb{R}^G라 하면, 선형 혼합 모델은 다음과 같습니다.

yjk=1Kwjkrk,wjk0,kwjk=1\mathbf{y}_j \approx \sum_{k=1}^{K} w_{jk} \cdot \mathbf{r}_k, \qquad w_{jk} \geq 0, \quad \sum_k w_{jk} = 1

여기서 wjkw_{jk}는 스팟 jj에서 세포 유형 kk의 **비율(proportion)**입니다. 비음수이고 합이 1이어야 하므로, 이것은 심플렉스 위의 볼록 최적화 문제입니다.

문제의 어려움은 세 가지입니다. (1) 유전자 수(~20,000)가 세포 유형 수(~10~30)보다 훨씬 많아 과결정(overdetermined) 시스템이지만, (2) 참조 프로파일 자체의 불확실성(세포 간 변이)이 크고, (3) 스팟의 총 세포 수를 모릅니다(비율은 알 수 있지만 절대 수는 추가 정보 없이 알 수 없습니다).

세 도구의 접근 방식

Tangram — 최적 수송

Tangram(Biancalani et al., 2021)은 문제를 **최적 수송(optimal transport)**으로 풀어냅니다. scRNA-seq 참조의 개별 세포를 공간 스팟에 "배치(map)"하되, 두 조건을 동시에 만족시킵니다: (1) 배치된 세포의 발현 합이 스팟 발현과 일치하고, (2) 배치가 가능한 한 균일합니다(어느 한 스팟에 모든 세포가 몰리지 않도록).

이것은 PyTorch 기반의 미분 가능 최적화로 구현되어 GPU 가속이 가능합니다. 출력은 세포 × 스팟 확률 행렬이며, 이를 집계하면 세포 유형별 비율이 됩니다.

cell2location — 베이즈 모델

cell2location(Kleshchevnikov et al., 2022)은 완전 베이즈 접근을 취합니다. 참조 데이터에서 세포 유형별 발현 특성을 추정하고, 공간 데이터의 각 스팟을 이 특성의 혼합으로 모델링합니다. 음이항 분포 기반의 생성 모델을 사용하며, **세포 유형별 절대 풍부도(absolute abundance)**를 추정할 수 있다는 것이 Tangram과의 차이입니다.

RCTD — 가중 최소제곱 회귀

RCTD(Robust Cell Type Decomposition, Cable et al., 2022)는 전통적 회귀 접근입니다. 참조에서 세포 유형별 평균 발현을 구한 뒤, 각 스팟의 발현을 이 평균의 가중 합으로 분해합니다. 포아송/음이항 가중 최소제곱을 사용하며, doublet 모드(스팟에 최대 2개 유형만 허용)와 full 모드를 선택할 수 있습니다.

항목Tangramcell2locationRCTD
방법론최적 수송베이즈 (음이항)가중 최소제곱
출력비율 (상대적)절대 풍부도 + 비율비율
GPU 지원예 (PyTorch)예 (Pyro/scvi-tools)아니오 (R)
참조 해상도단일세포 수준 매핑세포 유형 수준세포 유형 수준
생태계PythonPython (scvi-tools)R (spacexr)
벤치마크 성능상위권상위권상위권

세 도구 모두 벤치마크에서 강력한 성능을 보이며, 선택은 주로 사용하는 생태계(Python vs R)와 출력 유형(비율 vs 절대 풍부도)에 따라 결정됩니다.

실습: Tangram으로 Visium 뇌 스팟 디컨볼루션

Tangram 공식 튜토리얼의 마우스 뇌 데이터를 사용합니다. Visium 공간 데이터 + scRNA-seq 참조로 스팟별 세포 유형 비율을 추정합니다.

python
import tangram as tg
import scanpy as sc
# 1. 참조 scRNA-seq 로드 + 전처리
adata_sc = sc.read_h5ad("mouse_brain_sc.h5ad")
sc.pp.normalize_total(adata_sc)
sc.pp.log1p(adata_sc)
# 2. 공간 Visium 데이터 로드
adata_sp = sc.read_visium("visium_brain/")
sc.pp.normalize_total(adata_sp)
sc.pp.log1p(adata_sp)
# 3. 마커 유전자로 매핑 유전자 선택
tg.pp_adatas(adata_sc, adata_sp, genes=marker_genes)
# 4. Tangram 매핑 (GPU 권장)
ad_map = tg.map_cells_to_space(
adata_sc, adata_sp,
mode="cells", # 단일세포 수준 매핑
density_prior="rna_count_based",
num_epochs=500,
device="cuda:0",
)
# 5. 세포 유형 비율 집계
tg.project_cell_annotations(ad_map, adata_sp, annotation="cell_type")
sc.pl.spatial(adata_sp, color=["Neuron", "Astrocyte", "Oligo"], spot_size=1.5)

결과에서 뉴런 비율이 피질 회백질에, 올리고덴드로사이트가 백질에 집중되면, 디컨볼루션이 해부학적 구조를 올바르게 복원하고 있다는 증거입니다.

유전자 발현 투영

디컨볼루션 결과를 사용해, 참조 scRNA-seq의 유전자 발현을 공간에 투영할 수 있습니다. Visium에서 측정하지 않은 유전자도 scRNA-seq 참조에 있다면 공간적으로 추정할 수 있다는 뜻입니다.

python
# scRNA-seq 발현을 공간에 투영
tg.project_genes(ad_map, adata_sp, adata_sc)
sc.pl.spatial(adata_sp, color=["Gad1", "Slc17a7"], spot_size=1.5)

Gad1(억제성 뉴런 마커)과 Slc17a7(흥분성 뉴런 마커)이 서로 다른 피질 층에 분포하면, 단일세포 참조가 공간 정보를 보완하는 효과를 확인할 수 있습니다.

CS 매핑

  • 비음수 행렬 분해(NMF): 디컨볼루션의 수학적 구조는 YWRY \approx W \cdot R (비음수 제약)로 NMF와 동일합니다. 추천 시스템의 사용자-아이템 분해와 같은 원리입니다.
  • 최적 수송(Optimal Transport): Tangram의 세포-스팟 매핑은 Wasserstein 거리 최소화 기반 최적 수송 문제입니다. 물류 최적화·GAN 훈련(WGAN)에서도 사용됩니다.
  • 볼록 최적화: 비율이 심플렉스(비음수, 합 = 1) 위에 있으므로, 제약 조건부 볼록 최적화 문제입니다.

자주 만나는 결함

  • 참조 데이터 품질 — 디컨볼루션 결과는 참조 scRNA-seq의 세포 유형 주석에 전적으로 의존합니다. 참조에서 세포 유형이 잘못 주석되었거나 빠져 있으면, 그 오류가 공간 분석에 그대로 전파됩니다.
  • 참조-공간 불일치 — scRNA-seq와 공간 데이터가 다른 개체, 다른 조건, 다른 기술로 생성되었다면, 기술적 차이가 디컨볼루션을 왜곡합니다. 가능하면 같은 조직에서 두 데이터를 얻는 것이 이상적입니다.
  • 비율 vs 절대 수 혼동 — Tangram/RCTD의 출력은 비율입니다. "뉴런 40%"가 스팟에 뉴런이 4개 있다는 뜻은 아닙니다(총 세포 수를 모르므로). 절대 풍부도가 필요하면 cell2location을 고려합시다.
  • 마커 유전자 선택에 민감 — Tangram의 매핑 품질은 어떤 유전자를 사용하느냐에 크게 좌우됩니다. 범용 마커보다 조직 특이적 마커를 선택하면 정확도가 올라갑니다.

더 깊게 파고 싶다면

본문은 BPD가 직접 재구성한 서술입니다. 심화는 아래 정통 자료를 활용합시다.

  • 원 논문(Tangram): Biancalani et al. (2021), Deep learning and alignment of spatially resolved single-cell transcriptomes with Tangram, Nature Methods 18:1352.
  • 원 논문(cell2location): Kleshchevnikov et al. (2022), Cell2location maps fine-grained cell types in spatial transcriptomics, Nature Biotechnology 40:661.
  • 원 논문(RCTD/spacexr): Cable et al. (2022), Robust decomposition of cell type mixtures in spatial transcriptomics, Nature Biotechnology 40:517.
  • 벤치마크: Li et al. (2023), Benchmarking spatial and single-cell transcriptomics integration methods for transcript distribution prediction and cell type deconvolution, Nature Methods 19:662.
  • 참고 무료 웹북: Single-cell best practices (sc-best-practices.org) — Deconvolution 챕터.

Spatial Omics 시리즈를 마쳤습니다 — 기술 원리(S35), 공간 통계(S36), 디컨볼루션(S37). 이제 시선을 유전자 발현에서 유전자 조절로 돌립니다. 다음 편 S38에서는 히스톤 변형이 어디에 쌓이는지를 읽는 ChIP-seq와 MACS 피크 검출로 후성유전체 시리즈를 시작합니다.