想象你是一家分子料理餐厅的主厨,而 AI 是你的“疯狂创意助手”。每天早晨,它都会推着一车新菜谱冲进厨房:炭烤天山雪莲、液氮泡沫鲟鱼、用 47 种香料分层堆叠的彩虹千层。每一道听上去都惊艳,但你的后厨只有普通食材和一口炒锅——这些菜谱 90% 根本做不出来。于是你需要一套“菜谱可行性评分系统”:先快速判断哪些菜能端上桌,再给助手立规矩,让它别再设计那些好看不好做的东西。AI 药物发现面临的是同一场闹剧。分子生成模型每天能画出成千上万个结构新颖的分子,但“画得出来”不等于“做得出来”。药物分子必须在实验室里被真实合成,才能进入活性测试——如果合成需要 20 步、产率不到 0.1%,再漂亮的分子也只能躺在纸面上。这篇文章要讲的就是 AI 分子生成领域的“厨房守则”:如何用 SA Score(合成可及性评分)快速评估分子的可制造性,把可合成性约束融入生成过程,再用后过滤、逆合成验证和湿实验形成完整闭环。读完你不仅能理解这套“菜谱评审系统”的原理,还能在自己的生成模型里直接落地。

岗位关联

对 AI 从业者而言,掌握可合成性评估与约束是让生成模型从“纸上谈兵”走向“真实制造”的关键一步,也是药物发现工程化落地中最具实践价值的技能之一。

目录
  1. 可视化演示
  2. 可合成性概念
  3. SA Score计算
  4. 约束融入生成
  5. 后过滤策略
  6. 逆合成验证
  7. 实验验证方法
  8. AI 应用场景
  9. Python 演示
  10. 常见误区
  11. 面试题

可视化演示

展示SA Score多特征打分计算、约束融入分子生成流程、后过滤候选分子筛选管线及三种策略SA/多样性/产率对比,含星座网络背景和发光动画。

本节配有交互动效(进入视口后自动加载,约 3KB)。

可合成性概念

主厨面对的第一道难题,是如何判断一张菜谱可不可行。方法很朴素:先看食材在市场上见不见得到,再看工序长不长。药物化学家看到 AI 画出的分子时,脑子里闪过的也是同样的问题——这玩意儿合成得了吗?那些由罕见杂环、密集手性中心堆叠而成的漂亮结构,往往看一眼就知道是实验室的噩梦。

在生成模型与真实实验之间,横亘着一条巨大的“可行性鸿沟”。模型感受不到烧瓶、溶剂和反应温度,它只擅长在化学空间里漫游。SA Score(Synthetic Accessibility Score,合成可及性评分)正是用来丈量这条鸿沟的标尺,它由 Ertl 和 Schuffenhauer 于 2009 年提出,目前是评估分子可制造性最常用的指标。

SA Score 从两个维度估计合成难度:分子中结构片段在已知化合物库中出现的频率,以及分子本身的拓扑复杂度。评分范围 1 到 10,1 代表极易合成,10 代表几乎无法合成。药物化学实践通常以 SA ≤ 4 或 5 作为候选分子的筛选线,超过这条线的分子会被直接降级或要求重新设计。

这就像主厨用“食材可得性 + 工序复杂度”给每张菜谱打出 1-10 的难度分,低于 4 分的菜才有资格进入本周菜单。

SA(m)∈[1,10],SA↓⇒合成难度↓\displaystyle \text{SA}(m) \in [1, 10], \quad \text{SA} \downarrow \Rightarrow \text{合成难度} \downarrow
简单说,SA Score 就是把一个分子映射到 1-10 的难度轴上,数字越小越容易做出来,4-5 分是药物筛选常用的分水岭。
  1. 评分范围SA(m) 把分子 m 映到闭区间 [1, 10],分子 m 是待评估的化合物结构。
    SA(m)∈[1,10]\text{SA}(m) \in [1, 10]
  2. 方向含义SA 值越小,合成难度越低。箭头表示两个量同向变化。
    SA↓⇒合成难度↓\text{SA} \downarrow \Rightarrow \text{合成难度} \downarrow
  3. 实践门槛结合领域惯例,SA ≤ 4 或 5 是进入后续实验的参考线,超过则触发重新设计。
    SA≤4∼5\text{SA} \le 4 \sim 5

