BioPlayground

🧬
목록으로

세포간 통신 네트워크 재구성: CellChat·CellPhoneDB로 리간드-수용체 대화를 읽기

단일세포 데이터에서 세포 유형 사이의 대화를 재구성합니다. 리간드-수용체 쌍 데이터베이스, 순열 검정의 통계, 그리고 CellChat으로 직접 통신 네트워크를 시각화해 봅시다.

심화
|
20
|
검증 완료 (2026-07-24)
cell-cell communicationCellChatCellPhoneDBligand-receptor
진행률0/73 (0%)

세포는 혼자 결정하지 않습니다

S32에서 궤적을, S33에서 velocity를 통해 세포의 분화 방향을 읽었습니다. 그런데 세포가 왜 그 방향으로 분화했는지는 아직 답하지 못했습니다. 줄기세포가 뉴런이 되는 것은 내부 유전자 프로그램만으로는 설명되지 않습니다 — 주변 세포가 보낸 리간드가 표면의 수용체에 결합하면서 신호 전달 캐스케이드가 점화되고, 그제야 분화가 시작됩니다.

문제는, scRNA-seq 데이터에서 이 대화를 직접 관찰할 수 없다는 것입니다. 우리가 가진 것은 각 세포의 유전자 발현 수준뿐입니다. 하지만 만약 세포 유형 A가 리간드 X를 높이 발현하고, 세포 유형 B가 수용체 Y를 높이 발현한다면, A→B 방향으로 X-Y 신호가 존재할 가능성이 높다고 추론할 수 있습니다. 이것이 세포간 통신 분석의 기본 논리입니다.

이 편에서는 이 추론이 어떤 통계적 검정 위에 서 있는지, 대표 도구인 CellPhoneDB와 CellChat이 어떻게 다른지, 그리고 PBMC 데이터에서 직접 통신 네트워크를 그려 봅니다.

기본 원리: 리간드-수용체 쌍 데이터베이스 + 발현 검정

세포간 통신 분석은 크게 세 단계로 이뤄집니다.

1단계 — 리간드-수용체 쌍 데이터베이스 준비: 수천 개의 알려진 L-R 쌍(예: CXCL12-CXCR4, WNT5A-FZD5)이 정리된 데이터베이스를 사용합니다. CellPhoneDB는 자체 데이터베이스(~2,000 상호작용), CellChat은 CellChatDB(~3,000 상호작용, 분비/세포접촉/ECM 경로 분류 포함)를 제공합니다.

2단계 — 세포 유형별 발현 확인: 클러스터링된 세포 유형(S30)별로 각 유전자의 평균 발현을 계산합니다. L-R 쌍의 리간드가 세포 유형 A에서, 수용체가 세포 유형 B에서 유의하게 발현되면 후보 상호작용으로 등록합니다.

3단계 — 통계적 유의성 검정: 관찰된 L-R 발현 조합이 우연히 나올 수 있는지를 검정합니다. 방법은 도구마다 다릅니다.

CellPhoneDB vs CellChat: 접근 방식의 차이

CellPhoneDB — 순열 검정

CellPhoneDB의 통계는 직관적입니다. 세포의 유형 라벨을 무작위로 섞은 뒤(순열), L-R 쌍의 평균 발현을 다시 계산합니다. 이를 1,000번 반복하면 귀무 분포가 만들어지고, 실제 관찰값이 이 분포에서 극단적이면 유의한 상호작용으로 판정합니다.

장점은 가정이 적다는 것입니다. 단점은 계산 비용이 높고(순열 1,000회 × L-R 쌍 수 × 세포 유형 쌍 수), 상호작용의 방향(A→B vs B→A)을 명시적으로 구분하지 않는다는 것입니다.

CellChat — 질량 작용 법칙 + 네트워크 분석

CellChat은 물리화학에서 차용한 **질량 작용 법칙(law of mass action)**을 사용합니다. 리간드 농도와 수용체 농도의 곱에 비례하는 통신 확률을 계산하고, 여기에 보조 인자(co-factor)까지 반영합니다. 순열 검정 대신 해석적 모델을 사용하므로 더 빠르고, 상호작용의 강도를 정량적으로 비교할 수 있습니다.

CellChat의 또 다른 강점은 네트워크 수준 분석입니다. 개별 L-R 쌍을 넘어서, 신호 경로(pathway) 수준에서 통신 패턴을 요약하고, 어떤 세포 유형이 네트워크의 허브(sender/receiver/mediator)인지를 중심성 분석으로 보여 줍니다.

항목CellPhoneDBCellChat
통계 방법순열 검정 (비모수)질량 작용 법칙 (해석적)
L-R 데이터베이스~2,000 상호작용~3,000+ (분비/접촉/ECM 분류)
네트워크 분석제한적허브 분석 · 패턴 분류 내장
다중 조건 비교v5부터 지원v2부터 강력 지원
구현PythonR (Python wrapper 존재)
속도느림 (순열)빠름

NicheNet — 다운스트림까지 추적

CellPhoneDB와 CellChat이 "누가 누구에게 신호를 보냈는가"를 다룬다면, NicheNet은 한 걸음 더 나아갑니다. 수신 세포에서 실제로 어떤 하류 유전자가 변했는지까지 연결합니다. 사전 학습된 리간드-표적 네트워크를 활용해, 리간드가 수용체를 거쳐 전사 인자를 활성화하고 최종적으로 어떤 표적 유전자를 바꾸는지를 예측합니다.

실습: PBMC 데이터로 면역세포 통신 네트워크 그리기

CellChat v2(R)를 사용합니다. PBMC 데이터에서 T세포, B세포, NK세포, 단핵구 사이의 통신을 재구성합니다.

r
library(CellChat)

