Questo tutorial spiega come eseguire una pipeline
dsub
su Batch.
Nello specifico, la pipeline dsub
di esempio elabora i dati di sequenziamento del DNA in un
file Binary Alignment Map (BAM)
per creare un file indice BAM (BAI).
Questo tutorial è destinato agli utenti Batch che vogliono utilizzare
dsub
con Batch.
dsub
è uno scheduler di job open source
per orchestrare i workflow di elaborazione batch su Google Cloud.
Per saperne di più su come utilizzare
Batch con dsub
, consulta la
documentazione di dsub
per Batch.
Crea un bucket Cloud Storage
Per creare un bucket Cloud Storage per archiviare i file di output della
pipeline di esempio dsub
utilizzando gcloud CLI, esegui il
comando gcloud storage buckets create
:
gcloud storage buckets create gs://BUCKET_NAME \
--project PROJECT_ID
Sostituisci quanto segue:
BUCKET_NAME
: un nome univoco a livello globale per il bucket.PROJECT_ID
: l' ID progetto del tuo progetto Google Cloud .
L'output è simile al seguente:
Creating gs://BUCKET_NAME/...
Esegui la pipeline dsub
La pipeline di esempio dsub
indicizza un file BAM dal
progetto 1000 Genomes
e restituisce i risultati in un bucket Cloud Storage.
Per eseguire la pipeline di esempio dsub
, esegui questo comando 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
Sostituisci quanto segue:
PROJECT_ID
: l' ID progetto del tuo progetto Google Cloud .BUCKET_NAME
: il nome del bucket Cloud Storage che hai creato.WORK_DIRECTORY
: il nome di una nuova directory che la pipeline può utilizzare per archiviare log e output. Ad esempio, inserisciworkDir
.
La pipeline dsub
esegue un
job batch che scrive il file BAI
e i log nella directory specificata nel bucket Cloud Storage.
Nello specifico, il repository dsub
contiene un'immagine Docker predefinita che utilizza samtools
per indicizzare il file BAM specificato nel flag --input
.
Il comando non viene completato finché non viene eseguita la pipeline dsub
,
il cui completamento può variare in base alla pianificazione del job Batch.
In genere, questa operazione richiede circa 10 minuti: Batch di solito inizia
a eseguire il job entro pochi minuti e la durata del job è di circa 8 minuti.
All'inizio, il comando è ancora in esecuzione e l'output è simile al seguente:
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.
Al termine del job, il comando termina e l'output è simile al seguente:
JOB_NAME: SUCCESS
JOB_NAME
Questo output include i seguenti valori:
JOB_NAME
: il nome del job.USERNAME
: il tuo Google Cloud nome utente.PROJECT_ID
: l' ID progetto del tuo progetto Google Cloud .
Visualizzare i file di output
Per visualizzare i file di output creati dalla pipeline di esempio dsub
utilizzando
gcloud CLI, esegui il
comando gcloud storage ls
:
gcloud storage ls gs://BUCKET_NAME/WORK_DIRECTORY \
--project PROJECT_ID
Sostituisci quanto segue:
BUCKET_NAME
: il nome del bucket Cloud Storage che hai creato.WORK_DIRECTORY
: la directory che hai specificato nel comandodsub
.PROJECT_ID
: l' ID progetto del tuo progetto Google Cloud .
L'output è simile al seguente:
gs://BUCKET_NAME/WORK_DIRECTORY/HG00114.mapped.ILLUMINA.bwa.GBR.low_coverage.20120522.bam.bai
gs://BUCKET_NAME/WORK_DIRECTORY/logs/
Questo output include il file BAI e una directory contenente i log del job.