SA Score计算

主厨的评分细则听起来合理,但具体怎么打?答案是两本账:第一本账记录食材在市场上出现的频率——萝卜白菜满街都是,松露出现在高级进口超市,而“喜马拉雅冰莲”只在传说里。第二本账记录做菜的工序复杂度——炒鸡蛋三步搞定,舒芙蕾要控温、打发、水浴,一步不能错。SA Score 的计算,正是把分子拆成“食材片段”记第一本账,再数分子结构的“工序复杂度”记第二本账。

计算时先把分子切割成一系列结构片段,每个片段在 PubChem 等化合物库里都有一个统计出现概率。接着统计分子的环数、桥环、立体中心等复杂度特征。两项按权重叠加,归一化到 1-10,就得到最终的 SA 分数。

SA(m)=−∑i∈F(m)ln⁡P(fi)⏟片段稀缺项+β⋅log⁡(1+C(m))⏟复杂度罚项\displaystyle \text{SA}(m) = \underbrace{-\sum_{i \in \mathcal{F}(m)} \ln P(f_i)}_{\text{片段稀缺项}} + \underbrace{\beta \cdot \log(1 + C(m))}_{\text{复杂度罚项}}

其中 $\mathcal{F}(m)$ 是分子 m 切割出的片段集合,$P(f_i)$ 是片段 $f_i$ 在库中的出现概率,$C(m)$ 是复杂度计数,$\beta$ 是权重系数。

1. 片段集合:$\mathcal{F}(m)$ 把分子按化学键规则拆解成若干结构片段,类似菜谱中列出所有食材。

F(m)={f1,f2,…,fn}\mathcal{F}(m) = \{ f_1, f_2, \dots, f_n \}

2. 对数概率:$\ln P(f_i)$ 是片段出现概率的对数,概率低时绝对值大,代表食材罕见。

ln⁡P(fi),P(fi)≪1\ln P(f_i), \quad P(f_i) \ll 1

3. 负号取稀缺:$-\ln P(f_i)$ 将罕见的片段转化为较大的难度贡献,罕见扣分多。

−ln⁡P(fi)≫0-\ln P(f_i) \gg 0

4. 复杂度罚项:$\beta \cdot \log(1 + C(m))$ 对环数、立体中心等结构复杂度做平滑惩罚,复杂度越高罚分越高。

β⋅log⁡(1+C(m))\beta \cdot \log(1 + C(m))

5. 两项求和:片段项与复杂度项相加后归一化到 1-10,即 SA Score 的最终值。

SA=片段项+复杂度项\text{SA} = \text{片段项} + \text{复杂度项}

这就是菜谱评分器的内部公式:罕见食材扣分多、步骤复杂扣分多。理解它,你就知道 SA Score 为什么能反映合成难度,也明白它本质上是一个基于统计的启发式估计。

约束融入生成

如果等菜谱交上来再逐张评审,一千张里可能有九百张是废纸,后厨团队累死也筛不完。聪明的做法是给创作过程立规矩:跟创意助手说,只允许用超市能买到的食材,工序不超过十步。这样产出的菜谱天然靠谱。分子生成同样如此——与其在生成后再费力筛选,不如把可合成性约束直接融入生成模型。

工程上有三种主流的融入方式。第一种是条件生成:把 SA Score 作为条件变量输入生成器,让模型学会生成指定难度区间的分子。第二种是目标函数惩罚:在 VAE 的重构损失或 GAN 的对抗损失中,加入 λ·SA(m) 惩罚项,强行压低生成分子的难度。第三种是强化学习:把 SA 分数作为奖励信号的组成部分,用策略梯度引导生成器探索“又新颖又好做”的区域。

max⁡θ  Em∼pθ(m)[R活性(m)−λ⋅SA(m)]\displaystyle \max_{\theta} \; \mathbb{E}_{m \sim p_\theta(m)} \left[ R_{\text{活性}}(m) - \lambda \cdot \text{SA}(m) \right]

这个式子描述的是目标函数惩罚与强化学习共用的核心思想:最大化“活性收益”与“可合成性代价”的差值,λ 控制两者间的权衡。

