Viral-Host-Hunter (VHH) 是一个基于深度学习的病毒宿主预测框架,用于解密病毒暗物质并探索其治疗意义。该项目是论文"Decrypting Viral Dark Matter with Predictive Framework and Therapeutic Implications"的代码实现。
- 病毒宿主预测:预测病毒的细菌宿主
- 多分类层级支持:支持科(family)、属(genus)、种(species)三个分类层级
- 多蛋白类型:支持尾纤维蛋白(tail)和溶菌酶(lysin)两种蛋白类型
- 高精度预测:提供95%、84%、69%三种精度级别的预测
- 融合DNA序列和蛋白质序列信息
- 使用ProtT5-XL-UniRef50预训练语言模型进行蛋白质嵌入
- 结合Transformer、CNN和随机森林的混合模型架构
- 支持两个数据集:多分类层级数据集和肠道噬菌体数据集
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基准数据
- 设备配置:自动检测CUDA可用性
- 训练参数:epochs=100, batch_size=64, learning_rate=0.001
- 模型参数:k=4 (DNA编码参数), seed=0 (随机种子)
包含完整的深度学习模型定义:
- SelfAttention:自注意力机制
- TransformerBlock:Transformer编码器块
- Input_layer:输入层,包含位置编码
- Encoder:编码器层
- Transformer:完整的Transformer模型
- FeatureExtractor:特征提取器,结合CNN和Transformer
- Classifier:分类器
- DnaPathNetworks:主模型,整合特征提取和分类
使用矩阵编码方法:
- 二进制转换: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的特征矩阵
使用ProtT5-XL-UniRef50预训练模型:
- 序列预处理:在氨基酸间添加空格,替换特殊字符
- 模型加载:从指定路径加载ProtT5模型
- 嵌入提取:获取1024维的蛋白质表示向量
- 序列聚合:对变长序列进行平均池化
提取传统生物信息学特征:
- 核苷酸频率:A、T、C、G的频率统计
- GC含量:计算GC碱基比例
- 密码子使用:64种密码子的使用频率
- 密码子偏好性:同义密码子的相对使用频率
- 特征维度:总计133维特征
多分支CNN架构:
- 分支1:6→20→20通道,卷积核2×2
- 分支2:6→10→10通道,卷积核2×2
- 分支3:6→10→10通道,卷积核2×2
- 特征融合:连接三个分支输出(40通道)
- Transformer处理:将CNN特征输入Transformer
- 最终融合:连接Transformer输出和蛋白质嵌入
全连接网络:
- 输入维度:133(DNA特征) + 1024(蛋白质嵌入) + 1280×4(Transformer输出) = 6277
- 隐藏层:6277→2048→1024→num_class
- 正则化:BatchNorm + Dropout(0.2)
- 激活函数:ReLU
用于特征降维和表示学习:
- 编码器:6277→4096→2048→1024
- 解码器:1024→2048→4096→6277
- 损失函数:MSE重构损失
- 主模型训练:训练DnaPathNetworks进行分类
- 自编码器训练:使用提取的特征训练自编码器
- 随机森林训练:使用编码后的特征训练RF分类器
- 预测融合:0.5×深度学习概率 + 0.5×随机森林概率
- 阈值过滤:根据置信度阈值过滤预测结果
- 精度控制:提供95%、84%、69%三种精度级别
- 文件格式:FASTA格式蛋白质序列
- 数据规模:556,496条序列记录
- 序列信息:包含基因位置、起始类型、RBS motif等注释
- 用途:作为预测的输入数据
尾纤维蛋白(tail):
- 科级:37个细菌科
- 属级:54个细菌属
- 种级:57个细菌种
溶菌酶(lysin):
- 科级:37个细菌科
- 属级:42个细菌属
- 种级:42个细菌种
尾纤维蛋白(tail):
- 科级:29个细菌科
- 属级:40个细菌属
- 种级:60个细菌种
溶菌酶(lysin):
- 科级:29个细菌科
- 属级:40个细菌属
- 种级:60个细菌种
- DRRBP.csv:4,847条记录,包含基因组ID、序列ID、宿主信息
- DRTail.csv:用于尾纤维蛋白基准测试
- 数据格式:CSV格式,包含DNA和蛋白质序列
- Python版本:3.8
- GPU要求:NVIDIA GPU,推荐RTX 3090 (24GB显存)
- 操作系统:Linux (推荐)
pytorch=1.10.1
biopython=1.81
transformers=4.38.2
SentencePiece=0.2.0
scikit-learn=1.3.2
openpyxl=3.1.4
- ProtT5-XL-UniRef50:需要从HuggingFace下载
- 模型路径配置:需要修改embedding.py中的模型路径
- 存储要求:ProtT5模型约需要2-3GB存储空间
- 下载数据集:从Google Drive下载完整数据集
- 准备输入文件:
- 蛋白质序列文件(.fasta)
- DNA序列文件(.fasta)
- 确保序列ID对应关系正确
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 familypython 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 familypython 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.csvpython 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- 序列级融合:DNA序列编码 + 蛋白质语言模型嵌入
- 特征级融合:传统生物信息学特征 + 深度学习特征
- 模型级融合:深度学习模型 + 机器学习模型
- 多分类层级:支持科、属、种三个分类层级
- 精度可控:提供不同置信度阈值的预测
- 应用导向:针对不同应用场景优化
- 自动特征学习:无需手工设计特征
- 联合优化:多个组件协同训练
- 可解释性:保留传统特征的生物学意义
- 准确率(Accuracy):整体分类准确性
- 精确率(Precision):类别预测精确性
- 召回率(Recall):类别覆盖完整性
- F1分数:精确率和召回率的调和平均
- DRRBP基准:与现有方法对比
- DRTail基准:尾纤维蛋白专项评估
- 交叉验证:确保模型泛化能力
- 病毒分类学研究:辅助病毒分类和命名
- 宿主范围预测:预测病毒的潜在宿主
- 进化关系分析:研究病毒-宿主协同进化
- 噬菌体治疗:筛选特定细菌的噬菌体
- 感染诊断:辅助病原体识别
- 抗生素替代:开发新型抗菌策略
- 生物制药:噬菌体药物开发
- 食品安全:病原菌检测和控制
- 环境监测:微生物群落分析
Viral-Host-Hunter是一个技术先进、功能完整的病毒宿主预测系统。项目具有以下特点:
- 技术创新:融合多种深度学习技术和传统方法
- 实用性强:提供完整的训练和预测流程
- 扩展性好:支持多种数据集和分类层级
- 性能优异:在多个基准测试中表现出色
- 应用广泛:在科研、临床、工业领域都有应用价值
该项目为病毒学研究和噬菌体治疗提供了强有力的计算工具,具有重要的科学价值和应用前景。