我试图搜索一个大型化学数据库(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的环。在
有什么提示吗?在
目前没有回答
相关问题 更多 >
编程相关推荐