11 분 소요

시퀀스 정렬 실습

개요

이 장에서는 NGS 데이터를 참조 유전체에 정렬하는 실습을 다룬다. 정렬 알고리즘의 원리(BWT, FM Index 등)에 대한 이론적 내용은 3장 차세대 시퀀싱을 참조한다.

실습 환경 구성

conda를 사용하여 BWA-MEM2를 설치한다.

$ conda activate bioinfo
$ conda install bwa-mem2

참조 유전체 준비

참조 유전체 다운로드

인간 참조 유전체는 UCSC, NCBI, Ensembl 등에서 다운로드할 수 있다. 일반적으로 GRCh38(hg38)을 사용한다.

$ wget https://hgdownload.soe.ucsc.edu/goldenPath/hg38/bigZips/hg38.fa.gz
$ gunzip hg38.fa.gz

인덱스 생성

정렬을 수행하기 전에 참조 유전체의 인덱스를 생성해야 한다. 인덱스는 BWT와 FM Index 구조를 기반으로 하며, 한 번 생성하면 동일한 참조 유전체에 대해 재사용할 수 있다.

$ bwa-mem2 index hg38.fa

인덱스 생성에는 시간이 소요된다. 완료되면 다음과 같은 파일들이 생성된다:

hg38.fa.0123
hg38.fa.amb
hg38.fa.ann
hg38.fa.bwt.2bit.64
hg38.fa.pac

BWA-MEM2를 이용한 정렬

기본 정렬 실행

Paired-end Fastq 파일을 참조 유전체에 정렬한다.

$ bwa-mem2 mem hg38.fa R1.fastq.gz R2.fastq.gz > aligned.sam

출력은 SAM 형식으로 생성된다. SAM 파일의 구조와 처리 방법은 21장 SAM/BAM 파일 처리에서 다룬다.

Read Group 추가

다운스트림 분석을 위해 Read Group 정보를 추가하는 것이 권장된다. -R 옵션을 사용한다.

$ bwa-mem2 mem -R '@RG\tID:sample1\tSM:sample1\tPL:ILLUMINA' hg38.fa R1.fastq.gz R2.fastq.gz > aligned.sam

Read Group 필드:

필드 설명
ID Read Group 식별자
SM 샘플 이름
PL 시퀀싱 플랫폼 (ILLUMINA, PACBIO 등)
LB 라이브러리 식별자
PU 플랫폼 유닛 (flowcell-barcode.lane)

스레드 수 지정

-t 옵션으로 사용할 스레드 수를 지정하여 정렬 속도를 높일 수 있다.

$ bwa-mem2 mem -t 8 -R '@RG\tID:sample1\tSM:sample1\tPL:ILLUMINA' hg38.fa R1.fastq.gz R2.fastq.gz > aligned.sam

파이프라인 구성

SAM 파일은 용량이 크므로, 일반적으로 정렬 결과를 바로 BAM으로 변환하고 정렬한다.

$ bwa-mem2 mem -t 8 -R '@RG\tID:sample1\tSM:sample1\tPL:ILLUMINA' hg38.fa R1.fastq.gz R2.fastq.gz | samtools sort -o aligned.sorted.bam

정렬 통계 확인

정렬이 완료되면 samtools를 사용하여 기본 통계를 확인할 수 있다.

$ samtools flagstat aligned.sorted.bam

주요 확인 항목:

  • mapped: 참조 유전체에 정렬된 read 비율

  • properly paired: 올바르게 짝지어진 paired-end read 비율

  • duplicates: 중복 read 수

실습 과제

실습 20.1: 인덱스 생성

  1. 제공된 참조 유전체 파일에 대해 BWA-MEM2 인덱스를 생성한다.

  2. 생성된 인덱스 파일들을 확인한다.

실습 20.2: 정렬 수행

  1. Fastq 파일을 참조 유전체에 정렬한다.

  2. Read Group 정보를 포함하여 정렬을 수행한다.

  3. 정렬 결과를 BAM 형식으로 저장한다.

