biopython FeatureLocation 比较

biopython FeatureLocation comparison

我正在使用biopython完成一个简单的任务:从一个特定的genebank fill中,提取一个基因ID和相关信息到一个table中。

当我尝试比较来自不同 SeqFeatureSeq.SeqFeature.SeqFeature.location 时,它每次都会给我 False。即使在下面的情况下:

    from Bio.SeqFeature import FeatureLocation
    location1 = FeatureLocation(0,0,strand = 1)
    location2 = FeatureLocation(0,0,strand = 1)
    print(location1 == location2) # will print False

只有这样才能得到我想要的结果:

    print(location1.start == location2.start and location1.end == location2.end and location1.strand == location2.strand) # will print True.

问题就这样解决了,但我还在犹豫这是出于某种原因设计的还是比较方法还没有内置。

下面是我遇到这个问题的过程:

I am still wandering whether this is by design for some reason or the comparison method just haven't been built in yet.

答案似乎是后者。据我所知,FeatureLocation__eq__ 方法应该在 2011 年添加,但没有加入。甚至其他 Biopython 对象也注意到缺乏比较 [=11= 的能力] 源代码注释中的对象。

但是,它在source code for the in progress, not yet released Biopython 1.70

即将实施的与您的实施之间的唯一区别是 refref_db 字段的比较,默认为 None,因此如果您不使用它们,没问题.

有关更多背景信息,请参阅 pull request 1309