PhenoNormBench
收藏资源简介:
PhenoNormBench是由四川大学和成都医学院构建的统一基准数据集,专为评估生物医学本体归一化任务而设计。该数据集整合了七个不同来源的人类表型本体(HPO)子集,共计13,390个样本,覆盖多样的表型描述短语及其对应的标准化概念。其创建过程通过系统收集现有HPO标注数据并统一版本和ID映射规则实现。该数据集主要服务于解决自由文本到本体概念映射的挑战,为评估本体对齐、语义检索和层次引导排序等方法提供标准化评测平台,助力生物医学数据整合与分析。
PhenoNormBench is a unified benchmark dataset constructed by Sichuan University and Chengdu Medical College, specifically designed for evaluating biomedical ontology normalization tasks. This dataset integrates subsets of the Human Phenotype Ontology (HPO) from seven distinct sources, totaling 13,390 samples, covering diverse phenotypic description phrases and their corresponding standardized concepts. Its development is accomplished by systematically collecting existing HPO annotated data and unifying version and ID mapping rules. This dataset primarily addresses the challenge of mapping free text to ontology concepts, providing a standardized evaluation platform for assessing methods such as ontology alignment, semantic retrieval, and hierarchy-guided ranking, and facilitating biomedical data integration and analysis.
OntologyAligner 数据集总结
一、数据集概述
- 名称:OntologyAligner
- 任务目标:将自由文本的生物医学表型表达映射到标准化的人类表型本体(HPO)概念。
- 核心方法:结合本体特定表示学习、语义候选比较和显式局部层级证据,构建可追溯的三阶段流程。
- 关联论文:OntologyAligner: Ontology-Aligned Retrieval and Hierarchy-Guided Large Language Model Reranking for Biomedical Ontology Normalization(审稿中,2026)
二、三阶段流程
| 阶段 | 全称 | 功能 |
|---|---|---|
| OAR | Ontology-Aligned Retrieval(本体对齐检索) | 通过概念级多正样本 InfoNCE 学习无偏投影,检索 Top-20 HPO 候选 |
| LCR | LLM Candidate Reranking(LLM 候选重排) | 比较首选标签、同义词和定义,生成完整语义排序,可能返回 No Match |
| HGR | Hierarchy-Guided Refinement(层级引导细化) | 当 OAR 与 LCR 不一致时,利用父子与兄弟节点证据解决局部层级冲突,返回完整排序 |
三、PhenoNormBench 基准
PhenoNormBench 将七个 HPO 标准化数据集统一为通用提及级格式,共包含 13,390 条表型提及。
| 数据集 | 提及数量 | 工作簿路径 |
|---|---|---|
| GeneReviews-10 | 352 | Dataset/GeneReviews-10/GeneReviews-10.xlsx |
| ID-68 | 866 | Dataset/ID-68/ID-68.xlsx |
| GSC2017 | 2,773 | Dataset/GSC2017/GSC2017.xlsx |
| GSC2024 | 2,910 | Dataset/GSC2024/GSC2024.xlsx |
| CSC | 1,783 | Dataset/CSC/CSC.xlsx |
| FGDD | 1,866 | Dataset/FGDD/FGDD_Phenotype_Testset.xlsx |
| BC8-T3 | 2,840 | Dataset/BC8_T3/BC8_T3.xlsx |
| 合计 | 13,390 |
数据字段
| 字段 | 说明 |
|---|---|
Raw_Phenotype_Names |
作为模型输入的原始自由文本表型提及 |
Standard_Phenotype_Names |
标准化表型名称 |
HPO_id |
参考 HPO 标识符 |
Accepted_HPO_ids |
用于评估的当前或历史 HPO 标识符 |
Patient_ID、patient_ids、pmids |
可用的来源元数据 |
消融子集
- 路径:Dataset/Ablation_Subset/ablation_subset_seed42.xlsx
- 构成:每个数据集 300 个样本,共 2,100 个样本,用于敏感性分析。
四、数据集与资源组成(Whats Included)
| 资源 | 内容 |
|---|---|
| PhenoNormBench | 七个标准化 HPO 归一化数据集及固定 2,100 样本消融子集 |
| HPO 快照 | 工作流使用的 HPO 发布的 OBO、JSON、JSONL 格式 |
| OAR | 可训练的本体对齐投影、推理运行时及向量索引构建代码 |
| LCR 与 HGR | 完整提示词、响应验证、检查点及层级引导重排逻辑 |
| 实验 | 主七数据集运行器及组件与敏感性消融 |
| Notebooks | OAR 预计算 + LCR 与 HGR 的两步工作流 |
五、仓库结构
text
.
|-- README.md
|-- LICENSE
|-- requirements.txt
|-- LLM_config.example.json
|-- 01_run_precompute.ipynb # OAR 检索与 Top-20 预计算
|-- 02_run_LLM_rerank.ipynb # LCR 与选择性 HGR 重排
|-- run_main_experiment.py # 七数据集实验运行器
|-- run_ablation.py # 消融入口
|-- ontology_aligner_runtime.py # 共享工作流运行时
|-- ontology_aligner_oar.py # 正式 TE3L OAR 推理
|-- dataset_utils.py # 数据集与 HPO ID 工具
|-- test_main_experiment_contract.py # 工作流契约测试
|-- ablation/
| |-- config.py
| |-- experiments.py
| |-- oar.py # OAR 训练实现
| |-- runtime.py
| -- report.py |-- Dataset/ | |-- Ablation_Subset/ | |-- BC8_T3/ | |-- CSC/ | |-- FGDD/ | |-- GeneReviews-10/ | |-- GSC2017/ | |-- GSC2024/ | -- ID-68/
|-- HPO/
| |-- hp260623.obo
| |-- hp260623.json
| |-- hp260623.jsonl
| -- convert_obo.py -- imgs/
`-- ontologyaligner.jpg
六、快速开始
1. 创建环境
bash cd OntologyAligner conda create -n ontologyaligner python=3.10 conda activate ontologyaligner python -m pip install -r requirements.txt
- 推荐使用支持 CUDA 的 GPU 进行 OAR 训练和本地 transformer 主干网络。
2. 配置 API 访问
bash cp LLM_config.example.json LLM_config.json
Windows PowerShell:
powershell Copy-Item LLM_config.example.json LLM_config.json
- 在
LLM_config.json中设置模型名称、API 端点、密钥和并发限制。 - 主工作流读取
embedding(用于 TE3L 嵌入)和llm(用于 LCR 与 HGR)。
3. 选择工作流
| 工作流 | 入口 | 用途 |
|---|---|---|
| Notebook | 01_run_precompute.ipynb 后再运行 02_run_LLM_rerank.ipynb |
交互式、逐步执行 |
| 命令行 | run_main_experiment.py |
复现单个或全部七个数据集 |
| 消融 | run_ablation.py |
运行组件与敏感性实验 |
七、复现流程
Notebook 工作流
- 打开
01_run_precompute.ipynb,配置数据集与嵌入设置。 - 构建所需 HPO 资源并生成 OAR Top-20 候选工作簿。
- 打开
02_run_LLM_rerank.ipynb,配置数据集与 LLM 设置。 - 运行 LCR 与选择性 HGR,生成最终重排工作簿。
- LCR 与 HGR 的完整提示词存于
02_run_LLM_rerank.ipynb;命令行运行时直接读取这些定义,保持两种工作流同步。
命令行工作流
运行单个数据集:
bash python run_main_experiment.py --dataset fgdd --max-concurrency 10 --requests-per-minute 200
运行完整基准:
bash python run_main_experiment.py --dataset all --max-concurrency 10 --requests-per-minute 200
支持的数据集键:
text genereviews-10 id-68 gsc2017 gsc2024 csc fgdd bc8_t3
八、消融实验
| 实验 | 评估内容 |
|---|---|
| E1 | 原始 TE3L 检索后接 LCR 与 HGR |
| E2 | 仅 OAR |
| E3 | OAR 后接 LCR |
| E4 | LLM 主干敏感性 |
| E5 | 嵌入主干与 OAR 敏感性 |
| E6 | 候选集大小:k = 1, 3, 5, 10, 20 |
bash
运行单个实验
python run_ablation.py --experiment E3
选择 LLM 或嵌入主干
python run_ablation.py --experiment E4 --llm-backbone claude-opus-5 python run_ablation.py --experiment E5 --backbone text_embedding_3_large
运行完整配置协议
python run_ablation.py --all
九、测试
bash python -m pytest test_main_experiment_contract.py -q
- 契约测试覆盖共享的 Top-20 工作流、数据集/工作簿接口,以及 LCR/HGR 的
No Match策略。
十、引用
- 稿件正在审稿中。若使用 OntologyAligner 或 PhenoNormBench,请引用:
bibtex @article{song2026ontologyaligner, title = {OntologyAligner: Ontology-Aligned Retrieval and Hierarchy-Guided Large Language Model Reranking for Biomedical Ontology Normalization}, author = {Song, Jie and Xu, Zhichuan and Lu, Ziyu and Xiao, Meng and Bi, Cheng and Zhang, Yuxin and Zheng, Xin and Li, Xiaoran and Cao, Qiongfang and Yang, Hao and Shen, Bairong}, year = {2026}, note = {Manuscript under review} }
十一、许可证
- 本仓库基于 MIT License 发布。
十二、联系方式
- 技术问题请提交 issue 或联系:
- Song Jie:songjie02_09@163.com

- 1OntologyAligner: Ontology-Aligned Retrieval and Hierarchy-Guided Large Language Model Reranking for Biomedical Ontology Normalization四川大学; 成都医学院 · 2026年




