Я пытаюсь написать сценарий для удаления повторяющихся аминокислотных последовательностей из файла, содержащего семь отдельных записей Genbank (после работы я хочу применить сценарий к файлам, содержащим записи 1000-5000
).Использование Python для удаления повторяющихся последовательностей белка
Вот данные ...
WP_013250615.1
Candidatus Nitrospira defluvii
Seq('MKHVVDIELAGRRLTLETGRIAKQADGAIWATYGDTVVLATAVASQNAKPGVDF...PAG', IUPACProtein())
705
WP_014960802.1
Leptospirillum ferriphilum
Seq('MNPIFVEAVVGGKTVRLETGRMAKQADGSVVVWADGTVVIATAVASKVSKPGVD...SGR', IUPACProtein())
713
WP_036083494.1
Leptospirillum ferriphilum
Seq('MNPIFVEAVVGGKTVRLETGRMAKQADGSVVVWADGTVVIATAVASKVSKPGVD...SGR', IUPACProtein())
713
WP_014449743.1
Leptospirillum ferrooxidans
Seq('MNPIIVNVSVGGKNIRLETGRMAKLAGGSATVWADGTVVLATAVSAKSMKPGID...GGQ', IUPACProtein())
710
WP_023525658.1
Leptospirillum sp. Group II 'C75'
Seq('MNPIFVEAVVGGKTVRLETGRMAKQADGSVVVWADGTVVIATAVASKVSKPGVD...SGR', IUPACProtein())
713
WP_028844965.1
Thermodesulfovibrio thiophilus
Seq('MEVELNIKGQNLSLQTGIIARQTDGSVLVKYGDTYVLCTVVAEKTPKEGLDFIP...TKK', IUPACProtein())
710
YP_002249618.1
Thermodesulfovibrio yellowstonii DSM 11347
Seq('MEVELEIKGKKLVLQTGIFAKQTNGSVLAKYGDTYVLCTVVAEKTPKEGLDFVP...TKT', IUPACProtein())
710
Одна из записей является дубликатом (оба вида и последовательности идентичны для Leptospirillum ferriphilum). Я хотел бы пройти через файл итеративно, только сохраняя записи, которые уникальны для имени и последовательности видов (я ожидаю, что в более крупных файлах будут записи с одинаковыми последовательностями, но из разных видов, которые я хочу сохранить). Как только дубликаты будут удалены, мне тогда понадобится преобразовать файл Genbank в формат fasta.
Я могу извлечь данные с помощью команды SeqIO.parse, но до сих пор не удалось удалить дубликаты (я попробовал команду set()). Когда я проверяю выходной файл, у меня все еще есть 7 записей вместо 6.
Любые идеи?
Не получайте downvotes :) Всегда ли есть 10-точечная 1-значная цифра 014960802.1 для каждой записи? – codyc4321
Вы можете прочитать их в словаре, с именем вида, как 'key', таким образом вы могли бы избежать дублирования названия вида. Для случаев, когда имя вида одинаково, вы можете очень легко проверить, имеют ли они один и тот же seq, используя глобальное или локальное выравнивание. Я бы обескураживал использование совпадения строк, поскольку он не был бы точным – letsc
На самом деле, похоже, он выделяет белки, и у них вполне может быть несколько уникальных последовательностей для одного и того же вида – codyc4321