콘텐츠로 이동

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|GGGGGGG
genome: exon 1 |---- intron ----| exon 2
alignment: AAAAAAA GGGGGGG
도구발표/등장주 용도핵심 특징
STAR2012/2013bulk RNA-seq, fusion, large cohort매우 빠른 spliced alignment, 높은 메모리 사용
HISAT22015 beta, 2019 논문bulk RNA-seq, 낮은 메모리, graph indexHierarchical Graph FM index, SNP/전사체 정보 반영 가능
TopHat / TopHat22009 / 2013역사적으로 중요한 RNA-seq alignerBowtie 기반 exon-first 방식, 현재는 대체로 legacy
Subread / Subjunc2013expression count, junction detectionseed-and-vote 전략, featureCounts와 같은 패키지 생태계
Bowtie / Bowtie22009 / 2012짧은 read의 unspliced alignmentBWT/FM-index 기반, RNA-seq 단독 spliced alignment에는 부적합
BWA2009DNA-seq short read alignmentBWT 기반 DNA aligner의 표준 중 하나
minimap22018long read, long RNA/cDNA, genome alignmentminimizer 기반, long-read RNA-seq에서 중요

왜 RNA-seq aligner는 별도로 필요한가

섹션 제목: “왜 RNA-seq aligner는 별도로 필요한가”

RNA-seq alignment의 어려움은 크게 네 가지입니다.

문제설명
splice junctionread 하나가 genome의 불연속 위치 두 곳 이상에 걸칠 수 있음
multi-mappingparalog, pseudogene, repeat 때문에 같은 read가 여러 위치에 붙을 수 있음
sequencing error / variantmismatch, indel, SNP 때문에 reference와 정확히 같지 않음
transcript ambiguityisoform들이 exon을 공유해 transcript 단위 배정이 애매함

특히 splice junction은 DNA-seq aligner와 RNA-seq aligner를 가르는 핵심입니다.

DNA-seq aligner: read를 genome의 연속 구간에 맞춤
RNA-seq spliced aligner: read를 여러 exon 조각으로 나누어 genome의 불연속 구간에 맞춤

현대 aligner 대부분은 read 전체를 처음부터 dynamic programming으로 맞추지 않습니다. 먼저 read 안의 짧은 조각, 즉 seed를 reference에서 빠르게 찾고, 그 후보 위치 주변에서 alignment를 확장합니다.

read: ACTGACCTGAACT...
seed: ACTGAC
candidate: genome 어딘가에서 ACTGAC이 발견된 위치
extend: 주변까지 확장하며 mismatch/indel/splice를 평가

이 방식은 BLAST류의 오래된 아이디어와도 연결됩니다. 차이는 reference genome 전체를 빠르게 검색하기 위해 suffix array, FM-index, minimizer 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에 맞게 확장했습니다.

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_part
MMP 1: exonA_part
MMP 2: exonB_part
stitching: 두 seed를 splice junction으로 이어 하나의 alignment 구성

STAR(Spliced Transcripts Alignment to a Reference)는 2012년에 논문이 online published 되었고, 2013년 Bioinformatics에 실린 RNA-seq aligner입니다. ENCODE 같은 대규모 transcriptome 데이터를 빠르게 처리하기 위해 개발되었습니다.

핵심 알고리즘:

항목내용
indexuncompressed suffix array
seed 검색sequential maximum mappable seed search, Maximal Mappable Prefix(MMP)
splice 처리seed clustering, stitching, scoring으로 split alignment 구성
annotation 사용GTF splice junction을 index 생성 시 넣어 민감도 향상 가능
outputsorted 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 설정에 따라 결과가 달라짐
너무 짧은 readjunction을 안정적으로 잡기 어렵고 annotation 의존도가 커짐

실전에서는 보통 GTF를 index 생성 단계에 넣습니다.

Terminal window
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는 HISAT의 후속 도구입니다. 2015년에 beta release가 나왔고, graph-based genome alignment와 genotyping 기능을 포함한 HISAT2 논문은 2019년에 Nature Biotechnology에 실렸습니다.

HISAT2의 핵심은 Hierarchical Graph FM index(HGFM)입니다.

항목내용
indexglobal 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를 돌려야 할 때 좋은 선택지입니다.

