[WGS 분석] 인덱스 생성 및 정렬 (SAM/BAM)

2026. 6. 30. 02:00·Bio Data Analysis/WGS(Whole Genome Seq)

bwa 인덱스 생성

bwa index ~/bioinfo/bi_study/wgs_practice/ref/chr20.fa

 

인덱스 생성을 위해 명령어를 실행하면 시간이 다소 소요됨. 

 

이 과정은 bwa index는 BWA가 정렬할 때 reference를 빠르게 검색할 수 있도록 색인을 만드는 과정이다.

결과로 .amb, .ann, .bwt, .pac, .sa 파일 5개가 생김. 

예시) chr20.fa | chr20.fa.amb | chr20.fa.ann | chr20.fa.bwt | chr20.fa.pac | chr20.fa.sa

bwa-mem2용 인덱스 추가

bwa-mem2 index ~/bioinfo/bi_study/wgs_practice/ref/chr20.fa
bwa-mem2는 bwa와 별도 인덱스 필요. M1/M2 맥 ARM 호환 문제로 bwa 대신 사용.

samtools 인덱스 생성

samtools faidx ~/bioinfo/bi_study/wgs_practice/ref/chr20.fa

 

이 과정은 samtools faidx 를 통해 samtools가 FASTA에서 특정 region만 빠르게 꺼낼 수 있도록 별도 인덱스 만드는 과정이다.

결과로 .fai 파일 1개 생김.

나중에 chr20:1000-5000 이런 식으로 특정 구간만 뽑을 때 필요함.


BWA MEM 정렬

bwa-mem 은 BWA의 정렬 알고리즘. 100bp 이상 일루미나 read에 최적화된 방식이지만,

bwa-mem2는 bwa의 후속 버전으로 알고리즘은 동일하고 속도가 더 빠름.

 

M1/M2 맥에서 ARM 호환성 문제로 이번 실습에서 bwa mem  대신 bwa-mem2 사용.


정렬 — bwa-mem2가 read를 reference에 매핑 → SAM 출력

bwa-mem2 mem -t 4 \
  /Users/kofe/bioinfo/bi_study/wgs_practice/ref/chr20.fa \
  /Users/kofe/bioinfo/bi_study/wgs_practice/trimmed/SRR062634_1_paired.fastq \
  /Users/kofe/bioinfo/bi_study/wgs_practice/trimmed/SRR062634_2_paired.fastq \
  > /Users/kofe/bioinfo/bi_study/wgs_practice/aligned/SRR062634.sam

 

코드 설명

입력 파일 순서

  • chr20.fa — reference genome
  • _1_paired.fastq — trimmed read 1 (gz 압축 해제 후 사용)
  • _2_paired.fastq — trimmed read 2 (gz 압축 해제 후 사용)
원래는 .fastq.gz 그대로 입력 가능. M1/M2 맥 환경에서 gz 읽기 불안정으로 압축 해제 후 사용.

 

-t 4 : 4개 스레드 사용. 빠르게 돌리는 목적

> SRR062634.sam : 출력을 SAM 파일로 저장.

원래는 파이프로 samtools sort까지 한 번에 처리 가능하나 M1/M2 맥 환경에서 불안정으로 SAM으로 먼저 저장 후 별도 변환 예정.


변환 및 정렬 — samtools sort가 SAM을 좌표 기준 정렬 후 BAM으로 변환

samtools sort -o ~/bioinfo/bi_study/wgs_practice/aligned/SRR062634.bam ~/bioinfo/bi_study/wgs_practice/aligned/SRR062634.sam

 

BAM 파일이 잘 생성되었고, 지금 과정을 통한 좌표 기준 정렬이 필요한 이유는 bwa-mem2가 read를 처리한 순서대로 SAM에 쓰는데, 이게 게놈 위치 순서랑 다름.

나중에 GATK로 변이 호출할 때 chr20의 1번 위치부터 순서대로 읽어야 함.