1. 生成分布采样:$m \sim p_\theta(m)$ 表示从参数为 θ 的生成模型分布中采样一个分子,θ 是模型权重。

m∼pθ(m)m \sim p_\theta(m)

2. 活性收益:$R_{\text{活性}}(m)$ 是用预测模型评估的分子生物学活性得分,对应菜品的“美味程度”。

R活性(m)R_{\text{活性}}(m)

3. 合成惩罚:$\lambda \cdot \text{SA}(m)$ 是可合成性惩罚项,λ 是超参数,越大模型越倾向于生成易合成分子。

λ⋅SA(m)\lambda \cdot \text{SA}(m)

4. 期望与最大化:$\mathbb{E}[\cdot]$ 求平均收益,$\max_\theta$ 表示调整模型参数使平均净收益最大。

max⁡θ  E[⋅]\max_{\theta} \; \mathbb{E}[\cdot]

把“超市可购 + 工序简短”直接写进创作需求单,生成器从一开始就不往高难度区域跑,后处理压力骤减。

后过滤策略

即使生成器已经带有可合成性意识,概率采样总会带来漏网之鱼——就像再严格的创作要求,也可能混进一张用液氮做的甜点菜谱。这时后厨需要一道质量检验关卡,把不合格的菜谱挑出来扔掉。后过滤在 AI 分子生成流程中是最直观、成本最低的兜底策略。

后过滤发生在生成完成之后、实验之前。它通常不是单一条件的简单判断,而是多指标联合评估:先看 SA 阈值,再看预测活性,最后核查合成路径是否真实存在。只有全部条件满足的分子才被放行进入实验室。

τ 是 SA 阈值,η 是活性阈值,$\mathcal{T}_{\text{已知}}$ 表示已知反应模板集合。三个条件用逻辑与连接,缺一不可。

这相当于“主厨终审 + 营养师复核 + 供应链核对”三道关叠加,把侥幸漏网的“好看不好做”分子拦在实验室门外。

通过(m)=(SA(m)≤τ)∧(活性(m)≥η)∧(路径(m)∈T已知)\displaystyle \text{通过}(m) = \left( \text{SA}(m) \le \tau \right) \wedge \left( \text{活性}(m) \ge \eta \right) \wedge \left( \text{路径}(m) \in \mathcal{T}_{\text{已知}} \right)
后过滤不是“删掉高 SA 分子”这一刀,而是多道闸门联合把关:难度、活性和路径全部合格才放行。
  1. SA 阈值门$\text{SA}(m) \le \tau$ 表示分子难度不超过阈值 τ,τ 通常取 4-5。
    SA(m)≤τ\text{SA}(m) \le \tau
  2. 活性阈值门$\text{活性}(m) \ge \eta$ 表示预测活性不低于 η,避免留下“好做但没用”的分子。
    活性(m)≥η\text{活性}(m) \ge \eta
  3. 路径已知门$\text{路径}(m) \in \mathcal{T}_{\text{已知}}$ 意指分子至少存在一条映射到已知反应模板的合成路径。
    路径(m)∈T已知\text{路径}(m) \in \mathcal{T}_{\text{已知}}
  4. 逻辑与$\wedge$ 表示所有条件必须同时满足,任一不满足即被过滤。
    A∧B∧CA \wedge B \wedge C

逆合成验证

菜谱难度评分再科学,终究是估算。也许“炭烤天山雪莲”听着吓人,但实际只需三步:超市买莲、上炭烤架、撒盐。真正可靠的验证,是把成品菜倒着拆回去,一步步确认能否还原成基础食材。化学上这叫逆合成分析(Retrosynthetic Analysis),是分子可制造性验证的黄金标准。

逆合成的思路是把目标分子当作“成品菜”,用反应模板反向拆解:目标分子在某种反应条件下可以由哪些前体合成,每个前体又继续拆解,直到所有叶子节点都是易得的原料。整个过程构成一棵逆合成树,AI 要做的是在这棵树中搜索一条综合成本最低的路径。

$\mathcal{T}$ 是反应模板库,$P_t$ 是模板 t 下某步逆推的置信概率,K 是路径深度。整体可行性等于最优模板路径上各步概率的连乘。

