Wednesday, November 21, 2012

bam파일에서 fastq로 파일을 뽑을 수 있을까?

당연히 뽑을 수 있으니
글을 쓰는 것이겠지요? ㅎㅎㅎㅎ

그러나 원하는 서열이 bam파일에 있는 전체  서열이 아닌 한
약간의 작업을 해줘야 한 다는 것

현재 사용하고 있는 bam2fastq에 발등을 찍힌 관계로
align작업 후 얻어진 bam파일에서 곧바로 bam2fastq를 사용하여
 fastq를 뽑지 않고 있습니다.

약간 귀찮지만 다음 단계들을 거쳐서 뽑으면
본인이 원하는 서열들을 정확히 bam파일에서 뽑아 낼 수 있다는 것!!

bam2fastq나 그런 류의 프로그램만 사용하면 된다는 구글링 결과는
거짓부렁;;; 제길...

현재 다운로드 가능한 bam2fastq는 1.1.0 이다.
좋은 결과 있으시길~ :)


samtools view -H align.bam > align.mapped.sam
samtools view -F4 align.bam >> align.mapped.sam
samtools view -bS align.mapped.sam > align.mapped.bam
bam2fastq --aligned -o align#.mapped.fq align.mapped.bam

명령어 주석
-H는 헤더파일을 뽑는 옵션
-F4는 저도 정확히 모르겠지만 bam파일에서 -F4는 paired-end read가
모두 align되는 flag인듯 합니다.
-f4를 해서 저장한 파일들을 보면 align되지 않은 것들이 저장되는 것은 확인하였고,
-F4의 경우 align 정보가 표시되는 것으로 보아 맞는것으로 보입니다. :)
-F는 해당 flag를 제외한 결과를 return하는 옵션이고, 
-f는 해당 flag를 포함한 결과를 return하는 옵션입니다.
그러므로 -f4를하면 unmapped된 결과만 저장되고, -F4를 하면 unmapped되지 않은 결과가 저장되게 됩니다. :)
생성한 sam파일을 다시 bam파일로 변환하여 bam2fastq를 사용하여
fastq를 얻으면 됩니다. 다만, 구글링 결과에서 --no-aligned와 --aligned가 같다고
하는 글들이 있었는데..
--aligned를 해야 align된 paired read들만 fastq로 저장됩니다.
--no-aligned의 경우 결과가 상이한 것으로 나타나서 --aligned를 권장
--aligned와 동일한 결과를 보여주는 옵션은 --no-unaligned...
믿거나 말거나~ ㅎㅎ

No comments: