样本检验、随机生成数据、模拟用等,都需要从现有测序数据中随机抽样出一小部分数据来,按照自己需求。
0,最经典的方式:
使用awk等,只要了解各种数据格式具体的行列组成(一般是header+record),其实都可以随机抽取一定比例的record,然后重组header,达到随机子抽样目的;
当然要注意read的类型,要考虑PE还是SE信息的兼容与影响
当然,除了自己写脚本,如果数据量大的话还可以使用现有的工具
1,fastq:
seqtk进行抽样
如何对fastq/bam文件进行Down-sample?
https://zhuanlan.zhihu.com/p/477002661
2,sam/bam:
(1)samtools:
如何对fastq/bam文件进行Down-sample?
(2)Sambamba:
参考更快的处理bam数据—Sambamba
不知道是否有设置随机数种子的改进,如果没有设置随机数种子的话,那么不能重复,那设置随机数就没有意义了
(3)picard:
Fastq/Bam的downsample - Sunny-King - 博客园
(4)最好的方法当然是去社区里问了:
biostar上、stack也有专门生信的论坛等,
Downsample BAM file to specific amount of reads