Я пытаюсь придумать сценарий python для извлечения последовательности из 12 аминокислот, фланкирующей данную аминокислоту (по 6 в каждом направлении) последовательности fasta.
Вход
У меня есть 2 входа: файл фаста и фрейм данных панды.
Файл fasta выглядит так:
> sp|P00001| some text here 1
MKLLILTCLVAVALARPKHPIKKVSPTFDTNMVGKHQGLPQEVLNENLLRFFVAPFPEVFGKEKVSLDAGPGMCSRNE
>sp|P00002| some text here 2
MSSGNAKIGHPAPNFKATAVMPDGQFKDISLSDYKGKYVVFFFYPLDFTFVCPTGLGRSSYRATSCLPALCLP
>sp|P00003| some text here 3
MSVLDSGNFSWKMTEACMKVKIPLVKKKSLRQNLIENGKLKEFMRTHKYNLGSKYIREAATLVSEQPLQN
Вот мой второй ввод, фрейм данных pandas (2 столбца «ProteinID» и «Phosphopeptide»)
ProteinID -- Phosphopeptide
P00001 -- KVSPT*FDTNMVGK
P00001 -- SLDAGPGMCS*R
P00003 -- LDS*GNFSWKMTEACMK
Цель
Что мне нужно сделать, так это следующее. Для каждого «фосфопептида» мне нужно найти белок (ProteinID) в заголовке файла fasta (начинается с «>»). Затем мне нужно извлечь 6 аминокислот, предшествующих и следующих за аминокислотой, отмеченной звездочкой.
Вывод
Мой вывод - это новый столбец, записанный во фрейм данных, и он будет выглядеть так:
ProteinID -- Phosphopeptide -- NewColumn
P00001 -- KVSPT*FDTNMVGK -- IKKVSPTFDTNMV
P00001 -- SLDAGPGMCS*R -- AGPGMCSRNE
P00003 -- LDS*GNFSWKMTEACMK -- MSVLDSGNFSWK
Обратите внимание, что последние 2 ряда содержат пептиды в конце или в начале соответствующих белков, поэтому у нас нет 12 аминокислот для извлечения в этих случаях.
Мне сложно написать эту программу (небольшой опыт программирования), и я буду очень признателен за любую помощь (советы, подсказки, функции и т. Д.).