논문을 믿지 말고
직접 다시 계산해 봅시다
2025년 PNAS 논문이 지목한 폐암 면역회피의 총사령관 DDX54 — 그 핵심 실험을 공개 원자료에서 처음부터 다시 돌려 봅니다. 저자의 계산 결과는 보지 않고, 정규화 · 통계 · 경로 분석을 여러분 손으로.
파이썬은 이 페이지 안에서 바로 실행됩니다. 설치할 것은 없습니다.
이렇게 배웁니다
💡비유로 이해하기
RNA는 설계도 복사본, CPM은 국물 100 mL당 건더기 수, GSEA는 팀 평균 득점. 수식을 외우기 전에 뜻부터 그림으로 잡습니다.
▶️진짜 데이터로
대리 자료가 아니라 GEO 의 실제 원자료(GSE285342) 를 그대로 씁니다. 모든 코드에 실행 버튼이 있습니다.
🔬답을 보지 않고
저자의 fold change·p값을 보지 않고 처음부터 다시 계산해, 같은 결론이 나오는지 직접 판정합니다.
🛠️만지며 익히기
강마다 실험실 위젯이 하나씩 — 필터 기준, 수축 강도, 화산도 임계선을 직접 돌려 봅니다.
전체 커리큘럼
01
생물정보학 첫걸음 — 세포를 숫자로 읽는다
우리가 다시 풀어 볼 사건: DDX54
✓
02
원자료 내려받기 — GEO와 접근번호
논문의 결론이 아니라 논문의 재료를 받는다
✓
03
표를 읽는 도구 — pandas 한 줄
24,419 × 7 짜리 표를 손에 쥐기
✓
04
표 다듬기 — 같은 이름 합치고, 쓸 열만 고르기
groupby · 열 선택 · astype, 세 줄의 안전장치
✓
05
행으로 더할까 열로 더할까 — numpy 의 축
sum(0) 과 sum(1), 한 글자가 뜻을 뒤집는다
✓
06
정규화 ① — 그릇의 크기를 맞춘다 (CPM)
counts / lib * 1e6, 한 줄에 담긴 공정함
✓
07
정규화 ② — 왜 log2 를 씌우나
1 = 두 배, 그리고 +1 의 정체
✓
08
실험이 성공했나 — 녹다운부터 확인한다
하류 결과를 믿기 전에 반드시 하는 검사
✓
09
잡음 걸러내기 — 저발현 유전자 필터
불리언 마스크 한 줄로 24,419 → 13,095
✓
10
두 그룹 비교 ① — 차이와 흩어짐
log2FC 는 신호, 분산은 잡음
✓
11
두 그룹 비교 ② — 반복이 적을 때의 함정
우연히 조용한 유전자가 1등이 되는 사고
✓
12
limma 의 아이디어 — 분산을 빌려온다
digamma · polygamma · brentq 가 하는 일
✓
13
moderated t 와 p값 — 함수 하나로 묶기
stats.t.sf, 양측검정, 그리고 def
✓
14
차등발현 표 만들기 — 13,095개를 줄 세우기
DataFrame 조립과 sort_values(key=…)
✓
15
핵심 유전자 확인 — 논문이 지목한 네 개
Cd47 · Cd38 · Myc, 그리고 '먹지 마' 신호
✓
16
화산도 — 13,095개를 한 장에 담기
matplotlib 으로 크기와 확신을 동시에 보기
✓
17
유전자 하나가 아니라 무리로 — Hallmark 세트
프로그램 단위로 보기, 그리고 마우스→인간 이름 맞추기
✓
18
GSEA ① — 줄을 따라 걸으며 점수 매기기
cumsum 으로 만드는 러닝섬과 ES
✓
19
GSEA ② — 우연히도 이만한 점수가 나올까
순열검정으로 만드는 귀무분포, 그리고 NES
✓
20
독립재현 판정 — 우리가 직접 내리는 결론
체크리스트, 그리고 재현되지 않은 것까지 말하기
✓