一、骨架分解
1.Murcko Scaffold
Murcko骨架由Murcko等人设计并用药物的形状、结构分析。他们将药物分子拆解成四种单元:环系结构(ring system)、接头(linker)、骨架(scaffold)、侧链(side chain),其中scaffold又由ring system和linker组成;scaffold和side chain又组成了药物分子。这么分解可以提供以下几点好处:
- Scaffold可以为药物的整体设计提供参考
- Ring system和linker可以为药化提供合成单元
- 可以通过形状的分析,评价分子库的类药程度
Rdkit中也提供了一些用于骨架和侧链分析的工具
- 获取Murcko骨架:GetScaffoldForMol()
>>> from rdkit import Chem
>>> from rdkit.Chem import Draw
>>> from rdkit.Chem.Scaffolds import MurckoScaffold
>>> m = Chem.MolFromSmiles('O=C(NCc1cc(OC)c(O)cc1)Cc1cocc1CC')
>>> core = MurckoScaffold.GetScaffoldForMol(m)
>>> m_core = [m, core]
>>> Draw.MolsToGridImage(m_core, subImgSize=(250, 250))
- 直接获取smiles的murcko骨架,并输出smiles:MurckoScaffoldSmilesFromSmiles(smiles, mol, includeChirality)
- 同MurckoScaffoldSmiles()
>>> MurckoScaffold.MurckoScaffoldSmilesFromSmiles('O=C(NCc1cc(OC)c(O)cc1)Cc1cocc1CC')
'O=C(Cc1ccoc1)NCc1ccccc1'
2.Generic Framework
将分子以图的形式表示,对结构进行抽象,即所有的原子作为顶点,所有的键作为边,主要反映了原子间的连接属性。
- 产生generic骨架:MakeScaffoldGeneric()
所有重原子都以碳来代替,所有的键都以单键代替
>>> gen_mcore = map(MurckoScaffold.MakeScaffoldGeneric, m_core)
>>> Draw.MolsToGridImage(list(gen_mcore), subImgSize