|
本帖最后由 Graphite 于 2025-7-1 10:25 编辑
...不知道纯技术的事情咋能引战了
从本质上来说,SMILES是一种分子的图表示,当然是不包含三维坐标信息的。SMILES只能展开成一组键列表(拓扑、图的邻居列表),并且一般也不包含手性、顺反异构信息。(对映异构体和顺反异构体如果不做特殊处理,其实是图同构的)
RDKit或OpenBabel或Chemdraw直接从SMILES生成三维坐标的方法,其实也是通过经验方法,用预制键长键角生成,没有MD的过程在。
如果要说从SMILES能够稳定地、99%以上地生成可用的三维坐标,一种可能的方法应该:1、展开拓扑,2、从拓扑通过图算法生长出初始的结构,这个结构很可能就是包含重叠原子、不合理的坐标。3、加载预制键长键角、soft势或其他稳健性强的原子间势,进行能量最小化。加氢问题相当于:在一个有节点度数约束的赋权图上,先确定边的正确权重,再根据顶点剩余权重,用氢饱和。
问题的复杂度在于其本质复杂度,而不是附加复杂度。现有的包表现差强人意、自己写总是免不了try-except、剔除异常结果只是核心问题的表象。如果选择更硬核的方法:自己开发写算法,要发文章还是以后转码都很锻炼人。如果只是快速要一批差不多的分子,就得接受当下10%、20%甚至更多的失败率、可能还是要反复人工剔除。
|
评分 Rate
-
查看全部评分 View all ratings
|