Cloud Life Sciences 概览

概览

Cloud Life Sciences 是一套用于管理、处理和转换生命科学数据的服务和工具。它还可以使用扩缩能力强且合规的基础架构来提供高级数据分析和运营工作流。Cloud Life Sciences 包括 Cloud Life Sciences API 以及多种提取、转换和加载 (ETL) 工具等。

本页面简要介绍了 Cloud Life Sciences(以及更宽泛的 Google Cloud)提供的服务和工具,以及如何将其功能用于处理生命科学数据。

Cloud Life Sciences API 概览

Cloud Life Sciences API 提供了在 Google Cloud 上执行一系列 Compute Engine 容器的便捷方法。Cloud Life Sciences API 包含一项主要操作:

以及三项常规操作:

Cloud Life Sciences API 面向希望构建或创建作业管理工具(如 dsub)或工作流引擎(如 Cromwell)的开发者。Cloud Life Sciences API 为这些工具和系统提供后端,从而为在 Compute Engine 容器上执行二级基因组分析的 Docker 任务提供作业调度。您可以随时随地提交批量操作,并在 Google Cloud 上运行这些操作。您可以手动打包 Docker 映像,也可以使用现有的 Docker 映像。

使用 Cloud Life Sciences API 时,最常见的使用场景是运行现有的工具或自定义脚本来在 Cloud Storage 中读写文件。Cloud Life Sciences API 可独立运行数百或数千个文件。

您可以使用 REST APIRPC APIGoogle Cloud CLI 来访问 Cloud Life Sciences API。

运行 Cloud Life Sciences API

如果您要创建工作流引擎,那么引擎通常会采取如下一系列步骤:

  1. 解析输入工作流语言并构建 Cloud Life Sciences 可接受的一系列 JSON 格式 Pipeline 对象。引擎会将 Pipeline 对象中定义的一系列请求发送到 Cloud Life Sciences API。
  2. 请监控请求并合并请求中的输出,然后继续执行下一步。

下面更深入地说明了第一步:

通过调用 pipelines.run 方法来运行流水线。 此方法接受 Pipeline 对象和一组可选的标签来开始运行流水线。Pipeline 对象由一个或多个 Action 说明以及描述运行流水线所需的 Google Cloud 资源的 Resources 对象构成。

以下示例展示了如何配置在小型标准 (n1-standard-1) 虚拟机上运行一个 Action(在终端上输出“Hello,world”字样)的简单 Pipeline

"pipeline": {
  "actions": [
    {
      "imageUri": "bash",
      "commands": [ "-c", "echo Hello, world" ]
    },
  ],
  "resources": {
    "regions": ["us-central11"],
    "virtualMachine": {
      "machineType": "n1-standard-1",
    }
  }
}

以下示例展示了如何配置执行多条命令的 Action 对象。Action 将文件从 Cloud Storage 复制到虚拟机,计算并验证文件的 SHA-1 哈希值,然后将文件写回到原来的 Cloud Storage 存储分区中。

"actions": [
  {
    "imageUri": "google/cloud-sdk",
    "commands": [ "gsutil", "cp", "gs://my-bucket/input.in", "/tmp" ]
  },
  {
    "imageUri": "bash",
    "commands": [ "-c", "sha1sum /tmp/in > /tmp/test.sha1" ]
  },
  {
    "imageUri": "google/cloud-sdk",
    "commands": [ "gsutil", "cp", "/tmp/output.sha1", "gs://my-bucket/output.sha1" ]
  },
],

调用 pipelines.run 会返回一个长时间运行的操作,您可以通过查询该操作获取流水线的状态或取消流水线。

Cloud Life Sciences API 请求的生命周期

在 Cloud Life Sciences API 上运行的流水线的典型生命周期如下所示:

  1. Cloud Life Sciences API 会分配运行流水线所需的 Google Cloud 资源。最低限度上,这通常涉及到为 Compute Engine 虚拟机 (VM) 分配磁盘空间。
  2. 在虚拟机转为可用状态后,Cloud Life Sciences API 会运行流水线中定义的每项操作。这些操作执行诸如复制输入文件、处理数据或复制输出文件等操作。
  3. 流水线会释放任何已分配的资源,包括删除已创建的所有虚拟机。

使用 Variant Transforms 工具的 BigQuery ETL

要将生命科学数据加载到 BigQuery 中以执行进一步分析,您可以使用 Variant Transforms 工具。

Variant Transforms 是一种开源工具, 基于 Apache Beam 的工具 并使用 Dataflow。我们推荐使用 Variant Transforms 对基因组数据执行转换,并将其加载到 Google Cloud 中,以供进一步分析。

将其他 Google Cloud 技术与生命科学数据结合使用

有几种 Google Cloud 技术可与 Cloud Life Sciences 互动,这些技术还可以用于分析和处理生命科学数据。其中包括:

  • BigQuery:将 BigQuery 用于大量结构化数据集(例如基因组变异数据集)的临时查询。使用场景包括分析变异运行复杂的 JOIN 查询来分析由基因组区域或重叠所描述的数据。Variant Transforms 工具提供了转换 VCF 文件并将其直接加载到 BigQuery 中的一种方法。
  • Cloud Storage:Cloud Storage 可以用作原始 VCF、FASTQ 和 BAM 文件的对象存储,随后您可以使用 Variant Transforms 将这些数据加载到 BigQuery 中,以进行大规模分析。
  • Dataflow:Variant Transforms 工具使用 Dataflow 创建高度可扩缩的数据处理流水线,将数据加载到 BigQuery 中。