来自SMILES的图表

时间:2019-07-16 17:38:45

标签: python rdkit molecule cheminformatics

我有一个以SMILES字符串表示的分子数据集。我试图将其表示为图形。有办法吗?例如,假设我有字符串CC(C)(C)c1ccc2occ(CC(=O)Nc3ccccc3F)c2c1,是否存在将其转换为图形表示(即邻接矩阵和原子向量)的一般方法?我看到了一些针对SMILES from graphs的问题,并且我知道rdkitMolFromSmiles,但是我找不到从SMILES字符串中获取图形的内容。

3 个答案:

答案 0 :(得分:1)

您可以尝试pysmiles。 从SMILES描述开始,您应该能够创建NetworkX图并使用代码沿着

行生成所需的对象。
from pysmiles import read_smiles
import networkx as nx

smiles = 'C1CC[13CH2]CC1C1CCCCC1'
mol = read_smiles(smiles)

# atom vector (C only)
print(mol.nodes(data='element'))
# adjacency matrix
print(nx.to_numpy_matrix(mol))

答案 1 :(得分:0)

要完成Davide的答案,可以使用以下命令将债券订单包括在邻接矩阵中:

nx.to_numpy_matrix(mol, weight='order')

或根据networkx documentation使用

nx.adjacency_matrix(mol, weight='order').todense()

答案 2 :(得分:0)

networkx是一个很好的解决方案。如果您正在寻找更自定义的内容,则可以自己创建图形。请参阅此示例:SMILES from graph