scRNA-seq는 좌표를 잃어버렸습니다
S26부터 S34까지, 단일세포 RNA-seq로 개별 세포의 전사체를 읽고, 클러스터를 나누고, 궤적을 그리고, 세포간 통신까지 재구성했습니다. 하지만 이 모든 분석에는 공통된 맹점이 하나 있었습니다 — 세포가 조직 내 어디에 있었는지 모른다는 것입니다. scRNA-seq는 조직을 해리(dissociation)해서 세포를 하나씩 꺼내므로, 그 세포가 종양의 중심부에 있었는지, 정상 조직과의 경계에 있었는지, 혈관 옆에 있었는지를 알 수 없습니다.
공간 전사체(Spatial Transcriptomics)는 이 좌표를 되찾아 줍니다. 조직 절편을 그대로 유지한 채, 그 위에서 유전자 발현을 읽습니다. 이 편에서는 현재 가장 널리 쓰이는 세 가지 기술 — 10x Visium, 10x Xenium, MERFISH — 의 원리와 해상도 차이를 비교하고, 공간 데이터가 어떤 구조로 저장되는지를 살펴봅니다.
기술 1: Visium — 스팟 바코드 캡처
Visium은 10x Genomics의 시퀀싱 기반 공간 전사체 플랫폼입니다. 원리는 다음과 같습니다.
- 조직 절편을 바코드가 인쇄된 슬라이드(Capture Area) 위에 올립니다.
- 슬라이드에는 약 5,000개의 스팟(직경 55μm, 간격 100μm)이 격자 형태로 배치되어 있고, 각 스팟에 고유한 공간 바코드가 할당되어 있습니다.
- 조직을 투과화(permeabilization)하면 mRNA가 방출되어 아래의 바코드에 포획됩니다.
- 포획된 mRNA를 cDNA로 역전사하고 시퀀싱합니다. 각 리드에 공간 바코드가 붙어 있으므로, 어떤 스팟에서 나온 리드인지 역추적할 수 있습니다.
결과는 스팟 × 유전자 행렬입니다 — scRNA-seq의 세포 × 유전자 행렬과 구조가 같지만, "세포" 대신 "스팟"이 관측 단위입니다.
Visium의 한계: 해상도
55μm 스팟 하나에는 보통 1~10개의 세포가 들어갑니다. 따라서 스팟 하나의 발현은 **여러 세포의 혼합물(mixture)**입니다. 이것은 단일세포 해상도가 아니라 "근사적 공간 해상도"입니다. 이 혼합물을 풀어내는 것이 S37의 디컨볼루션입니다.
Visium HD(2024~)는 스팟 크기를 2μm로 줄여 이 문제를 크게 완화했지만, 아직 표준 Visium 데이터가 압도적으로 많습니다.
기술 2: Xenium — 조직 위 단일분자 이미징
Xenium은 10x Genomics의 이미징 기반 공간 전사체 플랫폼입니다. 시퀀싱 대신, 형광 프로브로 개별 mRNA 분자를 제자리(in situ)에서 직접 시각화합니다.
- 사전에 설계한 유전자 패널(수백 개)에 대해 롤링 서클 증폭(RCA) 기반 프로브를 합성합니다.
- 프로브가 조직 내 mRNA에 혼성화(hybridization)합니다.
- 형광 현미경이 각 mRNA 분자를 개별 점으로 촬영합니다.
- 세포 분할(cell segmentation)을 통해 어떤 점이 어떤 세포에 속하는지를 결정합니다.
결과는 세포 × 유전자 행렬 + 세포별 XY 좌표 + 세포 경계 폴리곤입니다. Visium과 달리 단일세포 해상도이며, 세포의 형태까지 보존됩니다.
Xenium의 트레이드오프: 유전자 수
Xenium은 사전 설계된 유전자 패널만 측정합니다(현재 ~500개). Visium의 전 전사체(~20,000 유전자)에 비해 유전자 수가 제한적입니다. 따라서 탐색적 분석(어떤 유전자가 중요한지 모르는 경우)에는 Visium이, 가설 검증(관심 유전자가 정해진 경우)에는 Xenium이 적합합니다.
기술 3: MERFISH — 조합 바코딩의 힘
MERFISH(Multiplexed Error-Robust FISH)는 하버드 Zhuang 연구팀이 개발한 이미징 기반 방법입니다. Xenium과 비슷하게 형광 이미징을 사용하지만, 핵심 차이는 **조합 바코딩(combinatorial coding)**입니다.
형광 채널이 4개뿐이라도, N 라운드의 연속 촬영에서 각 유전자에 고유한 ON/OFF 패턴(바이너리 코드)을 할당합니다. 개의 코드 중 오류 정정이 가능한 코드만 선택하면(해밍 거리 ≥ 2), 수천 개의 유전자를 동시에 측정할 수 있습니다.
| 항목 | Visium | Xenium | MERFISH |
|---|---|---|---|
| 방식 | 시퀀싱 (캡처) | 이미징 (프로브) | 이미징 (조합 코딩) |
| 해상도 | 스팟 (~55μm, 다세포) | 단일세포/단일분자 | 단일세포/단일분자 |
| 유전자 수 | 전 전사체 (~20k) | ~500 (패널) | ~1,000+ (조합 확장) |
| 세포 형태 | 보존 안 됨 | 보존 | 보존 |
| 처리량 | 높음 (빠름) | 중간 | 낮음 (촬영 시간) |
| 장비 가격 | 중간 | 높음 | 높음 |
| 주요 용도 | 탐색적 전 전사체 분석 | 가설 검증, 세포 유형 맵 | 대규모 유전자 + 해상도 |
어떤 기술을 선택해야 하나
경험적 기준은 이렇습니다. **"어떤 유전자가 중요한지 아직 모른다"**면 Visium으로 전 전사체를 먼저 스캔합니다. 관심 유전자가 좁혀지면 Xenium이나 MERFISH로 단일세포/분자 해상도에서 검증합니다. 두 단계를 합치는 것이 가장 견고한 설계입니다.
공간 데이터의 AnnData 구조
공간 데이터도 Scanpy/AnnData 프레임워크에 저장됩니다. 핵심 차이는 adata.obsm["spatial"]에 XY 좌표가 들어간다는 것입니다.
import scanpy as scimport squidpy as sq
# Visium 예제 데이터 로드adata = sq.datasets.visium_hne_adata()
# 공간 좌표 확인print(adata.obsm["spatial"].shape) # (n_spots, 2)
# H&E 이미지 위에 유전자 발현 오버레이sc.pl.spatial(adata, color="Mbp", spot_size=1.5)sc.pl.spatial이 H&E 염색 이미지 위에 각 스팟의 발현을 색으로 오버레이합니다. 뇌 조직이라면 Mbp(수초 단백질)가 백질 영역에 집중된 것이 보일 것입니다 — 유전자 발현이 해부학적 구조와 일치하는 첫 번째 직관입니다.
AnnData 공간 슬롯 구조
adata.obsm["spatial"] # (n, 2) 좌표
adata.uns["spatial"] # 스케일 팩터, 이미지 경로
adata.uns["spatial"]["V1_Human_Brain"]["images"] # H&E 이미지 배열
adata.uns["spatial"]["V1_Human_Brain"]["scalefactors"] # 스팟 크기, 이미지 축척Xenium/MERFISH 데이터는 추가로 adata.obs["cell_id"], adata.obsm["spatial"]에 세포 중심 좌표, adata.uns에 세포 경계 폴리곤이 들어갑니다. 구조는 같되 관측 단위가 스팟에서 세포로 바뀐 것뿐입니다.
CS 매핑
- 래스터 vs 벡터 그래픽: Visium의 고정 격자 스팟은 래스터 이미지의 픽셀에, Xenium/MERFISH의 개별 분자 좌표는 벡터 그래픽의 점에 대응합니다. 해상도와 용량의 트레이드오프도 동일합니다.
- 바코드 해시맵: Visium의 공간 바코드 → 스팟 매핑은 해시 테이블 룩업과 같습니다. 바코드 충돌이 없으므로 완전 해싱입니다.
- 조합 코딩 / 해밍 코드: MERFISH의 바이너리 바코드 + 오류 정정은 정보 이론의 해밍 코드와 동일한 원리입니다. DryBench의 오류 정정 부호와 직결됩니다.
자주 만나는 결함
- Visium 스팟을 단일세포로 해석 — 스팟 하나에 여러 세포가 있으므로, 스팟 발현을 특정 세포 유형의 것으로 단정하면 안 됩니다. 디컨볼루션(S37)이 필요합니다.
- 이미지 정렬(registration) 실패 — H&E 이미지와 발현 데이터의 좌표가 어긋나면 모든 공간 분석이 무의미해집니다. Space Ranger 출력의
tissue_positions.csv를 반드시 확인합시다. - Xenium 세포 분할 오류 — 밀집된 조직에서 세포 경계가 잘못 잡히면, 이웃 세포의 mRNA가 한 세포에 할당됩니다. 분할 품질 메트릭을 먼저 확인합시다.
- 이미징 기반 기술의 자가형광 — 조직의 자가형광이 프로브 신호와 겹치면 위양성이 늘어납니다. 조직 유형별로 형광 채널 선택에 주의가 필요합니다.
더 깊게 파고 싶다면
본문은 BPD가 직접 재구성한 서술입니다. 심화는 아래 정통 자료를 활용합시다.
- 원 논문(공간 전사체 노벨상): Ståhl et al. (2016), Visualization and analysis of gene expression in tissue sections by spatial transcriptomics, Science 353:78. 2023 노벨상(화학)의 근간입니다.
- 원 논문(MERFISH): Chen et al. (2015), Spatially resolved, highly multiplexed RNA profiling in single cells, Science 348:aaa6090.
- 10x Visium 공식 문서: 10x Genomics Support (support.10xgenomics.com) — Space Ranger 파이프라인과 데이터 형식 안내.
- 벤치마크: Moses & Bhatt (2022), Museum of spatial transcriptomics, Nature Methods 19:534. 기술 비교의 종합 지도입니다.
- 참고 무료 웹북: Single-cell best practices (sc-best-practices.org) — Spatial Omics 챕터.
이제 공간 데이터가 어떤 것인지 알았습니다. 다음 편 S36에서는 이 데이터 위에서 공간 통계 분석 — 이웃 세포 유형 구성, 공간 자기상관, 리간드-수용체의 공간적 공존 — 을 Squidpy와 Giotto로 실행합니다.