# Seurat 객체에서 CellChat 입력 생성
cellchat <- createCellChat(object = seurat_obj, group.by = "cell_type")

# CellChatDB 로드 (분비 + 세포접촉 + ECM)
CellChatDB <- CellChatDB.human
cellchat@DB <- CellChatDB

# 전처리: 발현 서브세팅 + 과발현 L-R 식별
cellchat <- subsetData(cellchat)
cellchat <- identifyOverExpressedGenes(cellchat)
cellchat <- identifyOverExpressedInteractions(cellchat)

# 통신 확률 계산 (질량 작용 법칙)
cellchat <- computeCommunProb(cellchat, type = "triMean")
cellchat <- filterCommunication(cellchat, min.cells = 10)

# 경로 수준 집계 + 네트워크 계산
cellchat <- computeCommunProbPathway(cellchat)
cellchat <- aggregateNet(cellchat)

# 시각화: 전체 통신 네트워크
netVisual_circle(cellchat@net$count, vertex.size = groupSize)

netVisual_circle이 세포 유형 간 원형 네트워크를 그려 줍니다. 선의 굵기가 상호작용 수에 비례하며, 단핵구(Monocyte)가 가장 많은 신호를 보내는 허브로 나타나는 것이 전형적입니다.

특정 경로 시각화

r
# MIF 경로의 세포간 통신
netVisual_aggregate(cellchat, signaling = "MIF", layout = "chord")

# 개별 L-R 쌍의 발현 패턴
netVisual_bubble(cellchat, sources.use = c("Monocyte"),
                 targets.use = c("CD4_T", "CD8_T", "NK"),
                 remove.isolate = TRUE)

bubble plot에서 원의 크기는 통신 확률, 색은 p-value를 나타냅니다. MIF-CD74 쌍이 Monocyte→T세포 방향에서 강하게 나타나면, 이것은 면역 조절 신호의 증거입니다.

Sender-Receiver 역할 분석

r
# 네트워크 중심성 기반 역할 분류
cellchat <- netAnalysis_computeCentrality(cellchat, slot.name = "netP")
netAnalysis_signalingRole_heatmap(cellchat, signaling = c("MIF", "CXCL"))

이 히트맵은 각 세포 유형이 Sender(신호 발신), Receiver(수신), Mediator(중계), Influencer(영향자) 중 어떤 역할인지를 경로별로 보여 줍니다. 단핵구가 대부분의 경로에서 Sender인 반면, T세포는 Receiver에 집중되는 패턴이 전형적입니다.

CS 매핑

  • 이분 그래프(bipartite graph): L-R 상호작용은 리간드 집합과 수용체 집합 사이의 이분 그래프입니다. 세포 유형 쌍까지 확장하면 3-partite 구조가 됩니다.
  • 순열 검정: CellPhoneDB의 라벨 셔플링은 비모수 검정의 전형으로, DryBench의 부트스트래핑·순열 검정과 동일한 논리입니다.
  • 네트워크 중심성: CellChat의 Sender/Receiver 분류는 그래프의 degree·betweenness·PageRank 중심성과 직결됩니다.

자주 만나는 결함

  • 발현 = 단백질 기능이 아님 — mRNA 발현이 높다고 해당 리간드/수용체 단백질이 실제로 세포 표면에 존재한다는 보장이 없습니다. 통신 분석 결과는 반드시 후보이며, 실험 검증이 필요합니다.
  • 과다 검정(multiple testing) — 수천 개 L-R 쌍 × 수십 개 세포 유형 쌍 = 수십만 번의 검정입니다. BH(Benjamini-Hochberg) 보정 없이 p < 0.05만 쓰면 위양성이 넘칩니다.
  • 세포 수 불균형 — 희귀 세포 유형은 표본이 적어 발현 평균의 분산이 크고, 순열 검정의 검정력이 떨어집니다. min.cells 필터를 너무 낮추면 노이즈가 올라갑니다.
  • 공간 정보 부재 — scRNA-seq는 조직 내 세포의 물리적 위치를 모릅니다. 실제로 접촉하지 않는 세포 사이의 접촉 의존적(juxtacrine) 상호작용을 잡아낼 수 없습니다. S35의 공간 전사체가 이 한계를 보완합니다.

더 깊게 파고 싶다면

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

  • 원 논문(CellChat): Jin et al. (2021), Inference and analysis of cell-cell communication using CellChat, Nature Communications 12:1088. 질량 작용 법칙 기반 통신 추론의 원천입니다.
  • 원 논문(CellChat v2): Jin et al. (2024), CellChat for systematic analysis of cell-cell communication from single-cell and spatially resolved transcriptomics, Nature Protocols. 다중 조건 비교와 공간 데이터 지원이 추가되었습니다.
  • 원 논문(CellPhoneDB): Efremova et al. (2020), CellPhoneDB: inferring cell-cell communication from combined expression of multi-subunit ligand-receptor complexes, Nature Protocols 15:1484.
  • 원 논문(NicheNet): Browaeys et al. (2020), NicheNet: modeling intercellular communication by linking ligands to target genes, Nature Methods 17:159.
  • 참고 무료 웹북: Single-cell best practices (sc-best-practices.org) — Cell-cell communication 챕터.

이로써 단일세포 시리즈의 핵심 — 전처리에서 클러스터링, 차원 축소, 배치 보정, 궤적, velocity, 세포간 통신까지 — 을 마쳤습니다. 하지만 단일세포 데이터에는 하나의 결정적 한계가 있습니다: 세포가 조직 내 어디에 있었는지 모릅니다. 다음 편 S35에서는 조직 절편 위에서 유전자 발현을 읽는 공간 전사체(Spatial Transcriptomics) 기술로 넘어가, 세포에게 좌표를 돌려줍니다.