阿尔茨海默知识库更新器

一个自动从多个生物医学数据库整合阿尔茨海默病相关数据的工具,用于生成干净的CSV文件供下游分析使用。

  • by BinglanLi
  • Python
  • 本地部署
  • 更新于
在 GitHub 查看 BinglanLi/alzkb-updater-created-without-mcp

使用说明

Alzkb更新程序

一个简化的阿尔茨海默氏症知识库(AlzKB)更新程序,可以自动整合来自多个生物医学数据库的数据。

概述

此应用程序从以下位置获取并整合阿尔茨海默病相关数据:

  • UniProt:蛋白质和基因信息
  • PubChem:药物和化合物信息

集成数据导出为干净的CSV文件,用于下游分析。

特性

  • 🔄 从公共生物医学数据库中自动获取数据
  • 🧬 蛋白质和基因数据集成
  • 💊 药物和化合物数据集成
  • 🔗 蛋白质与药物靶点相互作用图谱
  • 📊 清洁CSV输出格式
  • 🤖 GitHub针对计划更新的操作
  • 🛡️ 优雅的错误处理

安装

先决条件

  • Python 3.8或更高版本
  • pip包管理器

设置

  1. 克隆存储库:
git clone <repository-url>
cd AlzKB-updater-without-mcp
  1. 安装依赖项:
pip install -r requirements.txt

用法

本地执行

在本地运行更新程序:

python main.py

该应用程序将:

  1. 从UniProt获取蛋白质数据
  2. 从PubChem获取药物数据
  3. 整合数据
  4. 将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)

工作流程:

  1. 设置Python环境
  2. 安装依赖项
  3. 运行更新程序
  4. 将更新的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上打开问题。


备注:此应用程序用于研究目的。始终验证数据准确性,并适当引用原始来源。