본문 바로가기

BI

NGS 분석 기초 2 - NGS데이터 분석. Variants calling, Annotation 이전.(BWA, Picard, GATK,)

공부하면서 정리하는 Bioinformatics

 

본 포스팅은 genomics를 공부하며 작성하는 포스팅이기 때문에 잘못된 부분이 있을수 있습니다.

또한, 범문에듀케이션에 출판된 유전체 데이터 분석2 (NGS편, 암과 질병 유전체) 서적을 기반으로 공부하여 작성하였음을 미리 알립니다.

 

오늘은 기본적인 NGS 데이터 처리 과정을 살펴본다. Variants calling이전 까지

 

1.NGS 데이터 처리 단계

    1) reference sequence indexing(BWA)

    2) reference sequence에 reads alignment(BWA)

    3) SMA -> BAM (samtools)

    4) sorting BAM (Picard)

    5) 중복 reads 제거 (Picard)

    6) variants calling에 사용될 .dict, .fai 파일 생성 (Picard)

    7) variants calling(GATK)

 

환경변수 설정.

1) reference sequence indexing(BWA)

BWA는 BWT알고리즘을 적용하여 짧은 서열을 reference sequence에 정확하게 정렬하는 도구이다.

200bp 미만의 짧은 서열의 정렬 오류율 3% 미만으로 정렬/ 갭을 허용하는 gapped global alifnment

BWA사용전에 반드시 'index'명령어로 FASTA 포맷으로 구성된 서열db를 색인생성 해야함.

$bwa index -a bwtsw reference_genome.fa

 2) reference sequence에 reads alignment(BWA)

$bwa mem reference_genome.fa read.fastq > out.sam

3) SMA -> BAM (samtools)

samtools view -bhS ex.sam > ex.bam

4) sorting BAM (Picard)

Picard는 SAM, BAM을 관리하는 자바 기반의 커맨드라인 유틸

$JAVA -Xmx1024m -jar $PICARD SortSam \
I=ex.bam \
O=sorted_ex.bam \
SO=coordinate

#I=input
#O=output
#SO=sorting 기준(방식)

5) 중복 reads 제거 (Picard - MarkDuplicates)

PCR 증폭등의 시퀀싱과정에서 의도치 않게 생긴 동일한 read들은 variants calling에서 편향된 결과를 유발할수 있음.

중복read => '동일한 CIGAR서열을 가지며 동일한 starting position을 가지는 reads'

$$JAVA -jar $PICARD MarkDuplicates \
I=sorted.bam \
O=dedup_sorted.bam \
METRICS_FILE=duplicates \
REMOVE_DUPLICATES=true \
CREATE_INDEX=true


I=input \
O=output \
METRICS_FILE=중복서열 분석 결과 파일이름(output) \
REMOVE_DUPLICATES=true면 중복제거한 bam생성 false면 현황만 보고 \
CREATE_INDEX=true 생성된 BAM파일에 색인 생성

6) variants calling에 사용될 .dict, .fai 파일 생성 (Picard)

$$JAVA -Xmx1024m -jar $PICARD CreateSequenceDictionary \
R=reference.fa \ 
O=reference.dict \

6-1)indexing

samtools faidx refernce.fa

 

여기까지하면 variants calling할 준비가 끝났다. 

7. InDel realignment

GATK 3.8버전 기준

 

다음포스팅에서 계속....