02. 라이브러리에서 FASTQ까지
cDNA 라이브러리를 시퀀서에 넣으면 염기서열과 글자별 신뢰도가 담긴 FASTQ 파일이 나옵니다. 이 수업은 fragment 하나가 FASTQ의 read 두 개로 바뀌는 과정만 따라갑니다.
이 수업의 질문: 시퀀서는 cDNA fragment를 어떻게 읽고, 얼마나 확실히 읽었는지 어떻게 기록하는가?
대규모 병렬 작업이 입력 레코드마다 결과와 실행 메타데이터를 남기는 장면을 떠올리면 전체 구조가 보입니다. 시퀀서는 수백만 개의 fragment를 동시에 처리하고, 각 fragment에서 읽은 문자열뿐 아니라 물리적 주소와 글자별 신뢰도도 함께 직렬화합니다.
| 시스템 관점 | 시퀀싱에서 대응하는 것 |
|---|---|
| 작업 단위 | flow cell 위의 cluster 하나 |
| 반복 루프 | 한 cycle마다 염기 하나 판독 |
| 결과 데이터 | A·C·G·T·N 문자열 |
| 관측 메타데이터 | cluster 주소, 염기별 Phred 점수 |
| 출력 형식 | FASTQ 레코드 |
1. fragment의 양 끝을 읽는다
섹션 제목: “1. fragment의 양 끝을 읽는다”길이가 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, 영어):
2. Flow cell에서 동시에 읽는다
섹션 제목: “2. Flow cell에서 동시에 읽는다”시퀀서는 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 같은 문자열은 이 주소를 기록합니다.
| 헤더 조각 | 가리키는 위치 |
|---|---|
C5GAPACXX | flow cell ID |
4 | lane 번호 |
1101 | tile 번호 |
2723:1997 | tile 안 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으로 기록합니다.
1,000개를 읽어 1개 틀릴 확률
섹션 제목: “1,000개를 읽어 1개 틀릴 확률”Phred 품질 점수 Q는 베이스 콜링이 틀렸을 확률을 나타냅니다. Q30은 같은 조건으로 염기 1,000개를 읽을 때 평균적으로 약 1개를 틀릴 확률입니다.
| Phred Q | 오류 확률 | 정확도 |
|---|---|---|
| Q20 | 1/100 | 99% |
| Q30 | 1/1000 | 99.9% |
| Q40 | 1/10000 | 99.99% |
Q값이 10 오를 때 오류 확률이 왜 10분의 1이 되는지와 로그 공식은 확률과 Phred 점수에서 설명합니다.
FASTQ는 Q값을 ASCII 문자로 저장합니다. 염기 하나마다 품질 점수 하나가 대응하므로 서열과 품질 문자열의 길이는 같습니다.
FASTQ 레코드는 다음처럼 네 줄짜리 구조를 가집니다.
@read42/1TACGTTAG+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를 준비합니다.
- 레퍼런스 게놈 ALT/HLA/decoy 제거 방식: GTEx / TOPMed RNA-seq pipeline
- 정상 조직 발현 레퍼런스(GTEx): GTEx Portal: bulk tissue expression · Nature Genetics 2013
- 암 발현·유전체 레퍼런스(PCAWG): Pan-cancer analysis of whole genomes, Nature 2020 · ICGC/ARGO 데이터 접근
- Sid 공개 발현 뷰어: osteosarc.com/rnaseq