3강 / 20강
200기가바이트 — 조각을 제자리에 놓는다
제6장 「200기가바이트의 세계」
이메일이 왔습니다. 첨부파일 네 개.
rosie_blood_R1.fastq.gz (48 GB)
rosie_blood_R2.fastq.gz (51 GB)
rosie_tumor_R1.fastq.gz (52 GB)
rosie_tumor_R2.fastq.gz (55 GB)
합쳐서 200 GB. 이 안에 뭐가 들었는지부터 봅니다.
퍼즐 조각과 답안지
정렬(alignment)은 그 조각들을 참조 게놈 위에 늘어놓는 일입니다.
bwa mem -t 16 CanFam3.1.fa rosie_tumor_R1.fastq.gz rosie_tumor_R2.fastq.gz \
| samtools sort -o tumor.bam
이야기에서 이 계산에 이틀이 걸렸습니다.
커버리지 — 같은 자리를 몇 번 읽었나
이야기에 나오는 혈액 40×, 종양 85× 가 이겁니다. 게놈의 한 자리를 평균 몇 개의 read 가 덮고 있는지입니다.
커버리지 = (read 개수 × read 길이) ÷ 게놈 크기
왜 종양을 두 배 넘게 깊이 읽었을까요? 종양은 순수하지 않기 때문입니다.
떼어 낸 종양 조각 안에는 종양 세포만 있는 게 아닙니다. 정상 결합조직, 혈관, 침윤한 면역세포가 섞여 있습니다. 게다가 종양 세포끼리도 유전자가 다릅니다(종양 내 이질성). 그래서 일부 세포에만 있는 변이는 read 백 개 중 몇 개에만 나타납니다. 깊이 읽지 않으면 그 몇 개가 아예 안 잡히거나, 잡혀도 기계 오류와 구별되지 않습니다.
결론이 뒤집히는 자리는 VAF 가 낮을 때뿐입니다. 그래서 종양만 85× 로 읽었습니다.
Python
브라우저에서 실행
중복 제거 — 같은 조각을 여러 번 센 것
picard MarkDuplicates I=tumor.bam O=tumor_dedup.bam M=tumor_metrics.txt
라이브러리를 만들 때 PCR 로 DNA 를 증폭합니다. 그러다 보면 원본 조각 하나가 사본 열 개가 되어 기계에 들어갑니다. 정렬하면 똑같은 자리에 똑같은 조각이 열 개 쌓입니다.
독립된 read 10개
서로 다른 DNA 분자 10개를 읽은 것. 증거 10개입니다.
복제된 read 10개
DNA 분자 하나를 열 번 베낀 것. 증거는 여전히 1개인데
프로그램은 10개로 셉니다. 오류 하나가 확신에 찬 변이가 됩니다.
중복 제거를 안 하면 4강의 변이 부르기가 가짜 변이를 자신 있게 내놓습니다. 이 한 줄을 빼먹는 것이 초심자가 가장 흔히 하는 실수입니다.
🤔 확인 문제
종양을 혈액보다 두 배 넘게 깊이 읽은 가장 큰 이유는?
해설 종양 조각에는 정상 세포가 섞여 있고, 종양 세포끼리도 서로 다릅니다.
그래서 어떤 변이는 read 100개 중 5개에만 나옵니다.
깊이 읽어야 그 5개가 '기계 오류 5개'가 아니라 '진짜 변이 5개'라고 말할 수 있습니다.
🤔 확인 문제
PCR 중복 read 를 제거하지 않으면 무슨 일이 생기나요?
해설 복제된 read 는 같은 분자의 사본이라 독립적인 증거가 아닙니다.
원본 분자에 오류가 하나 있었다면 그 오류가 열 번 복제되어,
프로그램 눈에는 '깊이 20 중 10개가 변이' 처럼 보입니다. 가짜 변이가 확신을 갖고 통과합니다.