该项目通过利用图神经网络来解析和预测化学分子结构对HIV的活性,展示了深度学习在药物发现领域的应用潜力。项目的核心是如何从分子结构中有效提取特征,并利用这些特征进行准确的活性预测。通过解决数据不平衡问题,以及优化模型结构和参数,该项目旨在提高预测HIV活性化合物的准确性。以下是对项目各部分的更加详细的介绍:

数据集介绍

该数据集源自药物治疗计划(Drug Treatment Program, DTP)的抗HIV病毒筛选项目,涉及超过40,000种化合物对HIV复制能力的测试。这些化合物的筛选结果被分为三个类别:

  • 确认无活性(CI)
  • 确认有活性(CA)
  • 确认中等活性(CM)

为了简化分析,项目将后两类(CA和CM)合并,形成一个二分类问题:无活性(CI)与有活性(CA和CM)。原始数据包含SMILES格式的分子结构,以及与这些结构相关的活性标签。

训练集示例如下:

项目结构和文件

3.1 config.py

该文件包含模型构建和训练所需的各种超参数。项目中采用了基于贝叶斯的超参数优化策略,通过“mango”库在给定的参数空间内搜索最优的参数组合。

3.2 dataset.py

这个脚本基于torch_geometric包扩展了Dataset类。通过使用rdkit库的Chem包的Chem.MolFromSmiles函数计算分子的性质,这些性质被作为特征输入到图神经网络中进行计算。

3.3 dataset_featurer.py

这是dataset.py的简化版,其功能是用deepchem库中的feat.MolGraphConvFeaturizer函数来获取分子特征,替代了dataset.py中的相关功能。

3.4 model.py

模型构建部分采用了基于注意力机制的图卷积层、Topk池化层和全局池化层来提取特征。然后,这些特征被输入到三层全连接层,以生成最终的预测结果。

3.5 oversampling_data.py

由于HIV数据集在活性和无活性分子数量上存在不平衡,该脚本通过对活性分子进行过采样来减少这种不平衡的影响。

3.6 train.py

该脚本负责模型的训练、验证和保存。它还包括使用sklearn库来计算准确率、精确率、召回率和F1分数等评估指标。

3.7 utils.py

这个脚本提供了一系列辅助功能,比如加载smiles字符串到rdkit分子对象,以及将smiles字符串转换为图形表示。

项目资源下载

发表回复

您的电子邮箱地址不会被公开。 必填项已用 * 标注

作者

arwin.yu.98@gmail.com

相关文章

心律失常的数据分析与模型分类项目

项目背景 心脏疾病一直是全球健康的主要挑战之...

读出全部

困倦检测报警项目

困倦检测系统 在此 Python 项目中,我...

读出全部