10강 / 20강
히트맵 — 표에 색을 칠하기 전에 정해야 할 것들
논문 Fig. 3A·6A · 행 정규화와 줄 세우기
히트맵은 단순합니다. 표의 칸마다 값에 따라 색을 칠한다. 그게 전부예요.
그런데 그 앞에 결정이 셋 있습니다. 셋 다 그림을 통째로 바꿉니다.
왼쪽은 어떤 유전자가 많이 나오나를 보여 주고, 오른쪽은 어떤 유전자가 조건에 따라 변하나를 보여 줍니다. 논문이 알고 싶은 것은 오른쪽입니다.
Python
브라우저에서 실행
두 번째 결정 — 줄 세우기는 생각보다 큽니다.
군집화 (clustering)
비슷한 행끼리 모은다. 몰랐던 무리를 발견할 수 있다.
대신 나무(dendrogram)의 가지를 어디서 돌리느냐에 따라 그림이 달라진다
값 순서
변화가 큰 것부터. 정직하고 재현된다.
대신 무리 구조는 안 보인다
중요한 사실 하나 — 군집화된 히트맵은 언제나 아름답습니다. 난수를 넣어도 아름다워요. 비슷한 것끼리 모아 놨으니 당연히 덩어리가 생기니까요. 그러니 "히트맵에 블록이 보인다" 는 것 자체는 증거가 아닙니다.
군집화는 무엇이든 정돈된 것처럼 보이게 만듭니다. 히트맵의 블록을 결론의 근거로 삼으면 안 되는 이유입니다.
Python
브라우저에서 실행
🤔 확인 문제
유전자마다 발현량 규모가 크게 다릅니다. 행 z점수를 쓰지 않으면?
해설 리보솜 단백질처럼 CPM 이 수천인 유전자가 몇 줄만 있어도 색 범위를 다 잡아먹습니다. 나머지 유전자의 변화는 전부 같은 색이 돼요.
🤔 확인 문제
난수 행렬을 군집화해 히트맵으로 그리면?
해설 군집화는 비슷한 것끼리 모으는 일이므로 모을 것이 없어도 모읍니다. 히트맵의 블록은 가설이지 증거가 아닙니다.
🤔 확인 문제
논문 Fig. 6A 설명의 'normalized expression' 이라는 한 마디가 왜 중요한가요?
해설 정규화 여부를 모르면 독자는 색을 잘못 읽습니다. 빨간 칸이 '많이 발현됨' 인지 '이 유전자치고 높음' 인지가 완전히 다른 이야기니까요.