molecular_properties_predictor
Molecular Properties Predictor
功能概述
该 skill 用于预测小分子多种物化性质。
当前版本通过 Bamboo-Mixer 单分子模型返回以下 11 个性质:
Tm:熔点(K)bp:沸点(K)nD:折射率(无单位)nD_liquid:液体折射率(无单位)dc:介电常数(无单位)ST:表面张力(mN/m)density:密度(g/cm^3)vis:黏度(cP)vapP:蒸气压(Pa)
适用场景
当用户有如下需求时适合调用:
- 查询一个分子的多种物化性质
- 一次性获取熔点、沸点、密度、黏度等多个性质
- 为下游分子筛选提供多指标输入
- 作为拆分单项物性 skill 之前的总入口
输入形式
单分子输入
smiles:必填name:可选temperature:可选,默认25.0
批量输入
支持 JSON 列表输入,每项至少包含:
smilesname(可选)
输出字段
每个结果条目通常包含:
namesmilescanonical_smilesstatustemperature_celsiusbackend_usedmodel_sourcepropertiesproperty_unitsraw_backend_output
⚠️ pKa 预测特别说明
本 skill 虽然输出 pka_a 和 pka_b 字段,但不推荐用于 pKa 预测。
推荐方案: 请使用专门的 pka-predictor skill 进行 pKa 预测。
原因:
| 对比项 | molecular-properties-predictor | pka-predictor |
|---|---|---|
| pKa 准确度 | 中等(误差 ~0.4 单位) | 高(误差 ~0.17 单位) |
| 后端 | Bamboo-Mixer 多任务模型 | Uni-pKa 专用模型 |
| 微观态处理 | 无 | 支持微观态枚举 + 自由能计算 |
| 输出详细度 | 仅返回数值 | 电荷态、去质子化方向、置信度等 |
示例:
# ❌ 不推荐:用本 skill 预测 pKa
python scripts/main_script.py --smiles "CC(=O)O" --name "乙酸"
# ✅ 推荐:用 pka-predictor 预测 pKa
cd ../pka-predictor && ./run_with_venv.sh --smiles "CC(=O)O" --name "乙酸" --backend unipka
⚠️ 表面张力预测特别说明
本 skill 可预测表面张力 (ST),但对于单一表面张力预测需求,推荐使用专门的 surface-tension-predictor skill。
推荐策略:
| 需求场景 | 推荐 Skill/后端 |
|---|---|
| 仅预测表面张力 | surface-tension-predictor |
| 表面张力 + 多种物性 | molecular-properties-predictor (Bamboo-Mixer) |
| 小分子 (<10 重原子) | surface-tension-predictor (baseline) |
| 大分子 (≥10 重原子) | surface-tension-predictor (public_joblib) |
原因:
| 对比项 | molecular-properties-predictor | surface-tension-predictor |
|---|---|---|
| 表面张力准确度 | 好(误差 ~5%) | 好(误差 ~5% baseline) |
| 后端 | Bamboo-Mixer 多任务模型 | baseline / public_joblib |
| 特征数 | 隐式描述符 | 8 个 (baseline) / 130 个 (public_joblib) |
| 灵活性 | 固定 11 个性质 | 可切换后端,针对表面张力优化 |
| 适用场景 | 多种物性一次性预测 | 单一表面张力预测 |
测试对比(苯甲酸):
| Skill/后端 | 预测值 | 文献值 | 偏差 |
|---|---|---|---|
| surface-tension-predictor (baseline) | 41.63 mN/m | ~44 mN/m | -5.4% ✅ |
| molecular-properties-predictor (Bamboo) | 41.38 mN/m | ~44 mN/m | -5.9% ✅ |
| surface-tension-predictor (public_joblib) | 33.19 mN/m | ~44 mN/m | -24.6% ⚠️ |
示例:
# ✅ 推荐:仅预测表面张力,用 surface-tension-predictor
cd ../surface-tension-predictor
python scripts/main_script.py --smiles "O=C(O)c1ccccc1" --name "苯甲酸" --backend baseline
# ✅ 推荐:同时预测多种物性,用本 skill
cd ../molecular-properties-predictor
python scripts/main_script.py --smiles "O=C(O)c1ccccc1" --properties bp,ST,density
后端说明
bamboo_mixer
定位
这是当前 skill 的真实模型后端,用于对接 Bamboo-Mixer 单分子物性模型。
当前已完成的真实接入链路
当前版本已完成以下流程:
- 准备单分子输入 JSON
- 调用 Bamboo-Mixer 的:
scripts/prepare_data/prepare_data.py --data_type mono
- 调用 Bamboo-Mixer 的:
scripts/test_results/mono.py
- 使用 mono checkpoint:
hf_bamboo_mixer/ckpts/mono/optimal.pt
- 解析输出
output_mono.json - 返回 11 个物性结果
当前使用的环境变量
BAMBOO_MIXER_ADAPTER_PYBAMBOO_MIXER_REPOBAMBOO_MIXER_PYTHONBAMBOO_MIXER_MONO_CKPT
推荐写法:
export BAMBOO_MIXER_ADAPTER_PY=scripts/adapters/bamboo_mixer_properties_adapter.py
export BAMBOO_MIXER_REPO=assets/bamboo_mixer
export BAMBOO_MIXER_PYTHON=assets/bamboo_mixer/.venv/bin/python
export BAMBOO_MIXER_MONO_CKPT=assets/bamboo_mixer/hf_bamboo_mixer/ckpts/mono/optimal.pt
More from internscience/chemclaw
literature-parsing
将 PDF 文献转换为 Markdown 文件,并提取所有图表图片。使用 MinerU (opendatalab) 进行工业级高质量解析。
13adme-prediction
ADME 性质预测工具。预测分子的吸收、分布、代谢、排泄性质,包括 Caco-2 通透性、PAMPA、HIA、Pgp 抑制、生物利用度、亲脂性等。使用 Morgan 指纹 + Random Forest/XGBoost。当用户提到 ADME 预测、药物性质、通透性、吸收、代谢等时触发。
13reaction-data-extraction
从 PDF 文献中提取化学反应数据,特别是反应条件优化信息。支持提取反应物、产物、催化剂、溶剂、温度、时间、产率等,并输出结构化 CSV 文件。使用 MinerU + NLP + 规则匹配进行精确提取。
13mol-3d-viewer
将 SMILES 或化学名称转换为分子 3D 结构。支持生成 SDF 文件、3D 分子图片和可交互 HTML 网页(可旋转观察)。
13mineru-pdf-converter
|
13nmr-prediction
Predict liquid-phase ¹H and ¹³C NMR chemical shifts from a SMILES string using NMRNet (deep learning, SE(3)-Transformer). Outputs per-atom shift values (ppm) and Lorentzian-broadened spectrum PNG files.
12