| name | search-and-curate-chemical-libraries |
| description | 对已标准化化合物库执行可审计的相似性、子结构、聚类、多样性选择和只读治理。用于查找结构邻居、筛选子结构、整理分子库或选择代表分子。 |
本地结构检索与化合物库治理
能力
使用固定 RDKit 对前三个化学 Skill 的产物执行:
- 化合物库可检索性审查;
- Tanimoto 相似性检索;
- 非递归 SMILES/SMARTS 完整子结构匹配;
- Butina 聚类;
- 固定 seed 的 MaxMin 多样性选择;
- exact structure 和风险记录的只读治理复核队列。
适合以下请求:
- “找出与这个分子结构最相似的 20 个记录”;
- “筛选包含这个 SMARTS 子结构的化合物”;
- “按 Morgan 指纹给这批分子聚类”;
- “从化合物库中选择 100 个结构多样的代表”;
- “检查库里哪些记录重复、不可检索或需要人工复核”。
执行流程
- 确认输入来自
compute-molecular-features,并阅读
Features Artifact 消费合同。
audit、相似性、子结构、聚类和多样性选择都不得绕过该合同直接读取
standardize-chemical-structures。
- 要求用户显式选择
standardized 或 parent 视图,禁止跨视图比较。
- 相似性、聚类和多样性选择要求显式
fingerprint_profile_id;不得自行重算或替换指纹。
- 根据任务创建 request JSON,显式记录阈值、top-k、手性、seed 和是否纳入 review 记录。
- 运行:
python scripts/search_and_curate.py \
--request request.json \
--output result.json
- 校验:
python scripts/validate_output.py result.json
- 向用户报告 indexed/excluded/error 计数、查询结果、参数、复核队列和未验证边界。
五个 operation
audit_library:审查 profile、结构视图、上游状态、重复结构和排除记录;
similarity_search:固定 Tanimoto,top_k、threshold 至少提供一个;
substructure_search:query_type、query、use_chirality 和 max_results 必填;
cluster_library:固定 Butina,要求显式 similarity_threshold;
select_diverse_subset:固定 MaxMin,要求显式 pick_size 和非负 seed。
强制边界
- 首版唯一引擎为
rdkit==2025.9.2;
- 相似性、子结构、审查和 MaxMin 最多 5000 个可检索记录,Butina 最多 2000 个;
- 无全局默认相似度或聚类阈值;
- review 记录默认不索引;显式纳入时风险继续传播;
- rejected、not_run 和 error 记录永不索引,但必须保留在输出 manifest;
- fingerprint/pattern 只可预过滤,子结构最终命中必须经过完整子图匹配;
- 首版拒绝所有 recursive SMARTS;
- 不自动删除、合并、覆盖或写回用户化合物库;
- 不预测或声称活性、功能、机制、药效、毒性、安全、可合成性或实验优先级;
- parent 相同不表示相同盐型、制剂、批次或物理样品;
- 不访问网络,不调用远程化学数据库;
- 不训练模型,不执行对接、逆合成、生成、真实实验或知识图谱;
- 不修改平台、MCP、数据库、前端或 Agent runtime。
与其他 Skill 的边界
resolve-chemical-identities
名称/标识符 → 候选化学记录与来源状态
standardize-chemical-structures
已知结构 → standardized/parent、结构 QC 和重复组
compute-molecular-features
明确结构视图 → 二维描述符和固定指纹
search-and-curate-chemical-libraries
固定结构/指纹 → 只读检索、分组、选择和治理复核队列
本 Skill 不解析名称或数据库 ID,不标准化结构,不重新计算第三 Skill 指纹,也不执行性质预测和模型训练。
输入输出合同、算法参数、状态、Gold、性能边界和科学解释规则见
references/输入输出与科学边界.md。