18강 / 20강

점 무리가 생기는 자리 — PCA · 이웃그래프 · UMAP

32,738차원을 2차원 그림으로 접는 세 걸음

점 무리가 생기는 자리 — PCA · 이웃그래프 · UMAP
논문에서 보는 알록달록한 UMAP 은 세 걸음의 마지막 장면입니다. 앞의 두 걸음이 결과를 거의 다 정해요.

세포 하나는 유전자 32,738개짜리 벡터입니다. 32,738차원 공간의 점 하나예요. 그걸 종이에 그릴 수는 없습니다.

그래서 세 걸음을 밟습니다.

걸음차원무엇을 하나
0변동 큰 유전자 고르기32,738 → 2,000 세포마다 값이 별로 안 변하는 유전자는 버린다
1PCA2,000 → 10~50 가장 크게 흔들리는 방향 몇 개만 남긴다
2이웃그래프 + 군집— 가까운 세포끼리 선을 잇고, 빽빽한 덩어리를 찾는다
3UMAP10~50 → 2 그림 그리기용. 계산은 여기서 안 한다
PC 개수와 이웃 수를 바꿔 보세요 — 군집이 붙었다 갈라졌다 합니다.
불러오는 중…
PC 두 개만으로도 세 유형이 갈라집니다.
Python 브라우저에서 실행

PC 를 몇 개 쓸까

보통 10~50개 를 씁니다. 정하는 법은 두 가지예요.

📉
팔꿈치 그림
설명 분산이
평평해지는 자리까지
🎲
뒤섞기 검정
값을 무작위로 섞었을 때보다
확실히 큰 PC 까지
🤷
그냥 넉넉히
30~50개.
보통 크게 안 달라진다

PBMC 3k 표준 절차는 10개 를 씁니다. 너무 적으면 비슷한 세포유형이 붙어 버리고, 너무 많으면 잡음까지 따라갑니다.

n_neighbors 하나가 군집 개수를 바꿉니다.
Python 브라우저에서 실행

배치 효과 — 시료가 여럿일 때

시료 두 개를 합쳐 UMAP 을 그렸더니 시료별로 갈라져 있다면, 세포유형이 아니라 실험 날짜를 보고 있는 것입니다.

고치는 도구가 Harmony · scVI · Seurat integration 이에요. 다만 세게 걸면 진짜 차이까지 지웁니다 — 치료군과 대조군의 차이를 보려던 것이라면 특히 조심해야 합니다.

🤔 확인 문제
UMAP 그림에서 두 군집 사이의 거리 는 무엇을 뜻하나?
🤔 확인 문제
군집을 실제로 나누는 것은 어느 단계인가?