对bam文件做downsample

微信公众号:生物信息学习

如果各个样本测的数据量相差较大,想把这些样本downsample到相同的reads,可用以下方法:
目标reads数为15000000,需要先计算出需要downsample的比例,因为我用的downsample工具samtools无法downsample到特定reads数,只能downsample到一定的比例,因此想要downsample到固定reads,则需要先用目标reads数/总reads数作为downsample的比例,再用samtools提取reads,代码如下:

#samtools无法直接downsample到一个固定数目的reads
frac=$( samtools idxstats input.bam | cut -f3 | awk 'BEGIN {total=0} {total += $1} END {frac=15000000/total; if (frac > 1) {print 1} else {print frac}}' )

samtools view -s $frac input.bam > subsample.bam

最终就可以得到我们的目标reads数很接近的reads了。

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容