logo
2
0
WeChat Login

DeepMethyGene

基于深度学习的基因表达甲基化预测模型 | 论文复现与改进研究 | by GeneX Team

License: MIT Python R PyTorch


项目简介

本项目是 GeneX Team 的生物信息学课程研究报告,复现并改进 BMC Bioinformatics 2025 发表的 DeepMethyGene 论文。

原始论文信息

项目内容
论文标题DeepMethyGene: a deep-learning model to predict gene expression using DNA methylations
发表期刊BMC Bioinformatics (2025)
基线性能R² = 0.640 (5折交叉验证)
核心方法CNN + ResNet 架构,利用 DNA 甲基化预测基因表达

项目目标

  1. 复现基线模型 – 完整复现 DeepMethyGene,验证原论文 R² ≈ 0.640
  2. 多模型对比 – 实现 Random Forest、SVM、Deep Forest 等对比方法
  3. 提出改进方案 – 整合基因组上下文特征 + SE 注意力机制
  4. 性能验证 – 通过消融实验验证改进效果

第一部分:geneEXPLORE 与 DeepMethyGene(原论文方法)对比

1. geneEXPLORE 方法简介

  • geneEXPLORE 是一种统计机器学习模型(基于弹性网络 / SVM / 随机森林)。
  • 创新点:首次强调长距离 DNA 甲基化对基因表达的调控作用。
  • 局限性
    • 输入维度固定,无法适应不同基因附近甲基化位点数目的差异。
    • 传统线性模型难以捕捉甲基化与表达之间的复杂非线性关系。
    • 预测精度有限(5折交叉验证 R² = 0.449)。

2. DeepMethyGene(原论文方法)的改进

改进点具体方案效果
自适应输入结构根据基因附近甲基化位点数量动态调整卷积层通道数灵活适应不同基因
深度学习架构一维 CNN + 残差网络(ResNet),解决深层网络梯度消失问题可训练更深网络
数据分布优化将甲基化 β 值转换为 M 值,近似正态分布提高模型稳定性
预测性能5折交叉验证 R² = 0.640,比 geneEXPLORE 提升 +42.5%显著更准

3. 性能详细对比

模型平均 R²在 13,982 个基因中优于对方基因数
geneEXPLORE0.449248 个(1.8%)
DeepMethyGene0.64013,734 个(98.2%)

第二部分:我们小组(GeneX Team)的进一步改进

在完全复现 DeepMethyGene 的基础上,我们提出以下改进方向。

改进一:特征增强 – 整合基因组上下文信息

原始输入补充特征
仅甲基化 M 值+ CpG 岛密度 + 甲基化位点距 TSS 距离 + 区域类型

改进二:注意力机制 – 引入 SE 模块

在残差块后插入 SE 通道注意力模块,自动学习每个甲基化通道的权重。

改进三:跨癌种泛化测试

原始论文我们的扩展
主要在 BRCA 上训练测试额外在 LUAD、COAD、GBM 上评估

核心成果(预期)

模型 / 方法预期 R²说明
geneEXPLORE(基准)0.449传统方法
DeepMethyGene(复现)0.640原论文结果
DeepMethyGene + 特征增强0.655 ~ 0.670待验证
DeepMethyGene + SE 注意力0.660 ~ 0.680待验证
两者组合0.670 ~ 0.690待验证

项目架构

