硤合反应(Soai reaction)是一种不对称自催化反应:由产物形成的催化剂促进相同构型的分子继续生成。它能放大两种镜像分子之间微小的比例差异。硤合憲三及其同事在1995年的论文中报告了这种不对称放大。
本文解释反应原理,并用chematic判定分子的R/S构型。你也可以直接在不对称放大的交互模型中调整初始混合比例。
硤合反应的原理:产物促进自身继续生成
起始原料为嘧啶-5-甲醛类化合物和二异丙基锌。加成反应生成的锌醇盐发挥催化作用,后处理得到相应的嘧啶基醇。由产物形成的催化剂促进相同构型的产物继续生成。结构与机理研究见Athavale及其同事的论文。
产物促进自身生成的过程称为自催化。在硤合反应中,产物的量增加,占优势的对映异构体的比例也能进一步上升。这种比例差异的扩大就是不对称放大。
生命分子的左右之分与2026年诺贝尔化学奖
生物分子常偏向两种镜像形式中的一种,这种性质称为同手性。硤合反应用实验证明了化学反应能够放大微小的初始偏差,为研究同手性的起源提供了线索。东京大学的研究介绍说明了这一联系。
2026年诺贝尔化学奖授予Henri B. Kagan和硤合憲三(Kenso Soai),表彰他们在不对称有机合成中发现非线性效应和自催化作用。获奖信息见ACS公告和东京理科大学公告。
下面以乳酸为构型入门示例,用chematic 1.1.4计算立体化学,再通过可以调整混合比例的Frank模型探索不对称放大的原理。
R/S表示什么:分子式相同,立体构型可以不同
左手和右手互为镜像,无论怎样旋转都不能完全重合。具有这种关系的分子称为对映异构体。
下面用SMILES读取乳酸的一对对映异构体。两个字符串的原子顺序保持一致,只交换了@与@@。
import chematic
smiles = ["C[C@H](O)C(=O)O", "C[C@@H](O)C(=O)O"]
molecules = [chematic.from_smiles(s) for s in smiles]
for mol in molecules:
label = mol.cip_stereo(mode="accurate")[0]["descriptor"]
print(label, mol.formula, f"{mol.rdkit_mw:.3f}")
S C3H6O3 90.078
R C3H6O3 90.078
分子式和平均相对分子质量相同,构型标签分别为S和R。R/S由CIP优先顺序规则确定;旋光方向使用另一组符号+和−。可参阅IUPAC关于R/S和旋光性的定义。
S型:C[C@H](O)C(=O)O |
R型:C[C@@H](O)C(=O)O |
|---|---|
结构图由同一发布版本的mol.svg()生成。SMILES中的@和@@表示相对于原子书写顺序的构型,R/S标签则由解析后的结构计算得到。相关记法见OpenSMILES规范。
用ee衡量比例差异:51:49对应2% ee
对映体过量值,简称ee,表示一种对映异构体比另一种多出多少。以R和S分别表示两者的物质的量,ee的大小为:
ee (%) = 100 × |R − S| / (R + S)
因此,51:49对应2% ee,90:10对应80% ee。50:50是等摩尔的外消旋体,ee为0%。定义见IUPAC术语说明。
Kagan及其同事在1986年的论文中报告了非线性效应:催化剂中手性组分的ee与产物的ee不成正比。在硤合反应中,不对称自催化使微小的初始ee得到放大。
前面的乳酸用于说明R/S和ee。
模拟不对称放大:比较51:49与50:50
拖动下面的滑块,调整初始R的比例。蓝线代表你选定的条件,虚线代表相同初始比例下、额外交叉抑制为0的情况。图中采用带符号的ee:R过量为正,S过量为负。
点击“试试50:50”,曲线会停留在0%。在这组确定性计算中,完全相等的初始量保持对称。把比例改成49:51,放大方向就转向S。将δ设为0,初始ee则保持不变。
这里采用基于Frank于1953年提出的思路建立的无量纲模型,R和S代表一般的对映异构体。参数用于探索放大的条件,并未拟合硤合反应的实验测量值。出处为Frank原论文,具体方程核对自Deck等人的补充材料第9.1节,式26和27(预印本)。
dR/dτ = R × {1 − R − (1 + δ)S}
dS/dτ = S × {1 − S − (1 + δ)R}
R和S为经过尺度变换的浓度,初始总量设为1;τ为无量纲时间。正项表示增长,二次负项表示自抑制与交叉抑制。δ决定交叉抑制比自抑制强多少。
当初始比例为51:49、δ = 1时,τ = 20的带符号ee为99.9871%。相同初始比例、δ = 0时,结果保持2.0000%。这些数值由上面的方程算出,采用步长0.01的四阶Runge–Kutta方法,并与步长减半的结果核对。这里的时间没有换算为秒或分钟。下载模型数据CSV。
在化合物比较中保留立体化学信息
处理化合物列表时,也需要选择是否将立体构型纳入特征。Morgan分子指纹用比特表示局部结构,下面比较同一对乳酸分子的指纹:
a, b = molecules
print(a.rdkit_ecfp_config(2, 2048) == b.rdkit_ecfp_config(2, 2048))
print(
a.rdkit_ecfp_config(2, 2048, include_chirality=True)
== b.rdkit_ecfp_config(2, 2048, include_chirality=True)
)
True
False
对于这两个分子,不包含手性的指纹相同,包含手性的指纹不同。可以根据任务选择只比较共有骨架,还是把立体构型也纳入特征。两次计算的半径均为2,长度均为2,048位。
在本地运行同一示例
保存chirality.py,然后运行:
python -m pip install "chematic==1.1.4"
python chirality.py
脚本会输出分子结构SVG、JSON结果和模型数据CSV。分子计算由已发布的chematic 1.1.4 Python包完成,放大过程由脚本中的Frank模型计算。我们于2026年10月15日在macOS arm64、Python 3.13.6环境中运行了示例,并提供完整结果及软件包与代码记录。