그래서 samtools sort가 chr20:1, chr20:2... 순서로 재정렬하는 과정임.

한 줄 요약하면 "위치 순서대로 정렬 + 압축"

SAM, BAM 파일 간단 설명

SAM — 사람이 읽을 수 있는 텍스트 파일. 용량이 큼.

BAM — SAM을 바이너리로 압축한 버전. 용량이 훨씬 작고 툴이 빠르게 읽을 수 있음.


BAM 인덱스 생성

samtools index ~/bioinfo/bi_study/wgs_practice/aligned/SRR062634.bam

 

이 인덱스가 있어야 나중에 GATK가 BAM에서 특정 region을 빠르게 찾을 수 있음.


현재 실습중인 germline variant calling 파이프라인 확인

FASTQ (raw)
    ↓ FastQC
QC 확인
    ↓ Trimmomatic
FASTQ (trimmed)
    ↓ BWA-MEM
SAM/BAM
    ↓ samtools
BAM (정렬+인덱싱)
    ↓ GATK HaplotypeCaller
VCF
    ↓ hap.py
검증 (truth set 비교)

'Bio Data Analysis > WGS(Whole Genome Seq)' 카테고리의 다른 글

[WGS 분석] BAM 파일 구조 이해하기  (0) 2026.07.01
[WGS 분석] SAM 파일 구조 이해하기  (0) 2026.07.01
[WGS 분석] QC & Trimming  (0) 2026.06.30
WGS 분석 실습을 위한 FASTQ 파일 구조 이해하기  (0) 2026.06.29
WGS 분석 실습 환경 구축  (0) 2026.06.28
'Bio Data Analysis/WGS(Whole Genome Seq)' 카테고리의 다른 글
  • [WGS 분석] BAM 파일 구조 이해하기
  • [WGS 분석] SAM 파일 구조 이해하기
  • [WGS 분석] QC & Trimming
  • WGS 분석 실습을 위한 FASTQ 파일 구조 이해하기
데이터로 읽는 생명
데이터로 읽는 생명
is-note 님의 블로그 입니다.
  • 데이터로 읽는 생명
    In Silico Note
    데이터로 읽는 생명
  • 전체
    오늘
    어제
    • 분류 전체보기 (190)
      • Bio-Knowledge (16)
        • 분자생물학 & 유전학 기초 (0)
        • 전사체학 & 유전자 발현 (0)
        • 구조생물학 & 단백질 (0)
        • 싱글셀 & 다중오믹스 (0)
        • 임상유전학 & 질환 데이터 (0)
      • Programming (4)
        • API (4)
      • BI&Programming-Tools (111)
        • File Formats (14)
        • Linux & Bash Script (38)
        • Python (35)
        • R (11)
        • 통계 (8)
        • Pipeline Manager (0)
        • Etc (5)
      • Bio Data Analysis (28)
        • 서열분석개론 (6)
        • WGS(Whole Genome Seq) (11)
        • WES(Whole Exome Seq) (2)
        • RNA-Seq (4)
        • Metagenome (2)
        • Non-human Resequencing (1)
        • 임상유전체 분석 (1)
        • Multi-Omics (1)
      • Bio-Trends & Tech (1)
      • 코딩테스트 연습 (30)
  • 블로그 메뉴

    • 홈
    • 태그
    • 방명록
  • 링크

  • 공지사항

  • 인기 글

  • 태그

    파이썬
    유전체분석
    GATK
    리눅스
    R
    코딩테스트
    생물정보학
    R기초
    리눅스기초
    분자생물학
    데이터분석
    wgs
    파이썬연습
    fasta
    FASTQ
    파일포맷
    bioinformatics
    ngs
    통계
    파이썬기초
  • 최근 댓글

  • 최근 글

  • hELLO· Designed By정상우.v4.10.6
데이터로 읽는 생명
[WGS 분석] 인덱스 생성 및 정렬 (SAM/BAM)
상단으로

티스토리툴바