上一篇文章写了bowtie2和bwa的比较,发完之后立刻被师姐批评指正了,然后师姐又给我补充了一个知识,就是不同软件都有它的最佳线程数,不是线程越高就跑的越快,直接一个软件定个24线程是不合理的。至于这个最佳线程数是多少,说明书要是没有的话,要么自己评测,要么问问作者。
我看了bwa的说明书,没有相关说明,粗略的查了一下帖子也没看到。让我自己评测一下bwa的速度,我是嫌麻烦的,于是我就尝试着评测一下fastqc。因为一开始我就是加大了这个的使用线程,也没考虑是不是有必要,而且这个速度也快,操作也方便,所以做个简单的速度测试。
软件是fastqc,选用的对象是一个cleaned data,还是比较大的,测试脚本如下:
$ time fastqc -o singleout1/ -t 1 1.fq.gz
$ time fastqc -o singleout3/ -t 3 1.fq.gz
$ time fastqc -o singleout6/ -t 6 1.fq.gz
$ time fastqc -o singleout8/ -t 8 1.fq.gz
$ time fastqc -o singleout12/ -t 12 1.fq.gz
$ time fastqc -o singleout16/ -t 16 1.fq.gz
$ time fastqc -o singleout24/ -t 24 1.fq.gz
结果如下:
看到这个结果,我……有点吃惊的,居然都是一样的。那我脚本里写那么大的线程意义何在?
所以我又加了一个测试,测试多个样本下的不同线程的速度,当前文件夹下有4个fq文件。测试脚本如下:
$ time fastqc -o allout1/ -t 1 *.fq.gz
$ time fastqc -o allout6/ -t 6 *.fq.gz
$ time fastqc -o allout12/ -t 12 *.fq.gz
结果如下:
我想大家已经看出来了,对于单个样本,fastqc每增加一个线程并不改变运行速度,但是对于多个输入文件,每增加一个线程会多并行跑一个输入文件,就是说,比如输入四个文件,四线程会同时跑四个文件,单线程只能一个一个跑。
能得到一个结论还是挺开心的,那么以后在fastqc线程选择的时候也就知道多少的线程数是有必要的。
水平有限,要是存在什么错误请评论指出!请大家多多批评指正,相互交流,共同成长,谢谢!!!