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

时间:2017-11-16 14:47:33

标签: python database pandas optimization rdkit

我正在尝试搜索大型化学数据库(chembl,> 1,000,000个条目),并且在我的工作计算机上执行代码时遇到问题。我们的重点是化学品,因此无法提供高质量的计算机。

我的代码如下,适用于较小的条目(> 5,000条目)。查看完整数据集时,我的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)] 

代码加载数据库,将微笑转换为RDkit分子信息,搜索并移除MW低于50,高于1000的环或分子。

任何提示?

0 个答案:

没有答案