本教程描述了构建深度学习算法的简单方法,用于执行计量数据的 2 级序列分类。
在许多元基因组数据分析中,预计会执行各种生物序列分类任务,如物种分类、基因功能分类和病毒宿主分类。由于元基因组数据包含大量新物种和基因,许多研究都需要高性能的分类算法。生物学家在为特定任务找到合适的序列分类和注释工具时经常遇到挑战,而且由于缺乏必要的数学和计算知识,往往无法自行构建相应的算法。深度学习技术最近成为热门话题,在许多分类任务中显示出很强的优势。迄今为止,许多高度包装的深度学习包已经开发出来,这使得生物学家能够根据自己的需要构建深度学习框架,而无需深入了解算法细节。在本教程中,我们为构建一个易于使用的序列分类深度学习框架提供了指导,而无需足够的数学知识或编程技能。所有代码都在虚拟机器中进行优化,以便用户可以使用自己的数据直接运行代码。
元基因组测序技术绕过了菌株分离过程,直接对环境样本中的总DNA进行测序。因此,元基因组数据包含来自不同生物体的DNA,大多数生物序列来自当前数据库中不存在的新生物体。根据不同的研究目的,生物学家需要从不同的角度对这些序列进行分类,如分类分类1、病毒细菌分类2、3、4、染色体质粒分类3、5、6、7和基因功能注释(如抗生素耐药性基因分类8和毒因子分类9)).由于元基因组数据包含大量新颖的物种和基因,因此不依赖已知数据库进行序列分类(包括DNA分类和蛋白质分类)的ab initio算法是计量数据分析的重要方法。然而,这种算法的设计需要专业的数学知识和编程技能:因此,许多生物学家和算法设计初学者很难构建一个分类算法来满足自己的需要。
随着人工智能的发展,深度学习算法已广泛应用于生物信息学领域,以完成计量学分析序列分类等任务。为了帮助初学者理解深度学习算法,我们以易于理解的方式描述算法。
图1显示了深度学习技巧的概况。深度学习算法的核心技术是人工神经网络,它受到人脑结构的启发。从数学角度来看,人工神经网络可以被视为一个复杂的功能。每个对象(如DNA序列、照片或视频)首先进行数字化。然后,数字化对象导入到函数中。人工神经网络的任务是根据输入数据给出正确的响应。例如,如果构建人工神经网络以执行 2 级分类任务,则网络应为每个对象输出 0-1 之间的概率分数。神经网络应给正对象一个更高的分数(如高于0.5的分数),同时给负对象一个较低的分数。为了实现这一目标,通过培训和测试过程构建了人工神经网络。在这些过程中,从已知数据库下载数据,然后分为培训集和测试集。每个对象都以正确的方式进行数字化,并给出一个标签(正对象为”1″,负对象为”0″)。在培训过程中,培训集中的数字化数据被输入到神经网络中。人工神经网络构建的损失函数表示输入对象的输出分数与对象的相应标记之间的差异。例如,如果输入对象的标签为”1″,而输出分数为”0.1″,则损失函数会很高:如果输入对象的标签为”0″,而输出分数为”0.1″,则损失函数将较低。人工神经网络采用特定的迭次算法来调整神经网络的参数,以最大限度地减少损失功能。当损失功能不能明显进一步降低时,培训过程就结束了。最后,测试组中的数据用于测试固定神经网络,并评估神经网络计算新对象正确标签的能力。在 LeCun 等人的评论中可以找到更多深度学习算法的原则。10.
虽然深度学习算法的数学原理可能很复杂,但最近已经开发出许多高度包装的深度学习包,程序员可以直接构建一个只有几行代码的简单人工神经网络。
为了帮助生物学家和算法设计初学者更快地开始使用深度学习,本教程为构建序列分类的易于使用的深度学习框架提供了指导。此框架使用”一热”编码形式作为数学模型来数字化生物序列,并使用卷积神经网络执行分类任务(见 补充材料)。用户在使用此准则之前唯一需要做的是以”fasta”格式准备四个序列文件。第一个文件包含培训过程的正类的所有序列(指”p_train.fasta”):第二个文件包含培训过程的负类的所有序列(指”n_train.fasta”):第三个文件包含测试过程的阳性类的所有序列(指”p_test.fasta”):最后一个文件包含测试过程的阴性类的所有序列(指”n_test.fasta”)。本教程的流程图概述详情见 图2,详情见下文。
本教程为生物学家和算法设计初学者提供了如何构建一个易于使用的深层学习框架,用于在元基因组数据中进行生物序列分类。本教程旨在提供对深度学习的直观理解,并解决初学者在安装深度学习包和为算法编写代码时经常遇到的挑战。对于一些简单的分类任务,用户可以使用该框架执行分类任务。
考虑到许多生物学家不熟悉Linux操作系统的指挥线,我们预装了虚拟机器中…
The authors have nothing to disclose.
这项研究得到了中国国家自然科学基金(81925026、82002201、81800746、82102508)的资助。