我需要用生物毒素翻译DNA序列
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”?你知道吗
这对于翻译对齐的序列非常有用。例如,一个对齐的序列集以名为“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”,只能抛出错误。在我看来,我必须消除所有的差距,在对齐的序列,然后翻译他们之后,我必须重新排列翻译的蛋白质序列。你知道吗
你如何处理这样的问题?先谢谢你。你知道吗
注:假设这些是来自帧内(帧1)氨基酸编码比对的真正1bp缺失。你知道吗
为此,可以使用如下自定义翻译功能:
else语句将导致任何未被识别的密码子(包括退化碱基的存在)被翻译为x。 只需将序列字符串传递给这个函数。 如果序列存储为seq对象,则可以如下方式修改函数中的行:
相关问题 更多 >
编程相关推荐