본문 바로가기
Bioinformatics

[Samtools] [Bedtools] BAM to FASTQ 파일 전환

by 코딩하는 미토콘드리아 bioinformatics 2023. 1. 19.
반응형

 

분석 요청을 받고 raw fastq 파일을 받았는데
header 가 없거나 sequence data 가 잘려있거나.. 어떠한 이유로,
fastq 파일이 필요한 상황이 있을 수 있습니다..

(실제로 충분히 있을 수 있는 일입니다ㅎㅎ)


이럴 때는 다른 형태의 시퀀스 정보로 fastq 파일을 역으로 만들어 낼 수 있습니다.
sam -> fastq, bam -> fastq, bed -> fasta, fasta -> fastq 등 의 방법이 있습니다.

이번에는 bam 파일을 이용하여 fastq 파일을 만들어 보겠습니다.
두 가지 방법을 실습 해보겠습니다.

1. samtools fastq
2. bedtools bamtofastq

samtools 를 이용한 bam to fastq
이는 samtools version 1.0.0 이상 부터 가능한 옵션 입니다.
실행이 되지 않는다면 samtools 버전을 확인하여 주시기 바랍니다.

 

samtools fastq -t sample.bam -1 sample_R1_001.fastq.gz -2 sample_R2_001.fastq.gz

[skkwon1048@server $]samtools fastq -t sample.bam -1 sample_R1_001.fastq.gz -2 sample_R2_001.fastq.gz
[M::bam2fq_mainloop] processed 11356588 reads

 

paired-end data로 만들기 위해서 R1 과 R2 를 따로 지정해줍니다. (R2 fastq for second end)

single end data 로 만드실 경우 fastq output 하나로만 지정해주시면 됩니다.

-t : read에 tag 가 존재한다면 FASTQ header line 에도 추가해주는 옵션

 

[output]

-rw-rw-r-- 1 skkwon1048       server  1399718140 2023-01-26 21:10 sample_R1_001.fastq.gz
-rw-rw-r-- 1 skkwon1048       server  1500774046 2023-01-26 21:10 sample_R2_001.fastq.gz

자동으로 .gz 로 압축하여 만들어 줍니다.

(혹여 .gz로 압축이 되어 있지 않은 상태로 확인 된다면,
sample_R1_001.fastq -2 sample_R2_001.fastq 로 만들어서
gzip *.fastq 단계를 따로 해줍니다.)

bedtools 를 이용한 bam to fastq

bedtools bamtofastq -i sample.bam -fq ample_R1_001.fastq -fq2 sample_R2_001.fastq

[skkwon1048@server $] bedtools bamtofastq -i sample.bam -fq sample_R1_001.fastq -fq2 sample_R2_001.fastq

[output]

-rw-rw-r-- 1 skkwon1048       server  1398724510 2023-01-26 21:10 sample_R1_001.fastq.gz
-rw-rw-r-- 1 skkwon1048       server  1500112023 2023-01-26 21:10 sample_R2_001.fastq.gz

samtools 와 동일하게 결과파일을 확인 하실 수 있습니다.

이런 식으로 raw fastq 파일에 손상이 있거나 fastq 데이터를 만들어야 하는 상황이라면
다른 유형의 시퀀싱 정보를 활용 하면 됩니다.
(개인적으로 samtools 방법 추천^^ 소요시간도 짧고 깔끔합니다.)

reference:
http://www.htslib.org/doc/samtools-fasta.html
https://bedtools.readthedocs.io/en/latest/content/tools/bamtofastq.html

반응형