从成品菜一路倒推,直到菜谱上只剩下超市里的土豆、洋葱和鸡蛋,这条路才算真正走通。

可行性(m)=max⁡t∈T∏k=1KPt(mk→mk−1),m0=m\displaystyle \text{可行性}(m) = \max_{t \in \mathcal{T}} \prod_{k=1}^{K} P_t(m_k \to m_{k-1}), \quad m_0 = m
逆合成验证与 SA 打分互补:SA 是快速体检报告,逆合成是具体手术方案——前者说“难度大概多高”,后者说“具体怎么做”。
  1. 模板集合$t \in \mathcal{T}$ 遍历反应模板库中的所有候选逆推方式,类似把成品菜按不同切法倒推。
    t∈Tt \in \mathcal{T}
  2. 单步逆推概率$P_t(m_k \to m_{k-1})$ 是第 k 步用模板 t 从分子 $m_k$ 推出前体 $m_{k-1}$ 的置信度。
    Pt(mk→mk−1)P_t(m_k \to m_{k-1})
  3. 路径连乘$\prod_{k=1}^{K}$ 将整条逆合成路径各步概率相乘,任何一步不可行都会压垮整条路径。
    ∏k=1KPt(⋅)\prod_{k=1}^{K} P_t(\cdot)
  4. 最优路径$\max_{t}$ 在所有模板候选路径中选取置信度最高的一条,作为该分子的可行合成方案。
    max⁡t  ∏k=1K\max_{t} \; \prod_{k=1}^{K}

实验验证方法

主厨拿着评分、逆推完菜谱,心里也许已经有九成把握,但真正的裁判只有一个:点火试菜。端上桌之前,一切都只是纸面推演。化学领域的“试菜”就是湿实验——把合成的每一步放进真实的烧瓶里,看反应到底跑不跑得通、产率有多少、纯度高不高。

湿实验验证是分子可制造性链条的最后一环,也是最昂贵的一环。因此,工程上会用前三步(SA 打分、约束生成、后过滤)把候选数量压缩到极小,再进入实验室。实验数据还会作为反馈信号回流到生成模型,形成迭代优化闭环:模型看到哪些“看似可合成”的分子实际失败了,下次生成时就主动避开那些坑。

$\mathcal{M}_{\text{PASS}}$ 是通过 SA 门槛的候选分子空间,$E_{\text{实验}}(m)$ 是分子在湿实验中的实测表现,最终选出的 $m^{*}$ 是合成与活性综合最优的分子。

试菜之后要做记录:哪道菜客人点赞、哪道菜糊了锅。这些记录回传给创意助手,让下一轮的菜谱更接地气、更容易端上桌。

m∗=arg⁡max⁡m∈MPASSE实验(m),MPASS={m∣SA(m)≤τ}\displaystyle m^{*} = \arg\max_{m \in \mathcal{M}_{\text{PASS}}} E_{\text{实验}}(m), \quad \mathcal{M}_{\text{PASS}} = \{ m \mid \text{SA}(m) \le \tau \}
湿实验数据构成“实测反馈闭环”:模型知道哪些分子真正做成了,哪些失败了,从而在下一次生成中自动远离失败模式。
  1. 候选空间$\mathcal{M}_{\text{PASS}}$ 是满足 SA ≤ τ 的分子集合,代表已在纸面上通过可制造性审查的分子。
    MPASS={m∣SA(m)≤τ}\mathcal{M}_{\text{PASS}} = \{ m \mid \text{SA}(m) \le \tau \}
  2. 实验表现$E_{\text{实验}}(m)$ 是湿实验实测指标,包括产率、纯度、反应时间等真实数据。
    E实验(m)E_{\text{实验}}(m)
  3. 最优选择$\arg\max$ 在候选集合中挑选实验表现最佳的分子作为最终产出。
    arg⁡max⁡m∈MPASS\arg\max_{m \in \mathcal{M}_{\text{PASS}}}

AI 应用场景

AI 制药公司的候选分子大规模筛选

阶段:分子生成后处理与评估

