||
bedtools是使用率很高的生信工具,将其整合到python中(pybedtools),可以方便的调用,这本来是一件很好的事,但是遗憾的是pybedtools还是很不成熟,存在一些bug,我遇到的一个filter bug如下:
>>> from pybedtools import BedTool
>>> sampleA = BedTool("sampleA_raw.bed")
>>> print(sampleA)
chr1 40130793 40131513
chr1 40261767 40262522
chr1 40273326 40274035
chr2 6744599 6745299
chr2 9114431 9115158
chr2 15428403 15429102
>>> sampleB = BedTool("sampleB_raw.bed")
>>> print(sampleB)
chr1 40260000 40270000
>>> print(sampleA.intersect(sampleB, wo=True))
chr1 40261767 40262522 chr1 40260000 40270000 755
>>> sampleA_chr1 = sampleA.filter(lambda x: x.chrom=="chr1")
>>> print(sampleA_chr1)
chr1 40130793 40131513
chr1 40261767 40262522
chr1 40273326 40274035
>>> print(sampleA_chr1.intersect(sampleB, wo=True))
>>>
>>>
sampleA filter之后再与sampleB做intersect时居然是空的!
出现这个bug后,我发现pybedtools官网上没有提供类似github Issues的入口,遇到bug无法反馈,这太糟糕了!
所以,尽量还是使用bedtools而非pybedtools
Archiver|手机版|科学网 ( 京ICP备07017567号-12 )
GMT+8, 2024-10-11 16:44
Powered by ScienceNet.cn
Copyright © 2007- 中国科学报社