将核苷酸序列转换为氨基酸序列

2024-04-27 12:25:58 发布

您现在位置:Python中文网/ 问答频道 /正文

我有一个脚本,它使用基因的位置和链信息(补体,正向)来提取核苷酸序列。提取后,脚本使用翻译表和密码子起始位置将核苷酸序列转换为氨基酸序列,并将其与原始氨基酸序列进行比较。理论上,他们应该匹配,但我还没有找到匹配的。在

作为一个例子,我将使用这个E.coligenbank文件:http://www.ncbi.nlm.nih.gov/nuccore/AB011549从第396行开始,如下所示:

CDS         complement(25341..26294)
/gene="repFIB"
/note="Replication protein RepFIB (P307 replicon);
similar to PIR accession number A32310"
/codon_start=1
/transl_table=11
/product="RepFIB"
/protein_id="BAA31780.2"
/db_xref="GI:4589743"
/translation="MTLTPNNNNTVQPVALMRLGVFVPTLKSLKNSKKNTLSRTDATEELTRLSLARAEGFDKVEITGPRLDMDNDFKTWVGIIHSFARHNVIGDKVELPFVEFAKLCGIPSSQSSRRLRERISPSLKRIAGTVISFSRTDEKHTREYITHLVQSAYYDTERDIVQLQADPRLFELYQFDRKVLLQLKAINALKRRESAQALYTFIESLPRDPAPVSLARLRARLNLKSPVFSQNQTVRRAMEQLREIGYLDYTEIQRGRTKLFCIHYRRPRLKAPNDESKENPLPPSPAEKVSPEMAEKLALLEKLGITLDDLEKLFKSR"

这说明翻译表是#11,基因从25341位开始到26294位,基因来自补体链,实际的氨基酸序列是最后一个条目(例如,/translation)。在

^{pr2}$

请注意,我的脚本查看以下内容:前向串(.translate(table=11))、补码串(.complement().translate(table=11)),以及反向补码(*.reverse_completion().translate(table=11))。在

尽管genbank文件指出基因从25341位开始,在1位有一个开放的阅读框(例如,密码子_start=1),但我检查了从-2,-1,0(这是原始起始位置),+1,+2…开始的三个翻译,我仍然找不到互补链的匹配。然而,这个脚本确实适用于前向的核苷酸链(参见最后几行使用不同编码序列的信息)。在

以下是我的输出:

/usr/local/anaconda3/lib/python3.4/site-packages/Bio/Seq.py:2041: BiopythonWarning: Partial codon, len(sequence) not a multiple of three. Explicitly trim the sequence or add trailing N before translation. This may become an error in future. BiopythonWarning)
-2
-1
0
1
2
-2 #starting over using different CDS (forward)
-1
match
-1 MLLALLSSTDNFCLSSTELSERLDVSRTYITRACDSLEKFGFIKRMESKEDRRSKNIYLTSDGNLYLQRTTRIYGRYLKKYGATLQMMKSKHL

所以,把一个前链核苷酸序列转换成一个匹配的氨基酸序列是可行的,但是补体没有,我也不知道为什么(这很可能是我在Biopython中犯的一个错误)。有谁能提供一些关于我所做的错误和我如何改正它的见解?在

关于核苷酸如何转化为氨基酸的简要说明:密码子/氨基酸由三个核苷酸组成。看这里的氨基酸图:How to complete getting substrings of a genome encoding a given amino acid sequence 如果我的核苷酸序列是GCG,从圆圈的中心开始,一直到边缘,G(内圈)C(中环)G(外圈)对应丙氨酸(A)。在


Tags: 文件脚本信息基因table序列translationtranslate
1条回答
网友
1楼 · 发布于 2024-04-27 12:25:58

我有点不好意思地说,问题不是我的代码,而是我的解释。CDS特性(例如CDS补码(xx…xxxx))可能来自补码串,但我不需要先转换它(例如,reverse_completion(),completion())。我只需直接翻译(例如,translate(表=11))。在

第一个或最后一个氨基酸可能有一些问题(如评论中所述),但大多数情况下,问题解决了。在

相关问题 更多 >