1. 课程导入与工程场景
在计算化学、药物设计与材料筛选的实际项目中,真正消耗人力的往往不是单次计算本身,而是大量计算结果的管理、汇总与筛选。一个中等规模的高通量虚拟筛选项目,可能涉及数千到数十万个分子,每个分子又会产生构象能、HOMO-LUMO 能隙、偶极矩、结合自由能、ADMET 预测值等多维数据。这些数据分散在不同目录、不同格式、不同软件的输出文件中,如果不加整理,计算结果就只是"硬盘上的文件堆",无法转化为可决策的信息。
分子计算结果汇总与筛选工程,就是围绕"把分散的计算输出转化为可比较、可筛选、可交付的结构化数据"这一目标,建立的一套数据组织、提取、清洗、合并、筛选与交付的方法与流程。它的核心不是某一个软件,而是一条从原始输出到决策依据的数据流水线。
一、这项工程要解决什么问题
典型痛点包括:结果文件命名混乱,无法批量定位;不同软件输出格式不同,能量单位、坐标约定不一致;同一分子存在多个构象或多个重复计算,需要去重与择优;筛选阈值随项目阶段变化,需要可复现的筛选记录;最终交付给实验或决策方的往往只是一张表,但表格背后的来源、参数、版本必须可追溯。
因此,汇总与筛选工程的目标可以归纳为四点:可批量提取、可统一比较、可复现筛选、可追溯交付。缺少任何一点,结果的可信度都会下降。
二、典型工作流
一个完整的汇总与筛选流程通常包含以下环节,各环节之间以结构化数据文件(如 CSV、Parquet、SQLite)衔接:
- 结果采集:扫描计算输出目录,按任务 ID、分子 ID、构象编号建立文件清单。
- 字段提取:从日志或输出文件中解析关键量,如最终单点能、零点能、能隙、偶极矩、收敛状态。
- 单位与约定统一:将能量统一为 Hartree 或 kcal/mol,坐标统一为 Å,能量参照统一定义。
- 去重与择优:同一分子多构象时,按最低能量或指定判据保留代表构象。
- 多源合并:将量化结果与对接分数、ADMET 预测、合成可行性等表按分子 ID 合并。
- 筛选与排序:按阈值或综合打分筛选候选,输出候选列表。
- 交付与归档:生成结果表、筛选日志、参数快照与说明文档。
下面这张图展示了从原始计算输出到最终交付物的数据流与关键处理节点:
三、常见数据来源与格式
实际项目中的数据来源通常包括以下几类,它们格式不同、粒度不同,需要在汇总阶段对齐到统一的分子标识(如 InChIKey、SMILES 或项目内部 mol_id):
| 来源类型 | 典型文件 | 关键字段 | 常见问题 |
|---|---|---|---|
| 量子化学计算 | .log / .out / .fchk | 单点能、零点能、HOMO/LUMO、偶极矩 | 单位不统一、收敛失败未标记 |
| 分子对接 | .csv / .sdf / .dlg | 对接分数、构象坐标、氢键数 | 打分函数不同不可直接比较 |
| ADMET 预测 | .csv / .xlsx | logP、溶解度、hERG 风险 | 模型版本未记录 |
| 分子描述符 | .csv / .smi | 分子量、TPSA、可旋转键数 | ID 映射不一致 |
四、交付物应该包含什么
交付物不是"一张表"那么简单。一个可被实验或决策方直接使用的交付包,至少应包含:
- 候选汇总表:每行一个分子,包含标识、关键计算量、筛选得分与排名。
- 筛选参数快照:阈值、权重、排序规则、使用的软件版本与参数文件。
- 数据来源说明:每个字段来自哪个文件、哪次计算、哪个版本。
- 可复现脚本或命令:使他人能在相同输入下得到相同输出。
工程习惯建议:从项目一开始就约定统一的分子 ID 规则和字段命名规范(如
E_total_Hartree、gap_eV、docking_score_kcalmol),并在每个中间文件首行写入生成时间、脚本版本与输入路径。这样后期汇总与筛选的成本会大幅降低。
常见误区:把不同泛函、不同基组、不同溶剂模型下得到的能量直接放在同一列比较。这类数值不具备可比性,必须在汇总阶段用字段或标签区分计算层级,否则筛选结果会引入系统性偏差。