BioPlayground

🧬
목록으로

공간 전사체 기술의 세 세대: Visium·Xenium·MERFISH로 조직 위에 유전자를 읽기

scRNA-seq가 잃어버린 공간 좌표를 되찾습니다. Visium의 스팟 바코딩, Xenium의 단일분자 FISH, MERFISH의 조합 코딩을 비교하고, 공간 데이터의 AnnData 구조를 이해합시다.

중급
|
20
|
검증 완료 (2026-07-24)
spatial transcriptomicsVisiumXeniumMERFISH
진행률0/73 (0%)

scRNA-seq는 좌표를 잃어버렸습니다

S26부터 S34까지, 단일세포 RNA-seq로 개별 세포의 전사체를 읽고, 클러스터를 나누고, 궤적을 그리고, 세포간 통신까지 재구성했습니다. 하지만 이 모든 분석에는 공통된 맹점이 하나 있었습니다 — 세포가 조직 내 어디에 있었는지 모른다는 것입니다. scRNA-seq는 조직을 해리(dissociation)해서 세포를 하나씩 꺼내므로, 그 세포가 종양의 중심부에 있었는지, 정상 조직과의 경계에 있었는지, 혈관 옆에 있었는지를 알 수 없습니다.

공간 전사체(Spatial Transcriptomics)는 이 좌표를 되찾아 줍니다. 조직 절편을 그대로 유지한 채, 그 위에서 유전자 발현을 읽습니다. 이 편에서는 현재 가장 널리 쓰이는 세 가지 기술 — 10x Visium, 10x Xenium, MERFISH — 의 원리와 해상도 차이를 비교하고, 공간 데이터가 어떤 구조로 저장되는지를 살펴봅니다.

기술 1: Visium — 스팟 바코드 캡처

Visium은 10x Genomics의 시퀀싱 기반 공간 전사체 플랫폼입니다. 원리는 다음과 같습니다.

  1. 조직 절편을 바코드가 인쇄된 슬라이드(Capture Area) 위에 올립니다.
  2. 슬라이드에는 약 5,000개의 스팟(직경 55μm, 간격 100μm)이 격자 형태로 배치되어 있고, 각 스팟에 고유한 공간 바코드가 할당되어 있습니다.
  3. 조직을 투과화(permeabilization)하면 mRNA가 방출되어 아래의 바코드에 포획됩니다.
  4. 포획된 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)에서 직접 시각화합니다.

  1. 사전에 설계한 유전자 패널(수백 개)에 대해 롤링 서클 증폭(RCA) 기반 프로브를 합성합니다.
  2. 프로브가 조직 내 mRNA에 혼성화(hybridization)합니다.
  3. 형광 현미경이 각 mRNA 분자를 개별 점으로 촬영합니다.
  4. 세포 분할(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 패턴(바이너리 코드)을 할당합니다. 2N2^N개의 코드 중 오류 정정이 가능한 코드만 선택하면(해밍 거리 ≥ 2), 수천 개의 유전자를 동시에 측정할 수 있습니다.

항목VisiumXeniumMERFISH
방식시퀀싱 (캡처)이미징 (프로브)이미징 (조합 코딩)
해상도스팟 (~55μm, 다세포)단일세포/단일분자단일세포/단일분자
유전자 수전 전사체 (~20k)~500 (패널)~1,000+ (조합 확장)
세포 형태보존 안 됨보존보존
처리량높음 (빠름)중간낮음 (촬영 시간)
장비 가격중간높음높음
주요 용도탐색적 전 전사체 분석가설 검증, 세포 유형 맵대규모 유전자 + 해상도

어떤 기술을 선택해야 하나

경험적 기준은 이렇습니다. **"어떤 유전자가 중요한지 아직 모른다"**면 Visium으로 전 전사체를 먼저 스캔합니다. 관심 유전자가 좁혀지면 Xenium이나 MERFISH로 단일세포/분자 해상도에서 검증합니다. 두 단계를 합치는 것이 가장 견고한 설계입니다.

공간 데이터의 AnnData 구조

공간 데이터도 Scanpy/AnnData 프레임워크에 저장됩니다. 핵심 차이는 adata.obsm["spatial"]XY 좌표가 들어간다는 것입니다.

python
import scanpy as sc
import 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 공간 슬롯 구조

text
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로 실행합니다.