A→B→C 인데 A—C 링크가 생겨 버립니다. 삼각형에서 가장 약한 변을 지우는 것이 DPI 입니다.
앞 강에서 만든 네트워크에는 큰 문제가 하나 있습니다.
간접 관계도 링크로 잡혀 버립니다.
A 가 B 를 조절하고 B 가 C 를 조절한다고 합시다.
그러면 A 와 C 도 함께 움직이는 것처럼 보입니다 — A 가 오르면 B 가 오르고 C 도 오르니까요.
상호정보량만 보면 A—C 링크도 그어집니다. 하지만 A 는 C 를 직접 건드리지 않았습니다.
데이터 처리 부등식(Data Processing Inequality)
정보이론에 아름다운 정리가 하나 있습니다.
A → B → C 라는 사슬이라면(A 가 C 에 미치는 영향이 오직 B 를 거친다면),
MI(A;C) ≤ min[ MI(A;B), MI(B;C) ]
정보는 전달될 때마다 줄어들 뿐 늘어나지 않는다.
전화 게임에서 말이 전해질수록 흐려지는 것과 같습니다.
ARACNE 는 이 부등식을 거꾸로 씁니다. 세 유전자가 삼각형을 이루면,
가장 약한 변은 간접 관계일 가능성이 높다고 보고 지웁니다.
남은 두 변이 직접 관계라는 뜻이죠.
허용오차 ε
실제 자료에는 잡음이 있어서 부등식이 딱 떨어지지 않습니다.
그래서 "확실히 더 작을 때만" 지웁니다 —
가장 약한 변이 다른 두 변보다 ε 이상 작을 때만.
ε 이 0 이면 삼각형이 보일 때마다 무조건 하나를 지워 네트워크가 지나치게 성글어지고,
ε 이 크면 아무것도 안 지워집니다.
약 4분의 1 가까운 링크가 '간접'으로 판정되어 사라집니다.
Python브라우저에서 실행
삼각형 하나를 열어 보면 DPI 가 무슨 판단을 하는지 눈에 들어옵니다.
Python브라우저에서 실행
레귤론 — 한 전사인자의 부하 명단
DPI 까지 끝나면 전사인자마다 직접 조절하는 표적 목록이 남습니다.
이것을 레귤론(regulon) 이라고 부릅니다. VIPER 가 쓸 재료가 바로 이것이에요.
레귤론에는 표적 이름만 있는 게 아니라 두 가지 정보가 더 붙습니다.
➕➖
MoR
Mode of Regulation — 켜는 표적인가 끄는 표적인가 (상관의 부호)
💪
신뢰도
MI 가 클수록 확실한 부하 — 가중치로 쓴다
실무에서는 레귤론 크기에 상한을 둡니다.
한 TF 가 수천 개 표적을 갖는 것은 대개 계산의 부산물이고,
너무 크면 활성 추정이 무뎌지기 때문입니다. 우리는 MI 상위 100개로 자릅니다.
레귤론은 '이름 + 방향 + 신뢰도' 세 쌍으로 이루어진 부하 명단입니다.
Python브라우저에서 실행
🎮 DPI 실험실
삼각형의 세 변 세기를 직접 조절해 보세요. 어느 변이 잘리는지,
허용오차 ε 을 키우면 어떻게 달라지는지 볼 수 있습니다.
실제 TCGA 삼각형도 함께 실려 있습니다.
DPI 실험실 — 삼각형에서 어느 변이 잘리나
불러오는 중…
🤔 확인 문제
데이터 처리 부등식이 말하는 것은?
해설 전화 게임과 같습니다 — 정보는 중간을 거칠 때마다 흐려질 뿐 선명해지지 않습니다. 그래서 삼각형에서 가장 약한 변은 '거쳐 온 관계'일 가능성이 높습니다.
🤔 확인 문제
DPI 의 허용오차 ε 을 0 으로 두면 어떻게 될까요?
해설 잡음 때문에 세 변의 MI 가 완벽히 같을 수는 없으므로, ε = 0 이면 아주 미세한 차이만으로도 변을 지웁니다. 실제로 세 유전자가 서로 직접 조절하는 경우까지 잘려 나갑니다.
🤔 확인 문제
레귤론에 MoR(조절 방향) 정보가 필요한 이유는?
해설 억제 표적이 내려간 것도 그 TF 가 일하고 있다는 증거입니다. 부호를 무시하면 활성화 신호와 억제 신호가 서로 상쇄되어 활성이 0 처럼 보입니다. 10강에서 직접 확인합니다.