04. RNA read를 게놈에 정렬하기
정리된 FASTQ에도 read가 어느 유전자에서 왔는지는 적혀 있지 않습니다. 레퍼런스 게놈에서 원래 위치를 찾아야 유전자별로 셀 수 있습니다. 이 수업의 출력은 정렬된 BAM입니다.
이 수업의 질문: 짧은 RNA read를 게놈의 올바른 위치에 어떻게 되돌려 놓는가?
코드 조각만 있고 어느 저장소의 몇 번째 줄에서 복사됐는지 모르는 상황을 생각해 봅시다. 전체 코드베이스를 검색해 가장 잘 맞는 위치를 찾고, 파일과 줄 번호를 붙이면 출처를 추적할 수 있습니다. 정렬도 같은 형태의 검색과 주소 부여 작업입니다.
| 입력 | 검색 기준 | 처리 | 출력 |
|---|---|---|---|
| FASTQ의 짧은 read | 레퍼런스 게놈 + GTF | 후보 위치 검색, 가장 맞는 위치 선택 | 좌표와 신뢰도가 붙은 BAM |
1. 정렬: 짧은 read의 원래 위치 찾기
섹션 제목: “1. 정렬: 짧은 read의 원래 위치 찾기”정렬은 FASTQ의 각 read를 레퍼런스 게놈 위에 되돌려 놓는 과정입니다. RNA-seq에서는 성숙 mRNA의 인트론이 이미 제거돼 있어, read 하나가 게놈에서 멀리 떨어진 두 엑손에 걸칠 수 있습니다. 그래서 read를 나누어 붙일 수 있는 splice-aware aligner가 필요합니다.
예를 들어 read가 EXON1의 끝과 EXON2의 시작을 이어 붙인 문자열이라고 해봅시다. 게놈에는 두 구간 사이에 긴 인트론이 있으므로 단순한 부분 문자열 검색은 실패합니다.
read: ...ACCTG | GAACT...genome: ...ACCTG | <긴 intron> | GAACT...result: 앞부분은 exon 1, 뒷부분은 exon 2에 나누어 정렬splice-aware aligner는 검색 중간의 큰 간격을 허용하고, 알려진 엑손 경계와 새 접합 후보를 이용해 두 조각이 하나의 read였음을 기록합니다. 개발자 관점에서는 여러 파일에 걸친 소스맵을 만드는 것과 구조가 비슷하지만, 실제 후보는 반복 서열과 염기 판독 오류 때문에 하나로 정해지지 않을 수도 있습니다.

성숙 mRNA에서 나온 read는 인트론을 사이에 둔 두 엑손에 걸칠 수 있다. STAR와 HISAT2 같은 도구는 이 read를 나누어 올바른 위치에 정렬한다.
대표 도구로 STAR와 HISAT2가 있습니다. 중요한 것은 도구 이름보다 같은 레퍼런스 게놈과 GTF 버전을 사용하고, 한 위치에 확실히 붙은 read와 여러 위치에 모호하게 붙은 read를 구분하는 것입니다. 코드와 소스맵의 버전이 다르면 주소가 어긋나듯, 게놈과 GTF 버전이 맞지 않으면 좌표와 유전자 경계가 어긋납니다.
STAR 명령을 실행하고 Log.final.out, genome BAM과 transcriptome BAM을 함께 점검하는 과정은 RNA-seq 실습의 정렬 단계에서 확인할 수 있습니다.
STAR·HISAT2의 차이, 인덱스 원리, multi-mapping과 결과 판독은 RNA-seq aligner 레퍼런스에서 확인하세요.
RNA read는 인트론이 제거된 성숙 RNA에서 나왔기 때문에 게놈의 두 엑손에 나뉘어 붙을 수 있습니다. STAR와 HISAT2 같은 splice-aware aligner가 이 간격을 처리합니다.
정렬용 FASTQ + 레퍼런스 게놈·GTF → splice-aware 정렬 → BAM
다음 read를 발현량 행렬로 바꾸기에서는 BAM의 read를 유전자별 발현량으로 바꿉니다.