bedtools的一个报错(Received|bedtools的一个报错:Received illegal bin number xxxxx from getBin call)

$ 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的一个报错(Received|bedtools的一个报错:Received illegal bin number xxxxx from getBin call)】前面那个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 chr4A702339777702340323 chr7A2911034229111558

另一种解决办法是换用BEDOPS,这是一款和bedtools很相似的软件,也可以用来处理基因组特征文件。

    推荐阅读