Как бороться с пробелами при переводе с биопиона - PullRequest
0 голосов
/ 04 мая 2019

Мне нужно перевести выровненные последовательности ДНК с помощью биопиона

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», и он просто выбрасывает ошибку. Мне кажется, что я должен удалить все пробелы в выровненных последовательностях, а затем перевести их, после чего мне придется перестроить транслированные белковые последовательности.

Как вы справляетесь с такой проблемой? Заранее спасибо.

...