快速开始

切换语言: Quick Start

DeepChrInteract 原始动机

旧版文档强调:虽然基于染色质相互作用区域侧翼 DNA 序列的深度学习方法不断发展, 但一个能够系统整合并比较不同深度学习架构的工具包仍然不足。

当前项目保留这一目标,并将其扩展为一个基于 PyTorch 的增强子-启动子相互作用 预测与模型比较框架。

环境要求

旧版文档给出的基础环境如下:

  • CPU 内存建议 16GB

  • GPU 显存建议 8GB

  • Python 3.8

  • Keras == 2.4.0

  • TensorFlow == 2.3.0

  • numpy >= 1.15.4

  • scipy >= 1.2.1

  • scikit-learn >= 0.20.3

  • seaborn >=0.9.0

  • matplotlib >=3.1.0

当前项目实际依赖已经切换为:

  • Python 3.10+;

  • PyTorch 2.x;

  • numpy、scikit-learn、matplotlib、tqdm;

  • transformers;

  • 可选 mamba-ssm

安装

git clone <your-repository-url>
cd Enhancer-Promoter-Interaction
pip install -r requirements.txt

如果要使用 Mamba,可额外安装:

pip install mamba-ssm

数据预处理

当前版本直接读取原始序列文本文件,并输出 train.npzval.npztest.npz,不再生成 PNG 中间文件。

python scripts/preprocess.py \
    --raw_dir data/raw \
    --cell_type GM12878 \
    --out_dir data

无真实数据时的完整管道测试

python scripts/test_pipeline.py
python scripts/test_pipeline.py --quick

单实验训练

python -m src.train \
    --model_id M2 \
    --exp_id E03 \
    --encoding_mode onehot \
    --fusion_strategy concat_sub_mul \
    --cell_type GM12878 \
    --seed 0

单实验评估

python -m src.evaluate \
    --model_id M2 \
    --exp_id E03 \
    --encoding_mode onehot \
    --cell_type GM12878 \
    --seed 0

五个随机种子的批量实验

bash scripts/run_experiment.sh E03 M2 GM12878 onehot concat_sub_mul

DNA 大语言模型流程

M13 支持先离线生成 embedding,再重复训练:

python -c "
from src.encoders import LLMEncoder
enc = LLMEncoder('dnabert2')
# 从处理后的数据中读取 enhancer / promoter 序列后调用 encode_dataset()
"

MAE 预训练流程

python -m src.train --model_id M14 --exp_id E16 --pretrain
python -m src.train --model_id M14 --exp_id E16

文档发布

本项目文档将采用 Sphinx 构建静态 HTML,再发布到 GitHub Pages。

../_images/div.png