Как удалить неверную последовательность из файла Genbank, содержащего несколько последовательностей генома на основе идентификатора - PullRequest
0 голосов
/ 26 июня 2019

У меня есть файл Genbank размером ~ 3 ГБ, содержащий полные аннотации Genbank для ~ 20000 последовательностей бактериального генома.Моя цель состоит в том, чтобы использовать BioPython для анализа этих последовательностей и написать отдельные файлы fasta для неповторяющихся последовательностей с чем-то вроде следующего:

from Bio import SeqIO
records = SeqIO.parse(r'C:\Users\aaa\aaa\file.gb', 'genbank')
for record in records:
    if seq_name not in organism_dict:
        with open(output_folder + seq_name, 'w') as handle:
            SeqIO.write(record, handle, 'fasta')

Это прекрасно работает для первых ~ 2000 последовательностей, но затем достигаетзапись с недопустимым нижним колонтитулом и выдает сообщение об ошибке ValueError: неправильно сформирована строка последовательности 'title> NCBI / ffsrv11 - WWW Error 500 Diagnostic'.

Мне удалось найти последовательность, вызывающую ошибку, так что яЯ хотел бы удалить его из моего файла Genbank и вручную загрузить его как файл fasta позже.Однако я не могу открыть файл в текстовом редакторе (из-за его размера) и не могу разобрать файл (из-за ошибки), поэтому мне интересно, есть ли у кого-нибудь идея, как удалитьпоследовательность на основе идентификатора Genbank.Я открыт для не-Python вариантов.

Заранее спасибо,

Даниэль

1 Ответ

0 голосов
/ 27 июня 2019

Попробуйте добавить Try / Except, где Except записывает Record.ID в отдельный файл.Если попытка не удалась, она не запишется, а Except будет собирать Record.ID для последующей загрузки.

...