Questo tutorial spiega come eseguire Nextflow
pipeline di dati in batch. Nello specifico, questo tutorial esegue
esempio di pipeline per le scienze biologiche di rnaseq-nf
da Nextflow,
che quantifica le caratteristiche genomiche dai dati di lettura breve utilizzando
RNA-Seq.
Questo tutorial è rivolto agli utenti di Batch che vogliono utilizzare Nextflow con Batch.
Nextflow è un software open source per l'orchestrazione dei flussi di lavoro di bioinformatica.
Obiettivi
Completando questo tutorial imparerai a:
- Installa Nextflow in Cloud Shell.
- Creare un bucket Cloud Storage.
- Configura una pipeline Nextflow.
- Esegui una pipeline di esempio utilizzando Nextflow su Batch.
- Visualizza gli output della pipeline.
- Eseguire la pulizia per evitare che ti vengano addebitati costi aggiuntivi in uno dei seguenti modi:
- Eliminare un progetto.
- Eliminare singole risorse.
Costi
In questo documento utilizzi i seguenti componenti fatturabili di Google Cloud:
- Batch
- Cloud Storage
Per generare una stima dei costi in base all'utilizzo previsto,
utilizza il Calcolatore prezzi.
Le risorse create in questo tutorial in genere costano meno di un dollaro, se completi tutti i passaggi, inclusa la pulizia, in modo puntuale.
Prima di iniziare
- Sign in to your Google Cloud account. If you're new to Google Cloud, create an account to evaluate how our products perform in real-world scenarios. New customers also get $300 in free credits to run, test, and deploy workloads.
- Install the Google Cloud CLI.
-
To initialize the gcloud CLI, run the following command:
gcloud init
-
Create or select a Google Cloud project.
-
Create a Google Cloud project:
gcloud projects create PROJECT_ID
Replace
PROJECT_ID
with a name for the Google Cloud project you are creating. -
Select the Google Cloud project that you created:
gcloud config set project PROJECT_ID
Replace
PROJECT_ID
with your Google Cloud project name.
-
-
Make sure that billing is enabled for your Google Cloud project.
-
Enable the Batch, Cloud Storage, Compute Engine, and Logging APIs:
gcloud services enable batch.googleapis.com
compute.googleapis.com logging.googleapis.com storage.googleapis.com - Install the Google Cloud CLI.
-
To initialize the gcloud CLI, run the following command:
gcloud init
-
Create or select a Google Cloud project.
-
Create a Google Cloud project:
gcloud projects create PROJECT_ID
Replace
PROJECT_ID
with a name for the Google Cloud project you are creating. -
Select the Google Cloud project that you created:
gcloud config set project PROJECT_ID
Replace
PROJECT_ID
with your Google Cloud project name.
-
-
Make sure that billing is enabled for your Google Cloud project.
-
Enable the Batch, Cloud Storage, Compute Engine, and Logging APIs:
gcloud services enable batch.googleapis.com
compute.googleapis.com logging.googleapis.com storage.googleapis.com -
Assicurati che il tuo progetto abbia una rete virtual private cloud (VPC) con una configurazione di rete valida per questo tutorial.
Questo tutorial presuppone che tu stia utilizzando la
default
network. Per impostazione predefinita, le risorse Google Cloud utilizzano la retedefault
, che fornisce l'accesso alla rete necessario per questo tutorial. -
Assicurati che il progetto abbia almeno un account di servizio con le autorizzazioni necessarie per l'esecuzione del job batch in questo tutorial.
Per impostazione predefinita, i job utilizzano Account di servizio predefinito Compute Engine, a cui viene automaticamente concessa l'autorizzazione Editor (
roles/editor
) ruolo IAM e dispone già di tutte le autorizzazioni necessarie questo tutorial.Per garantire che l'account di servizio del job abbia gli elementi necessari autorizzazioni per consentire all'agente di servizio Batch di creare e accedere alle risorse per i job batch, chiedi all'amministratore di concedere all'account di servizio del job seguenti ruoli IAM:
-
Reporter agente batch (
roles/batch.agentReporter
) del progetto -
Amministratore archiviazione (
roles/storage.admin
) del progetto -
(Consigliato) Consenti ai job di generare log in Cloud Logging:
Writer log (
roles/logging.logWriter
) del progetto
Per saperne di più sulla concessione dei ruoli, consulta Gestire l'accesso a progetti, cartelle e organizzazioni.
L'amministratore potrebbe anche essere in grado di assegnare l'account di servizio del job le autorizzazioni richieste tramite la ruoli o altri ruoli predefiniti ruoli.
-
Reporter agente batch (
-
Assicurati di disporre delle autorizzazioni necessarie per questo tutorial.
Per ottenere le autorizzazioni necessarie per completare questo tutorial: chiedi all'amministratore di concederti seguenti ruoli IAM:
-
Batch Job Editor (
roles/batch.jobsEditor
) nel progetto -
Utente account di servizio (
roles/iam.serviceAccountUser
) sull'account di servizio del job -
Amministratore oggetti Storage (
roles/storage.objectAdmin
) del progetto
-
Batch Job Editor (
-
Installa Nextflow:
curl -s -L https://github.com/nextflow-io/nextflow/releases/download/v23.04.1/nextflow | bash
L'output dovrebbe essere simile al seguente:
N E X T F L O W version 23.04.1 build 5866 created 15-04-2023 06:51 UTC cite doi:10.1038/nbt.3820 http://nextflow.io Nextflow installation completed. Please note: - the executable file `nextflow` has been created in the folder: ... - you may complete the installation by moving it to a directory in your $PATH
Crea un bucket Cloud Storage
Per creare un bucket Cloud Storage in cui archiviare i file di lavoro e di output temporanei della pipeline Nextflow, utilizza la console Google Cloud o la riga di comando.
Console
Per creare un bucket Cloud Storage utilizzando la console Google Cloud, segui questi passaggi:
Nella console Google Cloud, vai alla pagina Bucket.
Fai clic su
Crea.Nella pagina Crea un bucket, inserisci un nome univoco a livello globale per il bucket.
Fai clic su Crea.
Nella finestra L'accesso pubblico verrà vietato, fai clic su Conferma.
gcloud
Per creare un bucket Cloud Storage utilizzando Google Cloud CLI,
utilizza la
Comando gcloud storage buckets create
.
gcloud storage buckets create gs://BUCKET_NAME
Sostituisci BUCKET_NAME
con un
nome univoco a livello globale per il tuo bucket.
Se la richiesta va a buon fine, l'output dovrebbe essere simile al seguente:
Creating gs://BUCKET_NAME/...
```
Configura Nextflow
Per configurare la pipeline Nextflow in modo che venga eseguita su batch, segui questi passaggi nella riga di comando:
Clona il repository della pipeline di esempio:
git clone https://github.com/nextflow-io/rnaseq-nf.git
Vai alla cartella
rnaseq-nf
:cd rnaseq-nf
Apri il file
nextflow.config
:nano nextflow.config
Il file deve contenere la seguente sezione
gcb
:gcb { params.transcriptome = 'gs://rnaseq-nf/data/ggal/transcript.fa' params.reads = 'gs://rnaseq-nf/data/ggal/gut_{1,2}.fq' params.multiqc = 'gs://rnaseq-nf/multiqc' process.executor = 'google-batch' process.container = 'quay.io/nextflow/rnaseq-nf:v1.1' workDir = 'gs://BUCKET_NAME/WORK_DIRECTORY' google.region = 'REGION' }
Nella sezione
gcb
:Sostituisci
BUCKET_NAME
con il nome del il bucket Cloud Storage che hai creato nei passaggi precedenti.Sostituisci
WORK_DIRECTORY
con il nome di una nuova che la pipeline può utilizzare per archiviare log e output.Ad esempio, inserisci
workDir
.Sostituisci
REGION
con la regione da utilizzare.Ad esempio, inserisci
us-central1
.Dopo il campo
google.region
, aggiungi i seguenti campi:Aggiungi il campo
google.project
:google.project = 'PROJECT_ID'
Sostituisci
PROJECT_ID
con l'ID del progetto Google Cloud corrente.Se non utilizzi l'account di servizio predefinito di Compute Engine come account di servizio del job, aggiungi il campo
google.batch.serviceAccountEmail
:google.batch.serviceAccountEmail = 'SERVICE_ACCOUNT_EMAIL'
Sostituisci
SERVICE_ACCOUNT_EMAIL
con l'indirizzo email dell'account di servizio del job che hai preparato per questo tutorial.
Per salvare le modifiche, procedi nel seguente modo:
Premi
Control+S
.Inserisci
Y
.Premi
Enter
.
esegui la pipeline.
Esegui la pipeline Nextflow di esempio utilizzando la riga di comando:
../nextflow run nextflow-io/rnaseq-nf -profile gcb
La pipeline esegue un piccolo set di dati utilizzando le impostazioni che hai fornito nel passaggi precedenti. Il completamento di questa operazione potrebbe richiedere fino a 10 minuti.
Al termine dell'esecuzione della pipeline, l'output dovrebbe essere simile al seguente:
N E X T F L O W ~ version 23.04.1
Launching `https://github.com/nextflow-io/rnaseq-nf` [crazy_curry] DSL2 - revision: 88b8ef803a [master]
R N A S E Q - N F P I P E L I N E
===================================
transcriptome: gs://rnaseq-nf/data/ggal/transcript.fa
reads : gs://rnaseq-nf/data/ggal/gut_{1,2}.fq
outdir : results
Uploading local `bin` scripts folder to gs://example-bucket/workdir/tmp/53/2847f2b832456a88a8e4cd44eec00a/bin
executor > google-batch (4)
[67/71b856] process > RNASEQ:INDEX (transcript) [100%] 1 of 1 ✔
[0c/2c79c6] process > RNASEQ:FASTQC (FASTQC on gut) [100%] 1 of 1 ✔
[a9/571723] process > RNASEQ:QUANT (gut) [100%] 1 of 1 ✔
[9a/1f0dd4] process > MULTIQC [100%] 1 of 1 ✔
Done! Open the following report in your browser --> results/multiqc_report.html
Completed at: 20-Apr-2023 15:44:55
Duration : 10m 13s
CPU hours : (a few seconds)
Succeeded : 4
Visualizza gli output della pipeline
Al termine dell'esecuzione, la pipeline archivia i file di output, i log, gli errori
file temporanei nel file results/qc_report.html
all'interno
WORK_DIRECTORY
cartella di Cloud Storage
di sincronizzare la directory di una VM
con un bucket.
Per controllare i file di output della pipeline
WORK_DIRECTORY
cartella di Cloud Storage
del bucket, puoi usare la console Google Cloud o la riga di comando.
Console
Per verificare i file di output della pipeline utilizzando la console Google Cloud, segui questi passaggi:
Nella console Google Cloud, vai alla pagina Bucket.
Nella colonna Nome, fai clic sul nome del bucket creato nei passaggi precedenti.
Nella pagina Dettagli bucket, apri la
WORK_DIRECTORY
.
Esiste una cartella per ogni attività separata eseguita dal flusso di lavoro. Ogni cartella contiene i comandi che sono stati eseguiti, i file di output e i file temporanei creati dalla pipeline.
gcloud
Per controllare i file di output della pipeline utilizzando l'interfaccia a riga di comando gcloud, utilizza il
comando gcloud storage ls
.
gcloud storage ls gs://BUCKET_NAME/WORK_DIRECTORY
Sostituisci quanto segue:
BUCKET_NAME
: il nome del bucket che hai creato nei passaggi precedenti.WORK_DIRECTORY
: la directory specificata nel filenextflow.config
.
L'output elenca una cartella per ogni attività separata eseguita dalla pipeline. Ogni cartella contiene i comandi eseguiti, i file di output e i file temporanei creati dalla pipeline.
Esegui la pulizia
Per evitare che al tuo account Google Cloud vengano addebitati costi relativi alle risorse utilizzate in questo tutorial, elimina il progetto che contiene le risorse oppure mantieni il progetto ed elimina le singole risorse.
Elimina il progetto
Il modo più semplice per eliminare la fatturazione è quello di eliminare il progetto corrente.
Per eliminare il progetto corrente, utilizza la console Google Cloud o gcloud CLI.
Console
- In the Google Cloud console, go to the Manage resources page.
- In the project list, select the project that you want to delete, and then click Delete.
- In the dialog, type the project ID, and then click Shut down to delete the project.
gcloud
Delete a Google Cloud project:
gcloud projects delete PROJECT_ID
Elimina singole risorse
Se vuoi continuare a utilizzare il progetto attuale, elimina il singolo utilizzate in questo tutorial.
Elimina il bucket
Se non hai più bisogno del bucket utilizzato in questo tutorial, eliminalo.
Elimina i file di output nel bucket
Al termine dell'esecuzione, la pipeline crea e archivia i file di output nella
WORK_DIRECTORY
cartella del tuo
bucket Cloud Storage.
Per ridurre gli addebiti di Cloud Storage al valore attuale Google Cloud, puoi eliminare la cartella contenente utilizzando la console Google Cloud o la riga di comando.
Console
Per eliminare la cartella WORK_DIRECTORY
e tutti i file di output dal bucket Cloud Storage utilizzando la console Google Cloud:
Nella console Google Cloud, vai alla pagina Bucket.
Nella colonna Nome, fai clic sul nome del bucket creato nei passaggi precedenti.
Nella pagina Dettagli bucket, seleziona la riga contenente la
WORK_DIRECTORY
, quindi procedi nel seguente modo:Fai clic su Elimina.
Per confermare, inserisci
DELETE
e fai clic su Elimina.
gcloud
Per eliminare la cartella WORK_DIRECTORY
e tutti i
di output, dal bucket Cloud Storage utilizzando
gcloud CLI, utilizza
gcloud storage rm
con
Flag --recursive
.
gcloud storage rm gs://BUCKET_NAME/WORK_DIRECTORY \
--recursive
Sostituisci quanto segue:
BUCKET_NAME
: il nome del bucket che specificato nei passaggi precedenti.WORK_DIRECTORY
: la directory in cui archiviare i file di output della pipeline specificati nei passaggi precedenti.
Passaggi successivi
Per saperne di più sul deployment dei flussi di lavoro Nextflow, consulta Repository GitHub di Nextflow.
Per saperne di più su processi, script e opzioni di configurazione Nextflow, vedi il Documentazione di Nextflow.