RDKit:分子构象的生成和比对

RDKit简介

RDKit在2000-2006年期间在Rational Discovery开发和使用,用于构建吸收、分布、代谢、代谢、毒性和生物活性的预测模型。2006年6月Rational Discovery被关闭,但该工具包在BSD许可证下作为开源发布。目前,RDKit的开源开发由诺华积极贡献,其中包括诺华捐赠的源代码。

 

RDKit提供各种功能,如不同的化学I/O格式,包括SMILES/SMARTS,结构数据格式(SDF),Thor数据树(TDT),Sybyl线符号(SLN),Corina mol2和蛋白质数据库(PDB)。子结构搜索; 标准SMILES; 手性支持;化学转化;化学反应;分子序列化;相似性/多样性选择;二维药效团;分层子图/片段分析; Bemis和Murcko骨架;逆合成组合分析程序(RECAP); 多分子最大共同亚结构;功能图;基于形状的相似性;基于RMSD的分子分子比对;基于形状的对齐;使用Open3-DALIGN算法的无监督分子-分子比对;与PyMOL进行3D可视化集成;功能组过滤;分子描述符库;相似图;机器学习等等

 

基于RDkit的分子构象生成和比对

#导入模块和包

from rdkit import Chem
from rdkit.Chem import AllChem
from rdkit import RDConfig
import os
from rdkit.Chem.Draw import IPythonConsole
from rdkit.Chem import Draw

#读入分子

mols = [x for x in Chem.SDMolSupplier(‘ligands.sdf’,removeHs=False) if x is not None]

 

#获取分子列表的第一个分子

mols[0]

 

 

 

 

 

 

#获取分子列表的第二个分子

mols[1]

 

 

 

 

 

 

#RDKit调用Pymol进行可视化

from rdkit.Chem import PyMol
v = PyMol.MolViewer()

#pymol可视化分子列表中第一个分子

v.ShowMol(mols[0])
v.GetPNG(h=300)

 

#pymol可视化分子列表中第二个分子

v.ShowMol(mols[1],name=mols[1].GetProp(‘_Name’))
v.GetPNG(h=300)

 

 

 

 

 

 

 

 

 

#pymol可视化分子列表中第三个分子

v.ShowMol(mols[2],showOnly=False,name=mols[2].GetProp(‘_Name’))
v.GetPNG(h=300)

Conformers and Conformation Generation

#导入构象模块

import copy
tm = copy.deepcopy(mols[0])
tm.RemoveAllConformers()
tm.GetNumConformers()

#产生分子的多构象

cids=AllChem.EmbedMultipleConfs(tm,pruneRmsThresh=1.0)

for cid in cids: AllChem.UFFOptimizeMolecule(tm,confId=cid)

#获取分子构象列表的第一个构象

v.ShowMol(tm,name=’conf-0′,confId=cids[0])
v.GetPNG(h=300)

#获取分子构象列表的第二个构象

v.ShowMol(tm,name=’conf-1′,confId=cids[1],showOnly=False)
v.GetPNG(h=300)

#输出结构

tm

#载入一个分子与tm分子进行比对,获取核心结构

core = Chem.MolFromSmarts(‘c12ncnc1ncnc2’)
match=tm.GetSubstructMatch(core)
tm

#获取匹配度,分子的多构象进行比对

match

AllChem.AlignMolConformers(tm,atomIds=match)

v.ShowMol(tm,name=’conf-1′,confId=cids[1],showOnly=False) # <- the same name we already used, so PyMol replaces the object
v.GetPNG(h=300)

#单个分子的所有构象进行比对

v.DeleteAll()
for cid in cids:
v.ShowMol(tm,confId=cid,name=’Conf-%d’%cid,showOnly=False)
v.GetPNG(h=300)


 

留下评论

您的电子邮箱地址不会被公开。 必填项已用 * 标注