부록 E12: 서열 분석 도구
이 장에서 배울 것
이번 장에서는 서열 분석 도구를 배웁니다. 생물정보학에서는 모든 것을 직접 코딩하지 않습니다. 이미 검증된 도구를 조합해 분석 파이프라인을 만듭니다.
핵심 용어를 먼저 정리하겠습니다.
- 서열 분석(sequence analysis): DNA, RNA, 단백질 서열을 비교하고 해석하는 작업입니다.
- 기준 유전체(reference genome): read를 비교하거나 붙일 기준이 되는 유전체 서열입니다.
- 정렬(alignment): read나 서열이 기준 서열의 어느 위치와 맞는지 찾는 작업입니다.
- 색인(index): 검색을 빠르게 하기 위해 미리 만들어 둔 자료구조입니다.
- BLAST: 입력 서열과 비슷한 서열을 데이터베이스에서 찾는 도구입니다.
- BWA: DNA read를 기준 유전체에 정렬하는 대표적인 도구입니다.
- Bowtie/Bowtie2: 짧은 read 정렬에 쓰이는 도구입니다.
- STAR: RNA-seq read를 빠르게 정렬하는 도구입니다.
- HISAT2: RNA-seq 정렬에 쓰이는 도구입니다.
- minimap2: 긴 read나 다양한 서열 정렬에 널리 쓰이는 도구입니다.
- samtools: SAM/BAM 파일을 보고, 변환하고, 정렬하고, 색인하는 도구입니다.
- bcftools: VCF/BCF 변이 파일을 다루는 도구입니다.
가장 쉬운 비유: 짧은 문장을 책에서 찾기
시퀀싱 read는 아주 짧은 문장 조각과 비슷합니다. 기준 유전체는 아주 두꺼운 책입니다. 정렬 도구는 짧은 문장 조각이 책의 어느 페이지, 어느 줄에 해당하는지 찾아주는 도구입니다.
예를 들어 read가 다음과 같다고 합시다.
ATGCGT
정렬 도구는 이 read가 기준 유전체의 어느 위치와 가장 잘 맞는지 찾습니다.
BLAST: 비슷한 서열 찾기
BLAST는 입력한 서열과 비슷한 서열을 데이터베이스에서 찾는 도구입니다. 어떤 단백질 서열이 있을 때 “이것과 비슷한 알려진 단백질이 있는가?”를 찾을 수 있습니다.
BLAST는 정밀한 대규모 파이프라인의 모든 것을 해결하는 도구는 아니지만, 서열이 무엇과 비슷한지 빠르게 감을 잡을 때 매우 유용합니다.
정렬 도구는 왜 색인을 만들까요?
기준 유전체는 매우 깁니다. 사람 유전체는 약 30억 염기쌍입니다. read 하나하나를 처음부터 끝까지 단순 비교하면 너무 느립니다.
그래서 정렬 도구는 먼저 기준 유전체의 색인(index)을 만듭니다. 색인은 책 뒤의 찾아보기와 비슷합니다. 특정 단어가 어디 있는지 빨리 찾게 해 줍니다.
BWA와 Bowtie
BWA와 Bowtie 계열은 DNA sequencing read를 기준 유전체에 붙이는 데 자주 쓰입니다.
매우 단순화하면 흐름은 이렇습니다.
bwa index reference.fasta
bwa mem reference.fasta sample.fastq > aligned.sam
첫 줄은 기준 유전체 색인을 만들고, 둘째 줄은 read를 정렬해 SAM 파일로 저장합니다.
실제 분석에서는 옵션과 파일이 더 많지만, 입문 단계에서는 “FASTQ를 기준 유전체에 붙여 SAM/BAM으로 만든다”는 흐름을 이해하면 됩니다.
STAR와 HISAT2
RNA-seq read는 DNA read보다 조금 더 까다롭습니다. RNA는 스플라이싱(splicing)을 거치므로, read가 유전체의 떨어진 두 엑손에 걸쳐 붙을 수 있습니다. 그래서 RNA-seq 정렬 도구는 스플라이싱을 고려해야 합니다.
STAR와 HISAT2는 RNA-seq read 정렬에 자주 쓰입니다.
RNA-seq FASTQ
→ STAR 또는 HISAT2
→ 정렬 결과 BAM
minimap2
minimap2는 긴 read 정렬에 많이 쓰입니다. 예를 들어 Oxford Nanopore나 PacBio처럼 긴 read를 생산하는 기술에서 자주 등장합니다. 짧은 read와 긴 read는 오류 양상과 길이가 다르므로 적절한 도구 선택이 중요합니다.
Oxford Nanopore는 전기 신호를 이용해 긴 DNA/RNA 조각을 읽는 시퀀싱 기술이고, PacBio는 단일분자 실시간 시퀀싱을 이용해 긴 read를 얻는 기술입니다. 여기서는 “긴 read를 만드는 기술” 정도로 이해하면 충분합니다.
samtools
samtools는 SAM/BAM 파일을 다루는 기본 도구입니다.
예를 들어 SAM을 BAM으로 바꿀 수 있습니다.
samtools view -b aligned.sam > aligned.bam
BAM 파일을 위치 순서로 정렬할 수도 있습니다.
samtools sort aligned.bam -o aligned.sorted.bam
빠른 조회를 위해 색인을 만들 수도 있습니다.
samtools index aligned.sorted.bam
bcftools
bcftools는 변이 파일인 VCF/BCF를 다룹니다. 변이 목록을 필터링하거나, 특정 구간의 변이만 뽑거나, 변이 통계를 볼 때 사용합니다.
bcftools view variants.vcf
입문 단계에서는 “samtools는 정렬 파일, bcftools는 변이 파일”이라는 구분부터 잡으면 됩니다.
도구 선택이 중요한 이유
모든 도구가 모든 데이터에 적합한 것은 아닙니다. DNA short-read, RNA-seq, long-read, 단백질 서열, 변이 파일은 각각 맞는 도구가 다릅니다.
비슷한 서열 검색: BLAST
DNA short-read 정렬: BWA, Bowtie2
RNA-seq 정렬: STAR, HISAT2
long-read 정렬: minimap2
BAM 처리: samtools
VCF 처리: bcftools
생물정보학에서 왜 중요한가
연구자는 모든 알고리즘을 직접 구현하지 않습니다. 대신 데이터의 성격을 이해하고, 적절한 도구를 고르고, 입력과 출력을 확인하고, 결과를 해석합니다. 도구 이름만 외우는 것이 아니라 “이 도구가 어떤 파일을 받아서 어떤 파일을 만드는지” 이해해야 합니다.
도구 선택 감각: 입력과 출력으로 판단하기
서열 분석 도구는 이름을 외우기보다 입력과 출력으로 이해해야 합니다. BLAST는 하나의 서열과 비슷한 서열을 찾는 검색 도구에 가깝고, BWA나 Bowtie2는 많은 short read를 기준 유전체에 정렬하는 도구입니다.
RNA-seq read는 스플라이싱 때문에 일반 DNA read보다 복잡합니다. 그래서 STAR나 HISAT2처럼 splice-aware aligner를 씁니다. long-read 데이터는 read 길이와 오류 양상이 다르므로 minimap2가 자주 쓰입니다.
분석 흐름은 보통 다음처럼 이어집니다.
sample.fastq.gz
→ BWA/STAR/minimap2 같은 정렬 도구
→ aligned.sam 또는 aligned.bam
→ samtools sort/index
→ 정렬된 BAM
→ 변이 검출 또는 count 계산
→ VCF 또는 count table
초보자가 자주 하는 오해는 BLAST를 모든 read mapping에 쓰면 된다고 생각하는 것입니다. BLAST는 유사 서열 검색에 유용하지만, 수천만 개 read를 정렬하는 표준 대량 처리 도구는 아닙니다. 도구 선택은 데이터 종류, read 길이, 분석 목적에 따라 달라집니다.
미니 실습 블록: 서열 정렬 도구의 입력과 출력 확인하기
이 실습은 서열 정렬 도구의 입력과 출력 확인하기를 직접 손으로 확인하는 연습입니다. 왜 필요한가 하면, 정렬 도구는 reference index, FASTQ 입력, SAM/BAM 출력의 관계를 이해해야 안전하게 쓸 수 있기 때문입니다.
bwa index reference.fa
bwa mem reference.fa sample_R1.fastq.gz sample_R2.fastq.gz > sample.sam
samtools view -bS sample.sam > sample.bam
samtools sort sample.bam -o sample.sorted.bam
samtools index sample.sorted.bam
각 코드 요소의 의미를 풀어보면 다음과 같습니다. bwa index는 reference 검색용 색인을 만들고, bwa mem은 read를 reference에 정렬합니다. SAM은 텍스트 정렬 결과이고 BAM은 압축된 바이너리 정렬 결과입니다.
생물정보학/계산생물학에서 쓰이는 장면은 분명합니다. WGS/WES variant calling 전처리, ChIP-seq read 정렬, 일부 RNA-seq 정렬 흐름에서 쓰입니다.
흔한 오해 또는 주의점도 있습니다. reference와 annotation 버전이 뒤섞이면 좌표와 유전자 해석이 틀어질 수 있습니다.
핵심 정리
서열 분석 도구는 read와 서열을 해석 가능한 결과로 바꾸는 도구입니다. BLAST는 비슷한 서열 검색, BWA/Bowtie는 DNA read 정렬, STAR/HISAT2는 RNA-seq 정렬, minimap2는 긴 read 정렬, samtools는 SAM/BAM 처리, bcftools는 VCF 처리에 자주 쓰입니다.
문제 풀이
서열 분석 도구
주관식 답안은 Gemini API로 채점합니다. API 키는 이 브라우저에만 저장됩니다.
-
1. [쉬움] 객관식
서열 분석(sequence analysis)의 의미로 적절한 것은?
-
2. [쉬움] 객관식
기준 유전체(reference genome)의 설명으로 적절한 것은?
-
3. [보통] 객관식
정렬(alignment)의 의미로 적절한 것은?
-
4. [보통] 객관식
색인(index)을 만드는 이유는?
-
5. [보통] 객관식
BLAST의 주된 역할은?
-
6. [보통] 객관식
BWA가 자주 쓰이는 작업은?
-
7. [보통] 객관식
Bowtie/Bowtie2의 설명으로 적절한 것은?
-
8. [보통] 객관식
STAR와 HISAT2가 자주 쓰이는 데이터는?
-
9. [보통] 객관식
RNA-seq 정렬이 DNA read 정렬보다 까다로운 이유는?
-
10. [보통] 객관식
minimap2가 자주 등장하는 상황은?
-
11. [보통] 객관식
samtools가 주로 다루는 파일은?
-
12. [보통] 객관식
bcftools가 주로 다루는 파일은?
-
13. [코드] 객관식
bwa index reference.fasta의 의미는? -
14. [코드] 객관식
bwa mem reference.fasta sample.fastq > aligned.sam의 의미로 적절한 것은? -
15. [코드] 객관식
samtools view -b aligned.sam > aligned.bam의 의미는? -
16. [코드] 객관식
samtools sort aligned.bam -o aligned.sorted.bam의 의미는? -
17. [코드] 객관식
samtools index aligned.sorted.bam의 역할은? -
18. [코드] 객관식
bcftools view variants.vcf의 역할로 적절한 것은? -
19. [보통] 객관식
도구 선택에서 가장 중요한 기준은?
-
20. [보통] 객관식
서열 분석 도구를 배울 때 핵심 관점은?
-
21. [중간] 객관식
BLAST의 대표적 용도로 가장 적절한 것은?
-
22. [중간] 객관식
DNA short-read를 기준 유전체에 정렬하는 도구로 적절한 것은?
-
23. [중간] 객관식
RNA-seq에서 STAR/HISAT2가 필요한 중요한 이유는?
-
24. [중간] 객관식
long-read 정렬에 자주 쓰이는 도구는?
-
25. [중간] 객관식
samtools sort aligned.bam -o aligned.sorted.bam의 역할은? -
26. [중간] 객관식
bcftools가 주로 다루는 파일은? -
27. [중간] 객관식
가장 자연스러운 DNA read 정렬 흐름은?
-
28. [중간] 객관식
BLAST를 모든 대량 read mapping에 쓰면 안 되는 이유로 맞는 것은?
-
29. [실전] 객관식
정렬 전에
bwa index reference.fa를 실행하는 이유는? -
30. [실전] 객관식
samtools sort sample.bam -o sample.sorted.bam의 목적은? -
주관식 31. [실습] 주관식 · Gemini 채점
BLAST가 어떤 상황에서 유용한지 설명하라.
-
주관식 32. [실습] 주관식 · Gemini 채점
정렬 도구가 기준 유전체 색인을 만드는 이유를 설명하라.
-
주관식 33. [실습] 주관식 · Gemini 채점
BWA를 이용해 기준 유전체 색인을 만들고 FASTQ를 SAM으로 정렬하는 기본 흐름을 코드로 작성하라.
-
주관식 34. [실습] 주관식 · Gemini 채점
samtools로 SAM을 BAM으로 바꾸고 정렬하는 기본 흐름을 코드로 작성하라.
-
주관식 35. [실습] 주관식 · Gemini 채점
STAR/HISAT2와 BWA의 용도 차이를 설명하라.
-
주관식 36. [실습] 주관식 · Gemini 채점
samtools와 bcftools의 차이를 설명하라.
-
주관식 37. [실습] 주관식 · Gemini 채점
DNA short-read, RNA-seq read, long-read에 대해 각각 어떤 정렬 도구가 자주 쓰이는지 비교하라.
-
주관식 38. [실습] 주관식 · Gemini 채점
FASTQ → 정렬 도구 → SAM/BAM → samtools sort/index → 후속 분석흐름을 각 단계의 입력과 출력 중심으로 설명하라. -
주관식 39. [실습] 주관식 · Gemini 채점
BWA와 samtools를 이용해 SAM을 BAM으로 바꾸고 정렬·색인하는 명령 흐름을 쓰라.
-
주관식 40. [실습] 주관식 · Gemini 채점
reference genome 버전을 기록해야 하는 이유를 설명하라.