Lesson 20 of 20
전체 파이프라인 — 처음부터 끝까지 한 번에
발현 행렬 하나에서 약물 후보까지
마지막 강의입니다. 지금까지 만든 것을 전부 이어 붙여 봅시다. 아래 파이프라인의 모든 단계를 여러분은 이미 손으로 짜 봤습니다.
발현 행렬 (유전자 × 샘플)
│
├─▶ ARACNe ────────────▶ 네트워크 (3강)
│ MI · 순열 · DPI │
│ ▼
│ 레귤론 (2강)
│ 부하 + MoR(4강) + likelihood(5강)
│ │
├─▶ 시그니처 (6강) ──────────┤
│ t 통계량 │
│ │ │
│ ▼ │
│ 순위 → z (7·9강) │
│ t1 · t2 │
│ │ │
│ └────────┬───────────────┘
│ ▼
│ aREA (10강)
│ sum1 · sum2 → ES
│ │
│ ▼
│ NES (11강) ── p 값 ── FDR (17강)
│ │
│ ├──▶ 그림자 분석 (16강)
│ ├──▶ 체크포인트 (18강)
│ └──▶ 약물 반전 점수 (19강)
▼
마스터 레귤레이터 · 환자 층화 · 약물 후보
🎮 파이프라인을 한 화면에서 돌려 보세요
단계를 하나씩 눌러 진행시키면, 그 단계의 결과가 화면에 쌓입니다. 발현 행렬을 흔들어 보고 마스터 레귤레이터가 어떻게 바뀌는지 보세요. 지금까지 배운 모든 것이 이 하나의 흐름 안에 들어 있습니다.
1강부터 19강까지의 모든 조각이 이 한 셀 안에 들어 있습니다.
Python
Runs in your browser
실제로 써 보려면
# R / Bioconductor
BiocManager::install("viper")
library(viper)
# 레귤론 만들기 (ARACNe 결과 파일에서)
regul <- aracne2regulon("network.txt", eset, format="3col")
# msVIPER — 집단 대 집단
sig <- rowTtest(eset, "group", "tumor", "normal")$statistic
null <- ttestNull(eset, "group", "tumor", "normal", per=1000)
mra <- msviper(sig, regul, null)
summary(mra) # 마스터 레귤레이터 순위표
plot(mra, 20) # 상위 20개 그림
# 환자별 VIPER — 활성 행렬
vpres <- viper(eset, regul, method="scale")
# 그림자 · 시너지
mra <- shadow(mra, regulators=25)
mra <- msviperCombinatorial(mra, regulators=25)
파이썬 쪽에서는 pyviper(단일세포용) 와
decoupler (dc.mt.viper) 가 널리 쓰입니다.
scanpy 생태계와 붙여 쓰기 좋습니다.
🤔 Check yourself
VIPER 파이프라인에서 ARACNe 가 담당하는 부분은?
Answer ARACNe 는 지도를 그립니다 — 여러 샘플에 걸친 조절 관계 네트워크. 그 지도를 들고 개별 시그니처를 읽는 것이 VIPER 의 몫입니다.
🤔 Check yourself
전체 파이프라인에서 순서를 바꿀 수 없는 의존 관계는?
Answer 시그니처 → 순위 → z → aREA → NES → FDR 은 뒤로만 흐릅니다. 각 단계가 앞 단계의 결과를 재료로 쓰기 때문입니다.
🤔 Check yourself
이 강의에서 짠 파이썬 파이프라인과 실제 R
viper 패키지의 가장 큰 차이는?Answer 핵심 계산은 여러분이 짠 것과 같습니다. 실제 패키지는 유전자 2만 개 규모를 감당하는 행렬 연산, 샘플 순열 귀무분포, 그림자 보정, 레귤론 가지치기 같은 실무를 위한 장치가 더해진 것입니다.