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 為這些工具和系統提供後端,為以 Docker 為基礎的工作提供工作排程,這些工作會在 Compute Engine 容器上執行次基因體分析。您可以從任何地方提交批次作業,並在 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 API 接受的 JSON 格式 Pipeline 物件。引擎會將 Pipeline 物件中定義的一系列要求傳送至 Cloud Life Sciences API。
  2. 監控要求並合併要求的輸出內容,然後再繼續執行下一個步驟。

以下進一步說明第一個步驟:

管道會透過呼叫 pipelines.run 方法來執行。這個方法會使用 Pipeline 物件和選用的標籤組合,開始執行管道。Pipeline 物件包含一或多個 Action 說明,以及 Resources 物件,用於說明執行管道所需的 Google Cloud 資源。

以下範例說明如何設定簡單的 Pipeline,在小型標準 (n1-standard-1) VM 上執行單一 Action (在終端機上列印「Hello, world」):

"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 是開放原始碼工具,以 Apache Beam 為基礎,並使用 Dataflow。建議使用 Variant Transforms 轉換基因體資料,並將資料載入 Google Cloud以便進一步分析。

使用其他 Google Cloud 技術搭配生命科學資料

有幾種 Google Cloud 技術可與 Cloud Life Sciences 互動,或用於分析及處理生命科學資料。包括: