이 튜토리얼에서는 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
다음을 바꿉니다.
BUCKET_NAME
: 버킷의 전역 고유 이름입니다.PROJECT_ID
: Google Cloud 프로젝트의 프로젝트 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 프로젝트의 프로젝트 IDBUCKET_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 파일과 작업의 로그가 포함된 디렉터리가 포함됩니다.