Мне нужно перевести выровненные последовательности ДНК с помощью биопиона
from Bio.Seq import Seq
from Bio.Alphabet import generic_dna
seq = Seq("tt-aaaatg")
seq.translate()
Запуск этого скрипта приведет к ошибке:
Bio.Data.CodonTable.TranslationError: Codon 'TT-' is invalid.
Есть ли способ перевести 'tt-' в X, и, таким образом, все переведенные последовательности будут 'XKM'?
Это будет очень полезно при переводе выровненных последовательностей. Например, выровненный набор последовательностей хранится в форме панд DataFrame с именем «df» как:
import pandas as pd
df = pd.DataFrame([['A',Seq("tt-aaaatg")],['B',Seq("tttaaaatg")],['C',Seq("tttaaaatg")]],columns=['seqName','seq'])
print(df)
DF будет отображаться как:
seqName seq
A Seq("tt-aaaatg")
B Seq("tttaaaatg")
C Seq("tt-aaaatg")
Если «tt-» можно перевести как «x», то используйте код:
df['prot'] = pd.Seris([x.translate() for x in df.seq])
Мы можем получить:
seqName seq prot
0 A (t, t, g, a, a, a, a, t, g) (X, K, M)
1 B (t, t, t, a, a, a, a, t, g) (F, K, M)
2 C (t, t, t, a, a, a, a, t, g) (F, K, M)
Однако текущий биопайтон не может перевести «tt-» как «X», и он просто выбрасывает ошибку. Мне кажется, что я должен удалить все пробелы в выровненных последовательностях, а затем перевести их, после чего мне придется перестроить транслированные белковые последовательности.
Как вы справляетесь с такой проблемой? Заранее спасибо.