Terminal window
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은 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는 2013년에 발표된 aligner로, seed-and-vote 전략을 사용합니다. read에서 여러 seed를 뽑아 reference에 매핑하고, seed들이 가장 많이 지지하는 genomic location을 선택하는 방식입니다.

도구설명
Subreadgenomic read alignment 및 RNA-seq expression 분석에 사용
SubjuncRNA-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 alignmentSTAR, HISAT2BAM/SAMread가 genome 어디에 붙었는지 기록
transcriptome quantificationSalmon, kallistotranscript/gene abundance tabletranscriptome에 대한 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 junctiongenome 상의 exon-exon 연결을 직접 봐야 함
fusion transcript서로 먼 locus/chromosome에 걸친 chimeric alignment 필요
RNA editing / variant 후보reference 좌표와 base-level mismatch가 필요
IGV 시각화BAM을 genome browser에서 확인해야 함

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의 내부 alignerTopHat은 Bowtie/Bowtie2 위에서 spliced alignment를 구성
transcriptome alignment이미 splicing이 반영된 transcript FASTA에 read를 붙일 때
QC/오염 확인rRNA, adapter, microbial sequence 등에 빠르게 매핑

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
indexBWT 기반
RNA-seq에서의 위치spliced aligner가 아니므로 일반 mRNA RNA-seq 기본 aligner로는 부적합

RNA-seq에서도 genome의 연속 구간에 붙는 read는 BWA로 붙을 수 있지만, exon-exon junction을 가로지르는 read를 자연스럽게 처리하지 못합니다.

minimap2는 2018년에 발표된 범용 pairwise aligner입니다. short read도 일부 지원하지만, 특히 long read와 큰 sequence 간 alignment에서 강합니다.

상황minimap2가 자주 쓰이는 이유
Oxford Nanopore / PacBio long read긴 read와 높은 error rate 처리
long-read RNA-seqfull-length cDNA/direct RNA read의 spliced alignment
assembly-to-referencecontig나 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가 매우 자주 등장합니다.

이 도구들은 STAR/HISAT2 이전 또는 같은 시기에 RNA-seq/spliced alignment 문제를 다루던 중요한 aligner들입니다.

도구특징
GMAPcDNA/EST와 genome alignment에서 오래 쓰인 splice-aware mapper
GSNAPGMAP 계열의 short-read aligner. SNP-tolerant alignment와 splicing 지원
MapSplicesplice junction discovery에 초점을 둔 RNA-seq aligner

현재 신규 bulk RNA-seq 분석에서 가장 흔한 선택지는 아니지만, 오래된 논문이나 특정 pipeline에서는 여전히 결과 파일이나 방법론 설명에 등장할 수 있습니다.

목적추천 선택지이유
일반적인 human/mouse bulk RNA-seqSTAR 또는 HISAT2가장 널리 검증된 spliced aligner
RAM이 넉넉하고 빠른 처리 필요STAR속도가 빠르고 downstream 도구 지원이 좋음
RAM이 제한적HISAT2낮은 메모리 사용량
StringTie로 transcript assemblyHISAT2 --dta 또는 STARassembler가 쓰기 좋은 BAM 생성
fusion transcript 탐색STAR + Arriba/STAR-Fusion 등chimeric alignment 생태계가 강함
단순 expression quantificationSalmon/kallisto도 고려BAM 없이 빠른 abundance 추정
long-read RNA/cDNAminimap2long read spliced alignment에 강함
short-read DNA-seq WGS/WESBWA-MEM/BWA-MEM2 계열splicing이 없으므로 DNA aligner 사용
long-read DNA-seqminimap2Nanopore/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 supportjunction을 가로지르는 read 수
MAPQalignment confidence를 나타내는 mapping quality
CIGARmatch, 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는 1

2. alignment parameter를 결과와 함께 기록한다

섹션 제목: “2. alignment parameter를 결과와 함께 기록한다”

RNA-seq alignment는 parameter 영향이 큽니다. 논문이나 노트에는 최소한 다음을 남겨야 합니다.

aligner: STAR 2.7.x
genome: GRCh38
annotation: GENCODE v46
key options: --sjdbOverhang 100, --outSAMtype BAM SortedByCoordinate

유전자 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