8강 / 20강
모든 쌍을 재면 — MI 행렬
279쌍을 재고, 계산량을 실감한다
도구가 갖춰졌습니다. 순위로 바꾸고(7강), 칸으로 나눠(6강) MI 를 재는(5강) 법을 압니다. 이제 후보 쌍 전부에 대해 그 일을 반복하면 됩니다.
1강에서 봤듯이 후보는 적어도 한쪽이 전사인자인 쌍뿐입니다. 50개 유전자 · 전사인자 6개 → 1,225쌍이 아니라 279쌍.
3천만 쌍. 여기에 부트스트랩 100번을 곱하면 30억 번의 MI 계산이 됩니다.
Python
브라우저에서 실행
브라우저 안의 파이썬으로도 279쌍은 순식간입니다. 3천만 쌍이면 몇 시간짜리 일이 됩니다.
Python
브라우저에서 실행
🎮 MI 행렬을 열지도로 보기
진한 칸일수록 MI 가 큽니다. 유전자를 부대별로 묶어 정렬해 두었기 때문에, 대각선을 따라 네모난 덩어리가 보일 겁니다 — 그 하나하나가 regulon 입니다.
mi_matrix 는 후보만이 아니라 모든 쌍을 잽니다 — 그림으로 보려고 그렇게 했습니다.
Python
브라우저에서 실행
이제 문제는 '고르기'입니다
279개의 MI 값을 손에 쥐었습니다. 이 중 어디까지가 진짜 관계일까요?
MI 가 가장 큰 것부터 줄을 세워 보면, 위쪽은 확실히 진짜처럼 보이고 아래쪽은 확실히 잡음처럼 보입니다. 문제는 가운데예요. 0.30 은 진짜일까요, 아닐까요? 판단의 기준이 필요합니다.
위쪽은 거의 진짜, 아래쪽은 거의 가짜입니다. 경계가 흐릿한 30~55위 사이가 승부처입니다.
Python
브라우저에서 실행
🤔 확인 문제
유전자 20,000개 중 전사인자가 1,600개일 때 아라크네가 재야 하는 쌍은 대략 몇 개일까요?
해설 전사인자끼리 1,600×1,599/2 ≈ 128만, 전사인자 × 나머지 1,600×18,400 ≈ 2,944만. 합쳐 약 3천만 쌍입니다. 모든 쌍(2억)의 15% 수준으로 줄어든 것이지만 여전히 큽니다 — 여기에 부트스트랩 100회를 곱하면 30억 번이 됩니다.
🤔 확인 문제
MI 행렬을 regulon 순서로 정렬했더니 대각선을 따라 네모난 덩어리가 보였습니다. 이 덩어리의 정체는?
해설 같은 상사의 명령을 받는 표적들은 서로도 같이 움직입니다. 그래서 표적끼리도 MI 가 큽니다. 이 표적–표적 간선은 진짜 조절 관계가 아니지만, 아라크네는 애초에 전사인자가 낀 쌍만 후보로 삼아 이 문제를 상당 부분 피합니다.
🤔 확인 문제
MI 순으로 줄을 세웠을 때, 위쪽과 아래쪽은 판정이 쉬운데 가운데가 어려운 이유는?
해설 약한 진짜 관계(NFKB1–IL10 같은)와, 표본 편향으로 부풀어 오른 가짜 관계가 같은 값 구간에 섞여 있습니다. 그래서 '몇 위까지 자를까'가 아니라 우연히 이 값이 나올 확률로 판단해야 합니다 — 다음 강의 주제입니다.