18강 / 20강
점 무리가 생기는 자리 — PCA · 이웃그래프 · UMAP
32,738차원을 2차원 그림으로 접는 세 걸음
세포 하나는 유전자 32,738개짜리 벡터입니다. 32,738차원 공간의 점 하나예요. 그걸 종이에 그릴 수는 없습니다.
그래서 세 걸음을 밟습니다.
| 걸음 | 차원 | 무엇을 하나 | |
|---|---|---|---|
| 0 | 변동 큰 유전자 고르기 | 32,738 → 2,000 | 세포마다 값이 별로 안 변하는 유전자는 버린다 |
| 1 | PCA | 2,000 → 10~50 | 가장 크게 흔들리는 방향 몇 개만 남긴다 |
| 2 | 이웃그래프 + 군집 | — | 가까운 세포끼리 선을 잇고, 빽빽한 덩어리를 찾는다 |
| 3 | UMAP | 10~50 → 2 | 그림 그리기용. 계산은 여기서 안 한다 |
PC 두 개만으로도 세 유형이 갈라집니다.
Python
브라우저에서 실행
PC 를 몇 개 쓸까
보통 10~50개 를 씁니다. 정하는 법은 두 가지예요.
PBMC 3k 표준 절차는 10개 를 씁니다. 너무 적으면 비슷한 세포유형이 붙어 버리고, 너무 많으면 잡음까지 따라갑니다.
n_neighbors 하나가 군집 개수를 바꿉니다.
Python
브라우저에서 실행
배치 효과 — 시료가 여럿일 때
시료 두 개를 합쳐 UMAP 을 그렸더니 시료별로 갈라져 있다면, 세포유형이 아니라 실험 날짜를 보고 있는 것입니다.
고치는 도구가 Harmony · scVI · Seurat integration 이에요. 다만 세게 걸면 진짜 차이까지 지웁니다 — 치료군과 대조군의 차이를 보려던 것이라면 특히 조심해야 합니다.
🤔 확인 문제
UMAP 그림에서 두 군집 사이의 거리 는 무엇을 뜻하나?
해설 UMAP 은 가까운 것을 가깝게 두는 데만 신경 씁니다.
멀리 떨어진 덩어리끼리의 거리는 배치 과정에서 임의로 정해져요.
🤔 확인 문제
군집을 실제로 나누는 것은 어느 단계인가?
해설 UMAP 은 보여 주는 역할만 합니다.
나누는 계산은 PC 공간에서 이웃그래프를 만들고 그 위에서 합니다.