Orchestrate jobs by running Nextflow pipelines on Batch

Ce tutoriel explique comment exécuter un pipeline Nextflow sur Batch. Plus précisément, ce tutoriel exécute l'exemple de pipeline Life Sciences rnaseq-nf de Nextflow, qui quantifie les caractéristiques génomiques à partir de données de lecture courte à l'aide de RNA-Seq.

Ce tutoriel s'adresse aux utilisateurs de Batch qui souhaitent utiliser Nextflow avec Batch.

Nextflow est un logiciel Open Source permettant d'orchestrer des workflows bio-informatiques.

Créer un bucket Cloud Storage

Pour créer un bucket Cloud Storage afin de stocker les fichiers de sortie et de travail temporaires du pipeline Nextflow, utilisez la console Google Cloud ou la ligne de commande.

Console

Pour créer un bucket Cloud Storage à l'aide de la console Google Cloud , procédez comme suit :

  1. Dans la console Google Cloud , accédez à la page Buckets.

    Accéder à la page "Buckets"

  2. Cliquez sur Créer.

  3. Sur la page Créer un bucket, saisissez un nom unique au niveau mondial pour votre bucket.

  4. Cliquez sur Créer.

  5. Dans la fenêtre L'accès public sera bloqué, cliquez sur Confirmer.

gcloud

Pour créer un bucket Cloud Storage à l'aide de la Google Cloud CLI, utilisez la commande gcloud storage buckets create.

gcloud storage buckets create gs://BUCKET_NAME

Remplacez BUCKET_NAME par un nom unique pour votre bucket.

Si la requête aboutit, le résultat doit ressembler à ce qui suit :

Creating gs://BUCKET_NAME/...
   ```

Configurer Nextflow

Pour configurer le pipeline Nextflow afin qu'il s'exécute sur Batch, procédez comme suit dans la ligne de commande :

  1. Clonez l'exemple de dépôt de pipeline :

    git clone https://github.com/nextflow-io/rnaseq-nf.git
    
  2. Accédez au dossier rnaseq-nf :

    cd rnaseq-nf
    
  3. Ouvrez le fichier nextflow.config :

    nano nextflow.config
    

    Le fichier doit contenir la section gcb suivante :

    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'
    }
    
  4. Dans la section gcb, procédez comme suit :

    1. Remplacez BUCKET_NAME par le nom du bucket Cloud Storage que vous avez créé lors des étapes précédentes.

    2. Remplacez WORK_DIRECTORY par le nom d'un nouveau dossier que le pipeline peut utiliser pour stocker les journaux et les sorties.

      Par exemple, saisissez workDir.

    3. Remplacez REGION par la région à utiliser.

      Par exemple, saisissez us-central1.

    4. Après le champ google.region, ajoutez les champs suivants :

      1. Ajoutez le champ google.project :

        google.project = 'PROJECT_ID'
        

        Remplacez PROJECT_ID par l'ID du projet actuel Google Cloud .

      2. Si vous n'utilisez pas le compte de service Compute Engine par défaut comme compte de service du job, ajoutez le champ google.batch.serviceAccountEmail :

        google.batch.serviceAccountEmail = 'SERVICE_ACCOUNT_EMAIL'
        

        Remplacez SERVICE_ACCOUNT_EMAIL par l'adresse e-mail du compte de service du job que vous avez préparé pour ce tutoriel.

  5. Pour enregistrer vos modifications :

    1. Appuyez sur la touche Control+S.

    2. Saisissez Y.

    3. Appuyez sur la touche Enter.

Exécuter le pipeline

Exécutez l'exemple de pipeline Nextflow à l'aide de la ligne de commande :

../nextflow run nextflow-io/rnaseq-nf -profile gcb

Le pipeline exécute un petit ensemble de données à l'aide des paramètres que vous avez fournis lors des étapes précédentes. Cette opération peut prendre jusqu'à 10 minutes.

Une fois le pipeline exécuté, le résultat devrait ressembler à ce qui suit :

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

Afficher les sorties du pipeline

Une fois le pipeline exécuté, il stocke les fichiers de sortie, les journaux, les erreurs ou les fichiers temporaires dans le fichier results/qc_report.html du dossier WORK_DIRECTORY de votre bucket Cloud Storage.

Pour vérifier les fichiers de sortie du pipeline dans le dossier WORK_DIRECTORY de votre bucket Cloud Storage, vous pouvez utiliser la console Google Cloud ou la ligne de commande.

Console

Pour vérifier les fichiers de sortie du pipeline à l'aide de la console Google Cloud , procédez comme suit :

  1. Dans la console Google Cloud , accédez à la page Buckets.

    Accéder à la page "Buckets"

  2. Dans la colonne Nom, cliquez sur le nom du bucket que vous avez créé lors des étapes précédentes.

  3. Sur la page Informations sur le bucket, ouvrez le dossier WORK_DIRECTORY.

Il existe un dossier pour chacune des tâches distinctes exécutées par le workflow. Chaque dossier contient les commandes exécutées, les fichiers de sortie et les fichiers temporaires créés par le pipeline.

gcloud

Pour vérifier les fichiers de sortie du pipeline à l'aide de gcloud CLI, utilisez la commande gcloud storage ls.

gcloud storage ls gs://BUCKET_NAME/WORK_DIRECTORY

Remplacez les éléments suivants :

  • BUCKET_NAME : nom du bucket que vous avez créé lors des étapes précédentes.

  • WORK_DIRECTORY : répertoire que vous avez spécifié dans le fichier nextflow.config.

Le résultat liste un dossier pour chacune des tâches distinctes exécutées par le pipeline. Chaque dossier contient les commandes exécutées, les fichiers de sortie et les fichiers temporaires créés par le pipeline.