做数据比较的时候,由于同一个样本测序数据量不一致,需要抽取数据,控制数据量基本一致。
自己写脚本速度较慢,后面发现一个不错的工具:seqtk
原始数据抽取
如果只控制原始数据量一致,过滤低质量数据后直接使用seqtk (Version: 1.3-r106) 的子模块seq,
配合参数 -s 设定随机种子,默认11;
配合参数 -f 设定抽取数据量比例。
例如:
1 seqtk seq -s 11 -f 0.6805888 $dir/CNR01/WGS.read1.fq.gz |gzip >new_r1.fq.gz 2 seqtk seq -s 11 -f 0.6805888 $dir/CNR01/WGS.read2.fq.gz |gzip >new_r2.fq.gz
或者直接抽取固定的read 条数, 如抽取1百万条reads:
1 seqtk sample -s 11 $dir/read1.fq.gz 1000000 |gzip > sub_r1.fq.gz 2 seqtk sample -s 11 $dir/read2.fq.gz 1000000 |gzip > sub_r2.fq.gz
这个工具还可以根据比对的bam文件抽取子集,用法类似。