9강 / 20강

FASTQ 네 줄 — 절반은 서열, 절반은 신뢰도

제6장 「넷째 줄이 이 형식의 요점이다」

FASTQ 네 줄 — 절반은 서열, 절반은 신뢰도
200 GB 의 절반은 무엇을 읽었는지, 절반은 그것을 얼마나 믿는지입니다.

FASTQ 파일 안은 네 줄이 한 묶음입니다.

@A00123:45:HW7Y:1:1101:9832:1063 1:N:0:ATCACG  ← 이름
ACGTTTCAGGATCCAAGGTTACGGATCCAAGG…        ← 서열 150글자
+                                         ← 자리를 채우는 줄
FFFFF:FF,FFFFFFF:FFFFFFFFFFFFFF…         ← 품질 150글자

소설이 짚는 요점은 넷째 줄입니다.

"염기 하나마다 품질 점수가 붙는다. 30이면 이 글자가 틀렸을 확률이 천 분의 일. 20이면 백 분의 일. 그 점수를 숫자로 적으면 파일이 너무 커지므로 글자 하나로 바꿔 적는다. 그래서 서열 줄과 품질 줄의 길이가 같다."

Q30 은 '거의 완벽' 이 아닙니다. 150 글자를 이어 붙이면 일곱 리드에 하나는 어딘가 틀립니다.
Python 브라우저에서 실행
품질 점수를 옮겨 보세요. 리드 하나가 통째로 옳을 확률이 어떻게 무너지는지 보여 줍니다.
불러오는 중…

200 GB 가 어디서 나오나

소설의 계산을 그대로 따라가 봅니다.

24억 × 깊이 × (서열 1바이트 + 품질 1바이트)

혈액은 30겹쯤, 종양은 그보다 두세 배 깊게 읽었습니다. 종양을 더 깊이 읽는 이유는 정상 세포가 섞여 있어서입니다 — 10강에서 다룹니다.

그래서 실무 도구는 전부 gzip 을 그대로 읽습니다. 압축을 풀어 두는 습관이 디스크를 터뜨립니다.
Python 브라우저에서 실행

품질 줄이 실제로 알려 주는 것

📉
뒤로 갈수록 낮다
사이클이 쌓이면 위상이 어긋난다. 리드 끝 20~30 bp 는 대개 흐리다
🅶
G 가 이상하다
2색 화학(NextSeq·NovaSeq)에서 신호 없음 = G. 끝의 GGGG 는 G 가 아니라 침묵
🧬
앞도 흔들린다
첫 10 bp 쯤은 라이브러리 제작의 흔적으로 조성이 치우친다

이것을 한눈에 보는 도구가 FastQC 입니다. 워크숍 노트북은 합성 리드를 쓰므로 이 단계를 건너뛰지만, 실제 데이터라면 정렬 전에 반드시 봅니다.

🤔 확인 문제
Phred 품질 점수 Q30 의 뜻은?
🤔 확인 문제
모든 자리가 Q30 인 150 bp 리드가 통째로 옳을 확률은 대략?
🤔 확인 문제
2색 화학 장비에서 리드 끝의 GGGGGGG 를 그대로 두고 정렬하면?