RDKit ERG节点属性名称python

2024-09-29 23:32:18 发布

您现在位置:Python中文网/ 问答频道 /正文

我正在使用RDKit提取一个特定分子的ERG[1](扩展约化图)图。在从原始分子中提取ERG图之后,我正在创建一个用于进一步处理的图

然而,我注意到一些原子/节点,当我试图获取它们的符号时,结果是一个“*”。鉴于ERG方法有许多抽象节点,如芳香节点和侧向疏水节点,我通常无法使用GetSymbol()方法检索它们

无论我尝试了多少种方法,我都无法提取这些节点的名称。我需要这些节点的名称,因为它们将用于图形编辑距离技术

我正在测试的其中一个分子是:CHEMBL318217,SMILES string:CC(C)(C)NC(=O)[C@@H]2C[C@@H]1SCC[C@@H]1CN2CC@@HC@HNC(=O)OCC4CCC4

我的代码是:

def get_graph(mol): #From reference [2]
  Chem.Kekulize(mol)
  atoms = [atom.GetAtomicNum() for atom in mol.GetAtoms()]
  am = Chem.GetAdjacencyMatrix(mol,useBO=True)
  for i,atom in enumerate(atoms):
    am[i,i] = atom
  G = nx.from_numpy_matrix(am)
  return G

query = 'CC(C)(C)NC(=O)[C@@H]2C[C@@H]1SCC[C@@H]1CN2C[C@@H](O)[C@H](CSc3ccccc3)NC(=O)OCc4ccccc4'
mol = Chem.MolFromSmiles(query)
red = rdReducedGraphs.GenerateMolExtendedReducedGraph(mol)
G1 = get_graph(red)

for atom in red.GetAtoms():
    print(atom.GetSymbol()) #The last four symbols are *

我非常感谢你的帮助

一些参考资料:

[1]ErG:  支架跳跃的2D药效团描述 尼古拉斯·斯蒂夫、伊恩·沃森、克努特·鲍曼和安德烈·扎利亚尼 化学信息与建模杂志2006 46(1),208-220 内政部:10.1021/ci050457y

[2]http://proteinsandwavefunctions.blogspot.com/2020/01/computing-graph-edit-distance-between.html


Tags: 方法in名称for节点redam分子

热门问题