15강 / 20강
단일세포 — 구멍 난 데이터에서 살아남기
발현은 무너져도 활성은 버틴다
단일세포 RNA 시퀀싱은 세포 하나하나를 따로 읽습니다. 놀라운 기술인데, 데이터를 열어 보면 당황스럽습니다 — 대부분이 0 입니다.
세포 하나에서 잡히는 mRNA 분자는 몇천 개뿐이고, 유전자는 2만 개입니다. 어떤 유전자가 실제로 발현되고 있어도 운 나쁘면 한 조각도 안 잡힙니다. 이것을 드롭아웃(dropout)이라고 부릅니다. 데이터의 80~90%가 0 인 것이 보통입니다.
그러면 이 데이터로 "이 세포에서 MYC 가 활성인가"를 물을 수 있을까요? MYC 의 발현량을 보면? 십중팔구 0 이라 아무 말도 못 합니다. 그런데 VIPER 는 답할 수 있습니다.
부하 하나가 사라지는 것은 사고지만, 40명 중 34명이 사라져도 6명이 증언합니다.
Python
브라우저에서 실행
🎮 구멍을 뚫어 보세요
드롭아웃 비율 슬라이더를 올려 보세요. 왼쪽의 발현 히트맵이 점점 검게 변합니다. 오른쪽의 활성 추정이 언제까지 버티는지 지켜보세요. 90%를 넘겨도 활성이 살아 있는 것을 확인할 수 있습니다.
단일세포 VIPER 의 실전 요령
- metaVIPER 를 함께 씁니다. 단일세포 데이터로 ARACNe 를 돌리기는 어려우므로, 대량(bulk) 데이터로 만든 네트워크 여러 장을 겹쳐 씁니다.
- 기준을 세포 전체로 잡습니다. 시그니처의 기준은 보통 "이 실험의 모든 세포"이고, 그러면 "이 세포는 다른 세포들과 무엇이 다른가"를 묻게 됩니다.
- 결과가 곧 세포 유형입니다. VIPER 활성으로 세포를 군집화하면, 발현으로 군집화한 것보다 훨씬 또렷하게 갈리는 경우가 많습니다. 구멍이 메워졌기 때문입니다.
실제로 단일세포 분야에서 VIPER 는 차원 축소 · 잡음 제거 도구처럼 쓰입니다. 20,000개의 성긴 유전자 벡터를 6,000개의 촘촘한 단백질 활성 벡터로 바꿔 놓는 것이니까요.
🤔 확인 문제
단일세포 데이터에서 VIPER 가 발현량 자체보다 강건한 근본 이유는?
해설 부하 50명 중 30명이 0 이 되어도 남은 20명이 같은 말을 하면 결론이 섭니다. 여럿을 모아 보는 것 자체가 잡음을 이깁니다.
🤔 확인 문제
단일세포 분석에서 metaVIPER 를 함께 쓰는 까닭은?
해설 성긴 단일세포 데이터로는 신뢰할 만한 네트워크를 뽑기 어렵습니다. 그래서 이미 있는 대량 데이터 네트워크들을 빌려 쓰고, 어느 것이 맞는지는 metaVIPER 가 |NES| 무게로 알아서 정하게 둡니다.
🤔 확인 문제
단일세포 시그니처를 만들 때 드롭아웃된 0 을 아주 낮은 발현값으로 그냥 취급하면 생기는 문제는?
해설 0 을 “최하위”로 두면 그 유전자들이 시그니처의 맨 아래에 몰립니다. 켜는 부하(MoR +)들이 아래에 몰리면 상사가 꺼졌다는 잘못된 신호가 되어 버립니다.