This lesson is only available in Korean for now.
선수 한 명의 기록이 아니라 팀 전체의 평균 득점을 보는 관점.
16강 마지막에 남긴 문제가 있습니다. Cd47 의 변화는 −0.70,
"극적"이라기엔 완만합니다. 개별 유전자만 보면 이런 변화는 놓치기 쉬워요.
그런데 생각해 봅시다. 세포 안에서 유전자는 혼자 일하지 않습니다.
"세포가 이동한다", "염증 신호를 켠다" 같은 일은
유전자 수십 개가 한 팀으로 움직여 만들어 내는 결과예요.
이 팀을 경로(pathway) 또는 유전자 세트(gene set) 라고 합니다.
유전자 하나씩 보기
Cd47 −0.70 (p=0.0001)
Fn1 −0.51 (p=0.02)
Col1a1 −0.4 …
하나하나는 그저 그런 변화
팀으로 보기
EMT 팀 33명이 전부 조금씩
같은 방향으로 내려감
우연으로는 설명하기 힘든 일관성
Hallmark — 잘 정리된 50개의 팀
MSigDB 의 Hallmark 는 수많은 연구를 종합해 만든
"대표적인 생물학적 프로그램 50개" 목록입니다.
코드랩은 그중 논문이 지목한 네 개를 씁니다.
🏃
EMT
상피–간엽 전이. 세포가 제자리를 떠나 움직이는 프로그램 — 전이의 시작.
⚡
MYC_TARGETS
Myc 이 켜는 부하 유전자들. 리보솜·대사 등 증식 기계.
🔥
IL6_JAK_STAT3
염증 신호 축. 암세포의 생존과 면역억제에 관여.
🚨
TNFA_NFKB
NF-κB 염증 경로. 만성적으로 켜지면 암을 돕는 쪽으로 기웁니다.
이름을 맞춰야 한다 — 마우스와 인간
여기 실무적인 함정이 하나 있습니다. 우리 데이터는 생쥐이고,
Hallmark 는 인간 기준으로 만들어졌습니다. 그런데 표기 관습이 다릅니다.
생쥐: Ddx54 Cd47 Myc Fn1 (첫 글자만 대문자)
인간: DDX54 CD47 MYC FN1 (전부 대문자)
다행히 대부분의 유전자는 철자가 같고 대소문자만 다릅니다.
그래서 코드랩은 가장 단순한 방법을 씁니다 — g.upper().
order = np.array([g.upper() for g in des.index])
이것을 리스트 컴프리헨션이라고 합니다.
"des.index 의 각 g 에 대해 g.upper() 를 모은 리스트를 만들어라"는 뜻이에요.
순위 리스트 — GSEA 의 입력
GSEA 는 "어떤 유전자가 유의한가"를 묻지 않습니다.
13,095개 전부를 한 줄로 세운 순위 를 입력으로 받아,
어떤 팀이 그 줄의 위쪽이나 아래쪽에 몰려 있는지를 봅니다.
des = de.sort_values("t", ascending=False) # 큰 t → 작은 t
order = [g.upper() for g in des.index] # 이름 (대문자)
rk = des["t"].to_numpy() # 그 순서의 t 값
14강에서 예고한 대로, 여기서는 절댓값이 아니라 부호 그대로 정렬합니다.
줄의 맨 위 = KD 에서 가장 올라간 유전자,
맨 아래 = 가장 내려간 유전자가 되어야 방향을 판정할 수 있으니까요.
세트는 그냥 '공백으로 구분된 유전자 이름 문자열' 입니다. split() 한 번이면 리스트.
Python
Runs in your browser
🎮 세트 매칭 확인하기
세트를 골라 어떤 유전자가 매칭되고 어떤 유전자가 빠졌는지 보세요.
그리고 각 유전자가 순위 리스트의 어디쯤 있는지도 함께 표시됩니다.
🤔 Check yourself
"MYC NPM1 NCL".split() 의 결과는?
Answer split() 은 인자 없이 쓰면 공백을 기준으로 문자열을 잘라 리스트를 만듭니다. 유전자 세트를 한 줄 문자열로 적어 두고 필요할 때 리스트로 펴는 편리한 방법입니다.
🤔 Check yourself
GSEA 순위 리스트를 만들 때 절댓값이 아니라 부호 그대로 정렬하는 이유는?
Answer GSEA 는 세트가 순위의 어느 쪽 끝에 몰렸는지를 봅니다. 방향이 살아 있어야 '이 경로는 KD 에서 내려갔다'고 말할 수 있습니다.
🤔 Check yourself
g.upper() 로 마우스 이름을 인간 이름에 맞추는 방식의 한계는?
Answer 대소문자만 다른 유전자에는 잘 맞지만 철자 자체가 다른 경우는 놓칩니다. 실제로 EMT 세트 39개 중 33개만 매칭되었고, 이것이 NES 값이 논문과 조금 달라지는 원인 중 하나입니다.