Alzkb更新程序
一个简化的阿尔茨海默氏症知识库(AlzKB)更新程序,可以自动整合来自多个生物医学数据库的数据。
概述
此应用程序从以下位置获取并整合阿尔茨海默病相关数据:
- UniProt:蛋白质和基因信息
- PubChem:药物和化合物信息
集成数据导出为干净的CSV文件,用于下游分析。
特性
- 🔄 从公共生物医学数据库中自动获取数据
- 🧬 蛋白质和基因数据集成
- 💊 药物和化合物数据集成
- 🔗 蛋白质与药物靶点相互作用图谱
- 📊 清洁CSV输出格式
- 🤖 GitHub针对计划更新的操作
- 🛡️ 优雅的错误处理
安装
先决条件
- Python 3.8或更高版本
- pip包管理器
设置
- 克隆存储库:
git clone
cd AlzKB-updater-without-mcp- 安装依赖项:
pip install -r requirements.txt用法
本地执行
在本地运行更新程序:
python main.py该应用程序将:
- 从UniProt获取蛋白质数据
- 从PubChem获取药物数据
- 整合数据
- 将CSV文件导出到
data/目录
输出文件
成功执行后,您将在 data/ 目录:
alzkb_proteins.csv-整合蛋白质和基因数据alzkb_drugs.csv-综合药物和化合物数据alzkb_interactions.csv-蛋白质与药物靶点相互作用alzkb_summary.csv-汇总统计
CSV文件格式
alzkb-proteins.csv
| 列 | 说明 |
|---|---|
| uniprot_id | uniprot登录id |
| primary_gene | 初级基因符号 |
| protein_name | 完整蛋白质名称 |
| 有机体 | 源有机体 |
| 蛋白质_长度 | 氨基酸长度 |
| 功能 | 蛋白质功能描述 |
| 疾病相关 | 疾病协会 |
| entity_type | 始终为“蛋白质” |
| source | 数据源(UniProt) |
| fetch_date | 数据检索日期 |
alzkb-drugs.csv
| 列 | 说明 |
|---|---|
| drug_name | 常用药物名称 |
| pubchem_cid | pubchem化合物ID |
| 分子式 | 化学式 |
| 分子重量 | 分子量 |
| canonical_smiles | smiles符号 |
| 适应症 | 疾病适应症 |
| entity_type | 始终为“药物” |
| 来源 | 数据来源(PubChem) |
| fetch_date | 数据检索日期 |
alzkb_交互.csv
| 列 | 说明 |
|---|---|
| protein_a | 第一个蛋白质ID |
| protein_b | 第二个蛋白质ID(用于PPI) |
| pubchem_cid | 药物ID(用于药物靶标) |
| target_name | 靶蛋白名称 |
| interaction_type | 交互类型 |
| source | 数据源 |
| fetch_date | 数据检索日期 |
自动更新
GitHub操作
该存储库包括一个GitHub Actions工作流,可以按计划自动更新AlzKB。
日程:每周(每周一00:00 UTC)
工作流程:
- 设置Python环境
- 安装依赖项
- 运行更新程序
- 将更新的CSV文件提交回存储库
手动触发
您还可以从GitHub Actions选项卡手动触发更新工作流。
配置
编辑 config.py 自定义:
- 数据获取限制
- 速率限制延迟
- 输出目录
- 日志级别
错误处理
应用程序优雅地处理错误:
- 记录并跳过网络超时
- 丢失的数据返回None而不是崩溃
- 单个实体的获取失败不会停止整个过程
- 所有错误都会记录时间戳
项目结构
AlzKB-updater-without-mcp/
├── main.py # Main application entry point
├── config.py # Configuration settings
├── requirements.txt # Python dependencies
├── README.md # This file
├── src/
│ ├── uniprot_fetcher.py # UniProt data fetcher
│ ├── drug_fetcher.py # PubChem data fetcher
│ └── integrator.py # Data integration module
├── data/ # Output directory (created on first run)
│ ├── alzkb_proteins.csv
│ ├── alzkb_drugs.csv
│ ├── alzkb_interactions.csv
│ └── alzkb_summary.csv
└── .github/
└── workflows/
└── update_alzkb.yml # GitHub Actions workflow
数据源
UniProt
- 统一资源定位符: https://www.uniprot.org/
- API:REST API
- 数据:蛋白质序列、功能、疾病关联
- 许可证:立方厘米乘以4.0
PubChem
- 统一资源定位符: https://pubchem.ncbi.nlm.nih.gov/
- API:哈巴狗休息
- 数据:化合物、药物信息、生物活性
- 许可证:公共领域
局限性
- 获取有限数量的记录(可配置)
- 遵守API指南的比率限制
- 由于API的限制,某些交互可能不完整
- DrugBank需要身份验证,因此使用PubChem作为替代方案
故障排除
网络错误
如果遇到网络错误,请检查:
- 互联网连接
- API端点可用性
- 速率限制(增加config.py中的延迟)
空结果
如果没有提取数据:
- 检查API端点是否可访问
- 验证提取器模块中的查询参数
- 检查日志中的特定错误消息
权限错误
如果您无法写入数据目录:
chmod +w data/贡献
这是一个专注于核心功能的简化版本。欢迎为以下项目捐款:
- 其他数据来源
- 增强的数据清理
- 更好的错误恢复
- 性能优化
参考文献
- PrimeKG:https://github.com/mims-harvard/PrimeKG
- AlzKB:https://github.com/EpistasisLab/AlzKB-updates
支持
对于问题或疑问,请在GitHub上打开问题。
______________________________________________________________________
备注:此应用程序用于研究目的。始终验证数据准确性,并适当引用原始来源。
