02 · 一个分子,怎么变成能分析的数字、字符串和图?
同一个小分子可以写成字符串、画成连接图,也可以变成便于比较的数字。本节用与 EGFR 活性相关的小分子学习这些表示,再结合性质与结构警示,整理值得继续查看的候选。性质统计从 5,568 个小分子开始;部分比较使用原教程预筛选的 4,635 个小分子,读图时要分清。
发什么提示词
新建对话,选择 CADD Workflow Runner。
发送:
以 EGFR 活性分子和吉非替尼为例,请自行获取公开结构,比较 SMILES、分子图、指纹、分子性质、结构警示和共同子结构。用一组图解释每种表示保留什么、筛选后有哪些分子值得继续研究,并注明数据来源。
结果出来后,可以追问:
通过规则的分子数和原教程保存的名单为什么对不上?差在哪些分子?
读懂结果
1. 同一个分子有多少种表示?
图 1|从 A 的字符走到 B 的数字编码,再看 C 的原子与键,最后是 D 的定长指纹。
- 这张图看什么: 从 A 的字符走到 B 的数字编码,再看 C 的原子与键,最后是 D 的定长指纹;以吉非替尼(CHEMBL939)为例,比较每种表示直接展示了什么。
- 看到什么: 四种表示并排比较:
| 表示 | 可以怎样理解 | 它没有直接告诉我们什么 |
|---|---|---|
| SMILES | 分子的文字写法;括号表示分支,数字可表示环闭合。 | 字符位置不等于原子编号,文字长度也不等于原子数。 |
| One-hot | 每个字符对应一个类别,用一列 0/1 表示。 | 单独看编码,尚未明确表达哪些原子以化学键相连。 |
| 分子图 | 原子是节点,化学键是边,可以再附加元素、电荷等特征。 | 仅有连接关系不包含实际三维构象。 |
| 指纹 | 用固定长度的数值记录选定的结构特征。 | 编码是有损的;相同指纹不保证完全相同的化学结构。 |
SMILES 包含连接信息,字符位置却不是原子编号:Cl 是一个氯原子,字符级 One-hot 编码会拆成两个位置。分子图直接显示原子与键,三维构象则需要另行提供。
补充说明
表中第三列已经列出每种表示没直接告诉我们的部分:字符位置不等于原子编号;单独看编码,尚未明确表达哪些原子以化学键相连;仅有连接关系不包含实际三维构象;编码是有损的,相同指纹不保证完全相同的化学结构。2. 性质规则筛出了多少分子?
图 2|A–C 看此次重算后通过规则的 4,662 个分子,D 回到全部 5,568 个输入小分子统计规则违反项数。
- 这张图看什么: A–C 看此次重算后通过规则的 4,662 个分子,D 回到全部 5,568 个输入小分子统计规则违反项数。本次按原教程要求:ExactMolWt ≤ 500 Da、氢键受体 ≤ 10、供体 ≤ 5、计算 logP ≤ 5,允许至多违反一项。
- 看到什么: 重算通过 4,662 个分子,原教程保存的表为 4,635 个;差异另存对账表。
补充说明
重算与原教程表的差异尚不能确定原因。Ro5 是经验规则,不能判断药物一定有效或无效——例如上市药 lapatinib 的 ExactMolWt 约 580.13 Da、logP 约 6.14,违反两项。3. 结构警示命中说明什么?
图 3|A、B 看原教程预筛选的 4,635 个分子的警示数量,C 比较分组活性,D 把警示落到一个具体结构片段上。PAINS 与 Brenk 可以同时命中同一分子,不能简单相加;“宽泛/严格”只是命中数量的简写,两套目录不是强弱等级。
- 这张图看什么: A、B 看原教程预筛选的 4,635 个分子的警示数量,C 比较分组活性,D 把警示落到一个具体结构片段上。
- 看到什么: 在这 4,635 个分子中,RDKit 检出 408 个 PAINS 命中、2,454 个 Brenk 命中,2,088 个两者均未命中。两套清单检查的片段不同,同一分子可以同时命中。
补充说明
命中提示需要排查实验干扰、反应性等问题,不能直接当成毒性或无效的证明;未命中也不是安全保证。合并数据时,还要区分“检查后未命中”与“尚未检查”。4. 换一种指纹,近邻还是同一批吗?
图 4|A、B 比较两种表示,C 比较同一种表示上的两个系数,D 回到具体分子的邻居名单。
- 这张图看什么: A、B 比较两种表示,C 比较同一种表示上的两个系数,D 回到具体分子的邻居名单。MACCS 记录预定义的结构特征,Morgan 编码原子周围的局部环境。
- 看到什么: 图中成对分布来自 400 个随机样本的 79,800 对,不是全库所有分子对。去掉吉非替尼自身后,两种指纹找到的前八名近邻只有 4 个重合。Tanimoto 与 Dice 在同一组二进制指纹上单调相关。
补充说明
两个系数尺度不同,阈值不能混用;相似度为 1 也只表示这些指纹相同。5. 这批分子的共同子结构有多大?
图 5|A 检查分组,B 高亮匹配原子,C 比较搜索条件,D 对照结构基序。斜纹柱表示搜索达到时间上限,不能与已完成搜索同等解释。
- 这张图看什么: A 检查分组,B 高亮匹配原子,C 比较搜索条件,D 对照结构基序。分组沿用 RDKit path 指纹(maxPath=5)与 Butina 距离阈值 0.2。
- 看到什么: 得到 1,128 个簇;最大簇的 145 个分子 ID 与原教程名单一致。要求全部成员共有、保持环键匹配时,最大公共子结构(MCS)为 22 个原子、24 条键;支持率降至 0.8 时为 28 个原子、30 条键。
补充说明
额外要求完整环的搜索达到时间上限,返回的只是当前候选,不能称为已证明的最大值。6. 聚类条件一变,分组会怎样?
图 6|额外的探索:A 改变同一指纹的阈值,B 保持阈值而改变指纹,C 检查簇内成对距离,D 比较 20 个随机分子的公共片段。
- 这张图看什么: 这是额外的探索:A 改变同一指纹的阈值,B 保持阈值而改变指纹,C 检查簇内成对距离,D 比较 20 个随机分子的公共片段。
- 看到什么: 同一阈值下,path、MACCS、Morgan 指纹的最大簇分别有 145、305、51 个分子。本次最大簇约 73% 的分子对满足距离 ≤ 0.2。
补充说明
分组取决于表示与距离尺度,不能只用簇大小评判方法。Butina 阈值约束中心与成员的距离,未必约束簇内所有分子对。7. 筛选条件不同,候选名单差多少?
图 7|A 把性质、活性与已检查的警示状态放在一起;B 展示零违规严格规则下的部分候选。
- 这张图看什么: A 把性质、活性与已检查的警示状态放在一起,B 展示零违规严格规则下的部分候选;比较在相同活性和警示条件下改变性质规则。
- 看到什么: 在相同活性和警示条件下,改变性质规则会得到不同名单:
| 本次比较的规则 | 再要求无 PAINS/Brenk 命中且 pIC50 ≥ 6.3 |
|---|---|
| 原教程预筛选批次,允许至多一项 Ro5 违规 | 1,113 个 |
| 更严格地要求零项 Ro5 违规 | 767 个 |
| 采用此次重新计算的 Ro5 通过集,允许至多一项违规 | 1,114 个 |
本次已补齐全部 5,568 个小分子的警示检查,未将空值当作“无警示”。
补充说明
这些名单供进一步检查实验条件、结构多样性和预测表现,不能直接当作有效药物名单。下一步
继续第三节:相似分子怎样分组?活性预测怎样检验?,检验模型学到的是可迁移规律,还是仅仅认出了相近的分子。去之前可以先发一句追问,把候选名单定下来:
三种筛选条件分别得到 1,113、767、1,114 个候选,下一步建模该用哪一份名单?
下载第二节结果包,解压后先打开 readable-report.html。
| 想检查什么 | 打开哪个文件 |
|---|---|
| 输入数据与来源 | data/input_inventory.csv |
| 全部 5,568 个小分子的性质与警示 | data/properties_all.csv、data/alerts_all.csv |
| 与原教程的筛选差异 | data/property_membership_check.csv |
| 最大簇是否真的是原案例成员 | data/frozen_t005_clustering.csv |
| 每次共同子结构搜索的条件与状态 | data/frozen_mcs_records.csv |
| 候选名单和三种筛选条件 | data/candidate_table.csv、data/candidate_rules.csv |
| 在新目录重新计算或仅重绘 | code/run_module02.py、README.md |
原始教学内容:T002、T003、T004、T006、T021、T033。作者与许可见指南说明。
返回指南首页。






