在 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)
我有一个 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)