Сравнение биопионов

Я использую biopython для выполнения простой задачи: из определенного заполнения генного банка извлекать идентификатор гена и связанную с ним информацию в таблицу.

Когда я пытался сравнить, если Seq.SeqFeature.SeqFeature.location из разных SeqFeature, это дает мне 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.

Проблема была решена следующим образом, но я до сих пор брожу, задумано ли это по какой-то причине или метод сравнения еще не встроен.

Ниже приведен процесс, почему я пришел к этой проблеме:

  • Сначала я только добыл feat.type == 'CDS' информация из файла genbank, и обнаружил, что все псевдогены потеряны.
  • Тогда я пришел с идеей, записав информацию вfeat.type == 'gene' а потом ищи 'CDS' или же'misc_feature' записать больше информации для этого гена.

    Это создает необходимость подтверждения 'CDS' или же 'misc_feature'аннотируется в том же месте в случае, если есть несколько'misc_feature' аннотирование некоторых доменов одного и того же гена.

1 ответ

Решение

Я до сих пор брожу, задумано ли это по какой-то причине или метод сравнения еще не встроен.

Ответ, кажется, последний. Насколько я могу сказать, __eq__ метод для FeatureLocation предполагалось, что он будет добавлен в 2011 году, но не вошел в него. Даже другие объекты Biopython отмечают отсутствие возможности сравнивать FeatureLocation объекты в комментариях к исходному коду.

Тем не менее, он находится в исходном коде для еще не выпущенного Biopython 1.70

Единственная разница между будущей реализацией и вашей - это сравнение ref а также ref_db поля по умолчанию NoneТак что, если вы не используете их, нет проблем.

Для получения дополнительной информации см. Запрос на получение ответа 1309.

Другие вопросы по тегам