가로는 얼마나 변했나, 세로는 얼마나 확실한가. 두 축이 만드는 화산 모양.
표는 정확하지만 전체 모양을 보여 주지 못합니다.
13,095개 유전자를 한눈에 보려면 그림이 필요해요.
차등발현 분석에서 가장 널리 쓰이는 그림이 화산도(volcano plot) 입니다.
왜 −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
코드랩의 화산도 그대로입니다. 네 유전자가 모두 왼쪽(하향)에 붙어 있습니다.
🎮 화산도를 직접 만져 보기
임계선을 움직여 보세요. 기준을 어디에 긋느냐에 따라
"발견"의 개수가 얼마나 달라지는지 보입니다. 점 위에 마우스를 올리면
유전자 이름이 나옵니다.
🤔 확인 문제
화산도의 세로축에 -log10(p) 를 쓰는 이유는?
해설 p 는 작을수록 좋은데 그대로 그리면 전부 바닥에 붙습니다. 로그를 씌우고 부호를 뒤집으면 확실한 것일수록 위로 솟아 화산 모양이 됩니다.
🤔 확인 문제
np.clip(de.p.values, 1e-300, None) 이 막아 주는 사고는?
해설 p 가 0으로 떨어지면 -log10(0) 이 무한대가 되어 축 범위가 망가집니다. clip 으로 아래쪽에 바닥을 깔아 두는 것입니다.
🤔 확인 문제
화산도에서 왼쪽 위에 있는 점은?
해설 가로축은 log2FC 라 왼쪽 = 음수 = KD 에서 내려감, 세로축은 위로 갈수록 p 가 작아 확실합니다. 우리 핵심 유전자 넷이 모두 이 영역에 있습니다.