解决的问题:传统虚拟筛选中,面对 AI 生成的海量分子,计算化学家只能靠经验人工挑拣,效率和召回率都很低。引入 SA Score 自动过滤后,资源被集中到真正可合成的分子上,后续湿实验成本大幅下降。

具体案例:某初创药企用强化学习生成 10 万个先导化合物,先用 SA ≤ 4 的阈值过滤掉 83%,再对剩余分子做逆合成路径验证,最终锁定 120 个候选进入实验室合成,实测命中率从不足 1% 提升到 12%。

分子生成模型的可制造性奖励设计

阶段:模型训练与奖励函数设计

解决的问题:如果只在生成后筛选,大量算力和数据都被浪费在不可合成的分子上。更优雅的做法是把可合成性直接编码进训练目标,让生成器天生偏向易合成区域。

具体案例:某团队在训练分子生成模型时加入 λ·SA 惩罚项,模型生成分子的平均 SA 从 6.8 降至 3.9,同时活性分布几乎没有下降。就像在菜谱创作要求里写明“只用超市食材”,创作质量与可行性同时得到保障。

有机合成路线的 AI 辅助规划

阶段:合成规划与实验验证

解决的问题:化学家手动查阅文献设计合成路线,耗时数周且依赖经验。AI 逆合成引擎用反应模板自动拆解目标分子,为每一个候选分子生成可执行的合成路线。

具体案例:某药企将逆合成引擎与 HPLC、质谱分析数据集成,对 1000 个虚拟分子自动规划合成路线,发现其中 96% 存在已知反应模板支撑的路径,合成团队的实验室可执行率达到九成。

Python 演示

python62 行
"""Simplified SA Score calculation and candidate filtering demo.SA Score low means easy to synthesize. Range is mapped to [1, 10]."""import mathimport random # Fragment frequency library, simulated from PubChem statistics.# Low probability means the fragment is rare and hard to obtain.FRAGMENT_FREQ = {    'methyl': 0.12, 'benzene': 0.08, 'hydroxyl': 0.07,    'carboxyl': 0.05, 'amino': 0.04, 'chloro': 0.02,    'cyclopropane': 0.003, 'perfluoro': 0.001, 'bridged_ring': 0.0005} def sa_score(fragments):    """Calculate SA Score for a molecule given its fragments."""    rare_penalty = 0.0    for frag in fragments:        prob = FRAGMENT_FREQ.get(frag, 1e-4)        rare_penalty += -math.log(prob)    complexity = len(fragments)    for frag in fragments:        if frag in ('bridged_ring', 'perfluoro'):            complexity += 2    raw_score = rare_penalty * 0.08 + math.log1p(complexity) * 1.2    return max(1.0, min(10.0, round(raw_score, 2))) def generate_molecules(count=200):    """Simulate a generative model producing random molecules."""    fragments = list(FRAGMENT_FREQ.keys())    molecules = []    for _ in range(count):        size = random.randint(2, 6)        mol = [random.choice(fragments) for _ in range(size)]        molecules.append(mol)    return molecules def post_filter(molecules, threshold=5.0):    """Keep molecules whose SA Score is not higher than threshold."""    passed = []    for mol in molecules:        score = sa_score(mol)        if score <= threshold:            passed.append((mol, score))    return passed def main():    """Run the demo: generate, score, filter and report."""    random.seed(42)    mols = generate_molecules(200)    passed = post_filter(mols, threshold=5.0)    ratio = len(passed) / len(mols) * 100    print("generated molecules: {}".format(len(mols)))    print("passed filter: {}".format(len(passed)))    print("pass ratio: {:.1f}%".format(ratio))    if passed:        best = min(passed, key=lambda item: item[1])        print("easiest molecule: {}, SA = {}".format(best[0], best[1])) if __name__ == '__main__':    main()
目的:用 Python 实现一个简化版 SA Score 计算器,并模拟“生成 200 个分子 → SA 打分 → 阈值过滤”的完整后过滤流程。
  1. prob = FRAGMENT_FREQ.get(frag, 1e-4)从模拟频率库查片段的出现概率,查不到就按极罕见的 1e-4 处理,对应“稀有食材按最高难度计”。
  2. rare_penalty += -math.log(prob)将概率转为对数再取负,罕见片段贡献很大的难度增量,这是 SA 公式的片段项。
  3. math.log1p(complexity) * 1.2复杂度罚项:片段数越多、含桥环或全氟片段,罚分越高,log1p 使罚分平滑增长。
  4. return max(1.0, min(10.0, round(raw_score, 2)))把原始分数归一化到 1-10 区间,和论文的 SA 范围保持一致。
  5. post_filter(mols, threshold=5.0)后过滤函数主体,只保留 SA ≤ 5 的分子,对应药物化学中常用的 5 分门槛。

