Skip to content

Unmapped reads filtering #

Find similar titles

3회 업데이트 됨.

Edit
  • 최초 작성자
    Myunghee Jung
  • 최근 업데이트
    yeye

Structured data

Category
Analysis

Introduction #

NGS 데이터의 contaminant를 제거하기 위해서 contaminant database에 맵핑 후 unmapping된 reads들만 filtering하여 분석에 이용하고자 할 때가 있다.

bowtie2를 이용하여 맵핑할 경우 --un-conc 옵션을 사용하면 unmapped reads를 뽑아낼 수 있으나 이 경우 single로 맵핑된 read와 disconcordantly mapped paired-end reads를 unmapped로 간주한다는 단점이 있다.

Reference mapping #

SAMtools를 이용하여 unmapped reads만 filtering 하기 위해서는 BAM 포맷의 맵핑 결과 파일이 필요하다. 따라서 bowtie, bowtie2, bwa 등 다양한 mapper를 이용하여 BAM 포맷의 맵핑 파일을 생성한다.

참고로 bowtie2의 경우 output format으로 SAM만 지원하므로 "|"를 이용하여 samtools view로 bowtie2 결과 SAM 파일을 바로 BAM으로 변환할 수 있다.

bowtie2-build db.fasta db.fasta
bowtie2 -x db.fasta -1 TEST_1.fq -2 TEST_2.fq | samtools view -bS - > out.bam

Unmapped reads filtering #

BAM에서는 flags를 이용하여 reads의 상태를 표시하는데 0x4 bit는 segment unmapped에 해당한다 (Samtools 매뉴얼 참고)

sammtools view 프로그램을 이용하여 unmapped reads만 포함 (-f는 include의 의미)하는 새로운 bam 파일 (-b)을 생성하고 samtools bam2fq 프로그램으로 해당 reads의 서열을 추출한다.

samtools view -bf 0x04 out.bam > unmapped.bam
samtools bam2fq unmapped.bam > unmapped.fq

Mapped reads filtering #

sammtools view 실행시 -F 옵션 (exclude 의미)을 적용하여 unmapped (0x04)를 제외한 reads들만 포함하는 bam 파일을 생성하고 해당 reads를 추출한다.

samtools view -bF 0x04 out.bam > mapped.bam
samtools bam2fq mapped.bam > mapped.fq

Mapped/Unmapped reads counting #

samtools view 프로그램에서 -c 옵션은 해당 레코드에 대한 개수를 출력한다. 따라서 다음과 같이 mapped (-cF 4) / unmapped (-cf 4) reads count를 계산할 수 있다.

samtools view -cF 4 in.bam
samtools view -cf 4 in.bam

Suggested Pages #

0.0.1_20230725_7_v68