gpt4 book ai didi

python - 在 Python 中将 DNA 序列翻译成氨基酸

转载 作者:太空宇宙 更新时间:2023-11-04 10:40:04 28 4
gpt4 key购买 nike

我被困在 python 练习中,我需要将 DNA 序列转换成相应的氨基酸。到目前为止,我有:

seq1 = "AATAGGCATAACTTCCTGTTCTGAACAGTTTGA"

for i in range(0, len(seq), 3):
print seq[i:i+3]

我需要在不使用词典的情况下执行此操作,并且我打算进行替换,但似乎也不可取。我怎样才能做到这一点?

它应该给出这样的东西,例如:

>seq1_1_+
TQSLIVHLIY
>seq1_2_+
LNRSFTDSST
>seq1_3_+
SIADRSLTHLL

更新 2:好的,所以我不得不求助于函数,并且按照建议,我已经得到了我想要的输出。现在,我有一系列函数,它们返回一系列氨基酸序列,我想得到一个看起来像这样的输出文件,例如:

>seq1_1_+
iyyslrs-las-smrlssiv-m
>seq1_2_+
fiirydrs-ladrcgshrssk
>seq1_3_+
llfativas-lidaalidrl
>seq1_1_-
frrsmraasis-lativannkm
>seq1_2_-
lddr-ephrsas-lrs-riin
>seq1_3_-
-tidesridqlasydrse--m

为此,我正在使用这个:

for x in f1:
x = x.strip()
if x.count("seq"):
f2.write((x)+("_1_+\n"))
f2.write((x)+("_2_+\n"))
f2.write((x)+("_3_+\n"))
f2.write((x)+("_1_-\n"))
f2.write((x)+("_2_-\n"))
f2.write((x)+("_3_-\n"))
else:
f2.write((translate1(x))+("\n"))
f2.write((translate2(x))+("\n"))
f2.write((translate3(x))+("\n"))
f2.write((translate1neg(x))+("\n"))
f2.write((translate2neg(x))+("\n"))
f2.write((translate3neg(x))+("\n"))

但与建议的预期输出文件不同,我得到了这个:

>seq1_1_+
>seq1_2_+
>seq1_3_+
>seq1_1_-
>seq1_2_-
>seq1_3_-
iyyslrs-las-smrlssiv-m
fiirydrs-ladrcgshrssk
llfativas-lidaalidrl
frrsmraasis-lativannkm
lddr-ephrsas-lrs-riin
-tidesridqlasydrse--m

所以他基本上是先做所有的 seq,然后再做所有的函数,所以我需要插入它们,问题是如何插入。

最佳答案

要翻译,您需要一个 codons 的表格, 所以没有字典或其他数据结构看起来很奇怪。

也许你可以看看biopython ?看看他们是如何管理的。

您也可以直接从编码链 DNA 序列翻译:

>>> from Bio.Seq import Seq
>>> from Bio.Alphabet import IUPAC
>>> coding_dna = Seq("ATGGCCATTGTAATGGGCCGCTGAAAGGGTGCCCGATAG", IUPAC.unambiguous_dna)
>>> coding_dna
Seq('ATGGCCATTGTAATGGGCCGCTGAAAGGGTGCCCGATAG', IUPACUnambiguousDNA())
>>> coding_dna.translate()
Seq('MAIVMGR*KGAR*', HasStopCodon(IUPACProtein(), '*')) "

你可以看看into

关于python - 在 Python 中将 DNA 序列翻译成氨基酸,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21188579/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com