本教程介绍了一种构建深度学习算法的简单方法,用于对宏基因组数据进行二分类序列分类。
需要JoVE订阅才能观看此内容。 请登录或开始免费试用
本教程介绍了一种构建深度学习算法的简单方法,用于对宏基因组数据进行二分类序列分类。
在许多宏基因组数据分析中,物种分类、基因功能分类和病毒宿主分类等多种生物序列分类任务都是常见的处理流程。由于宏基因组数据包含大量新物种和新基因,许多研究都需要高性能的分类算法。生物学家在为特定任务寻找合适的序列分类与注释工具时常面临挑战,且往往因缺乏必要的数学与计算知识而无法自行构建相应的算法。近年来,深度学习技术成为热门研究方向,在多种分类任务中展现出显著优势。迄今为止,已开发出许多高度封装的深度学习软件包,使得生物学家无需深入了解算法细节,即可根据自身需求构建深度学习框架。本教程将指导读者构建一个易于使用的序列分类深度学习框架,整个过程无需具备充足的数学知识或编程技能。所有代码均已优化并集成于虚拟机中,用户可直接使用自己的数据运行代码。
宏基因组测序技术绕过了菌株分离过程,直接对环境样本中的总DNA进行测序。因此,宏基因组数据包含来自不同生物体的DNA,且大多数生物序列来源于当前数据库中尚未收录的新型生物体。根据不同的研究目的,生物学家需要从多个角度对这些序列进行分类,例如物种分类1、病毒-细菌分类2,3,4、染色体-质粒分类3,5,6,7,以及基因功能注释(如抗生素抗性基因分类8和毒力因子分类9)。由于宏基因组数据包含大量新物种和新基因,不依赖已知数据库进行序列分类(包括DNA分类和蛋白质分类)的从头预测(ab initio)算法,成为宏基因组数据分析中的重要方法。然而,此类算法的设计需要专业的数学知识和编程技能,因此许多生物学家及算法设计初学者在构建满足自身需求的分类算法时面临困难。
随着人工智能的发展,深度学习算法已广泛应用于生物信息学领域,以完成宏基因组分析中的序列分类等任务。为了帮助初学者理解深度学习算法,我们将在下文以通俗易懂的方式描述该算法。
深度学习技术的概述如图1所示。深度学习算法的核心技术是人工神经网络,其灵感来源于人脑的结构。从数学角度来看,人工神经网络可被视为一个复杂的函数。每个对象(如DNA序列、照片或视频)首先被数字化,然后将数字化后的对象输入该函数中。人工神经网络的任务是根据输入数据给出正确的响应。例如,若构建一个人工神经网络用于执行二分类任务,则该网络应对每个对象输出一个介于0到1之间的概率得分。对于阳性对象,神经网络应给出较高的分数(例如高于0.5的分数),而对于阴性对象则应给出较低的分数。为实现这一目标,人工神经网络需通过训练和测试过程进行构建。在这些过程中,从已知数据库中下载数据,并将其划分为训练集和测试集。每个对象以适当的方式被数字化,并赋予标签(阳性对象标记为"1",阴性对象标记为"0")。在训练过程中,将训练集中的数字化数据输入神经网络。人工神经网络构建一个损失函数,用于表示输入对象的输出得分与其对应标签之间的差异。例如,若输入对象的标签为"1",而输出得分为"0.1",则损失函数值较高;而若输入对象的标签为"0",输出得分为"0.1",则损失函数值较低。人工神经网络采用特定的迭代算法,调整神经网络的参数以最小化损失函数。当损失函数无法再明显降低时,训练过程结束。最后,使用测试集中的数据对已固定的神经网络进行测试,评估其为新对象正确计算标签的能力。有关深度学习算法的更多原理,可参见LeCun 等的综述10。
尽管深度学习算法的数学原理可能较为复杂,但近年来已开发出许多高度封装的深度学习软件包,程序员只需几行代码即可直接构建一个简单的人工神经网络。
为了帮助生物学家和算法设计初学者更快地开始使用深度学习,本教程提供了一个构建易于使用的序列分类深度学习框架的指南。该框架采用"one-hot"编码形式作为数学模型,将生物序列数字化,并使用卷积神经网络执行分类任务(参见补充材料)。用户在使用本指南前唯一需要准备的是四个"fasta"格式的序列文件。第一个文件包含训练过程中阳性类别的所有序列(记为"p_train.fasta");第二个文件包含训练过程中阴性类别的所有序列(记为"n_train.fasta");第三个文件包含测试过程中阳性类别的所有序列(记为"p_test.fasta");最后一个文件包含测试过程中阴性类别的所有序列(记为"n_test.fasta")。本教程流程图的概览见图2,更多细节将在下文提及。
访问受限。请登录或开始试用以查看此内容。
1. 虚拟机的安装
2. 创建共享文件夹以在物理主机和虚拟机之间交换文件
3. 准备训练集和测试集的文件
4. 使用"one-hot"编码形式对生物序列进行数字化
5. 训练和测试人工神经网络
访问受限。请登录或开始试用以查看此内容。
在我们之前的研究中,我们采用与本教程类似的方法,开发了一系列用于宏基因组数据的序列分类工具3,11,12。作为示例,我们已将之前研究中训练集和测试集子集的序列文件3,11存入虚拟机中。
Fang & Zhou11 旨在从病毒组数据中鉴定完整的和部分的原核病毒病毒粒子蛋白。文件 "p_train.fasta" 包含训练集的病毒病毒粒子蛋白片段;文件 "n_train.fasta" 包含训练集的病毒非病毒粒子蛋白片段;文件 "p_test.fasta" 包含测试集的病毒病毒粒子蛋白片段;文件 "n_test.fasta" 包含测试集的病毒非病毒粒子蛋白片段。用户可直接执行以下两条命令以构建神经网络:
./onehot_en...
访问受限。请登录或开始试用以查看此内容。
本教程面向生物学家和算法设计初学者,介绍了如何构建一个易于使用的深度学习框架,用于宏基因组数据中生物序列的分类。本教程旨在帮助读者直观理解深度学习,并解决初学者在安装深度学习软件包和编写算法代码时常遇到的困难。对于一些简单的分类任务,用户可直接使用该框架完成分类工作。
考虑到许多生物学家对 Linux 操作系统的命令行并不熟悉,我们已在虚拟机中预装了所有依赖软件。通过这种方式,用户可直接在虚拟机中按照上述方案运行代码。此外,如果用户熟悉 Linux 操作系统和 Python 编程,也可以在服务器或本地计算机上直接运行本方案。在此情况下,用户需预先安装以下依赖软件:
Python 2.7.12 (https://www.python.org/)
Python 软件包:
numpy 1.13.1 (http://www.numpy.org/)
h5py 2.6.0 (http://www.h5py.org/)
TensorFlow...
访问受限。请登录或开始试用以查看此内容。
作者声明不存在利益冲突。
本研究由国家自然科学基金(81925026、82002201、81800746、82102508)资助。
访问受限。请登录或开始试用以查看此内容。
| 姓名 | 公司 | 目录编号 | 评论 |
|---|---|---|---|
| PC 或服务器 | NA | NA | 建议内存:>6GB |
| VirtualBox 软件 | NA | NA | 链接:https://www.virtualbox.org |
访问受限。请登录或开始试用以查看此内容。