我正在使用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
目前没有回答
相关问题 更多 >
编程相关推荐