16강 / 20강

화산도 — 13,095개를 한 장에 담기

matplotlib 으로 크기와 확신을 동시에 보기

화산도 — 13,095개를 한 장에 담기
가로는 얼마나 변했나, 세로는 얼마나 확실한가. 두 축이 만드는 화산 모양.

표는 정확하지만 전체 모양을 보여 주지 못합니다. 13,095개 유전자를 한눈에 보려면 그림이 필요해요. 차등발현 분석에서 가장 널리 쓰이는 그림이 화산도(volcano plot) 입니다.

↔️
가로축
log2FC — 왼쪽은 내려감, 오른쪽은 올라감
↕️
세로축
−log10(p) — 위로 갈수록 확실
🌋
모양
가운데 낮고 양쪽이 솟은 분화구

왜 −log10(p) 인가

p값은 0에 가까울수록 좋습니다. 그런데 0.001 과 0.0000001 을 그냥 그리면 둘 다 바닥에 붙어 구별이 안 돼요. 로그를 씌우고 부호를 뒤집으면 작을수록 위로 올라갑니다.

p = 0.05 → −log10(p) = 1.3 p = 0.001 → −log10(p) = 3 p = 0.0000001 → −log10(p) = 7
코드랩의 화산도 그대로입니다. 네 유전자가 모두 왼쪽(하향)에 붙어 있습니다.
Python 브라우저에서 실행

🎮 화산도를 직접 만져 보기

임계선을 움직여 보세요. 기준을 어디에 긋느냐에 따라 "발견"의 개수가 얼마나 달라지는지 보입니다. 점 위에 마우스를 올리면 유전자 이름이 나옵니다.

화산도 실험실 — 임계선을 움직이며 발견의 개수 세기
불러오는 중…
🤔 확인 문제
화산도의 세로축에 -log10(p) 를 쓰는 이유는?
🤔 확인 문제
np.clip(de.p.values, 1e-300, None) 이 막아 주는 사고는?
🤔 확인 문제
화산도에서 왼쪽 위에 있는 점은?