常见误区

误区我以前以为 SA Score 是实验测出来的物理量,只要分数足够低,分子就一定能合成出来。分数只要低于 3,随便交给实验室都能做出来。

正解SA Score 是启发式估计,不是物理测量值。它由片段频率统计和结构复杂度推导而来,可能低估那些“结构看似简单但反应条件极其苛刻”的分子。SA 低是合成可行的必要条件,但不是充分条件。就像菜谱评分只有 2 分的“分子冰淇淋”,实际需要液氮设备,普通厨房依然做不了。

为何常见:教程常把 SA 可视化当作最终结论,初学者容易把统计打分误认为实验事实,忽略它与真实合成之间还有逆合成验证和湿实验两道关口。

误区模型训练时已经在目标函数里加了 λ·SA 惩罚,生成出来的分子应该全部可合成,后过滤没有必要,直接全部拿去打活性测试就行。

正解生成模型本质是概率采样,即使目标函数包含惩罚项,仍然会随机产出高 SA 分子。工程上“约束融入”和“后过滤”是互补的双保险:前者降低生成的难度均值,后者兜住分布的尾部。类比来说,即使菜谱审核再严格,上菜前仍然要有质检员把个别糊掉的菜拦下来。

为何常见:人们习惯把训练目标当成硬约束,忽略了深度生成模型输出具有随机性这一基本事实。

误区后过滤不就是把 SA 大于 5 的分子删掉吗?一条判断语句就能完成,没什么技术含量。

正解真实工程中的后过滤是“多指标联合评估”:SA 阈值、活性预测、ADMET 性质、逆合成路径检查协同工作。单按 SA 过滤可能留下活性差、毒性高或根本无法合成的分子。好比光看“食材常见”还不够,还得检查菜品是否营养均衡、是否含有过敏原。

为何常见:教学演示为了清晰常以单阈值简化,导致初学者低估了工程落地中多约束联合过滤的复杂度。

误区SA 分数低就代表逆合成可行,两个概念说的都是可合成性,功能上可以互相替代。

正解SA 是端到端的统计评分,输入一个分子输出一个分数,不给出任何具体反应步骤。逆合成分析则用反应模板逐层拆解,输出完整的前体和反应条件。前者是“体检报告”,后者是“具体手术方案”。实践中两者联合使用:SA 负责快速粗筛,逆合成负责精准验证。

为何常见:两者都在回答“这个分子好不好做”这一问题,名称和用途高度相似,初学者极易混淆两者的边界。

面试题

Q1. SA Score 的取值范围是下列哪一项?

单选题 · easy

  • A.介于0和1之间
  • B.介于1和10之间← 正确答案
  • C.介于1和50之间
  • D.介于0和100之间

答案:B。SA Score 是 Ertl 在 2009 年提出的 1-10 分制评分,1 分代表极易合成,10 分代表极难合成,就像菜谱难度评分从“炒青菜”到“分子料理”。A 选项 0-1 是概率的常见范围,C/D 选项夸大了量纲,都不符合论文定义。

Q2. 某分子的 SA Score 越低,表示该分子:

单选题 · easy

  • A.分子越难被合成
  • B.分子越容易被合成← 正确答案
  • C.表明分子质量较大
  • D.分子结构更加稳定

答案:B。SA Score 打分方向是“越低越易合成”,就像菜谱难度 1 分是番茄炒蛋,10 分是分子料理。A 选项把方向说反了;C 选项的分子量与 SA 无关;D 选项的热力学稳定性也不是 SA 的考察对象。

Q3. SA Score 计算公式的两个主要组成部分是:

单选题 · mid

  • A.片段频率与复杂度← 正确答案
  • B.原子数目与电荷
  • C.分子量大小与熔点
  • D.溶解度高低与颜色

