8강 / 20강
VIPER — 부하들의 웅성거림으로 활성을 읽는다
측정하지 않고 추론한다
단백질이 실제로 얼마나 일하고 있는가(활성) 는 재기 어렵습니다. 인산화되어야 켜지는 단백질도 있고, 다른 단백질과 붙어야 켜지는 것도 있고, 아예 mRNA 양과 단백질 양이 따로 노는 경우도 흔합니다.
VIPER (Virtual Inference of Protein activity by Enriched Regulon analysis) 는 질문을 뒤집습니다.
두목을 재는 대신, 부하들이 얼마나 일사불란하게 움직였는지를 잰다
C/EBPβ 가 켜는 표적 50개가 죄다 올라가 있고, 끄는 표적 20개가 죄다 내려가 있다면? C/EBPβ 단백질은 못 봤어도 켜져 있다고 판정합니다. 이것이 VIPER 입니다.
🎮 표적들을 움직여 보세요
표적 하나하나의 발현을 올리고 내려 보면서 추정 활성이 어떻게 반응하는지 보세요. 끄는 표적(MoR 이 음수) 을 내리면 활성이 올라간다는 점을 확인해 보시고요.
가중 평균은 '얼마나', NES 는 '우연이라 하기 어려운가' 를 말합니다. 실제 VIPER 는 순위 기반 aREA 를 쓰지만 뼈대는 같습니다.
Python
브라우저에서 실행
aREA 의 첫 단계입니다. 값을 버리고 순서만 남깁니다.
Python
브라우저에서 실행
🤔 확인 문제
VIPER 가 단백질 활성을 '추론' 할 수 있는 근거는 무엇인가요?
해설 VIPER 는 조절자의 mRNA 를 보지 않습니다. 표적들의 집단 행동을 봅니다 — 그래서 mRNA 와 단백질이 따로 노는 경우에도 작동합니다.
NES — 활성을 표준화한 점수
VIPER 의 출력은 조절자마다 하나씩 붙는 NES (Normalized Enrichment Score, 정규화 농축 점수) 입니다.
- NES 는 z-점수처럼 읽습니다 — 0 이 기준, +2 를 넘으면 뚜렷하게 켜진 것
- 부호가 방향 — 양수면 활성화, 음수면 억제
- p값으로 바로 바뀝니다 — 표준정규분포의 꼬리 면적
NES 는 이 강의 끝까지 계속 나옵니다. 10강에서는 마스터 레귤레이터를 고르는 자로, 11강에서는 변이와 이을 세로축으로 쓰입니다.
NES 를 보면 p값이 대충 떠올라야 뒤 강의가 편해집니다.
Python
브라우저에서 실행
🤔 확인 문제
VIPER 가 내놓는 NES 가 −3.2 인 조절자에 대해 바르게 말한 것은?
해설 NES 의 부호는 방향, 크기는 세기입니다. |NES| = 3.2 는 p ≈ 0.0014 로 상당히 강한 신호입니다.
🤔 확인 문제
VIPER 가 발현값을 순위로 바꿔 쓰는 이유로 가장 알맞은 것은?
해설 순위 변환은 정규화 방식이 달라도, 이상값이 섞여 있어도 결과가 크게 흔들리지 않게 해 줍니다.