概要
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 つのメイン オペレーションで構成されています。
projects.locations.pipelines.run
: パイプラインを実行します。
3 つの汎用オペレーション:
projects.locations.operations.get
: パイプラインの最新の状態を取得します。projects.locations.operations.list
: Google Cloud プロジェクト内の Google Cloud リージョンで実行されているすべてのパイプラインを一覧表示します。projects.locations.operations.cancel
: パイプラインをキャンセルします。
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 API、RPC API、または Google Cloud CLI を使用します。
Cloud Life Sciences API の実行
ワークフロー エンジンを作成する場合は、エンジンで次のような一連の手順を実行します。
- 入力ワークフロー言語を解析し、Cloud Life Sciences API が受け入れる一連の JSON 形式の
Pipeline
オブジェクトを構築する。エンジンは、Pipeline
オブジェクトで定義された一連のリクエストを Cloud Life Sciences API に送信します。 - 次の手順に進む前に、リクエストをモニタリングし、リクエストによる出力をマージする。
最初の手順について、以下で詳しく説明します。
パイプラインは、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 で実行されるパイプラインの一般的なライフサイクルは次のとおりです。
- Cloud Life Sciences API は、パイプラインの実行に必要な Google Cloud リソースを割り当てます。通常、これには少なくとも Compute Engine 仮想マシン(VM)をディスク領域とともに割り当てる必要があります。
- VM が使用可能になると、Cloud Life Sciences API はパイプラインで定義された各アクションを実行します。これらのアクションでは、入力ファイルのコピー、データの処理、出力ファイルのコピーなどの操作を行います。
- パイプラインは、作成された 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 にデータを読み込むスケーラビリティの高いデータ処理パイプラインを作成します。