DeepMethyGene/
├── Model/                              # 模型代码
│   ├── DeepMethyGene.py                # 主模型 (CNN + ResNet)
│   ├── Random Forest.py                # 随机森林
│   ├── SVM.py                          # 支持向量机
│   ├── Deep Forest.py                  # 深度森林 (gcForest)
│   ├── cascade_forest.py               # gcForest 实现
│   └── geneEXPLORE.r                   # geneEXPLORE 基线 (Elastic Net)
├── data/
│   ├── gene_list.csv                   # 13,982 个基因列表
│   ├── hg19_promoter.txt               # 启动子坐标 (hg19)
│   └── BCRA_Data/                      # 预处理产物与脚本
│       ├── BRCA_data_meth.csv          # 甲基化矩阵 (394K × 873)
│       ├── BRCA_data_meth_range.csv    # 探针基因组坐标
│       ├── need_gene_exp_13988(13982).csv  # 表达矩阵 (17K × 873)
│       ├── BRCA.data.Rdata             # R 数据对象 (geneEXPLORE 用)
│       ├── probe.per.promoter_BRCA.Rdata  # 探针-启动子映射
│       ├── step*.R                     # 预处理分步脚本
│       └── BRCADataProcessing.md       # 预处理说明
├── file/                               # 论文材料 + 依赖清单
│   ├── paper.md                        # 论文原文
│   ├── install_r_packages.R            # R 最小依赖安装
│   └── requirements.txt               # Python 依赖
├── result_r/                          # 各模型输出结果
│   ├── DeepMethyGene.txt
│   ├── DeepForest.txt
│   ├── SVMnormal.txt
│   ├── RandomForestnormal.txt
│   └── geneExplorer_5fold.csv
└── DeepMethyGene.md                    # 项目使用说明

技术栈

类别工具版本
操作系统Ubuntu24.04 LTS
PythonCPython + UV3.12
RR Core4.6
深度学习PyTorch (CPU)2.12
生物信息学Bioconductor3.23

快速开始

环境要求

  • Docker (推荐,使用项目 Dockerfile 构建)
  • 或 Python 3.12 + R 4.6

安装依赖

# Python 依赖
uv pip install -r DeepMethyGene/file/requirements.txt

# R 依赖 (最小集,仅 DeepMethyGene 需要)
Rscript DeepMethyGene/file/install_r_packages.R

# R 完整环境 (Docker 构建用)
bash scripts/R.sh

使用方法

运行 Python 模型

cd /workspace/DeepMethyGene/Model

# DeepMethyGene (主模型)
/opt/venv/bin/python3 DeepMethyGene.py

# 随机森林
/opt/venv/bin/python3 "Random Forest.py"

# SVM
/opt/venv/bin/python3 SVM.py

# Deep Forest
/opt/venv/bin/python3 "Deep Forest.py"

运行 geneEXPLORE 基线 (R)

cd /workspace/DeepMethyGene/data/BCRA_Data
Rscript ../../Model/geneEXPLORE.r

重新生成数据

# 一键下载+预处理
bash scripts/download_and_preprocess.sh

# 或分步执行,详见 DeepMethyGene/data/BCRA_Data/BRCADataProcessing.md

项目结构

├── Dockerfile                       # Docker 容器镜像定义
├── README.md                        # 项目文档
├── settings.jsonc                   # VS Code 配置
├── scripts/                         # 辅助脚本
│   ├── R.sh                         # R 完整环境安装 (Docker 构建用)
│   ├── download_and_preprocess.sh   # 一键数据下载+预处理
│   ├── cleanup.sh                   # 实验结束清理数据
│   ├── init-claude.sh               # Claude Code 配置
│   └── init-codex.sh                # CodeX 配置
└── DeepMethyGene/                   # 核心项目目录
    ├── Model/                       # 模型代码
    ├── data/                        # 数据文件 + 预处理
    ├── file/                        # 论文 + 依赖清单
    ├── result_r/                   # 实验结果
    └── DeepMethyGene.md             # 项目使用说明

论文

详见 DeepMethyGene/file/paper.md

许可证

本项目采用 MIT License 开源。

鸣谢

项目说明
原始论文DeepMethyGene - BMC Bioinformatics (2025)
参考实现yaoyao-11/DeepMethyGene
数据来源TCGA (The Cancer Genome Atlas)

GeneX Team | 生物信息学课程研究报告

About

Bioinformatics: Gene Expression Methylation Prediction Model Based on Deep Learning

PythonPyTorchR
GeneXrepo-named
Language
Python46.7%
TeX21.1%
R13.1%
Shell12.7%
Others6.4%