答案:A。原论文中 SA 由片段频率贡献项加结构复杂度罚项构成,可类比菜谱的“食材常见度”加“工序复杂度”。B 中原子数属于复杂度但不完整且电荷无关;C 和 D 的物理化学性质都不是 SA 的输入特征。

Q4. 在生成模型的目标函数中加入 λ·SA(m) 惩罚项,属于哪种可合成性融入策略?

单选题 · mid

  • A.后过滤策略
  • B.条件生成约束
  • C.目标函数惩罚← 正确答案
  • D.逆合成分析

答案:C。题干明确说“目标函数中加入惩罚项”,这是把可合成性约束融进训练过程的目标函数惩罚策略。A 后过滤发生在生成之后;B 条件生成是把 SA 当作输入条件变量;D 是生成之后的验证手段,均与题干不符。

Q5. 逆合成分析(Retrosynthetic Analysis)的基本思路是:

单选题 · mid

  • A.从原料出发正向推导成品
  • B.从目标分子反推前体和反应← 正确答案
  • C.随机组合原子生成各种分子
  • D.查数据库获取已有分子结构

答案:B。逆合成是从目标分子出发,用反应模板反向拆解出前体和反应条件,就像大师傅从成品菜反推菜谱步骤。A 是正向合成方向;C 是随机生成器的行为;D 是数据库检索,都与逆合成的“反推”思想不符。

Q6. 以下哪一项是后过滤策略的主要缺点?

单选题 · hard

  • A.实现简单且运行速度快
  • B.无需训练任何额外模型
  • C.大量候选分子被直接浪费← 正确答案
  • D.可解释性强且容易调试

答案:C。后过滤在生成完成后才筛选,若生成器没有可合成性意识,绝大多数候选分子会被丢弃,算力和数据都被浪费。A/B/D 都是后过滤的优点而非缺点。这就像等一千张菜谱交上来再逐张淘汰,厨师的精力消耗巨大。

Q7. 分子通过 SA 阈值过滤后,下一步最应该做的是:

单选题 · easy

  • A.进行逆合成反应验证← 正确答案
  • B.无需任何进一步的验证
  • C.只需改变分子画的颜色
  • D.直接进入临床前动物实验

答案:A。SA 只是启发式估计,通过阈值后需要逆合成验证确认反应路径真实存在,之后才能进入湿实验。就像菜谱评分通过后还要实际试做一次。B 跳过验证风险太高;C 无实际意义;D 跳过了合成与活性测试阶段。

Q8. 把可合成性约束融入分子生成过程的常见方法包括:

多选题 · mid

  • A.条件生成约束← 正确答案
  • B.目标函数惩罚← 正确答案
  • C.强化学习调整← 正确答案
  • D.手动人工筛选

答案:ABC。三种主流的融入方式:条件生成(把 SA 作为条件变量输入生成器)、目标函数惩罚(损失中加入 λ·SA 项)、强化学习(把 SA 作为奖励信号)。D 手动筛选属于生成后的后处理,不是融入生成过程的方法。

Q9. 影响 SA Score 复杂度罚项的分子特征有:

多选题 · hard

  • A.片段出现频率
  • B.环与桥环数量← 正确答案
  • C.立体中心数目← 正确答案
  • D.大环与稠环结构← 正确答案

答案:BCD。复杂度罚项关注分子拓扑结构,包括环数、桥环/稠环、立体中心、大环等特征,这些都会增加合成难度。A 片段频率属于 SA 的片段贡献项而非复杂度罚项,因此不选。

Q10. 以下哪些实践能有效提升 AI 生成分子的可制造性?

多选题 · mid

  • A.生成阶段加SA惩罚← 正确答案
  • B.后过滤阈值筛选← 正确答案
  • C.逆合成反应验证← 正确答案
  • D.湿实验反馈优化← 正确答案

答案:ABCD。完整工程链路是:生成时加入 SA 惩罚让模型天然倾向易合成区域;后过滤做多指标兜底筛选;逆合成验证确认反应路径真实存在;湿实验反馈优化形成迭代闭环。四者共同构成可制造性保障体系,缺一不可。