BioPlayground

🧬
목록으로

궤적 추정과 pseudotime: 한 장의 스냅샷에서 세포의 시간을 복원하기 (PAGA·Monocle3)

죽은 세포의 스냅샷에서 어떻게 분화의 시간축을 복원하나. pseudotime의 아이디어, PAGA의 그래프 추상화, Monocle3의 주그래프를 조혈 데이터로 직접 실습합니다.

심화
|
20
|
검증 완료 (2026-07-24)
trajectory inferencepseudotimePAGAMonocle3
진행률0/64 (0%)

세포는 죽었는데, 어떻게 그 시간을 읽나

S31까지 우리는 세포를 정적인 유형으로 나눴습니다. T세포, B세포, 단핵구. 그런데 생명은 정지 화면이 아닙니다. 조혈 줄기세포는 여러 단계를 거쳐 적혈구·백혈구로 분화합니다. 종양 세포는 약물에 노출되며 상태를 바꿉니다. 이 변화는 연속적인 흐름입니다.

문제는 scRNA-seq이 세포를 읽는 순간 그 세포를 죽인다는 것입니다. 우리 손에 있는 건 한 시점의 스냅샷뿐, 같은 세포를 시간에 따라 추적한 영상이 아닙니다. 그런데도 우리는 분화의 시간축을 복원하고 싶습니다. 어떻게 가능할까요?

핵심 발상 — 유사도가 곧 시간이다

관건은 하나의 가정입니다. 연속적으로 변하는 과정에서, 전사체가 비슷한 세포는 그 과정의 비슷한 지점에 있다. 한 시점에 조혈 조직을 뽑으면 줄기세포, 초기 전구세포, 중간 단계, 성숙 세포가 동시에 다 들어 있습니다. 이들을 전사체 유사도로 한 줄로 늘어세우면, 그 순서가 곧 분화의 진행 방향이 됩니다.

이 순서를 실제 시계 시간이 아니라 pseudotime(유사시간) 이라 부릅니다. 시작점(줄기세포)에서 각 세포까지의 "전사체 공간에서의 거리"입니다. 스냅샷 하나에 담긴 서로 다른 성숙 단계의 세포들을, 시간이 흐르듯 재배열하는 것 — 이것이 궤적 추정의 전부입니다.

PAGA — 클러스터 사이의 연결을 지도로

세포 수만 개를 직접 잇는 건 잡음이 큽니다. PAGA(Partition-based Graph Abstraction)는 먼저 S30의 Leiden 클러스터를 노드로 추상화한 뒤, 클러스터 사이의 연결 강도를 잽니다.

두 클러스터의 세포들이 kNN 그래프에서 서로 얼마나 이웃인지를 통계적으로 검정해, 우연보다 강하게 연결되면 두 클러스터 사이에 엣지를 긋습니다. 결과는 "어떤 세포 유형이 어떤 유형으로 이어지는가"를 보여주는 추상 그래프입니다. 조혈이라면 줄기세포 → 골수계 전구 → 과립구, → 적혈구계 전구 → 적혈구 같은 분기 지도가 그려집니다.

PAGA의 강점은 연결과 단절을 함께 보여준다는 것입니다. 억지로 모든 세포를 하나의 궤적에 끼워 넣지 않고, 실제로 이어진 곳만 잇습니다. 그래서 여러 갈래로 분기하는 분화나, 아예 분리된 계통을 정직하게 표현합니다.

Monocle3 — 세포를 지나는 주그래프

Monocle3는 다른 각도로 접근합니다. UMAP 같은 저차원 공간에서 세포 구름을 관통하는 주그래프(principal graph) — 세포 분포의 중심을 따라가는 나무 모양 곡선 — 를 학습합니다. 그런 뒤 뿌리(줄기세포)를 지정하면, 주그래프 위에서 뿌리로부터의 측지 거리가 각 세포의 pseudotime이 됩니다.

두 도구의 성격을 정리하면 다음과 같습니다.

항목PAGAMonocle3
단위클러스터(추상 그래프)개별 세포(주그래프)
강점연결/단절 진단, 분기 지도세포 단위 pseudotime, 분기점
출력클러스터 연결도세포별 pseudotime + 궤적
표준 조합Scanpy 통합R(monocle3)

실무에서는 PAGA로 큰 지도(어디가 이어지나)를 먼저 그리고, diffusion pseudotime이나 Monocle3로 세포 단위 순서를 매기는 조합이 흔합니다.

손으로 pseudotime 감 잡기

세포 5개가 전사체 공간에서 대략 A–B–C–D–E 순으로 사슬처럼 놓였고, A가 줄기세포(뿌리)라고 합시다. 이웃 거리로 그래프를 만들면 A-B, B-C, C-D, D-E 엣지가 생깁니다. A에서 각 세포까지 그래프 최단거리를 재면 pseudotime = {A:0, B:1, C:2, D:3, E:4}. E가 가장 성숙한 세포입니다. 실제로는 수만 세포·분기가 있어 복잡하지만, 원리는 뿌리에서의 그래프 거리라는 이 한 줄입니다.

