最近在Linux下使用bedtools软件,在使用bedtools coverage时一直出现如下报错:
terminate called after throwing an instance of 'std::bad_alloc'
what(): std::bad_alloc
Aborted (core dumped)
在网上查阅了很多,所有人都说是内存不够,但是并没有给出合适的解决办法。
既然是内存不足,我第一反应是在PBS上一个人霸占一个结点的全部cpu,这样就可以使自己一个人使用全部的内存,但是却仍然报错。于是使用bedtools coverage -h仔细看了一下:
发现当输入的bam文件是经过sort的话,可以加上-sort参数,而几乎所有我们会用到的bam文件都是经过sort的,我的也不例外,于是我尝试了一下加上-sorted,意外的发现解决了这个问题,不再出现内存不足的报错。