You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何用samtools批量将目录下的.bam文件转换为.fastq文件?

批量用samtools将目录下所有.bam文件转换为.fastq文件

单端BAM文件批量转换

用bash基础循环就能搞定,直接遍历当前目录下所有.bam文件,自动替换后缀生成对应的.fastq:

for bam_file in *.bam; do
  samtools fastq "$bam_file" > "${bam_file%.bam}.fastq"
done
  • *.bam:匹配当前目录下所有后缀为.bam的文件
  • "$bam_file":带引号避免文件名含空格时出错
  • ${bam_file%.bam}:去掉文件名的.bam后缀,比如sample1.bam会变成sample1,再加上.fastq就是目标文件名

双端BAM文件批量拆分

如果是双端测序的BAM文件,可以用samtools fastq的-1和-2参数直接拆分生成R1和R2两个fastq文件:

for bam_file in *.bam; do
  samtools fastq -1 "${bam_file%.bam}_R1.fastq" -2 "${bam_file%.bam}_R2.fastq" "$bam_file"
done

执行后会生成类似sample1_R1.fastq和sample1_R2.fastq的成对文件

并行加速转换(适合大量文件)

如果目录下BAM文件很多,想用多线程加速,可结合xargs实现并行处理:

ls *.bam | xargs -n1 -P4 sh -c 'samtools fastq "$1" > "${1%.bam}.fastq"' _
  • -n1:每个进程处理1个文件
  • -P4:启动4个并行进程,可根据你的CPU核心数调整数字(比如-P8用8线程)

内容的提问来源于stack exchange,提问作者iiaawaak

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.18 01:22:03