19강 / 20강

실습 종합 — 코드랩 4~7단계를 줄 단위로

<code>rosie_mct_mrna_vaccine_codelab.ipynb</code> · 3시간 워크숍의 뒤 절반

실습 종합 — 코드랩 4~7단계를 줄 단위로
열여덟 강이 네 개의 셀 안에 들어 있습니다.

I 권 19강에서 0~3단계를 읽었습니다. 이제 4~7단계입니다.

단계하는 일이 권
4체세포 변이발굴 — bcftools 로 부르고, 뺄셈으로 드라이버 복원2~11강
5네오항원 선별 — 타일링 · DLA-88 PWM · 차등 아그레토프14~17강
6mRNA 백신 서열 조립 — IgE · GPGPG · MITD · UTR · polyA/mrna 13강
7코돈 최적화 + m1Ψ18강

6단계는 이 권의 범위 밖입니다 — 서열 설계는 유전체가 아니라 분자생물학입니다. /mrna 13~14강이 그 몫을 합니다.

4단계 — 뺄셈이 실제로 적힌 곳

def call(sample):
    sh(f"{bt} mpileup -f kit_locus.fa -a FORMAT/AD,FORMAT/DP -Q15 -q10 {sample}.sorted.bam "
       f"| {bt} call -m -v -Ov -o {sample}.vcf")
    out = {}
    for ln in open(f"{sample}.vcf"):
        …
        ad = d.get("AD", "0,0").split(","); dp = int(d.get("DP", "0") or 0)

두 시료에 각각 call() 을 돌리고, 그다음이 뺄셈입니다. 6강에서 손으로 한 것과 같은 논리입니다.

여기서 확인할 것은 하나입니다 — 심어 둔 드라이버가 VAF 0.85 근처로 되돌아왔는가.

기대값을 먼저 적어 두고 돌리는 것. I 권 19강과 같은 습관입니다.
Python 브라우저에서 실행
4~7단계를 눌러 가며 따라가 보세요. 각 단계가 무엇을 만들고 무엇을 확인해야 하는지 나옵니다.
불러오는 중…

5단계 — 어디에 눈길을 두어야 하나

recovered = {r for r in ["KIT"] if drv}    # 학생이 직접 복원한 유전자
candidates = []
for e in CLINICAL_PANEL:
    midx = mut_index(e["wt_window"], e["mut_window"])
    …

첫 줄이 눈여겨볼 대목입니다. KIT 은 학생이 복원했고, TP53 과 NRAS 는 주어졌습니다.

노트북이 정직하게 적어 둔 것입니다 — CLINICAL_PANEL 의 "recovered": True/False 가 그 표시입니다. 20 kb 창 안에는 KIT 만 있으므로 나머지 둘은 임상 패널에서 가져온 것입니다.

워크숍에서 이 구분을 넘어가면, 학생은 자기가 세 유전자를 다 찾아낸 줄 압니다.

이 열 줄이 워크숍 뒤 90분의 요약입니다.
Python 브라우저에서 실행

워크숍 진행 — 뒤 90분

시간무엇참고 강
90~110분4단계 — VCF 를 열어 본다. 여덟 열과 FORMAT2~5강
110~125분뺄셈 · 드라이버 복원 · VAF 0.847 이 왜 0.5 가 아닌가6~9강
125~135분문턱을 옮겨 본다 — 커버리지를 20× 로 낮추면?11강
135~155분5단계 — 타일링 · DLA-88 · 차등 아그레토프14~17강
155~170분6~7단계 — 서열 조립 · 코돈 최적화18강 · /mrna
170~180분10단계 재현 판정 + 말할 수 있는 것과 없는 것20강

마지막 10분을 반드시 남기세요. 20강이 그 10분을 위한 것입니다.

🤔 확인 문제
4단계 뒤에 드라이버 VAF 가 0.50 근처로 나왔습니다. 가장 먼저 의심할 것은?
🤔 확인 문제
노트북의 CLINICAL_PANEL 에서 KIT 만 "recovered": True 인 이유는?