Batch에서 dsub 파이프라인을 실행하여 작업 조정

이 튜토리얼에서는 Batch에서 Nextflowdsub파이프라인을 실행하는 방법을 설명합니다. 특히 dsub 파이프라인 예시는 바이너리 정렬 맵(BAM) 파일의 DNA 시퀀싱 데이터를 처리하여 BAM 색인(BAI) 파일을 만듭니다.

이 튜토리얼은 Batch에 dsub를 사용하려는 Batch 사용자를 대상으로 합니다. dsub는 Google Cloud에서 일괄 처리 워크플로를 조정하기 위한 오픈소스 작업 스케줄러입니다. dsub와 함께 Batch를 사용하는 방법에 대한 자세한 내용은 Batch용 dsub 문서를 참고하세요.

Cloud Storage 버킷 만들기

gcloud CLI를 사용하여 샘플 dsub 파이프라인의 출력 파일을 저장할 Cloud Storage 버킷을 만들려면 gcloud storage buckets create 명령어를 실행합니다.

gcloud storage buckets create gs://BUCKET_NAME \
    --project PROJECT_ID

다음을 바꿉니다.

출력은 다음과 비슷합니다.

Creating gs://BUCKET_NAME/...

dsub 파이프라인 실행하기

샘플 dsub 파이프라인은 1,000 Genomes Project의 BAM 파일을 색인화하고 결과를 Cloud Storage 버킷에 출력합니다.

샘플 dsub 파이프라인을 실행하려면 다음 dsub 명령어를 실행합니다.

dsub \
    --provider google-batch \
    --project PROJECT_ID \
    --logging gs://BUCKET_NAME/WORK_DIRECTORY/logs \
    --input BAM=gs://genomics-public-data/1000-genomes/bam/HG00114.mapped.ILLUMINA.bwa.GBR.low_coverage.20120522.bam \
    --output BAI=gs://BUCKET_NAME/WORK_DIRECTORY/HG00114.mapped.ILLUMINA.bwa.GBR.low_coverage.20120522.bam.bai \
    --image quay.io/cancercollaboratory/dockstore-tool-samtools-index \
    --command 'samtools index ${BAM} ${BAI}' \
    --wait

다음을 바꿉니다.

  • PROJECT_ID: Google Cloud 프로젝트의 프로젝트 ID

  • BUCKET_NAME: 만든 Cloud Storage 버킷의 이름입니다.

  • WORK_DIRECTORY: 파이프라인이 로그와 출력을 저장하는 데 사용할 수 있는 새 디렉터리의 이름입니다. 예를 들어 workDir를 입력합니다.

dsub 파이프라인은 BAI 파일을 쓰고 Cloud Storage 버킷의 지정된 디렉터리에 로깅하는 Batch 작업을 실행합니다. 특히 dsub 저장소에는 samtools를 사용하여 --input 플래그에 지정된 BAM 파일의 색인을 생성하는 사전 빌드된 Docker 이미지가 포함되어 있습니다.

dsub 파이프라인 실행이 완료될 때까지 명령어가 완료되지 않으며 이는 Batch 작업이 예약된 시간에 따라 달라질 수 있습니다. 일반적으로 10분 정도 걸립니다. Batch는 일반적으로 몇 분 이내에 작업을 실행하기 시작하며 작업의 런타임은 약 8분입니다.

처음에는 명령어가 계속 실행되고 출력은 다음과 비슷합니다.

Job properties:
  job-id: JOB_NAME
  job-name: samtools
  user-id: USERNAME
Provider internal-id (operation): projects/PROJECT_ID/locations/us-central1/jobs/JOB_NAME
Launched job-id: JOB_NAME
To check the status, run:
  dstat --provider google-batch --project PROJECT_ID --location us-central1 --jobs 'JOB_NAME' --users 'USERNAME' --status '*'
To cancel the job, run:
  ddel --provider google-batch --project PROJECT_ID --location us-central1 --jobs 'JOB_NAME' --users 'USERNAME'
Waiting for job to complete...
Waiting for: JOB_NAME.

그런 다음 작업이 성공적으로 완료되면 명령어가 종료되고 출력은 다음과 비슷합니다.

  JOB_NAME: SUCCESS
JOB_NAME

이 출력에는 다음 값이 포함됩니다.

  • JOB_NAME: 작업의 이름입니다.

  • USERNAME: Google Cloud 사용자 이름

  • PROJECT_ID: Google Cloud 프로젝트의 프로젝트 ID

출력 파일 보기

gcloud CLI를 사용하여 샘플 dsub 파이프라인에서 생성된 출력 파일을 보려면 gcloud storage ls 명령어를 실행합니다.

gcloud storage ls gs://BUCKET_NAME/WORK_DIRECTORY \
    --project PROJECT_ID

다음을 바꿉니다.

  • BUCKET_NAME: 만든 Cloud Storage 버킷의 이름입니다.

  • WORK_DIRECTORY: dsub 명령어에서 지정한 디렉터리

  • PROJECT_ID: Google Cloud 프로젝트의 프로젝트 ID

출력은 다음과 비슷합니다.

gs://BUCKET_NAME/WORK_DIRECTORY/HG00114.mapped.ILLUMINA.bwa.GBR.low_coverage.20120522.bam.bai
gs://BUCKET_NAME/WORK_DIRECTORY/logs/

이 출력에는 BAI 파일과 작업의 로그가 포함된 디렉터리가 포함됩니다.