Aligner: RNA-seq read를 reference에 맞추는 도구들
RNA-seq 분석에서 aligner는 FASTQ read를 reference genome 또는 transcriptome에 맞춰 SAM/BAM 파일을 만드는 도구입니다.
FASTQ -> alignment(STAR/HISAT2 등) -> SAM/BAM -> count/assembly/variant/fusion 분석DNA-seq aligner는 read가 genome의 연속된 구간에서 왔다고 가정해도 대체로 괜찮습니다. 하지만 RNA-seq read는 mature mRNA에서 왔기 때문에 exon과 exon이 이어진 부분, 즉 splice junction을 가로지를 수 있습니다. genome 입장에서 보면 read의 앞부분은 exon 1, 뒷부분은 수천 bp 떨어진 exon 2에 붙어야 합니다.
그래서 RNA-seq에서는 보통 spliced aligner가 필요합니다.
read: AAAAAAA|GGGGGGGgenome: exon 1 |---- intron ----| exon 2alignment: AAAAAAA GGGGGGG한 줄 요약
섹션 제목: “한 줄 요약”| 도구 | 발표/등장 | 주 용도 | 핵심 특징 |
|---|---|---|---|
| STAR | 2012/2013 | bulk RNA-seq, fusion, large cohort | 매우 빠른 spliced alignment, 높은 메모리 사용 |
| HISAT2 | 2015 beta, 2019 논문 | bulk RNA-seq, 낮은 메모리, graph index | Hierarchical Graph FM index, SNP/전사체 정보 반영 가능 |
| TopHat / TopHat2 | 2009 / 2013 | 역사적으로 중요한 RNA-seq aligner | Bowtie 기반 exon-first 방식, 현재는 대체로 legacy |
| Subread / Subjunc | 2013 | expression count, junction detection | seed-and-vote 전략, featureCounts와 같은 패키지 생태계 |
| Bowtie / Bowtie2 | 2009 / 2012 | 짧은 read의 unspliced alignment | BWT/FM-index 기반, RNA-seq 단독 spliced alignment에는 부적합 |
| BWA | 2009 | DNA-seq short read alignment | BWT 기반 DNA aligner의 표준 중 하나 |
| minimap2 | 2018 | long read, long RNA/cDNA, genome alignment | minimizer 기반, long-read RNA-seq에서 중요 |
왜 RNA-seq aligner는 별도로 필요한가
섹션 제목: “왜 RNA-seq aligner는 별도로 필요한가”RNA-seq alignment의 어려움은 크게 네 가지입니다.
| 문제 | 설명 |
|---|---|
| splice junction | read 하나가 genome의 불연속 위치 두 곳 이상에 걸칠 수 있음 |
| multi-mapping | paralog, pseudogene, repeat 때문에 같은 read가 여러 위치에 붙을 수 있음 |
| sequencing error / variant | mismatch, indel, SNP 때문에 reference와 정확히 같지 않음 |
| transcript ambiguity | isoform들이 exon을 공유해 transcript 단위 배정이 애매함 |
특히 splice junction은 DNA-seq aligner와 RNA-seq aligner를 가르는 핵심입니다.
DNA-seq aligner: read를 genome의 연속 구간에 맞춤RNA-seq spliced aligner: read를 여러 exon 조각으로 나누어 genome의 불연속 구간에 맞춤알고리즘 배경
섹션 제목: “알고리즘 배경”Seed-and-extend
섹션 제목: “Seed-and-extend”현대 aligner 대부분은 read 전체를 처음부터 dynamic programming으로 맞추지 않습니다. 먼저 read 안의 짧은 조각, 즉 seed를 reference에서 빠르게 찾고, 그 후보 위치 주변에서 alignment를 확장합니다.
read: ACTGACCTGAACT...seed: ACTGACcandidate: genome 어딘가에서 ACTGAC이 발견된 위치extend: 주변까지 확장하며 mismatch/indel/splice를 평가이 방식은 BLAST류의 오래된 아이디어와도 연결됩니다. 차이는 reference genome 전체를 빠르게 검색하기 위해 suffix array, FM-index, minimizer index 같은 자료구조를 쓴다는 점입니다.
BWT / FM-index
섹션 제목: “BWT / FM-index”Bowtie, BWA, HISAT 계열에서 중요한 개념입니다. Burrows-Wheeler Transform(BWT)와 FM-index는 큰 genome 문자열을 압축된 형태로 저장하면서도 짧은 query를 빠르게 찾을 수 있게 해 줍니다.
장점:
| 장점 | 설명 |
|---|---|
| 낮은 메모리 | genome 전체 검색 index를 비교적 작게 유지 |
| 빠른 exact/near-exact search | 짧은 read seed 검색에 적합 |
| short-read DNA/RNA alignment에 강함 | Illumina short read 시대의 핵심 자료구조 |
단점은 splice처럼 read가 reference의 불연속 구간에 붙는 문제를 기본적으로 직접 해결하지는 않는다는 점입니다. 그래서 TopHat은 Bowtie를 먼저 돌린 뒤 남은 read에서 junction을 추론했고, HISAT/HISAT2는 FM-index 구조를 RNA-seq에 맞게 확장했습니다.
Suffix array
섹션 제목: “Suffix array”STAR는 압축된 FM-index 대신 uncompressed suffix array를 적극적으로 사용합니다. 덕분에 seed 검색이 매우 빠르지만, human genome index를 올릴 때 메모리를 많이 씁니다.
STAR 논문의 핵심 표현은 Maximal Mappable Prefix(MMP)입니다. read의 앞에서부터 reference에 붙을 수 있는 가장 긴 prefix를 찾고, splice나 mismatch 때문에 끊기면 남은 부분에서 다시 seed를 찾습니다.
read: exonA_part | exonB_partMMP 1: exonA_partMMP 2: exonB_partstitching: 두 seed를 splice junction으로 이어 하나의 alignment 구성RNA-seq에서 주로 쓰이는 aligner
섹션 제목: “RNA-seq에서 주로 쓰이는 aligner”STAR
섹션 제목: “STAR”STAR(Spliced Transcripts Alignment to a Reference)는 2012년에 논문이 online published 되었고, 2013년 Bioinformatics에 실린 RNA-seq aligner입니다. ENCODE 같은 대규모 transcriptome 데이터를 빠르게 처리하기 위해 개발되었습니다.
핵심 알고리즘:
| 항목 | 내용 |
|---|---|
| index | uncompressed suffix array |
| seed 검색 | sequential maximum mappable seed search, Maximal Mappable Prefix(MMP) |
| splice 처리 | seed clustering, stitching, scoring으로 split alignment 구성 |
| annotation 사용 | GTF splice junction을 index 생성 시 넣어 민감도 향상 가능 |
| output | sorted BAM, splice junction table, chimeric junction 등 다양한 output 지원 |
STAR의 큰 장점은 속도입니다. 논문에서는 당시 다른 RNA-seq aligner보다 훨씬 빠른 속도를 보고했고, 현재도 bulk RNA-seq pipeline에서 널리 사용됩니다. 특히 다음 상황에서 자주 선택됩니다.
| 상황 | STAR가 좋은 이유 |
|---|---|
| human/mouse bulk RNA-seq | 잘 검증된 기본 선택지 |
| 대량 샘플 처리 | CPU를 쓰면 매우 빠름 |
| fusion transcript 탐색 | chimeric alignment output을 활용 가능 |
| novel splice junction 탐색 | annotation 없이도 junction 발견 가능 |
주의점:
| 주의점 | 설명 |
|---|---|
| 메모리 사용량 | human genome index는 수십 GB RAM이 필요할 수 있음 |
| parameter 영향 | multi-mapping, chimeric alignment, splice overhang 설정에 따라 결과가 달라짐 |
| 너무 짧은 read | junction을 안정적으로 잡기 어렵고 annotation 의존도가 커짐 |
실전에서는 보통 GTF를 index 생성 단계에 넣습니다.
STAR \ --runThreadN 8 \ --runMode genomeGenerate \ --genomeDir star_index \ --genomeFastaFiles genome.fa \ --sjdbGTFfile annotation.gtf \ --sjdbOverhang 100--sjdbOverhang은 보통 read length - 1에 맞춥니다. 예를 들어 101 bp read라면 100을 씁니다.
HISAT2
섹션 제목: “HISAT2”HISAT2는 HISAT의 후속 도구입니다. 2015년에 beta release가 나왔고, graph-based genome alignment와 genotyping 기능을 포함한 HISAT2 논문은 2019년에 Nature Biotechnology에 실렸습니다.
HISAT2의 핵심은 Hierarchical Graph FM index(HGFM)입니다.
| 항목 | 내용 |
|---|---|
| index | global FM/GFM index + 많은 local FM/GFM index |
| graph 지원 | SNP, haplotype, transcript 정보를 index에 포함 가능 |
| 메모리 | STAR보다 훨씬 낮은 메모리로 human genome alignment 가능 |
| RNA-seq 지원 | splice-aware alignment, known splice site/exon 정보 사용 가능 |
HISAT2는 STAR보다 메모리 부담이 작습니다. 일반적인 서버나 개인 workstation에서 RNA-seq alignment를 돌려야 할 때 좋은 선택지입니다.
hisat2 \ -p 8 \ --dta \ -x genome_index \ -1 sample_R1.fastq.gz \ -2 sample_R2.fastq.gz \ -S sample.sam--dta는 downstream transcript assembler, 예를 들어 StringTie가 쓰기 좋게 alignment를 보고하도록 하는 옵션입니다.
장점:
| 장점 | 설명 |
|---|---|
| 낮은 메모리 | desktop급 환경에서도 상대적으로 다루기 쉬움 |
| 빠른 속도 | FM-index 기반으로 short read 처리에 강함 |
| graph index | 알려진 SNP/variant를 reference에 반영할 수 있음 |
| StringTie와 궁합 | HISAT2 + StringTie + Ballgown pipeline으로 자주 소개됨 |
주의점:
| 주의점 | 설명 |
|---|---|
| fusion 분석 | STAR chimeric output 기반 도구만큼 흔한 선택은 아님 |
| graph index 준비 | SNP/transcript 포함 index는 준비 과정과 파일 관리가 복잡할 수 있음 |
| parameter 이해 필요 | known splice site, novel splice site, --dta 사용 여부가 목적에 따라 달라짐 |
TopHat / TopHat2
섹션 제목: “TopHat / TopHat2”TopHat은 2009년에 발표된 초기 RNA-seq spliced aligner입니다. 당시 Bowtie를 이용해 먼저 genome에 연속적으로 붙는 read를 정렬하고, 남은 read를 이용해 splice junction을 찾는 방식이었습니다.
1. Bowtie로 unspliced read를 먼저 정렬2. 정렬되지 않은 read를 모아 exon island와 junction 후보를 추론3. junction을 포함한 spliced alignment 수행TopHat은 역사적으로 중요합니다. RNA-seq 분석의 초창기 “Tuxedo pipeline”에서 TopHat + Cufflinks 조합이 널리 쓰였습니다. 그러나 현재 새 분석에서는 대체로 STAR나 HISAT2가 권장됩니다.
| 항목 | TopHat |
|---|---|
| 장점 | RNA-seq spliced alignment를 대중화한 도구 |
| 한계 | 느림, 최신 read 길이/대규모 데이터에 비효율적 |
| 현재 위치 | legacy tool. 과거 논문 재현이나 오래된 pipeline 유지보수에서 주로 등장 |
TopHat2는 insertion, deletion, fusion transcript 등 여러 상황을 더 잘 처리하도록 개선된 버전입니다. 그래도 현대적인 신규 분석에서는 보통 TopHat2 대신 HISAT2나 STAR를 씁니다.
Subread / Subjunc
섹션 제목: “Subread / Subjunc”Subread는 2013년에 발표된 aligner로, seed-and-vote 전략을 사용합니다. read에서 여러 seed를 뽑아 reference에 매핑하고, seed들이 가장 많이 지지하는 genomic location을 선택하는 방식입니다.
| 도구 | 설명 |
|---|---|
| Subread | genomic read alignment 및 RNA-seq expression 분석에 사용 |
| Subjunc | RNA-seq junction detection에 특화된 Subread 계열 도구 |
| featureCounts | 같은 패키지의 read counting 도구. RNA-seq count matrix 생성에 매우 자주 사용 |
Subread 자체가 STAR/HISAT2만큼 RNA-seq aligner로 자주 언급되지는 않지만, Subread package는 featureCounts 때문에 RNA-seq 분석에서 매우 흔히 만납니다.
pseudoalignment와 quasi-mapping: aligner인가?
섹션 제목: “pseudoalignment와 quasi-mapping: aligner인가?”RNA-seq 발현량 추정에서는 Salmon, kallisto 같은 도구도 자주 등장합니다. 이들은 전통적인 의미의 genome aligner와 다릅니다.
| 방식 | 대표 도구 | output | 특징 |
|---|---|---|---|
| genome alignment | STAR, HISAT2 | BAM/SAM | read가 genome 어디에 붙었는지 기록 |
| transcriptome quantification | Salmon, kallisto | transcript/gene abundance table | transcriptome에 대한 compatibility를 빠르게 계산 |
kallisto는 pseudoalignment, Salmon은 quasi-mapping 또는 selective alignment 전략을 사용합니다. read별 base-level alignment를 전부 만들기보다, read가 어떤 transcript들과 호환되는지를 빠르게 판단해 abundance를 추정합니다.
따라서 목적이 gene/transcript expression quantification이라면 Salmon/kallisto가 매우 빠르고 실용적입니다. 반대로 다음 목적이면 genome aligner가 필요합니다.
| 목적 | genome alignment가 필요한 이유 |
|---|---|
| novel splice junction | genome 상의 exon-exon 연결을 직접 봐야 함 |
| fusion transcript | 서로 먼 locus/chromosome에 걸친 chimeric alignment 필요 |
| RNA editing / variant 후보 | reference 좌표와 base-level mismatch가 필요 |
| IGV 시각화 | BAM을 genome browser에서 확인해야 함 |
RNA-seq 외 aligner들
섹션 제목: “RNA-seq 외 aligner들”Bowtie / Bowtie2
섹션 제목: “Bowtie / Bowtie2”Bowtie는 2009년에 발표된 BWT 기반 short read aligner입니다. 매우 빠르고 메모리를 적게 쓰는 aligner로, 초기 NGS 분석에서 중요했습니다.
Bowtie는 기본적으로 ungapped alignment에 가깝고, 짧은 read를 reference에 빠르게 붙이는 데 초점이 있었습니다. Bowtie2는 2012년에 발표되었고, gapped alignment와 더 긴 read를 더 잘 처리하도록 개선되었습니다.
RNA-seq에서는 Bowtie/Bowtie2가 직접 splice junction을 처리하지는 않습니다. 대신 다음처럼 보조적으로 쓰입니다.
| 쓰임 | 설명 |
|---|---|
| TopHat의 내부 aligner | TopHat은 Bowtie/Bowtie2 위에서 spliced alignment를 구성 |
| transcriptome alignment | 이미 splicing이 반영된 transcript FASTA에 read를 붙일 때 |
| QC/오염 확인 | rRNA, adapter, microbial sequence 등에 빠르게 매핑 |
BWA
섹션 제목: “BWA”BWA(Burrows-Wheeler Aligner)는 2009년에 발표된 DNA-seq short read aligner입니다. BWA-backtrack, BWA-SW, BWA-MEM 계열이 있고, 특히 BWA-MEM은 오래 동안 WGS/WES 분석의 표준적인 선택지였습니다.
| 항목 | BWA |
|---|---|
| 주 용도 | DNA-seq, WGS, WES, targeted sequencing |
| index | BWT 기반 |
| RNA-seq에서의 위치 | spliced aligner가 아니므로 일반 mRNA RNA-seq 기본 aligner로는 부적합 |
RNA-seq에서도 genome의 연속 구간에 붙는 read는 BWA로 붙을 수 있지만, exon-exon junction을 가로지르는 read를 자연스럽게 처리하지 못합니다.
minimap2
섹션 제목: “minimap2”minimap2는 2018년에 발표된 범용 pairwise aligner입니다. short read도 일부 지원하지만, 특히 long read와 큰 sequence 간 alignment에서 강합니다.
| 상황 | minimap2가 자주 쓰이는 이유 |
|---|---|
| Oxford Nanopore / PacBio long read | 긴 read와 높은 error rate 처리 |
| long-read RNA-seq | full-length cDNA/direct RNA read의 spliced alignment |
| assembly-to-reference | contig나 assembly를 reference에 맞춤 |
| genome-to-genome comparison | 큰 sequence 간 빠른 alignment |
minimap2는 minimizer를 seed로 사용합니다. read와 reference에서 대표 k-mer를 골라 후보 위치를 빠르게 찾고, chaining과 alignment extension으로 최종 alignment를 만듭니다.
short-read Illumina bulk RNA-seq에서는 보통 STAR/HISAT2가 더 익숙한 선택지입니다. long-read transcriptome 분석에서는 minimap2가 매우 자주 등장합니다.
GMAP / GSNAP / MapSplice
섹션 제목: “GMAP / GSNAP / MapSplice”이 도구들은 STAR/HISAT2 이전 또는 같은 시기에 RNA-seq/spliced alignment 문제를 다루던 중요한 aligner들입니다.
| 도구 | 특징 |
|---|---|
| GMAP | cDNA/EST와 genome alignment에서 오래 쓰인 splice-aware mapper |
| GSNAP | GMAP 계열의 short-read aligner. SNP-tolerant alignment와 splicing 지원 |
| MapSplice | splice junction discovery에 초점을 둔 RNA-seq aligner |
현재 신규 bulk RNA-seq 분석에서 가장 흔한 선택지는 아니지만, 오래된 논문이나 특정 pipeline에서는 여전히 결과 파일이나 방법론 설명에 등장할 수 있습니다.
어떤 aligner를 고르면 되나
섹션 제목: “어떤 aligner를 고르면 되나”| 목적 | 추천 선택지 | 이유 |
|---|---|---|
| 일반적인 human/mouse bulk RNA-seq | STAR 또는 HISAT2 | 가장 널리 검증된 spliced aligner |
| RAM이 넉넉하고 빠른 처리 필요 | STAR | 속도가 빠르고 downstream 도구 지원이 좋음 |
| RAM이 제한적 | HISAT2 | 낮은 메모리 사용량 |
| StringTie로 transcript assembly | HISAT2 --dta 또는 STAR | assembler가 쓰기 좋은 BAM 생성 |
| fusion transcript 탐색 | STAR + Arriba/STAR-Fusion 등 | chimeric alignment 생태계가 강함 |
| 단순 expression quantification | Salmon/kallisto도 고려 | BAM 없이 빠른 abundance 추정 |
| long-read RNA/cDNA | minimap2 | long read spliced alignment에 강함 |
| short-read DNA-seq WGS/WES | BWA-MEM/BWA-MEM2 계열 | splicing이 없으므로 DNA aligner 사용 |
| long-read DNA-seq | minimap2 | Nanopore/PacBio long read alignment에 강함 |
실습 목적이라면 처음에는 STAR 또는 HISAT2 중 하나를 골라 BAM을 만들고, IGV로 alignment를 직접 보는 편이 좋습니다. read가 exon-exon junction을 어떻게 건너뛰는지 눈으로 보면 RNA-seq alignment의 개념이 훨씬 빨리 잡힙니다.
결과를 읽을 때 봐야 할 것
섹션 제목: “결과를 읽을 때 봐야 할 것”aligner를 바꿔도 최종적으로는 보통 BAM/SAM을 봅니다. 이때 중요한 것은 다음입니다.
| 항목 | 의미 |
|---|---|
| mapping rate | 전체 read 중 reference에 붙은 비율 |
| uniquely mapped reads | 한 위치에만 자신 있게 붙은 read |
| multi-mapped reads | 여러 위치에 비슷하게 붙는 read |
| splice junction support | junction을 가로지르는 read 수 |
| MAPQ | alignment confidence를 나타내는 mapping quality |
| CIGAR | match, insertion, deletion, splice skip 등을 표현 |
RNA-seq BAM에서 특히 중요한 CIGAR 문자는 N입니다. N은 reference에서 긴 구간을 건너뛴다는 뜻이고, RNA-seq에서는 보통 intron을 의미합니다.
50M1000N50M이 read는 앞 50 bp가 한 exon에 붙고, reference에서 1000 bp를 건너뛴 뒤, 뒤 50 bp가 다음 exon에 붙었다는 뜻입니다.
실전 주의점
섹션 제목: “실전 주의점”1. genome FASTA와 GTF 버전을 맞춘다
섹션 제목: “1. genome FASTA와 GTF 버전을 맞춘다”STAR/HISAT2 모두 annotation을 넣을 수 있습니다. 이때 genome FASTA와 GTF의 build, chromosome 이름, release 버전이 맞아야 합니다.
좋음: GRCh38 FASTA + GENCODE v46 GRCh38 GTF위험: GRCh37 FASTA + GRCh38 GTF위험: FASTA는 chr1, GTF는 12. alignment parameter를 결과와 함께 기록한다
섹션 제목: “2. alignment parameter를 결과와 함께 기록한다”RNA-seq alignment는 parameter 영향이 큽니다. 논문이나 노트에는 최소한 다음을 남겨야 합니다.
aligner: STAR 2.7.xgenome: GRCh38annotation: GENCODE v46key options: --sjdbOverhang 100, --outSAMtype BAM SortedByCoordinate3. multi-mapping read를 조심한다
섹션 제목: “3. multi-mapping read를 조심한다”유전자 family, pseudogene, repeat 영역에서는 read가 여러 곳에 붙을 수 있습니다. aligner마다 multi-mapping read를 보고하는 방식과 count 도구가 이를 처리하는 방식이 다릅니다.
4. “빠른 aligner”가 항상 더 좋은 답은 아니다
섹션 제목: “4. “빠른 aligner”가 항상 더 좋은 답은 아니다”목적에 따라 다릅니다. expression quantification만 필요하면 Salmon/kallisto가 더 실용적일 수 있습니다. fusion이나 novel junction을 보고 싶으면 genome spliced alignment가 필요합니다. variant 후보를 보려면 base-level alignment와 post-processing이 중요합니다.
치트시트
섹션 제목: “치트시트”RNA-seq short read의 기본 선택지는 STAR 또는 HISAT2.STAR는 빠르고 기능이 풍부하지만 메모리를 많이 쓴다.HISAT2는 낮은 메모리와 graph FM index가 장점이다.TopHat은 역사적으로 중요하지만 현재 신규 분석에서는 대체로 legacy다.Bowtie/BWA는 DNA 또는 unspliced short-read aligner로 이해하면 된다.minimap2는 long-read RNA/cDNA와 genome alignment에서 중요하다.Salmon/kallisto는 전통적 aligner라기보다 transcript abundance 추정 도구다.참고자료 및 출처
섹션 제목: “참고자료 및 출처”- Dobin A. et al. STAR: ultrafast universal RNA-seq aligner. Bioinformatics 29(1), 15-21 (2013). DOI: 10.1093/bioinformatics/bts635
- Kim D. et al. HISAT: a fast spliced aligner with low memory requirements. Nature Methods 12, 357-360 (2015). DOI: 10.1038/nmeth.3317
- Kim D. et al. Graph-based genome alignment and genotyping with HISAT2 and HISAT-genotype. Nature Biotechnology 37, 907-915 (2019). DOI: 10.1038/s41587-019-0201-4
- Trapnell C., Pachter L., Salzberg S. L. TopHat: discovering splice junctions with RNA-Seq. Bioinformatics 25(9), 1105-1111 (2009). DOI: 10.1093/bioinformatics/btp120
- Kim D. et al. TopHat2: accurate alignment of transcriptomes in the presence of insertions, deletions and gene fusions. Genome Biology 14, R36 (2013). DOI: 10.1186/gb-2013-14-4-r36
- Langmead B. et al. Ultrafast and memory-efficient alignment of short DNA sequences to the human genome. Genome Biology 10, R25 (2009). DOI: 10.1186/gb-2009-10-3-r25
- Langmead B., Salzberg S. L. Fast gapped-read alignment with Bowtie 2. Nature Methods 9, 357-359 (2012). DOI: 10.1038/nmeth.1923
- Li H., Durbin R. Fast and accurate short read alignment with Burrows-Wheeler transform. Bioinformatics 25(14), 1754-1760 (2009). DOI: 10.1093/bioinformatics/btp324
- Liao Y., Smyth G. K., Shi W. The Subread aligner: fast, accurate and scalable read mapping by seed-and-vote. Nucleic Acids Research 41(10), e108 (2013). DOI: 10.1093/nar/gkt214
- Li H. Minimap2: pairwise alignment for nucleotide sequences. Bioinformatics 34(18), 3094-3100 (2018). DOI: 10.1093/bioinformatics/bty191
- HISAT2 official documentation: https://daehwankimlab.github.io/hisat2/
- STAR source and manual: https://github.com/alexdobin/STAR
- minimap2 source and manual: https://github.com/lh3/minimap2