如何更快地搜索,RDkit和Pandas,化学数据库

2024-05-23 19:53:19 发布

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

我试图搜索一个大型化学数据库(chembl,>;1000000个条目),但在我的工作计算机上执行代码时遇到问题。我们的重点是化学品,所以没有高质量的计算机。在

下面是我的代码,对于较小的条目(大于5000个条目)可以快速工作。当查看完整的数据集时,我的4GB内存填满,计算机停止运行。有没有办法更有效地完成这项任务?在

import pandas as pd
from rdkit.Chem import PandasTools
from rdkit.Chem import Descriptors

filename1 = "chembl_22_chemreps_1"
fg = pd.read_csv('data/%s.txt' %filename1, sep='\t')   
#fg=fg.head(5000)
fg.drop(fg.columns[[2, 3]], axis=1,inplace=True)
PandasTools.AddMoleculeColumnToFrame(fg, smilesCol='canonical_smiles')
fg['MW']=fg['ROMol'].map(Descriptors.MolWt)
fg['Aromatic']=fg['ROMol'].map(Descriptors.NumAromaticRings)
fg['Aliphatic']=fg['ROMol'].map(Descriptors.NumAliphaticRings)
fg = fg[(fg['Aromatic'] ==0) &
(fg['Aliphatic'] ==0) &
(fg['MW'] < 1000) &  
(fg['MW'] > 50)] 

该代码加载数据库,将smiles转换成RDkit分子信息,搜索并删除分子量小于50,分子量大于1000的环。在

有什么提示吗?在


Tags: 代码fromimport数据库map计算机条目mw