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 API, RPC API, Google 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 설명과 파이프라인 실행을 위해 필요한 Google Cloud 리소스를 기술하는 Resources 객체로 구성됩니다.

다음 샘플은 작은 표준(n1-standard-1) VM에서 단일 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 기술들이 있습니다. 예를 들면 다음과 같습니다.