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 は、1 つのメイン オペレーションで構成されています。

3 つの汎用オペレーション:

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 は、数百、数千のファイルに対して独立して実行できます。

Cloud Life Sciences API にアクセスするには、REST APIRPC API、または Google Cloud CLI を使用します。

Cloud Life Sciences API の実行

ワークフロー エンジンを作成する場合は、エンジンで次のような一連の手順を実行します。

  1. 入力ワークフロー言語を解析し、Cloud Life Sciences API が受け入れる一連の JSON 形式の Pipelineオブジェクトを構築する。エンジンは、Pipeline オブジェクトで定義された一連のリクエストを Cloud Life Sciences API に送信します。
  2. 次の手順に進む前に、リクエストをモニタリングし、リクエストによる出力をマージする。

最初の手順について、以下で詳しく説明します。

パイプラインは、pipelines.run メソッドを呼び出すことによって実行します。 このメソッドは、パイプラインの実行を開始するために、Pipeline オブジェクトと、オプションでラベルのセットを取得します。Pipeline オブジェクトは 1 つ以上のAction の説明と、パイプラインの実行に必要な Google Cloud リソースを記述する Resources オブジェクトで構成されます。

次のサンプルでは、小規模な標準(n1-standard-1)VM で 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 から VM にファイルをコピーし、ファイルの 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. VM が使用可能になると、Cloud Life Sciences API はパイプラインで定義された各アクションを実行します。これらのアクションでは、入力ファイルのコピー、データの処理、出力ファイルのコピーなどの操作を行います。
  3. パイプラインは、作成された VM の削除を含めて、割り当てられたリソースを解放します。

Variant Transforms ツールを使用する BigQuery ETL

BigQuery にライフ サイエンスのデータを読み込んで解析するには、Variant Transforms ツールを使用します。

Variant Transforms は Apache Beam をベースとし、Dataflow を使用するオープンソースのツールです。Variant Transforms は、ゲノムデータを変換して解析のために Google Cloud に読み込むための推奨される方法です。

ライフ サイエンス データでのその他の Google Cloud テクノロジーの使用

Cloud Life Sciences と連携し、ライフ サイエンス データの分析や処理に使用できる Google Cloud のテクノロジーはいくつかあります。たとえば次のようなものです。

  • BigQuery: BigQuery を使用して、ゲノム バリアントなどの大規模な構造化データセットのアドホック クエリを実行します。使用例には、バリアントの分析や、ゲノムの位置的な間隔や重複によって記述されるデータを分析するための複雑な JOIN クエリの実行などがあります。Variant Transforms ツールでは、VCF ファイルを変換して BigQuery に直接読み込むことが可能です。
  • Cloud Storage: Cloud Storage を、大規模な解析のために BigQuery に読み込むことが可能な未加工 VCF ファイル、FASTQ ファイル、BAM ファイルのオブジェクト ストアとして使用します。
  • Dataflow: Variant Transforms ツールでは、Dataflow を使用して BigQuery にデータを読み込むスケーラビリティの高いデータ処理パイプラインを作成します。