快捷搜索:  汽车  科技

pycharm编写五子棋盘要哪些库(使用CocktailShakerRDKit和Pandas在5分钟内生成化学数据)

pycharm编写五子棋盘要哪些库(使用CocktailShakerRDKit和Pandas在5分钟内生成化学数据)for amino_acid in natural_amino_acids: peptide_molecule = PeptideBuilder(length_of_peptide=1) cocktail = Cocktail(peptide_backbone=peptide_molecule ligand_library=[amino_acid] enable_isomers=False) cocktail.shake() molecules = cocktail.enumerate(dimensionality='1D' enumeration_complex

pycharm编写五子棋盘要哪些库(使用CocktailShakerRDKit和Pandas在5分钟内生成化学数据)(1)

X是氨基酸侧链,用ChemDraw绘制的视觉表示

如何生成这些数据呢? 可以使用名为Cocktail Shaker的包。

首先,让我们安装所需的Python库:cocktail-shaker Pandas

pip install cocktail-shaker # latest version pip install pandas # latest version

导入所需的Python库

from peptide_builder import PeptideBuilder from functional_group_enumerator import Cocktail import pandas as pd

首先要做的是列出包含氨基酸侧链的字符串:

natural_amino_acids = [ "C" "CCCNC(N)=N" "CCC(N)=O" "CC(O)=O" "CS" "CCC(O)=O" "CCC(O)=O" "CCC(N)=O" "[H]" "CC1=CNC=N1" "C(CC)([H])C" "CC(C)C" "CCCCN" "CCSC" "CC1=CC=CC=C1" "CO" "C(C)([H])O" "CCC1=CNC2=C1C=CC=C2" "CC1=CC=C(O)C=C1" "C(C)C" ]

接下来声明一个root dataframe,我们将在其中存储所有准备好的数据。

root_dataframe = pd.DataFrame(columns=["smiles" "amino_acid"])

smiles为一维化合物表示,氨基酸为侧链的字符串表示。amino_acid列将充当数据的“标签”。

为了准备数据,我们将遍历每个天然氨基酸并分别构建字符串,这里是完整的for循环:

for amino_acid in natural_amino_acids: peptide_molecule = PeptideBuilder(length_of_peptide=1) cocktail = Cocktail(peptide_backbone=peptide_molecule ligand_library=[amino_acid] enable_isomers=False) cocktail.shake() molecules = cocktail.enumerate(dimensionality='1D' enumeration_complexity='high') dataframe = pd.DataFrame(molecules columns=["smiles"]) dataframe["amino_acid"] = amino_acid root_dataframe = pd.concat([root_dataframe dataframe])

for循环中的第一行将采用1长度肽主链的1D表示

peptide_molecule = PeptideBuilder(length_of_peptide=1) # NC([*:1])C(NCC(O)=O)=O

接下来,我们用我们的肽主链将cocktail对象wrap起来,只传递单个氨基酸。

cocktail = Cocktail(peptide_backbone=peptide_molecule ligand_library=[amino_acid] enable_isomers=False)

接下来是产生所需的氨基酸部分。

cocktail.shake()

接下来,我们想要数据的所有表示,因为最终它将生成各种2D坐标。众所周知,在卷积神经网络社区中,对相同数据的多种描述有助于神经网络的训练和准确性。

molecules = cocktail.enumerate(dimensionality='1D' enumeration_complexity='high')

Cocktail对象将保留您之前生成的组合,这里我们设置dimensionality='1D',我们希望获得尽可能多的不同表示,enumeration_complexity='high'。

接下来,保存到带有氨基酸标签的dataframe,然后加入到主dataframe中!

dataframe = pd.DataFrame(molecules columns=["smiles"]) dataframe["amino_acid"] = amino_acid root_dataframe = pd.concat([root_dataframe dataframe])

几分钟后,大约产生了7498个氨基酸的smiles。

pycharm编写五子棋盘要哪些库(使用CocktailShakerRDKit和Pandas在5分钟内生成化学数据)(2)

完整Python代码如下:

from peptide_builder import PeptideBuilder from functional_group_enumerator import Cocktail import pandas as pd if __name__ == '__main__': natural_amino_acids = ["C" ... "C(C)C"] root_dataframe = pd.DataFrame(columns=["smiles" "amino_acid"]) for amino_acid in natural_amino_acids: peptide_molecule = PeptideBuilder(length_of_peptide=1) cocktail = Cocktail(peptide_backbone=peptide_molecule ligand_library=[amino_acid] enable_isomers=False) molecules = cocktail.shake() molecules = cocktail.enumerate(dimensionality='1D' enumeration_complexity='high') dataframe = pd.DataFrame(molecules columns=["smiles"]) dataframe["amino_acid"] = amino_acid root_dataframe = pd.concat([root_dataframe dataframe]) root_dataframe.to_hdf('data.h5' key='s' mode='w')

猜您喜欢: