11강 / 20강
축을 갈아 끼운다 — 2,000차원을 30차원으로
표준화 · 주성분 · 몇 개를 남길 것인가
이제 각 세포는 숫자 2,000개로 표현됩니다. 이걸 그대로 쓰면 문제가 생겨요.
- 느립니다. 세포 쌍마다 거리를 재려면 2,000번씩 곱셈을 해야 합니다.
- 잡음이 섞입니다. 2,000개 중 상당수는 dropout 과 기술 잡음입니다.
- 차원의 저주. 고차원에서는 모든 점이 서로 비슷하게 멀어져, 거리 자체가 의미를 잃습니다.
PCA(주성분 분석) 는 이 2,000개 축을 서로 겹치지 않는 새 축 30개로 갈아 끼웁니다. 새 축은 "세포들이 가장 많이 흩어지는 방향" 순서로 정해집니다. S100a8·S100a9·Retnlg 는 늘 함께 오르내리므로, 그 셋을 따로 둘 필요 없이 "호중구다움"이라는 축 하나로 묶는 것 — 이것이 PCA 가 하는 일입니다.
PC1 이 8% 남짓입니다. 낮아 보이지만 단일세포에서는 정상이에요 — 세포 종류가 많으니 한 축이 다 설명할 수 없습니다.
Python
브라우저에서 실행
5~10 근처에서 완만해집니다. 그래도 보통 넉넉히 30개를 씁니다 — 적게 쓰다 놓치는 것보다 낫습니다.
Python
브라우저에서 실행
PC 는 이름 없는 숫자가 아닙니다. 양 끝에 어떤 유전자가 있는지를 보면 그 축이 무엇을 재고 있는지 읽을 수 있어요.
Python
브라우저에서 실행
🤔 확인 문제
PCA 전에 유전자마다 표준화(평균 0, 표준편차 1)를 하는 이유는?
해설 PCA 는 분산이 큰 방향을 찾습니다. 표준화하지 않으면 '분산이 크다 = 원래 값이 크다'가 되어, 세포를 구별하는 능력과 무관하게 Actb 같은 유전자만 축이 됩니다.
🤔 확인 문제
단일세포 자료에서 PC1 의 설명분산이 8% 정도로 낮은 것은?
해설 벌크 RNA-seq 이라면 PC1 이 50%를 넘기도 합니다. 하지만 수천 개 세포가 여러 계통으로 나뉜 자료에서는 한 축이 차지할 수 있는 몫이 작아요. 30개를 합쳐도 32% 정도이고, 그것으로 충분합니다.
🤔 확인 문제
PCA 뒤 PC1 의 양 끝이 리보솜 유전자 vs 미토콘드리아 유전자였습니다. 무엇을 해야 할까요?
해설 PC1 을 빼는 임시방편도 쓰이긴 하지만, 근본 원인은 죽어 가는 세포가 너무 많이 남아 있는 것입니다. QC 문턱을 조이고 다시 돌리는 것이 정공법이에요.