在 AWS 上运行 NVIDIA Parabricks
本指南介绍如何在 AWS HealthOmics 上运行 Parabricks,分为两部分
第一部分 介绍如何使用 EC2 实例运行 Parabricks 工作流程。对于此方法,我们将在 AWS 上启动一个机器实例,直接从 NVIDIA 拉取 Parabricks 容器,并运行一个示例数据集。此选项在 Parabricks 功能方面提供了最大的灵活性,并且可以轻松集成到更大的管道和其他 AWS 服务中。
第二部分 介绍如何使用 Amazon HealthOmics 运行 Parabricks 工作流程。这是亚马逊的生物信息学研究平台,允许您在一个地方存储数据、运行分析管道并查看结果。使用 HealthOmics 有两种方法。 Ready2Run 工作流程 是预制的分析管道,用户可以点击他们想要运行的管道,点击他们想要使用的数据,然后点击运行,而无需离开控制台 GUI。高级用户也可以使用 AWS CLI 启动这些作业。运行 HealthOmics 的另一种方法是通过私有工作流程。如果您想更好地控制工作流程并希望进行编辑以完全满足您的需求,这些方法非常有用。
Parabricks 是一个加速计算框架,支持基因组学行业的各种应用,主要支持 DNA、RNA 和体细胞突变检测应用的分析工作流程。凭借行业领先的计算时间,Parabricks 使用多种行业验证的变异调用器快速将 FASTQ 文件转换为 VCF,并且还包括 QC 和注释这些变异的能力。由于 Parabricks 基于公开可用的工具,因此结果易于验证,并且可以与其他公开可用的数据集结合使用。
更多信息请访问 Parabricks 产品页面。
详细的安装、使用和调优信息请参考 Parabricks 用户指南。
在 EC2 实例上运行工作流程
在本节中,我们将展示如何在 AWS 上启动 EC2 实例。
首先导航到 AWS 上的 EC2 控制台。页面应如下所示

在左侧边栏的“实例”下,单击“实例”。在这里我们可以看到我们创建的所有实例。让我们创建一个新的实例来安装 Parabricks,方法是单击右上角的“启动实例”。

在本指南中,我们将实例命名为“Parabricks”,但它可以命名为任何名称。

我们将使用一个 Amazon Machine Image (AMI),其中包含 Parabricks 的所有软件要求。在“应用程序和操作系统映像”下,搜索“Deep Learning AMI”并选择任何最新版本。

为了安装和测试 Parabricks,我们将需要一个至少有 1 个 GPU 的实例。在“实例类型”下,选择“比较实例类型”。在搜索栏中键入“g4dn.4xlarge”,然后从选项列表中选择该实例类型。此实例具有 1 个 NVIDIA T4 GPU,带有 16 个 vCPU 和 64 GB 的 RAM。在 AWS 文档 中阅读有关 g4dn 实例的更多信息。

如果我们想使用 SSH 登录到实例,我们需要选择一个密钥对。在本教程中,我们将使用“EC2 Instance Connect”登录到实例,这不需要密钥对。在“密钥对”下拉列表中,我们将选择第一个选项“不使用密钥对继续”。
但是,如果您确实想生成密钥对,请选择“创建新密钥对”,为密钥对命名,然后选择“创建密钥对”。密钥将自动下载。将其保存以备后用。

最后,我们必须增加存储配额,以便当我们下载并运行测试数据时,我们有足够的磁盘空间。在“配置存储”下,将默认根卷大小更改为 500 GB。

我们的实例现在已准备好启动。选择“启动实例”。

实例应开始启动。导航回左侧面板的“实例”部分,然后选择“实例”以确认实例正在运行。

单击实例旁边的复选框,右上角将出现一个框,显示“连接”。单击该按钮。如果您在前几步中生成了密钥对,则可以使用它通过 SSH 客户端进行连接。但是,我们将使用“EC2 Instance Connect”进行连接,这不需要密钥对。单击连接。

现在我们看到了一个完整的终端,其中预装了 NVIDIA GPU 优化的 AMI。我们现在准备开始安装 Parabricks。

我们将把 Parabricks 安装到我们刚刚创建的实例中。为此,我们将使用 NVIDIA GPU Cloud (NGC) 下载 Parabricks Docker 镜像。
访问 NGC 上的 Parabricks 页面 以获取最新版本 Parabricks 的 Docker pull 命令。

回到我们的 EC2 实例中,让我们运行 docker pull 命令
$ docker pull nvcr.io/nvidia/clara/clara-parabricks:4.4.0-1

现在 Parabricks 已安装!让我们运行一些示例数据来测试它。
Parabricks 提供了一个小的示例数据集,作为安装和硬件的测试,可以使用以下命令下载
wget -O parabricks_sample.tar.gz "https://s3.amazonaws.com/parabricks.sample/parabricks_sample.tar.gz"
下载完成后,我们可以使用以下命令解压数据
tar xzvf parabricks_sample.tar.gz
完成后,parabricks_sample 文件夹应如下所示

最后,我们可以在其上运行任何 Parabricks 管道。让我们使用以下命令运行 germline 管道
$ docker run \
--rm \
--gpus all \
--volume `pwd`:`pwd` \
--workdir `pwd`/parabricks_sample \
nvcr.io/nvidia/clara/clara-parabricks:4.4.0-1 \
pbrun germline \
--ref Ref/Homo_sapiens_assembly38.fasta \
--in-fq Data/sample_1.fq.gz Data/sample_2.fq.gz \
--knownSites Ref/Homo_sapiens_assembly38.known_indels.vcf.gz.tbi \
--out-bam output.bam \
--out-variants germline.vcf \
--out-recal-file recal.txt
当我们看到 Parabricks 横幅并且 ProgressMeter 开始填充值时,我们可以判断 Parabricks 已正确启动

这应该需要大约 10 分钟才能完成运行。完成后,我们应该在 sample 目录中看到输出文件。
恭喜,我们刚刚运行了第一个 Parabricks 作业!
在 Amazon HealthOmics 上运行工作流程
ReadyRun 工作流程
Ready2Run 工作流程是预制的工作流程,AWS HealthOmics 上的任何人都可以使用。
导航到 AWS HealthOmics 主页,然后单击“Ready2Run 工作流程”。
在搜索栏中键入“parabricks”以查看所有可用的 Parabricks 工作流程。

单击任何工作流程都会将我们带到工作流程主页,我们可以在其中查看工作流程的功能描述和图表、接受的参数以及运行历史记录。

单击“创建运行”并输入名称、输出文件的目标位置和输入参数。

回到 HealthOmics 控制台,您可以单击左侧边栏中的“运行”,查看作业的运行过程和完成状态

单击作业将显示如下信息
作业是否完成,
输入是什么,
以及输出在哪里。

就是这样!在 AWS HealthOmics Ready2Run 上运行的设计宗旨是简单直观。您可以使用相同的步骤运行任意数量的提供的工作流程。
对于想要更好地控制工作流程运行方式的用户,我们也提供私有工作流程。这些工作流程在本地编辑,然后在 AWS HealthOmics 平台上运行,因此用户可以利用 HealthOmics 控制台,同时保持工作流程本身的灵活性。
Parabricks 私有工作流程和完整说明可在我们的 GitHub 存储库中找到。
我们鼓励您通过使用自己的数据、尝试其他管道以及全面探索 Parabricks 的功能来扩展本指南中的演示。查看 文档 以获取有关可用不同管道的更多信息。您还可以在 Parabricks 论坛 上找到我们的在线开发者社区,您可以在学习如何使用 Parabricks 时提出问题并搜索答案。