在 pandas 数据框中将 DNA 序列翻译成蛋白质序列

translate DNA sequences to protein sequences within a pandas dataframe

我有一个 pandas 数据框,其中包含 DNA 序列和基因名称。我想将DNA序列翻译成蛋白质序列,并将蛋白质序列存储在一个新的列中。

数据框如下所示:

DNA gene_name
ATGGATAAG gene_1
ATGCAGGAT gene_2

翻译和存储 DNA 后,数据框将如下所示:

DNA gene_name protein
ATGGATAAG... gene_1 MDK...
ATGCAGGAT... gene_2 MQD...

我知道 biopython (https://biopython.org/wiki/Seq) 将 DNA 转化为蛋白质的能力,例如:

>>> from Bio.Seq import Seq
>>> coding_dna = Seq("ATGGCCATTGTAATGGGCCGCTGAAAGGGTGCCCGATAG")
>>> coding_dna.translate()
Seq('MAIVMGR*KGAR*')

但是,我不确定如何在数据框的上下文中实现它。任何帮助将不胜感激!

由于您想翻译“DNA”列中的每个序列,您可以使用列表理解:

df['protein'] = [''.join(Seq(sq).translate()) for sq in df['DNA']]

输出:

         DNA gene_name protein
0  ATGGATAAG    gene_1     MDK
1  ATGCAGGAT    gene_2     MQD

我建议使用 pandas.DataFrame.apply。

类似于:

df['protein'] = df['DNA'].apply(lambda x: Seq(x).translate(), axis=1)