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的版本是

$ 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很相似的软件,也可以用来处理基因组特征文件。

你可能感兴趣的:(bedtools的一个报错:Received illegal bin number xxxxx from getBin call)