大概五年前,我在做一个材料基因组项目的时候,需要给上百万个分子生成统一、可比的数值特征。那会儿我刚把化学信息学的开源工具链跑熟,满脑子都是怎么把SMILES转成Morgan指纹,却在一次组会里被一位做理论化学的前辈问住了:"你知道这背后的数学结构是什么吗?"我一时答不上来。后来我顺着这个坑往回查资料,才发现自己已经站在一个非常古老的交叉学科的门口:数学化学。它的坐标恰好就是标题写的那个位置——【信息科学与工程学】【物理/化学科学和工程技术】知识体系的第30号节点。
这个学科最微妙的地方在于,它不属于任何一个单独的院系。化学系觉得它太数学,数学系觉得它太化学,计算机系又长期把它当成工程调包的对象。可今天任何一个做计算化学、化学信息学、材料设计、药物虚拟筛选、过程系统工程的人,都会被同一个问题反复硌脚:分子结构到底要怎么变成计算机可解析、可计算、可预测的数学对象?化学结构中的相似性如何被严格度量?反应网络如何从直觉描述变成可靠模型?这些问题没有一个能绕开数学化学。
这篇文章不打算写成大学讲义式的浓缩版教材,而是想给你一张坐标系:数学化学的知识主干分几块,它与信息科学和工程学在哪里交汇,又与物理化学和工程技术的哪些问题共享底层逻辑,以及一个非纯数学背景的人该按什么顺序把这块拼图补齐。适合正在做跨学科项目、或者在计算化学相关方向自学的人当作索引来用。
1. 别被"数学化学"这个名字劝退:它本质上是给化学建立可计算模型
我见过太多人听到"数学化学"首先想到一堆恐怖的特征标表和群论公式,然后直接绕道。其实这门学科的出发点和"理论化学""化学信息学"不一样:它不关心你能不能算出某个分子的能量,也不关心某个分子库怎么存效率最高,它关心的是化学概念本身如何被翻译成数学对象。用一句行话讲,数学化学在做的是"从化学结构空间到数学结构空间的同构映射"。
1.1 结构如何变成数据:图是分子的第一语言
几乎所有数学化学的应用都从同一个朴素动作开始:把分子结构转写成可计算的表示。
初中化学课本里画的点线式,人眼看得懂,计算机却不行。要让计算机理解"苯环有六个碳、六个氢、碳碳键长介于单双键之间",第一步是把分子抽象成一个图:原子是顶点,化学键是边。这套抽象看起来太简单了,但一个"简单动作"的背后会迅速撞见真正的数学难题——同分异构体。分子式相同的两种化合物,图不一定同构;而判断两个分子图是否同构,本身就是一个目前没有多项式复杂度通用算法的问题。
化学图论因此成为整个数学化学最核心的地基。它的研究范围包括:分子图的矩阵表示(邻接矩阵、距离矩阵)、图的不变量、图与分子性质的关联、化学图之间的相似性度量。我自己后来做分子筛选才发现,早年工作流里每一步其实都在用图论的语言说话。比如判断重复结构要用到图同构算法,计算相似度要用到最大公共子图算法,做骨架树聚类用到的则是最小生成树和树编辑距离。
1.2 两个分子的差别,如何浓缩成一个数
分子被抽象成图之后,下一步的问题是:怎么比较两个分子"像不像"。
人眼比较分子时,会无意识地看骨架形状、官能团位置、分支程度。但计算机只能比较数值。于是数学化学家设计了一大批数值化的浓缩方法,从最早期最简单的碳原子数、分子量,到后来丰富的拓扑指数、分子描述符,本质上都是把高维的分子结构映射到低维数值空间。
这个映射过程究竟科学不科学,是数学化学最迷人的部分。比如两个结构差异很大的分子,如果在某个数值描述符上碰巧相同,那是巧合还是结构本质趋同?好用的描述符必须满足"相近的结构数值接近、不同的结构数值拉开"这一基本条件。用数学术语说,描述符设计要考虑区分力和连续性。现实做QSAR(定量结构-活性关系)模型时,一个过窄的描述符会导致预测结果完全失真;一个过宽、信息冗余的描述符又会被噪声淹没。所以这段领域始终在"表征能力"和"信息压缩率"之间找平衡。
1.3 化学反应也能既定量又组合:从微分方程到反应网络
如果说前面两部分处理的是"静态化学空间",那数学化学的第三个基本问题就是给化学过程建模。
化学反应的描述至少有两条数学路线。一是经典的动力学路线:质量作用定律给出常微分方程组,浓度随时间变化变成一个数学系统的解;多个反应偶联起来就是大型反应网络,可以分析网络的雅可比矩阵特征值来判断稳定性,会出现振荡、多稳态等非线性现象。另一条是基于组合学与离散数学的路线:化学反应被视为反应物图经某种变换得到产物图的"改写规则",这时反应网络就不再是连续方程,而是一个字符串重写系统或图改写系统,可用形式语言理论来研究。
两条路线都不好走,但都产出了大量工业级应用。连续方程支撑了化工反应器设计和催化剂评价;离散改写规则支撑了
