基因学工作流程在生物信息学中至关重要,因为它们可以帮助研究人员分析和解释大量的基因组数据。但是,使用专用软件和复杂的依赖项创建一致且可重复的环境可能具有挑战性,因此与 CI/CD 工具的集成也很困难。

Azure 机器学习 (Azure ML) 是一个基于云的平台,提供一组全面的工具和服务,用于开发、部署和管理机器学习模型。Azure ML 原生提供出色的可重复性和可审核性功能,而没有多少工作流解决方案提供这些功能。它为运行工作流提供了一个高度集成和标准化的环境,确保每个步骤都以一致且可重复的方式执行。此功能对于需要使用具有特定依赖项的某些版本的多个工具和软件包的基因学工作流特别有用。

在这篇博文中,我们将展示 Azure ML 如何高效且有效地运行基因学工作流,以及作为机器学习模型训练和部署的端到端平台。图 1 说明了此类工作流的示例。

image1

图 1:在 Azure ML 中运行的示例基因学工作流,包含 3 个步骤。参考基因组输入数据集流入索引器步骤,而序列质量步骤从DNA序列文件夹(“.fastq”文件)获取数据。

Azure ML 具有全面的审核和日志记录功能,可跟踪和记录工作流的每个步骤,确保可跟踪性和可重复性。Azure ML 实现这些功能的关键功能之一是它支持用户能够为每个工作流步骤指定 Docker 和 Conda 环境,从而保证一致的环境执行。这些环境可以进行版本控制和集中共享。然后,管道中的工作流步骤可以引用特定环境。图 2 显示了一个这样的环境,bwa,版本“5”。当我们对环境定义进行修改时,新版本将被注册为“6”,但是,我们仍然可以继续使用旧版本。

image2

图 2:一个示例 Azure ML 环境,定义包含 BWA 生物信息学软件包的 Docker 映像。这是此环境的第 5 个版本,以“bwa”的名称注册。

与环境一样,Azure ML 支持用户创建的管道组件,这些组件可以集中注册以便在其他管道中重复使用,也可以进行版本控制,并带有其使用情况的审核日志。运行与基础进程生成的标准输出流和错误流一起自动记录。 还支持 MLflow 日志记录以及向所有资产和运行添加自定义标记。此功能可确保结果一致且可重复,从而节省用户的时间。示例版本化组件如图 3 所示。

image3

图 3:名为“BWA 索引器”的 Azure ML 组件。它是一段独立的、可重用的、受版本控制的代码段,在机器学习管道中执行一个步骤:在此实例中运行 bwa 索引器命令。

版本控制不限于环境和管道组件。Azure ML 的另一个基本功能是它支持对所有输入数据集和基因组数据进行版本控制,包括整体管道输入,以及中间步骤和最终输出(如果需要)。此功能使用户能够跟踪数据集更改,并确保在工作流的不同运行或其他运行中一致地使用相同的版本。

有许多基因学工作流引擎在并行处理文件时非常适合多次并行执行。但是,Azure ML 并行步骤支持在文件级别(一个接一个,或一次 3 个文件等)和文件块级别(每个进程 50 MB 数据,或每个节点 20 KB 文本等)并行运行,前提是使用应用程序支持,从而可以跨可自动缩放的弹性计算群集高效处理大型基因组数据集。管道甚至可以在笔记本电脑上本地运行,用于测试/开发阶段,当然还支持强大的基于 CPU 和 GPU 的 VM、低优先级或按需计算群集、 Spark 引擎和其他计算目标(如 Azure Kubernetes),使其灵活适用于不同的用例。

Azure ML 与 Azure DevOps 和 GitHub Actions for CI/CD 集成,使得在生产环境中部署和管理基因学工作流变得容易,从而使 GenomicsOps 成为可能。可以发布准备用于“生产用途”的已建立管道,并按需调用或从其他 Azure 服务(包括 Azure 数据工厂和 Synapse)调用。这意味着我们可以为自动运行管道或在数据可用时创建计划。

得益于其 Python SDK、命令行实用程序(az cli、ml 扩展)、REST-API 和用户友好的 UI,它使得从任何首选方式开发管道和启动管道运行成为可能,同时还可以轻松监控和管理工作流。也就是说,还支持基于事件的触发器和通知。例如,可以设置一个电子邮件警报,每当基因学管道完成执行时就会触发该警报。

由于计算和存储已分离,Azure ML 的 Jupyter 笔记本也可以访问存储在 Azure ML 数据存储或 blob 存储中的任何管道输入或输出,以进行任何上游或下游分析。

Azure ML 是一项托管的 PaaS 服务,使其成为基因学研究人员和生物信息学家可访问且易于设置的平台。此外,它还具有用于本地开发的Visual Studio Code集成,并具有用于管理管道项目,启用协作和Azure基于角色的访问控制(RBAC)的工作区概念。

总之,Azure ML 具有高级安全功能,包括 AD 身份验证、公共和专用终结点、基于订阅的事件触发器、由 Azure 存储服务支持的存储(附带静态和传输中加密)以及应用程序见解,使其成为可靠且经过验证的企业平台,也可以本机用于基因学研究。

有关演示如何设置和运行图 1 中所示的示例工作流的更详细教程,以及用于创建上述示例环境和组件的所有源代码,请查看此 GitHub 存储库:Truehand/AzureML-Genomics