У меня есть Fasta файл с несколькими последовательностями с заголовками, которые выглядят так:Извлечения последовательности из файла Fasta по идентификационному номеру в заголовке
>1016BSA34080.1
MTHSVRIITVTVNFLQHRFFIDYMSEIGLLDGEIEQMVSALQEQVHIVARARTLPEMKNLERDTHVIVKT
LKKQLTAFHSEVKKIADSTQRSRYEGKHQTYEAKVKDLEKELRTQIDPPPKSVSEKHMEDLMGEGGPDGS
GFKTTDQVLRAGIRIQNDA
>1038BSA81955.1
MQQQQARRRMEEPTAAAATASSTTSFAAQPLLSRSVAPQAASSPQASARLAESAGFRSAAVFGSAQAAVG
GRGRGGFGAPPGRGGFGAPPAAGFGAAPAFGAPPTLQAFSAAPAPGGFGAPPAPQGFGAPRAAGFGAPPA
PQAFSAVAPASSTAIPLDVTTYLGDTFGSAPTRGPP
4-значный номер в начале заголовка является уникальным идентификатором для последовательности.
Не могли бы вы помочь мне написать скрипт python для извлечения последовательностей с помощью 4-значного идентификатора (в текстовом файле с одним идентификатором на строку)?
Я попытался модифицировать этот скрипт (я нашел на этом сайте: Extract sequences from a FASTA file based on entries in a separate file), чтобы удовлетворить мои цели (напрасно):
f2 = open('accessionids.txt','r')
f1 = open('fasta.txt','r')
f3 = open('fasta_parsed.txt','w')
AI_DICT = {}
for line in f2:
AI_DICT[line[:-1]] = 1
skip = 0
for line in f1:
if line[0] == '>':
_splitline = line.split('|')
accessorIDWithArrow = _splitline[0]
accessorID = accessorIDWithArrow[1:-1]
# print accessorID
if accessorID in AI_DICT:
f3.write(line)
skip = 0
else:
skip = 1
else:
if not skip:
f3.write(line)
f1.close()
f2.close()
f3.close()
Я новичок в Python, любая помощь будет принята с благодарностью! Спасибо -Divya
Просто чтобы убедиться, что я правильно понять: вы хотите, чтобы извлечь полную последовательность, приведенную 4-значный идентификатор ли? – Barranka