$ bedtools intersect -a SRR369xxxx.bed -b HC_gene.bed -wa
ERROR: Received illegal bin number 37458 from getBin call.
ERROR: Unable to add record to tree.
在Biostars上找到了原因——https://www.biostars.org/p/129072/
原来是坐标数值太大(也可以说是基因组size太大),超过了536,870,912 = 2**29,差不多是512Mb。至于为什么是512Mb,这个问题太底层了(跟建立索引 / index有关),我暂时还不清楚。此外,我之前在做一些比对的时候,也碰到过参考基因组的染色体超过了512Mb时,会拆成两段chr_parts的情况,否则以sam/bam为out.file的比对软件都不可用。
解决的方法我知道的有两个,一是降低bedtools的版本(如2.17.0),另一个是换软件(如BEDOPS)。
前面那个bedtools的版本是
$ bedtools --version
bedtools v2.27.1-9-g5f83cac
$ which bedtools
~/mysoft/bedtools2/bin/bedtools
现在用conda装一个低版本的
~/miniconda3/bin/conda install bedtools=2.17.0
# =2.17.0指定安装版本
$ ~/miniconda3/bin/bedtools --version
bedtools v2.17.0
这回没有报错了
$ ~/miniconda3/bin/bedtools intersect -a SRR119xxxx.bed -b HC_gene.bed -wa
chr4A 702339777 702340323
chr7A 29110342 29111558
另一种解决办法是换用BEDOPS,这是一款和bedtools很相似的软件,也可以用来处理基因组特征文件。