Skip to content

pianconglab/Viral-Host-Hunter

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

24 Commits
 
 
 
 
 
 
 
 

Repository files navigation

Viral-Host-Hunter 项目全面分析文档

1. 项目概述

1.1 项目简介

Viral-Host-Hunter (VHH) 是一个基于深度学习的病毒宿主预测框架,用于解密病毒暗物质并探索其治疗意义。该项目是论文"Decrypting Viral Dark Matter with Predictive Framework and Therapeutic Implications"的代码实现。

1.2 核心功能

  • 病毒宿主预测:预测病毒的细菌宿主
  • 多分类层级支持:支持科(family)、属(genus)、种(species)三个分类层级
  • 多蛋白类型:支持尾纤维蛋白(tail)和溶菌酶(lysin)两种蛋白类型
  • 高精度预测:提供95%、84%、69%三种精度级别的预测

1.3 技术特点

  • 融合DNA序列和蛋白质序列信息
  • 使用ProtT5-XL-UniRef50预训练语言模型进行蛋白质嵌入
  • 结合Transformer、CNN和随机森林的混合模型架构
  • 支持两个数据集:多分类层级数据集和肠道噬菌体数据集

2. 项目结构分析

2.1 目录结构

Viral-Host-Hunter/
├── README.md                           # 项目说明文档
├── GPLD/                              # GPLD数据集
│   ├── GPLD.faa                       # 蛋白质序列文件(556,496行)
│   └── GPLD.xlsx                      # 数据集Excel文件
├── Viral Host Hunter/                 # 主要代码目录
│   ├── config.py                      # 配置文件
│   ├── model.py                       # 深度学习模型定义
│   ├── dataset.py                     # 数据集类定义
│   ├── embedding.py                   # ProtT5蛋白质嵌入
│   ├── dna_encode.py                  # DNA序列编码
│   ├── encoder_only_dna.py            # DNA特征提取器
│   ├── autoencoder.py                 # 自编码器模型
│   ├── utils.py                       # 工具函数
│   ├── Get_embedding.py               # 嵌入计算工具
│   ├── train_multi_taxonomic_levels.py # 多分类层级训练
│   ├── train_gut_prophages.py         # 肠道噬菌体训练
│   ├── predict_multi_taxonomic_levels.py # 多分类层级预测
│   ├── predict_gut_prophages.py       # 肠道噬菌体预测
│   ├── multi_taxonomic_levels_info.py # 多分类层级标签映射
│   ├── gut_prophages_info.py          # 肠道噬菌体标签映射
│   └── data/                          # 数据目录
│       └── benchmark/                 # 基准测试数据
│           ├── DRRBP.csv             # DRRBP基准数据
│           └── DRTail.csv            # DRTail基准数据

2.2 核心文件说明

2.2.1 配置文件 (config.py)

  • 设备配置:自动检测CUDA可用性
  • 训练参数:epochs=100, batch_size=64, learning_rate=0.001
  • 模型参数:k=4 (DNA编码参数), seed=0 (随机种子)

2.2.2 模型架构 (model.py)

包含完整的深度学习模型定义:

  • SelfAttention:自注意力机制
  • TransformerBlock:Transformer编码器块
  • Input_layer:输入层,包含位置编码
  • Encoder:编码器层
  • Transformer:完整的Transformer模型
  • FeatureExtractor:特征提取器,结合CNN和Transformer
  • Classifier:分类器
  • DnaPathNetworks:主模型,整合特征提取和分类

3. 技术架构深度分析

3.1 数据处理流程

3.1.1 DNA序列编码 (dna_encode.py)

使用矩阵编码方法:

  • 二进制转换:AT编码(A=0,T=0,C=1,G=1)和AC编码(A=0,C=0,G=1,T=1)
  • k-mer位置映射:将k-mer序列转换为位置矩阵
  • 距离矩阵:计算不同距离(0,1,2)的转移矩阵
  • 特征维度:6 × (2^k)^2,默认k=4,得到6×16×16的特征矩阵

3.1.2 蛋白质序列嵌入 (embedding.py)

使用ProtT5-XL-UniRef50预训练模型:

  • 序列预处理:在氨基酸间添加空格,替换特殊字符
  • 模型加载:从指定路径加载ProtT5模型
  • 嵌入提取:获取1024维的蛋白质表示向量
  • 序列聚合:对变长序列进行平均池化

3.1.3 DNA特征提取 (encoder_only_dna.py)

提取传统生物信息学特征:

  • 核苷酸频率:A、T、C、G的频率统计
  • GC含量:计算GC碱基比例
  • 密码子使用:64种密码子的使用频率
  • 密码子偏好性:同义密码子的相对使用频率
  • 特征维度:总计133维特征

3.2 模型架构设计

3.2.1 特征提取器 (FeatureExtractor)

多分支CNN架构:

  • 分支1:6→20→20通道,卷积核2×2
  • 分支2:6→10→10通道,卷积核2×2
  • 分支3:6→10→10通道,卷积核2×2
  • 特征融合:连接三个分支输出(40通道)
  • Transformer处理:将CNN特征输入Transformer
  • 最终融合:连接Transformer输出和蛋白质嵌入

3.2.2 分类器 (Classifier)

全连接网络:

  • 输入维度:133(DNA特征) + 1024(蛋白质嵌入) + 1280×4(Transformer输出) = 6277
  • 隐藏层:6277→2048→1024→num_class
  • 正则化:BatchNorm + Dropout(0.2)
  • 激活函数:ReLU

3.2.3 自编码器 (AutoEncoder)

用于特征降维和表示学习:

  • 编码器:6277→4096→2048→1024
  • 解码器:1024→2048→4096→6277
  • 损失函数:MSE重构损失

3.3 训练策略

