8강 / 20강

ARACNE ② — 간접 링크를 잘라 내고 레귤론을 만든다

프로토콜 Phase I-1 · 데이터 처리 부등식(DPI)

ARACNE ② — 간접 링크를 잘라 내고 레귤론을 만든다
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 으로 두면 어떻게 될까요?
🤔 확인 문제
레귤론에 MoR(조절 방향) 정보가 필요한 이유는?