Add evaluation system and update README Add evaluation_system/ with metrics, evaluator, submit, build_records, server Add ground_truth and mask data for evaluation Add web service startup shortcut Update README with evaluation system documentation Add .gitignore to exclude large data files Generated with CodeArts Agent
Add evaluation system and update README
Add evaluation_system/ with metrics, evaluator, submit, build_records, server
Add ground_truth and mask data for evaluation
Add web service startup shortcut
Update README with evaluation system documentation
Add .gitignore to exclude large data files
Generated with CodeArts Agent
基于 UK Biobank 蛋白质组学数据的缺失蛋白插补项目。
pro_imput/ ├── data/ # 数据集(按 8:1:1 随机拆分) │ ├── train.csv # 训练集 (42,411 × 2,924) │ ├── val.csv # 验证集 (5,301 × 2,924) │ └── test.csv # 测试集 (5,302 × 2,924) ├── test_scenarios/ # 测试场景(基于 test.csv 生成) │ ├── random_missing_25pct.csv # 随机缺失 25% │ ├── random_missing_50pct.csv # 随机缺失 50% │ ├── random_missing_75pct.csv # 随机缺失 75% │ └── panel_missing_{1-7}panels.csv # 缺失 1-7 个 panel └── evaluation_system/ # 评估系统 ├── evaluate/ # 评估模块 ├── records/ # 记录模块 ├── display/ # 展示模块 ├── submit.py # 命令行提交工具 ├── build_records.py # 记录聚合工具 ├── server.py # Web 服务 ├── 启动Web服务.bat # Web 服务启动快捷方式 └── README.md # 评估系统使用说明
来源于 UK Biobank Pharma Proteomics Project (UKB-PPP),使用 Olink Explore 3072 平台测量 53,014 名参与者的血浆蛋白组学数据。
EID
按 8:1:1 比例随机拆分为训练集、验证集、测试集(random_state=42)。
random_state=42
2,923 种蛋白按 Olink 平台划分为 8 个主 panel(按生物学含义分组)+ 2 个跨 panel 特殊类别。I 期与 II 期视为不同 panel(蛋白身份 0 重叠,功能主题存在差异)。
跨 panel 的 6 个特殊蛋白(IL-8、TNF、IL-6、Leiomodin-1、Scribble、IDO1)同时归属多个 panel,仅当其所有相关主 panel 均缺失时才视为缺失。
基于测试集(5,302 个样本)生成两类缺失场景,用于评估插补方法性能。
每个场景文件 shape = (5,302, 5,847):
V_{蛋白名}
M_{蛋白名}
采用 0/1 编码:
M = 1
M = 0
按指定概率随机掩码蛋白值,模拟蛋白检测中的随机缺失。
对每个样本随机选择 k 个主 panel 整体缺失,模拟整个 panel 测量失败的场景。
实际缺失率 ≈ k/8(8 个主 panel 等概率被选)。
用于评估成员提交的插补结果,计算三项指标并记录展示。详细说明见 evaluation_system/README.md。
evaluation_system/README.md
在 mask=1 位置(人为缺失位置)计算:
方式 1:Web 界面
双击 evaluation_system/启动Web服务.bat,浏览器自动打开提交页面。
evaluation_system/启动Web服务.bat
方式 2:命令行
cd evaluation_system python submit.py submit \ --member <姓名> --model-name <模型名称> \ --scenario <random|panel> --file <提交zip路径> \ --desc <模型描述> --params <参数量> --flops <浮点运算量>
提交一个 zip 包,内含还原结果 CSV(格式与 data/test.csv 一致,缺失位置填插补值):
data/test.csv
random_missing_{25,50,75}pct_restored.csv
panel_missing_{1-7}panels_restored.csv
git pull # 拉取最新 python build_records.py # 聚合所有提交记录 python submit.py submit ... # 提交评估 git add records/submissions/ # 添加记录 git commit -m "add submission: ..." git push # 推送结果
每次提交生成独立 JSON 文件,几乎不会产生合并冲突。
pip install flask scipy numpy pandas
所有随机操作使用 random_state=42(numpy 全局种子),保证结果可复现。
本项目旨在解决两个应用场景下的蛋白质缺失值插补问题,一是部分随机值缺失,二是若干panel缺失。
版权所有:中国计算机学会技术支持:开源发展技术委员会 京ICP备13000930号-9 京公网安备 11010802047560号
pro_imput
基于 UK Biobank 蛋白质组学数据的缺失蛋白插补项目。
目录结构
数据说明
源数据
来源于 UK Biobank Pharma Proteomics Project (UKB-PPP),使用 Olink Explore 3072 平台测量 53,014 名参与者的血浆蛋白组学数据。
EID(参与者 ID)+ 2,923 个蛋白列(基因符号命名)数据拆分
按 8:1:1 比例随机拆分为训练集、验证集、测试集(
random_state=42)。Panel 划分
2,923 种蛋白按 Olink 平台划分为 8 个主 panel(按生物学含义分组)+ 2 个跨 panel 特殊类别。I 期与 II 期视为不同 panel(蛋白身份 0 重叠,功能主题存在差异)。
跨 panel 的 6 个特殊蛋白(IL-8、TNF、IL-6、Leiomodin-1、Scribble、IDO1)同时归属多个 panel,仅当其所有相关主 panel 均缺失时才视为缺失。
测试场景
基于测试集(5,302 个样本)生成两类缺失场景,用于评估插补方法性能。
文件格式
每个场景文件 shape = (5,302, 5,847):
EID(样本 ID)V_{蛋白名}(蛋白表达值,缺失位置置 0)M_{蛋白名}(mask 编码)Mask 编码
采用 0/1 编码:
M = 1:该位置为人为缺失(蛋白值已置 0)M = 0:该位置保留真实值场景 1:随机缺失
按指定概率随机掩码蛋白值,模拟蛋白检测中的随机缺失。
场景 2:panel 缺失
对每个样本随机选择 k 个主 panel 整体缺失,模拟整个 panel 测量失败的场景。
实际缺失率 ≈ k/8(8 个主 panel 等概率被选)。
评估系统
用于评估成员提交的插补结果,计算三项指标并记录展示。详细说明见
evaluation_system/README.md。评估指标
在 mask=1 位置(人为缺失位置)计算:
提交方式
方式 1:Web 界面
双击
evaluation_system/启动Web服务.bat,浏览器自动打开提交页面。方式 2:命令行
提交文件格式
提交一个 zip 包,内含还原结果 CSV(格式与
data/test.csv一致,缺失位置填插补值):random_missing_{25,50,75}pct_restored.csvpanel_missing_{1-7}panels_restored.csv多人协作流程
每次提交生成独立 JSON 文件,几乎不会产生合并冲突。
依赖
复现性
所有随机操作使用
random_state=42(numpy 全局种子),保证结果可复现。