为了取得下图所示的效果
论文🔗为
代码如下
以aspirin为例,需要先用chemdraw画出结构然后保存为sdf格式的文件
#导入库
import numpy as np
from rdkit import Chem
from rdkit.Chem import AllChem
# 加载SDF文件
suppl = Chem.SDMolSupplier('/home/hsxiao/deepl/task/aspirin.sdf') #注意这里的文件位置
molecule = suppl[0]
# 获取原子数和键数
num_atoms = molecule.GetNumAtoms()
num_bonds = molecule.GetNumBonds()
# 生成邻接矩阵
adj_matrix = np.zeros((num_atoms, num_atoms), dtype=int)
for bond in molecule.GetBonds():
start, end = bond.GetBeginAtomIdx(), bond.GetEndAtomIdx()
adj_matrix[start][end] = 1
adj_matrix[end][start] = 1
print("邻接矩阵:\n",adj_matrix)
# 特征矩阵
# 定义原子类型、所带电荷和连接的氢原子数
atom_types = ['C',