This lesson is only available in Korean for now.
Lesson 8 of 20
High school
University
실험이 성공했나 — 녹다운부터 확인한다
하류 결과를 믿기 전에 반드시 하는 검사
스위치를 정말 내렸는지 확인하지 않고 방이 어두워진 이유를 논하는 것은 위험합니다.
이제 분석을 시작할 수 있습니다. 그런데 그전에 반드시 해야 할 일이 하나 있어요.
우리가 곧 볼 결론은 전부 "Ddx54 를 껐더니 …" 라는 형태입니다.
그런데 만약 애초에 안 꺼졌다면? 그 뒤의 모든 해석이 무의미해집니다.
그래서 생물정보학자는 하류(downstream) 결과를 보기 전에
실험 조작이 실제로 일어났는지 부터 확인합니다.
이것을 sanity check 라고 불러요.
원자료 CPM log2
✓ 녹다운 확인 필터 통계 경로 판정
코드랩의 그 부분입니다.
cpm0 = counts / counts.sum(0) * 1e6
ddx = np.log2(cpm0.loc["Ddx54" ] + 1)
print(ddx[WT].mean(), ddx[KD].mean())
cpm0.loc["Ddx54"] 는 3강에서 배운 행 하나 꺼내기 입니다.
결과는 이름표가 붙은 길이 7짜리 줄(Series )이고,
거기에 [WT] 처럼 이름 목록 을 넣으면 원하는 4칸만 골라집니다.
High school 하류를 믿기 전에 반드시 하는 검사
이 강의에서 가장 실용적인 교훈일지 모릅니다.
결과를 보기 전에 실험이 성공했는지 먼저 확인한다
무슨 뜻인가
이 연구는 Ddx54 를 껐다 고 합니다.
그러면 정말 꺼졌는지 부터 봐야죠.
확인 안 하면 무슨 일
안 꺼졌는데 하류를 본다 아무 의미 없는 분석
결과가 안 나온다 "효과가 없구나" ← 틀린 결론
결과가 나온다 다른 이유 일 수 있다
실험이 안 됐는데 결과를 해석하면 전부 헛수고
비유 — 시험 전에 답안지 확인
시험지를 냈는데 이름을 안 썼다면?
아무리 잘 봐도 점수가 안 나오죠.
답을 다 맞혔는지 확인하기 전에 이름부터 확인하는 겁니다.
결과를 보면
Ddx54 가 확실히 내려갔다 ✔
그리고 좋은 신호가 하나 더 있습니다 —
WT 4개끼리, KD 3개끼리 서로 잘 모여 있어요.
보는 것 왜 좋은 신호인가
군 안에서 값이 비슷 실험이 일관됐다
군 사이 는 다름 진짜 차이가 있다
잡음이 작고 신호가 크다 — 좋은 자료 다
10강에서 이걸 숫자로 재게 됩니다.
Ddx54 가 확실히 내려갔습니다. WT 4개끼리, KD 3개끼리 서로 잘 모여 있는 것도 좋은 신호입니다.
Python
Runs in your browser
↺
▶ Run
High school 군 안에서 모여 있다는 것
결과를 볼 때 두 가지 를 보세요.
무엇 보는 법 좋은 상태
차이 (신호)WT 평균 vs KD 평균 크다
흩어짐 (잡음)같은 군 안에서 작다
신호 ÷ 잡음 = 믿을 만한 정도
이게 t 값의 정체입니다
10~13강에서 배울 t 통계량 이 정확히 이 비율이에요.
t = 차이 ÷ 흩어짐
어렵게 보이지만 발상은 단순 합니다 —
차이가 크고 흩어짐이 작으면 믿을 만하다 .
비유 — 소리 듣기
상황 들리나
큰 소리 + 조용한 방 잘 들린다 ✔
큰 소리 + 시끄러운 방 안 들릴 수 있다
작은 소리 + 조용한 방 들린다
작은 소리 + 시끄러운 방 못 듣는다
소리의 절대 크기 가 아니라 주변 소음 대비 가 중요하다
그래서 실험 설계가 중요합니다
신호를 키우기 어려우면 잡음을 줄이면 됩니다.
같은 조건에서 실험한다
같은 날 · 같은 사람이 한다
짝지어 비교한다
/stat 10강의 "n 을 늘리는 것보다 잡음을 줄이는 게 쌀 때가 많다"
가 여기 걸립니다.
Series 에서 여러 칸 고르기
ddx[WT] 처럼 이름 리스트 를 넣으면 그 이름들만 골라 새 Series 가 나옵니다.
ddx["WT_DDX54_1"] (이름 하나 → 숫자 하나) 와 헷갈리지 마세요.
· 이름 하나 → 값 하나
· 이름 리스트 → Series (그래서 .mean() 을 이어 쓸 수 있습니다)
High school Series 에서 여러 칸 고르기
note 가 ddx[WT] 라는 문법을 설명합니다.
간단해 보이지만 강력 해요.
ddx[WT] = WT 리스트에 있는 이름들만 골라낸다
1강의 리스트가 여기서 쓰입니다
1강에서 만든 WT = [시료 4개] 를
그대로 넣으면 그 네 개만 나옵니다.
코드 결과
ddx7개 전부
ddx[WT]WT 4개만
ddx[KD]KD 3개만
이름으로 고르니 순서가 바뀌어도 안전 하다
4강에서 말한 그 이야기입니다 —
번호보다 이름이 안전 해요.
그리고 결과 타입
퀴즈가 ddx[WT] 의 타입 을 묻습니다.
결과도 Series — 이름표가 붙은 1차원 자료
타입 무엇
Series 이름표 붙은 1차원 (한 유전자의 여러 시료)
DataFrame 이름표 붙은 2차원 (표 전체)
Series 라서 좋은 점
.mean() · .std() 같은 걸 바로 쓸 수 있습니다.
그리고 결과에 이름표가 남아 있어요.
이름표가 남으면 어느 시료인지 계속 알 수 있다
numpy 배열로 바꾸면 이름이 사라집니다.
그래서 가능한 한 오래 pandas 로 다루는 게 좋아요.
🎮 녹다운 막대그래프
샘플을 눌러 켜고 꺼 보세요. 어떤 샘플을 빼면 평균이 얼마나 흔들리는지,
WT 안의 흔들림 과 WT-KD 사이의 차이 중 어느 쪽이 큰지 직접 비교해 보세요.
이 비교가 바로 다음 강부터 시작할 통계 의 정체입니다.
'완전히 껐다'가 아닙니다
녹다운(knockdown)은 유전자를 줄이는 기술이지 없애는 기술이 아닙니다
(완전히 없애는 것은 녹아웃 knockout 입니다).
실제로 우리 결과도 6.33 → 5.52, 약 43% 감소 지 0이 아니에요.
그런데도 하류에서 뚜렷한 변화가 보인다면, 그것은 오히려
"이 정도만 줄여도 프로그램 전체가 흔들린다 "는 강한 이야기가 됩니다.
High school '완전히 껐다' 가 아닙니다
note 가 중요한 구별 을 합니다.
녹다운 (knockdown) ≠ 녹아웃 (knockout)
녹다운 (KD) 녹아웃 (KO)
무엇을 발현을 줄인다 유전자를 없앤다
결과 30~70% 남는다 0
방법 siRNA · shRNA CRISPR 등
비유 볼륨을 낮춘다 선을 끊는다
Δ = −0.81 → 약 57% 남아 있다
왜 완전히 안 끄나
기술적으로 어렵다
완전히 끄면 세포가 죽을 수 있다
부분적 억제 가 오히려 약과 비슷하다
세 번째가 중요하다 — 약도 완전히 못 막는다
실제 약이 표적을 100% 막는 경우는 거의 없어요.
그러니 부분 억제로도 효과가 있는지 보는 게 더 현실적입니다.
그리고 결론을 조심해야 합니다
말할 수 있는 것 말할 수 없는 것
"발현을 절반으로 줄이면 이런 일이 생긴다"
"이 유전자가 없으면 이렇게 된다"
한 실험이 답하는 것은 그 조건에서만 이다
/immunology 7강의 "무엇을 뺐는지 알면 결론을 어디까지 믿을지 안다"
와 같은 태도예요.
🤔 Check yourself
하류 분석을 하기 전에 Ddx54 자체 발현부터 확인하는 이유는?
A Ddx54 가 가장 중요한 유전자라서
B 조작이 실제로 일어나지 않았다면 이후 해석이 전부 무의미해지기 때문
C 코드가 빨라지기 때문
D GEO 규칙이라서
Answer 이것이 sanity check 입니다. 스위치를 정말 내렸는지 확인하지 않고 방이 어두워진 이유를 논할 수는 없습니다.
🤔 Check yourself
ddx[WT] 의 결과 타입은?
A 숫자 하나(float)
B 길이 4짜리 Series
C DataFrame
D 리스트
Answer 이름 리스트 로 골랐으므로 결과도 여러 칸, 즉 Series 입니다. 그래서 곧바로 .mean() 을 이어 붙일 수 있습니다.
🤔 Check yourself
Δ(KD − WT) 가 −0.81 이라는 것은?
A 0.81개 줄었다
B 약 0.57배, 즉 43%쯤 줄었다
C 81% 줄었다
D 8.1배 줄었다
Answer log2 눈금이므로 2−0.81 ≈ 0.57배 입니다. 절반(−1)에는 못 미치는, 43%가량의 감소입니다.
← Lesson 7 정규화 ②
Mark this lesson done ✓
Lesson 9 → 잡음 걸러내기