This lesson is only available in Korean for now.
Lesson 3 of 20
High school
University
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. 이 안에 뭐가 들었는지부터 봅니다.
High school 책을 잘게 찢어 놓고 원래 순서를 맞추는 일
시퀀싱 기계는 DNA 를 처음부터 끝까지 죽 읽지 못합니다.
긴 책을 통째로 못 읽고, 잘게 찢어서 조각만 읽는 것과 같습니다.
책으로 치면 DNA 로 치면
책을 잘게 찢는다 DNA 를 잘게 부순다
조각마다 열다섯 글자씩 읽는다 read 하나가 150 글자
조각이 수십억 개, 순서는 뒤죽박죽 read 수십억 개
같은 책 완본을 옆에 놓고 맞춘다 참조 게놈 에 정렬한다
비유가 깨지는 자리
책 조각은 한 번만 찢지만, DNA 는 같은 자리를 수십 번 읽습니다.
일부러 그렇게 합니다 — 한 번 읽어서는 기계가 잘못 읽은 건지 알 수 없으니까요.
그 '몇 번 읽었나' 가 바로 커버리지 입니다.
시퀀싱 기계가 실제로 내놓는 것
기계는 게놈을 처음부터 끝까지 죽 읽지 못합니다.
DNA 를 잘게 부수고, 그 조각들을 100~150 글자씩 읽습니다.
그런 조각(read)이 수십억 개 나옵니다. 순서는 뒤죽박죽입니다.
파일 이름의 R1·R2 는 조각 하나를 양쪽 끝에서 읽었다는 뜻입니다
(paired-end). 같은 조각의 두 끝이라 서로 짝이 있고, 그 짝 사이 거리를 알기 때문에
나중에 제자리를 찾기가 훨씬 쉬워집니다.
퍼즐 조각과 답안지
정렬(alignment)은 그 조각들을 참조 게놈 위에 늘어놓는 일입니다.
bwa mem -t 16 CanFam3.1.fa rosie_tumor_R1.fastq.gz rosie_tumor_R2.fastq.gz \
| samtools sort -o tumor.bam
이야기에서 이 계산에 이틀 이 걸렸습니다.
High school 참조 게놈은 '정답지' 가 아니라 '남의 답안지' 다
정렬하려면 완성된 그림이 있어야 합니다. 그게 참조 게놈(CanFam3.1)입니다.
그런데 이 참조는 어떤 개 한 마리 에서 만든 것입니다.
로지가 그 개와 품종이 다르면 안 맞는 자리가 생깁니다.
이게 왜 문제가 되나요
안 맞는 자리가 "변이" 로 보이기 때문입니다.
사실은 그냥 개마다 다른 부분인데, 프로그램은 "여기 뭔가 바뀌었다" 고 표시합니다.
이 이야기가 로지의 피도 같이 읽은 이유 가 여기 있습니다.
피와 종양을 둘 다 참조에 맞춰 보면, 참조 탓에 생긴 오해는
양쪽에 똑같이 나타나서 4강에서 자동으로 지워집니다.
잘못된 자를 써도, 두 물건을 같은 자로 재면 '차이' 는 맞습니다
참조 게놈이라는 것이 이미 하나의 결정이다
CanFam3.1 은 2011년에 나온 개 표준 유전체입니다. 지금은 더 정확한 것
(ROS_Cfam_1.0 / CanFam4)이 있습니다. 옛 참조를 쓰면 그 참조가 틀린 자리 에서
가짜 변이가 무더기로 나옵니다.
그리고 참조 게놈은 개 한 마리에서 만든 것 입니다. 로지의 품종이 그 개와 멀수록
정렬이 안 되는 자리가 늘어납니다. 이 이야기의 결과를 읽을 때
어느 참조에 대고 잰 숫자인가 를 늘 물어야 하는 이유입니다.
커버리지 — 같은 자리를 몇 번 읽었나
이야기에 나오는 혈액 40×, 종양 85× 가 이겁니다.
게놈의 한 자리를 평균 몇 개의 read 가 덮고 있는지입니다.
커버리지 = (read 개수 × read 길이) ÷ 게놈 크기
왜 종양을 두 배 넘게 깊이 읽었을까요? 종양은 순수하지 않기 때문 입니다.
떼어 낸 종양 조각 안에는 종양 세포만 있는 게 아닙니다. 정상 결합조직, 혈관, 침윤한 면역세포가
섞여 있습니다. 게다가 종양 세포끼리도 유전자가 다릅니다(종양 내 이질성).
그래서 일부 세포에만 있는 변이 는 read 백 개 중 몇 개에만 나타납니다.
깊이 읽지 않으면 그 몇 개가 아예 안 잡히거나, 잡혀도 기계 오류와 구별되지 않습니다.
결론이 뒤집히는 자리는 VAF 가 낮을 때뿐입니다. 그래서 종양만 85× 로 읽었습니다.
Python
Runs in your browser
↺
▶ Run
High school 위 코드가 방금 무슨 일을 했나요
커버리지가 낮으면 왜 변이를 놓치는지 확률로 계산했습니다.
표의 두 번째 칸이 놓칠 확률 입니다. 위에서 아래로 읽으면 급격히 떨어집니다.
깊이 VAF 0.10 짜리 변이를 놓칠 확률
10× 매우 높음
40× 꽤 낮아짐
85× 거의 0
그런데 마지막 줄을 꼭 보세요
VAF 0.847 짜리(KIT D816V)는 40× 로도 놓칠 일이 없습니다.
즉 깊이 85× 는 KIT 을 찾기 위한 게 아니었습니다.
혹시 있을지 모를 드문 변이 를 놓치지 않으려고 지불한 값입니다.
결과적으로는 흔한 변이가 답이었으니 그 돈이 헛돈처럼 보이지만,
미리 알 수 없었기 때문에 낸 보험료입니다.
중복 제거 — 같은 조각을 여러 번 센 것
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강의 변이 부르기가 가짜 변이를 자신 있게 내놓습니다.
이 한 줄을 빼먹는 것이 초심자가 가장 흔히 하는 실수입니다.
High school PCR 중복 — 시험지를 복사해서 열 장 내는 것
반 친구 한 명의 답안지를 복사해서 열 장 만들었다고 해 봅시다.
그리고 "열 명이 같은 답을 썼으니 맞는 답이겠지" 라고 하면 될까요?
안 됩니다. 독립적인 증거가 아니라 한 사람의 답 이니까요.
PCR 중복이 정확히 이겁니다
DNA 를 증폭할 때 원본 조각 하나가 사본 열 개가 됩니다.
원본에 기계가 잘못 읽은 글자 하나 가 있었다면, 그 오류가 열 번 복사됩니다.
프로그램 눈에는 "열 개의 read 가 여기 변이가 있다고 한다" 로 보입니다.
확신에 찬 가짜 변이 가 만들어집니다. MarkDuplicates 한 줄이
그 사본들을 찾아 하나로 세라고 표시해 줍니다.
증거가 열 개인 것과, 증거 하나를 열 번 말한 것은 다릅니다
🤔 Check yourself
종양을 혈액보다 두 배 넘게 깊이 읽은 가장 큰 이유는?
A 종양 DNA 가 더 잘 부서져서 read 가 짧기 때문
B 종양 샘플에는 정상 세포가 섞여 있어 변이가 read 중 일부에만 나타나기 때문
C 종양 게놈이 정상 게놈보다 크기 때문
D 종양 DNA 는 품질이 낮아 오류가 많기 때문
Answer 종양 조각에는 정상 세포가 섞여 있고, 종양 세포끼리도 서로 다릅니다.
그래서 어떤 변이는 read 100개 중 5개 에만 나옵니다.
깊이 읽어야 그 5개가 '기계 오류 5개'가 아니라 '진짜 변이 5개'라고 말할 수 있습니다.
🤔 Check yourself
PCR 중복 read 를 제거하지 않으면 무슨 일이 생기나요?
A 변이를 놓치게 된다
B 정렬이 느려질 뿐 결과는 같다
C DNA 분자 하나에서 난 오류가 여러 개의 독립 증거처럼 보여 가짜 변이가 늘어난다
D 커버리지가 실제보다 낮게 계산된다
Answer 복제된 read 는 같은 분자의 사본 이라 독립적인 증거가 아닙니다.
원본 분자에 오류가 하나 있었다면 그 오류가 열 번 복제되어,
프로그램 눈에는 '깊이 20 중 10개가 변이' 처럼 보입니다. 가짜 변이가 확신을 갖고 통과합니다.
← Lesson 2 91나노미터
Mark this lesson done ✓
Lesson 4 → 체세포 변이 부르기