KANinnerGNN的工作规划
基于 KAN 设计的反应图神经网络模型用于预测 ddG 对映选择性
0. baseline 模型选择
可能用到的模块:
- KAGNN 模型中的 KAN 模块 + 分子图构建模块
- 反应图
- logRRIM 中的模块
- SEBlock
- ACSD 模型中的多尺度并行流动模块
- MPNN
是同任务的模型:
- denmark 课题组的文献模型
- 洪鑫 SEMG 模型
- ChemAHNet 模型
- 从 denmark 课题组的被引文献中找类似任务的模型
1. 数据集
- 数据集:denmark 的 1075 个手性膦酸催化反应
- 划分方式:denmark 组 在 202x 年文献中提到的必须 600 的划分方式
- 手性标记:在 csv 文件里的 catalyst 的 smiles 式里包含@标注
2. 反应图构建
节点数量为 3 或 4(取决于是否包含 product ,初步考虑:不包含)
节点是”Imine 分子”,“Thiol 分子”,“Catalyst 分子”
其中三者通用的节点特征是 :
- mordred 物理化学参数(先计算到 400 多个保存起来,等到模型划分数据集后在进行 rf 等特征选择来减少参数量,取 rank100)
- 分子指纹(Morgan 或 Rdkit descriptor)
“Catalyst 分子”的额外节点特征是:
- Morfeus 作为 Sterimol, %V_bur, SASA 等的来源,用于专门描述位阻效应。然后 xTB 作为 HOMO, LUMO, Dipole, Charge 的来源,是电子效应(Electronic Effects)的描述符。最后,考虑到手性磷酸催化剂的联萘骨架(BINOL backbone)具有特定的二面角,且该角度会随取代基不同而扭曲,单纯的图神经网络(GNN)难以捕捉这种‘长程的手性诱导’,后期考虑怎样将 Morfeus 计算出的特定几何参数(如二面角、口袋开口大小)显式地作为先验知识注入到网络中。
边是组分之间的关系 E 特征 :简单的连接方法
边的特征是:
- 连接方式:单向,双向,无
其他思考
超节点:
若将催化剂节点改为虚拟超节点、然后连接到催化剂的所有原子,将 xTB 电子参数赋给这个超节点.最后 xTB 电荷(Charge/Fukui Indices):这是原子级属性。必须精确地赋给每一个原子节点(Atom Features)。千万不要把所有原子的电荷取平均作为分子特征,那样会丢失反应活性位点的信息! 将 Morfeus 位阻参数(Sterimol)描述的特定取代基(如 CPA 的 3,3’-位)的几何尺寸,放到催化剂骨架上连接该取代基的锚点原子的特征,或者赋给上述的“虚拟超节点”
取代基朝向:
“在使用 Morfeus 计算 Sterimol 参数时,你是如何自动定义每个催化剂的‘测量轴’(axis of measurement)的?鉴于 1075 个分子可能有不同的取代基朝向,如何确保定义的 L/B1/B5 方向在所有样本中具有拓扑一致性(Topological Consistency),从而让 GNN 能够学习到一致的规律?” xTB 优化的几何结构被用于生成空间位阻描述符(Steric descriptors),这些描述符随后作为输入被送入 GNN-KAN 模型以学习非线性的构效关系
3. 模型构建
输入数据:反应图 数据流动过程: 多尺度并行流动,且只是单层图模型:concat(全局+局部+)——————仿照 ACSD 模型 模型结构:使用 KAN 替换 MLP 模块:节点嵌入,消息传递,readout 捕获全局信息的层:SEBlock 模块 捕获局部信息的层:MPNN 模块(即标准 GNN 模块)
[!tips]KAGNN 模型

代理模型是干嘛的,强化学习? 采样方法是什么意思?
论文里可用的表明自己创新点的句子
- xTB 电荷/轨道: 提供了电子效应(HOMO/LUMO/Gap, Global Electrophilicity)。这对于理解 CPA 的布朗斯特酸性(Brønsted Acidity)和氢键供体能力至关重要。
- 不要声称你找到了“全局极小点 (Global Minimum)”,使用的是 “Boltzmann-Weighted Ensemble Features” (玻尔兹曼加权系综特征),催化剂在溶液中本身就是动态的。RDKit ETKDGv3 + xTB Opt 能够捕捉到几个主要的低能构象,通过加权平均,你捕捉的是催化剂的平均立体环境 (Average Steric Environment)。这对于机器学习通常已经足够鲁棒
- 为了弥补无 CREST 的短板,增加 RDKit 的采样密度来作为一种廉价的补偿,
节点特征
Catalyst:Vbur,Sterimol_L,Sterimol_B1,Sterimol_B5,SASA_Area,SASA_Volume,SASA_Local_PO,Dispersion_P_int,Dispersion_Area,Charge_P,Charge_O_db,Charge_Diff_PO,Charge_H_acidic,Max_Charge,Min_Charge。 thiol:NPR1,NPR2,RadiusOfGyration,PMI1,PMI2,PMI3,Max_Charge,Min_Charge,Charge_Thiol_S。 imine:NPR1,NPR2,RadiusOfGyration,PMI1,PMI2,PMI3,Max_Charge,Min_Charge,Charge_Imine_C,Charge_Imine_N
下一步的规划
针对 3 节点的修改
- 将本代码中的节点数改为 3 个(删除 product 节点),构图方式修改为这样的 2 种方法:“全连接”,“催化剂单向指向 imine、thiol,且 imine 与 thiol 双向连接”
- 检查代码,看看删除 product 节点导致图结构改变后,是否存在其他需要进行修改的地方。
针对 4 节点的修改
- 将边的连接方式的构造逻辑改为基于以下 4 个限定条件筛选的 n 种图:“1.反应物之间,必定存在双向边。2.催化剂与两个反应物之间,必定存在边。3.产物与反应物之间,必定存在反应物指向产物的边。4.每个节点,必定构成至少 1 个边”
在数据集上寻找创新点
- ChemAHNet 的手性标记方法能否借鉴?
在特征工程上寻找创新点
- Homo 和 Lumo 以及 Gap 的计算
在模型架构上寻找创新点
- logRRIM 模块的引入
- 看看反应图文献
baseline
- 在不同数据集上进行对比是否有必要?有哪些数据集可以用于我的对比?