aREA — 세 갈래 꼬리로 증언을 모으다
방향성 신호와 비방향성 신호를 함께 읽는 법
드디어 VIPER 의 심장입니다. aREA — analytic Rank-based Enrichment Analysis, "해석적 순위 기반 농축 분석". 이름 그대로 순열 없이 수식으로 농축을 계산합니다.
지금까지 만든 재료를 늘어놓아 봅시다.
| 재료 | 어디서 왔나 | 모양 |
|---|---|---|
| MoR | 레귤론 (4강) | 부하마다 −1 ~ +1 |
| w (가중치) | likelihood 정규화 (5강) | 부하마다 0 ~ 1 |
| t2 | 부호 있는 순위 → z (9강) | 유전자마다 −3 ~ +3 |
| t1 | 절대값 순위 → z (9강) | 유전자마다 0 이상 |
두 갈래의 증언
부하들의 증언은 두 종류입니다.
첫째 갈래 — 방향성 (sum1). "부하들이 MoR 이 시키는 방향으로 움직였나?"
sum1 = Σ ( w · MoR · t2 )
켜는 부하가 올라가고 끄는 부하가 내려갔으면 이 합이 커집니다.
MoR 이 0 에 가까운 부하는 여기서 기여를 못 합니다.
둘째 갈래 — 비방향성 (sum2). "방향은 몰라도, 부하들이 흔들리기는 했나?"
sum2 = Σ ( w · (1 − |MoR|) · t1 )
MoR 이 0 에 가까운 부하일수록 여기에 크게 기여합니다.
방향을 모르는 부하도 "뭔가 일어났다"는 증언은 할 수 있으니까요.
두 갈래가 서로 보완하는 것이 핵심입니다. (1 − |MoR|) 이라는
가중치를 보세요 — 첫째 갈래에서 힘을 못 쓰는 부하가 둘째 갈래에서 힘을 씁니다.
명부의 어느 부하도 놀지 않습니다.
둘을 하나로 — 세 갈래 꼬리 (three-tail)
이제 두 합을 하나의 농축 점수로 합칩니다. VIPER 의 규칙은 이렇습니다.
ES = ( |sum1| + max(sum2, 0) ) × sign(sum1)
읽는 법은 이렇습니다.
- 부호는 sum1 이 정합니다. 상사가 활발한지 잠잠한지는 방향성 증언이 결정합니다. 방향을 모르는 증언이 부호를 뒤집게 두면 안 됩니다.
- 크기는 둘을 더합니다. 방향 증언의 세기에, 비방향 증언을 보태기만 합니다.
- sum2 가 음수면 무시합니다.
max(sum2, 0)이 그 일을 합니다. 비방향 증언은 "뭔가 일어났다"는 말만 할 수 있지, "아무 일 없었다"고 우기며 남의 증언을 깎을 자격은 없기 때문입니다.
"세 갈래 꼬리"라는 이름은 여기서 나옵니다 — 위쪽 꼬리, 아래쪽 꼬리, 그리고 양쪽 꼬리 모두를 보는 세 번째 눈.
🎮 두 갈래가 합쳐지는 것을 지켜보세요
부하마다 MoR 과 시그니처를 조절할 수 있습니다. 아래에서 sum1 과
sum2 막대가 어떻게 변하고 최종 ES 가 어떻게 나오는지 보세요.
모든 MoR 을 0 근처로 몰아 보면 방향 증언이 사라지고 세기 증언만 남습니다 —
그런데도 ES 가 0 이 아닌 것을 확인해 보십시오.
sum2(비방향성 합)에 (1 − |MoR|) 이라는 가중치가 붙는 까닭은?ES = (|sum1| + max(sum2, 0)) × sign(sum1) 에서 부호를 sum1 이 정하는 이유는?(1−|MoR|)=1 이라 sum2 는 최대가 됩니다. “방향은 모르겠지만 이 무리가 통째로 요동쳤다”는 것도 훌륭한 신호입니다.