Scanpy 실습 (Paul15 조혈)

Scanpy 내장 조혈 분화 데이터로 PAGA + diffusion pseudotime을 돌립니다.

python
import scanpy as sc
adata = sc.datasets.paul15() # 골수 조혈 분화 데이터
# 표준 전처리 (S28~S29 압축)
sc.pp.normalize_total(adata, target_sum=1e4); sc.pp.log1p(adata)
sc.pp.pca(adata, n_comps=30)
sc.pp.neighbors(adata, n_neighbors=15)
sc.tl.leiden(adata, resolution=1.0, flavor="igraph", n_iterations=2)
# PAGA: 클러스터 연결 지도
sc.tl.paga(adata, groups="leiden")
sc.pl.paga(adata, color="leiden") # 어떤 클러스터가 이어지나
# PAGA 초기화로 UMAP (궤적이 살아있는 임베딩)
sc.tl.umap(adata, init_pos="paga")
sc.pl.umap(adata, color="leiden")
python
# diffusion pseudotime: 뿌리 세포 지정 후 시간 매기기
adata.uns["iroot"] = 0 # 줄기세포로 알려진 클러스터의 한 세포
sc.tl.diffmap(adata)
sc.tl.dpt(adata)
sc.pl.umap(adata, color="dpt_pseudotime") # 뿌리에서 멀수록 성숙

color="dpt_pseudotime" UMAP에서 색이 뿌리(0)부터 그라데이션으로 번져 나가면, 그 방향이 분화의 흐름입니다. 특정 유전자 발현을 pseudotime 축에 대해 그리면(예: sc.pl.paga_path), 분화가 진행되며 켜지고 꺼지는 유전자의 동역학을 볼 수 있습니다. 조혈이라면 줄기세포 마커가 꺼지고 계통 특이 마커가 켜지는 스위치가 나타납니다.

CS 매핑

  • 그래프 최단경로 / 측지 거리: pseudotime은 뿌리에서의 그래프 거리입니다. DryBench의 최단경로(Dijkstra)·측지 거리와 직결됩니다.
  • 주그래프 / 최소신장트리: Monocle3의 principal graph는 데이터 구름을 관통하는 트리로, MST·principal curve의 확장입니다.
  • 그래프 추상화(coarsening): PAGA의 클러스터 축약은 그래프를 상위 수준으로 압축하는 것으로, 멀티레벨 그래프 알고리즘과 같은 발상입니다.
  • 통계적 이웃 검정: 클러스터 연결도는 랜덤 기대 대비 이웃 밀도를 검정하는 것으로, 네트워크 유의성 검정입니다.

자주 만나는 결함

  • 뿌리를 잘못 지정 — pseudotime은 시작점에 전적으로 의존합니다. 생물학적으로 근거 있는 줄기/전구 세포를 뿌리로 잡아야 합니다.
  • 연속 과정이 아닌 데이터에 궤적 강제 — 서로 무관한 세포 유형(예: 성숙 T세포 vs B세포)에 억지 궤적을 그으면 무의미합니다. PAGA로 연결 여부를 먼저 확인합시다.
  • 배치 미보정 데이터에 궤적 — 배치 효과가 가짜 궤적을 만듭니다. S31 통합이 선행돼야 합니다.
  • pseudotime을 실제 시간으로 해석 — pseudotime은 순서일 뿐, 실제 경과 시간(시·일)이 아닙니다. 속도 정보는 다음 편 RNA velocity가 다룹니다.

더 깊게 파고 싶다면

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

  • 참고 무료 웹북: Single-cell best practices (sc-best-practices.org) — 궤적 추정 챕터가 방법 선택과 진단을 상세히 다룹니다.
  • 원 논문(PAGA): Wolf et al. (2019), PAGA: graph abstraction reconciles clustering with trajectory inference through a topology preserving map of single cells, Genome Biology 20:59.
  • 원 논문(Monocle3): Cao et al. (2019), The single-cell transcriptional landscape of mammalian organogenesis, Nature 566:496. 대규모 주그래프 궤적의 원천입니다.
  • 벤치마크: Saelens et al. (2019), A comparison of single-cell trajectory inference methods, Nature Biotechnology 37:547. 45개 방법을 객관 비교한 지도입니다.

pseudotime은 세포의 순서를 줬지만 방향과 속도는 주지 못했습니다 — 이 세포가 앞으로 나아가는지 되돌아가는지 모릅니다. 다음 편 S33에서 mRNA의 미성숙/성숙 비율로 세포의 미래를 예측하는 RNA velocity로 나아가, 스냅샷에 진짜 화살표를 그려 넣습니다.