콘텐츠로 이동

02. 라이브러리에서 FASTQ까지

cDNA 라이브러리를 시퀀서에 넣으면 염기서열과 글자별 신뢰도가 담긴 FASTQ 파일이 나옵니다. 이 수업은 fragment 하나가 FASTQ의 read 두 개로 바뀌는 과정만 따라갑니다.

이 수업의 질문: 시퀀서는 cDNA fragment를 어떻게 읽고, 얼마나 확실히 읽었는지 어떻게 기록하는가?

대규모 병렬 작업이 입력 레코드마다 결과와 실행 메타데이터를 남기는 장면을 떠올리면 전체 구조가 보입니다. 시퀀서는 수백만 개의 fragment를 동시에 처리하고, 각 fragment에서 읽은 문자열뿐 아니라 물리적 주소와 글자별 신뢰도도 함께 직렬화합니다.

시스템 관점시퀀싱에서 대응하는 것
작업 단위flow cell 위의 cluster 하나
반복 루프한 cycle마다 염기 하나 판독
결과 데이터A·C·G·T·N 문자열
관측 메타데이터cluster 주소, 염기별 Phred 점수
출력 형식FASTQ 레코드

길이가 500 bp인 fragment를 양 끝에서 100 bp씩 읽는다고 해봅시다. 장비는 앞쪽 100 bp와 뒤쪽 100 bp를 읽고, 가운데 300 bp는 읽지 않습니다.

한 fragment의 양 끝을 각각 읽는 방식이 paired-end sequencing입니다. 두 read는 같은 fragment에서 왔다는 ID를 공유하고, 앞쪽은 R1, 뒤쪽은 R2 파일에 저장됩니다.

두 파일은 독립적인 로그가 아니라 같은 작업에서 나온 짝입니다. 배열의 같은 인덱스에 있는 R1과 R2 레코드가 한 fragment의 양 끝을 나타냅니다. 한쪽 파일의 레코드만 삭제하거나 순서를 바꾸면 이 관계가 깨집니다.

read 길이는 원래 mRNA 길이가 아니라 장비가 fragment 끝에서 실제로 읽은 길이입니다. 보통 한쪽 끝에서 100~150 bp를 읽습니다.

paired-end가 한 fragment의 양 끝을 어떻게 읽는지 짧은 애니메이션으로 보면 직관적입니다 (Simple Science, 영어):

시퀀서는 fragment 하나를 손에 들고 차례로 읽지 않습니다. 수백만 개의 fragment를 flow cell이라는 유리 칩 표면에 붙이고 같은 사이클에 함께 촬영합니다.

fragment 한 분자가 내는 형광은 카메라가 구분하기에 너무 약합니다. 그래서 표면에 붙은 fragment를 그 자리에서 수천 개로 복제해 같은 서열의 밝은 점을 만듭니다. 이 점이 cluster입니다. paired-end 방식에서는 cluster 하나에 붙은 library fragment 하나에서 R1과 R2가 만들어집니다.

Flow cell은 시약이 흐르는 독립 채널인 lane으로 나뉩니다. 카메라는 lane 전체를 한 장에 담지 않고 작은 촬영 구획인 tile로 나눠 찍습니다. 아래 위젯에서 한 fragment가 놓인 물리적 주소까지 단계별로 들어가 보세요.

FASTQ 헤더의 C5GAPACXX:4:1101:2723:1997 같은 문자열은 이 주소를 기록합니다.

헤더 조각가리키는 위치
C5GAPACXXflow cell ID
4lane 번호
1101tile 번호
2723:1997tile 안 cluster의 x:y 좌표

한 lane에는 여러 샘플을 함께 넣을 수도 있습니다. 샘플마다 고유한 index 서열을 붙여 섞은 뒤, 판독이 끝나면 index를 기준으로 FASTQ를 다시 나눕니다. 이 과정을 multiplexing과 demultiplexing이라고 합니다. 우리가 받는 샘플별 FASTQ는 보통 분리가 끝난 결과입니다.

분산 작업의 결과를 sample_id로 다시 파티셔닝하는 것과 같은 구조입니다. 다만 index 서열도 장비가 실제로 읽는 짧은 DNA이므로 판독 오류가 생길 수 있고, 지나치게 비슷한 index를 쓰면 레코드가 잘못된 샘플로 배정될 수 있습니다.

3. 형광 신호에서 염기 하나를 고른다

섹션 제목: “3. 형광 신호에서 염기 하나를 고른다”

fragment의 첫 위치에서 T 신호만 강하게 빛난다고 해봅시다. 장비는 첫 글자를 T로 기록합니다. 다음 위치에서 A와 C가 비슷하게 빛나면 하나를 고르더라도 신뢰도는 낮게 기록합니다.

Illumina 장비는 염기를 하나 붙이고 형광을 촬영하는 과정을 반복합니다. 합성하면서 읽기 때문에 이 방식을 SBS(sequencing by synthesis) 라고 합니다.

기계 안에서 실제로 어떻게 동작하는지는 Illumina 공식 애니메이션으로 보면 한결 명확합니다 (영어):

형광 촬영 → 가장 강한 염기 선택 → 선택이 틀릴 확률 기록

형광에서 A·C·G·T 중 하나를 고르는 과정이 베이스 콜링(base calling) 입니다. 어느 염기도 고르기 어려우면 N으로 기록합니다.

Phred 품질 점수 Q는 베이스 콜링이 틀렸을 확률을 나타냅니다. Q30은 같은 조건으로 염기 1,000개를 읽을 때 평균적으로 약 1개를 틀릴 확률입니다.

Phred Q오류 확률정확도
Q201/10099%
Q301/100099.9%
Q401/1000099.99%

Q값이 10 오를 때 오류 확률이 왜 10분의 1이 되는지와 로그 공식은 확률과 Phred 점수에서 설명합니다.

FASTQ는 Q값을 ASCII 문자로 저장합니다. 염기 하나마다 품질 점수 하나가 대응하므로 서열과 품질 문자열의 길이는 같습니다.

FASTQ 레코드는 다음처럼 네 줄짜리 구조를 가집니다.

@read42/1
TACGTTAG
+
IIIII5II

두 번째 줄의 염기 8개와 네 번째 줄의 품질 문자 8개가 위치별로 대응합니다. 즉 sequence[i]를 읽을 때 quality[i]를 함께 확인할 수 있는 병렬 배열입니다. 헤더는 레코드 ID와 장비 주소를 담습니다.

실제 paired-end 파일에서 네 줄 레코드와 품질 분포를 확인하는 과정은 RNA-seq 실습의 raw FASTQ 점검 단계에서 이어집니다.

PacBio와 Oxford Nanopore처럼 긴 read를 만드는 장비도 있습니다. 이 노트는 짧은 paired-end read를 만드는 Illumina 장비를 기준으로 설명합니다.

시퀀서는 fragment의 양 끝을 여러 사이클에 걸쳐 읽습니다. 매 사이클마다 형광 신호에서 염기를 하나 고르고, 그 선택이 틀릴 확률을 Phred 점수로 계산합니다.

cDNA fragment → 형광 촬영과 베이스 콜링 반복 → 염기서열 + 품질 점수 → FASTQ

다음 FASTQ 품질 확인과 트리밍에서는 FASTQ를 받은 뒤 품질을 확인하고 정렬에 쓸 read를 준비합니다.