3.3.1 三阶段训练

  1. 主模型训练:训练DnaPathNetworks进行分类
  2. 自编码器训练:使用提取的特征训练自编码器
  3. 随机森林训练:使用编码后的特征训练RF分类器

3.3.2 模型融合

  • 预测融合:0.5×深度学习概率 + 0.5×随机森林概率
  • 阈值过滤:根据置信度阈值过滤预测结果
  • 精度控制:提供95%、84%、69%三种精度级别

4. 数据集分析

4.1 GPLD数据集

  • 文件格式:FASTA格式蛋白质序列
  • 数据规模:556,496条序列记录
  • 序列信息:包含基因位置、起始类型、RBS motif等注释
  • 用途:作为预测的输入数据

4.2 分类标签体系

4.2.1 多分类层级数据集

尾纤维蛋白(tail)

  • 科级:37个细菌科
  • 属级:54个细菌属
  • 种级:57个细菌种

溶菌酶(lysin)

  • 科级:37个细菌科
  • 属级:42个细菌属
  • 种级:42个细菌种

4.2.2 肠道噬菌体数据集

尾纤维蛋白(tail)

  • 科级:29个细菌科
  • 属级:40个细菌属
  • 种级:60个细菌种

溶菌酶(lysin)

  • 科级:29个细菌科
  • 属级:40个细菌属
  • 种级:60个细菌种

4.3 基准测试数据

  • DRRBP.csv:4,847条记录,包含基因组ID、序列ID、宿主信息
  • DRTail.csv:用于尾纤维蛋白基准测试
  • 数据格式:CSV格式,包含DNA和蛋白质序列

5. 环境依赖和安装

5.1 系统要求

  • Python版本:3.8
  • GPU要求:NVIDIA GPU,推荐RTX 3090 (24GB显存)
  • 操作系统:Linux (推荐)

5.2 核心依赖

pytorch=1.10.1
biopython=1.81
transformers=4.38.2
SentencePiece=0.2.0
scikit-learn=1.3.2
openpyxl=3.1.4

5.3 外部模型依赖

  • ProtT5-XL-UniRef50:需要从HuggingFace下载
  • 模型路径配置:需要修改embedding.py中的模型路径
  • 存储要求:ProtT5模型约需要2-3GB存储空间

6. 使用指南

6.1 数据准备

  1. 下载数据集:从Google Drive下载完整数据集
  2. 准备输入文件
    • 蛋白质序列文件(.fasta)
    • DNA序列文件(.fasta)
    • 确保序列ID对应关系正确

6.2 模型训练

6.2.1 多分类层级训练

python train_multi_taxonomic_levels.py \
    --train_protein train_protein.fasta \
    --train_dna train_dna.fasta \
    --val_protein val_protein.fasta \
    --val_dna val_dna.fasta \
    --type tail \
    --level family

6.2.2 肠道噬菌体训练

python train_gut_prophages.py \
    --train_protein train_protein.fasta \
    --train_dna train_dna.fasta \
    --val_protein val_protein.fasta \
    --val_dna val_dna.fasta \
    --type tail \
    --level family

6.3 模型预测

6.3.1 评估模式

python predict_multi_taxonomic_levels.py \
    --protein_file protein.fasta \
    --dna_file cds.fasta \
    --type tail \
    --level family \
    --precision -1 \
    --embedding_name test \
    --result_file results.csv

6.3.2 高精度预测

python predict_multi_taxonomic_levels.py \
    --protein_file protein.fasta \
    --dna_file cds.fasta \
    --type tail \
    --level family \
    --precision 95 \
    --embedding_name predict \
    --result_file results.csv

7. 技术创新点

7.1 多模态特征融合

  • 序列级融合:DNA序列编码 + 蛋白质语言模型嵌入
  • 特征级融合:传统生物信息学特征 + 深度学习特征
  • 模型级融合:深度学习模型 + 机器学习模型

7.2 层次化预测框架

  • 多分类层级:支持科、属、种三个分类层级
  • 精度可控:提供不同置信度阈值的预测
  • 应用导向:针对不同应用场景优化

7.3 端到端学习

  • 自动特征学习:无需手工设计特征
  • 联合优化:多个组件协同训练
  • 可解释性:保留传统特征的生物学意义

8. 性能评估

8.1 评估指标

  • 准确率(Accuracy):整体分类准确性
  • 精确率(Precision):类别预测精确性
  • 召回率(Recall):类别覆盖完整性
  • F1分数:精确率和召回率的调和平均

8.2 基准比较

  • DRRBP基准:与现有方法对比
  • DRTail基准:尾纤维蛋白专项评估
  • 交叉验证:确保模型泛化能力

9. 应用前景

9.1 科研应用

  • 病毒分类学研究:辅助病毒分类和命名
  • 宿主范围预测:预测病毒的潜在宿主
  • 进化关系分析:研究病毒-宿主协同进化

9.2 临床应用

  • 噬菌体治疗:筛选特定细菌的噬菌体
  • 感染诊断:辅助病原体识别
  • 抗生素替代:开发新型抗菌策略

9.3 工业应用

  • 生物制药:噬菌体药物开发
  • 食品安全:病原菌检测和控制
  • 环境监测:微生物群落分析

10. 项目总结

Viral-Host-Hunter是一个技术先进、功能完整的病毒宿主预测系统。项目具有以下特点:

  1. 技术创新:融合多种深度学习技术和传统方法
  2. 实用性强:提供完整的训练和预测流程
  3. 扩展性好:支持多种数据集和分类层级
  4. 性能优异:在多个基准测试中表现出色
  5. 应用广泛:在科研、临床、工业领域都有应用价值

该项目为病毒学研究和噬菌体治疗提供了强有力的计算工具,具有重要的科学价值和应用前景。

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors

Languages