美文网首页R数量遗传或生统
2022-01-10 利用RDKit基于分子指纹相似性对sdf小

2022-01-10 利用RDKit基于分子指纹相似性对sdf小

作者: 阿华_e1ba | 来源:发表于2022-01-09 10:43 被阅读0次

import rdkit

from rdkit import Chem

from rdkit.Chem import Draw

from rdkit.Chem import AllChem

from rdkit.Chem import Draw

from rdkit import DataStructs

from rdkit.Chem import Descriptors

#导入相应的包和函数

suppl = Chem.SDMolSupplier('C:/Users/zhangguhua/Desktop/pycharm_job_path/Fragment_Library_4063.sdf')

#导入带筛选数据

mols = [mol for mol in suppl if mol is not None]

#读取为分子对象

fo = open('C:/Users/zhangguhua/Desktop/pycharm_job_path/Sulcotrione.smi').read()

ref_mol = Chem.MolFromSmiles(fo)

#读入参考分子 为分子对象

fo_fp = AllChem.GetMorganFingerprint(ref_mol,2)

mols_fps = [(mol,AllChem.GetMorganFingerprint(mol,2)) for mol in mols]

#计算分子指纹

fo_mols = [(m,DataStructs.TanimotoSimilarity(fo_fp,mols_fp)) for m,mols_fp in mols_fps]

sorted_fo_mols = sorted(fo_mols,reverse=True,key=lambda x: x[1])

#计算分子指纹相似性并根据大小进行排序

result = sorted_fo_mols[:200]

test_20 = open('C:/Users/zhangguhua/Desktop/pycharm_job_path/test20.sdf','w')

writer = Chem.SDWriter(test_200)

for x,y in result:

  writer.write(x)

writer.close

创建sdf文件,并将筛选得到的结果写入到sdf文件中用于后续分析

相关文章

网友评论

    本文标题:2022-01-10 利用RDKit基于分子指纹相似性对sdf小

    本文链接:https://www.haomeiwen.com/subject/wormcrtx.html