问题描述
我正在使用RDKit提取特定分子的ERG [1](扩展缩减图)图。在提取了ERG图的原始分子后,我正在创建一个图以用于进一步处理。
但是,我注意到某些原子/节点,当我尝试获取其符号时会导致“ *”。鉴于ERG方法具有许多抽象节点,例如Aromatic节点和横向憎水节点,所以我无法使用GetSymbol()方法检索它们是正常的。
无论我尝试了多少种方法,我都无法提取此类节点的名称。我将需要这些节点的名称,因为它们将用于“图形编辑距离”技术中。
我要测试的分子之一是:CHEMBL318217,SMILES字符串:CC(C)(C)NC(= O)[C @@ H] 2C [C @@ H] 1SCC [C @@ H] 1CN2CC @@ HC @ HNC(= O)OCc4ccccc4
我的代码是:
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药理学描述 nikolaus Stiefl,Ian A.Watson,Knut Baumann和Andrea Zaliani 化学信息与建模杂志2006 46(1),208-220 DOI:10.1021 / ci050457y
[2] http://proteinsandwavefunctions.blogspot.com/2020/01/computing-graph-edit-distance-between.html
解决方法
暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!
如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。
小编邮箱:dio#foxmail.com (将#修改为@)