실습 20.3: 정렬 품질 확인

  1. samtools flagstat으로 정렬 통계를 확인한다.

  2. 정렬률(mapping rate)을 계산한다.

  3. properly paired 비율을 확인한다.

출처

이 본편 글은 원본 docx에 기록된 아래 출처를 기준으로 게시했습니다.

문제 풀이

Chapter 20. 시퀀스 정렬

0 / 18
Gemini AI 채점

주관식 답안은 Gemini API로 채점합니다. API 키는 이 브라우저에만 저장됩니다.

API KEY 미등록
  1. 1. [쉬움] 객관식

    BWA-MEM2 설치를 위해 본편에 제시된 명령어로 옳은 것을 고르시오.

    선택지
  2. 2. [쉬움] 객관식

    인간 참조 유전체 hg38을 다운로드하고 압축 해제하는 명령어 조합으로 옳은 것을 고르시오.

    선택지
  3. 3. [쉬움] 객관식

    BWA-MEM2 인덱스를 생성하는 명령어로 옳은 것을 고르시오.

    선택지
  4. 4. [쉬움] 객관식

    BWA-MEM2 인덱스 생성에 대한 설명으로 옳은 것을 고르시오.

    선택지
  5. 5. [보통] 객관식

    BWA-MEM2 인덱스 생성 후 만들어지는 파일로 본편에 제시된 것만 고른 것은?

    선택지
  6. 6. [보통] 객관식

    Paired-end Fastq 파일을 참조 유전체에 정렬하여 aligned.sam으로 저장하는 기본 명령어로 옳은 것을 고르시오.

    선택지
  7. 7. [보통] 객관식

    Read Group 추가에 대한 설명으로 옳은 것을 고르시오.

    선택지
  8. 8. [어려움] 객관식

    bwa-mem2 mem -t 8 ...에서 -t 8의 의미로 옳은 것을 고르시오.

    선택지
  9. 9. [어려움] 객관식

    정렬 결과를 바로 BAM으로 변환하고 정렬한 뒤 통계를 확인하는 흐름으로 옳은 것을 고르시오.

    선택지
  10. 10. [어려움] 객관식

    전체 read 1,000개 중 mapped read가 920개일 때 mapping rate는 얼마인가?

    선택지
  11. 11. [어려움] 객관식

    samtools flagstat 결과에서 전체 read가 1,000개이고 properly paired read가 850개일 때 properly paired 비율은 얼마인가?

    선택지
  12. 12. [보통] 객관식

    Read Group 필드 LBPU의 의미로 옳은 것을 고르시오.

    선택지
  13. 주관식 1. [쉬움] 주관식 · Gemini 채점

    bioinfo 환경을 활성화하고 BWA-MEM2를 설치하는 명령어를 순서대로 작성하시오.

  14. 주관식 2. [쉬움] 주관식 · Gemini 채점

    UCSC에서 hg38.fa.gz를 다운로드하고 압축을 해제하는 명령어를 작성하시오.

  15. 주관식 3. [보통] 주관식 · Gemini 채점

    hg38.fa에 대해 BWA-MEM2 인덱스를 생성하고, 생성된 인덱스 파일을 확인하는 명령어를 작성하시오.

  16. 주관식 4. [보통] 주관식 · Gemini 채점

    Read Group 정보를 포함하여 R1.fastq.gzR2.fastq.gzhg38.fa에 정렬하고 결과를 aligned.sam으로 저장하는 명령어를 작성하시오.

  17. 주관식 5. [어려움] 주관식 · Gemini 채점

    스레드 8개와 Read Group 정보를 사용하여 paired-end Fastq 파일을 정렬한 뒤, SAM으로 저장하지 않고 바로 aligned.sorted.bam으로 정렬 저장하고 통계를 확인하는 명령어를 작성하시오.

  18. 주관식 6. [어려움] 주관식 · Gemini 채점

    SAM 파일로 중간 저장하지 않고 파이프로 samtools sort에 넘기는 이유를 설명하시오.