【问题标题】:biopython FeatureLocation comparisonbiopython FeatureLocation 比较
【发布时间】:2017-07-07 20:17:50
【问题描述】:

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

当我试图比较来自不同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.

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

下面是我为什么来这个问题的过程:

  • 首先我只从genbank文件中提取feat.type == 'CDS'信息,发现 所有的假基因都丢失了。
  • 然后我想出了这个想法,将信息记录在 feat.type == 'gene' 然后查找 'CDS''misc_feature'记录该基因的更多信息。

    这就需要确认'CDS''misc_feature' 在同一位置注释,以防有多个 'misc_feature'注释同一基因的一些域。

【问题讨论】:

    标签: biopython


    【解决方案1】:

    我还在犹豫这是出于某种原因设计还是 只是还没有内置比较方法。

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

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

    即将推出的实现与您的唯一区别是比较refref_db 字段,默认为None,所以如果您不使用它们,没问题。

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

    【讨论】:

    • Biopython 1.70 最近发布了,其中包括来自 Kai Blin 的增强功能。特殊的前/后位置会比较相等,这有点模糊。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-01-16
    • 1970-01-01
    • 1970-01-01
    • 2013-12-29
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多