Ce tutoriel explique comment exécuter Nextflow sur Batch. Plus précisément, ce tutoriel exécute un exemple pipeline lié aux sciences de la vie qui quantifie les caractéristiques génomiques à partir de données de lecture courtes à 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.
Objectifs
Grâce à ce tutoriel, vous allez apprendre à effectuer les opérations suivantes:
- Installez Nextflow dans Cloud Shell.
- Créer un bucket Cloud Storage
- Configurer un pipeline Nextflow
- Exécuter un exemple de pipeline à l'aide de Nextflow sur Batch
- Affichez les sorties du pipeline.
- Effectuez un nettoyage pour éviter que des frais supplémentaires ne vous soient facturés en procédant de l'une des façons suivantes:
- Supprimer un projet
- Supprimer des ressources individuelles
Coûts
Dans ce document, vous utilisez les composants facturables suivants de Google Cloud :
- Batch
- Cloud Storage
Obtenez une estimation des coûts en fonction de votre utilisation prévue à l'aide du simulateur de coût.
Les ressources créées dans ce tutoriel coûtent généralement moins d'un dollar, en supposant que vous effectuiez toutes les étapes, y compris le nettoyage, dans un dans les meilleurs délais.
Avant de commencer
- Connectez-vous à votre compte Google Cloud. Si vous débutez sur Google Cloud, créez un compte pour évaluer les performances de nos produits en conditions réelles. Les nouveaux clients bénéficient également de 300 $ de crédits gratuits pour exécuter, tester et déployer des charges de travail.
- Installez Google Cloud CLI.
-
Pour initialiser gcloudCLI, exécutez la commande suivante :
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.
-
-
Vérifiez que la facturation est activée pour votre projet Google Cloud.
-
Activer les API Batch, Cloud Storage, Compute Engine, and Logging :
gcloud services enable batch.googleapis.com
compute.googleapis.com logging.googleapis.com storage.googleapis.com - Installez Google Cloud CLI.
-
Pour initialiser gcloudCLI, exécutez la commande suivante :
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.
-
-
Vérifiez que la facturation est activée pour votre projet Google Cloud.
-
Activer les API Batch, Cloud Storage, Compute Engine, and Logging :
gcloud services enable batch.googleapis.com
compute.googleapis.com logging.googleapis.com storage.googleapis.com -
Assurez-vous que votre projet comporte au moins un compte de service avec le requises pour ce tutoriel.
Chaque job nécessite un compte de service qui autorise Agent de service Batch pour créer les ressources et y accéder nécessaires à l'exécution du job. Dans ce tutoriel, le compte de service du job est le Compte de service Compute Engine par défaut.
Pour s'assurer que le compte de service Compute Engine par défaut dispose des autorisations les autorisations permettant à l'agent de service Batch de créer des ressources pour les jobs Batch et d'y accéder ; demandez à votre administrateur d'accorder au compte de service Compute Engine par défaut rôles IAM suivants:
-
Batch Agent Reporter (
roles/batch.agentReporter
) sur le projet -
Administrateur Storage (
roles/storage.admin
) sur le projet -
(Recommandé) Laissez les jobs générer des journaux dans Cloud Logging:
Rédacteur de journaux (
roles/logging.logWriter
) sur le projet
Pour en savoir plus sur l'attribution de rôles, consultez la section Gérer les accès.
Votre administrateur peut aussi attribuer au compte de service Compute Engine par défaut les autorisations requises à l'aide d'outils personnalisés rôles ou autres prédéfinis rôles.
-
Batch Agent Reporter (
-
Assurez-vous de disposer des autorisations requises pour ce tutoriel.
Pour obtenir les autorisations nécessaires pour suivre ce tutoriel, demandez à votre administrateur de vous accorder le rôles IAM suivants:
-
Éditeur de jobs par lot (
roles/batch.jobsEditor
) sur le projet -
Utilisateur du compte de service (
roles/iam.serviceAccountUser
) sur le compte de service de la tâche, qui est, dans ce tutoriel, le compte de service Compute Engine par défaut ; -
Administrateur des objets Storage (
roles/storage.objectAdmin
) sur le projet
-
Éditeur de jobs par lot (
-
Installez Nextflow:
curl -s -L https://github.com/nextflow-io/nextflow/releases/download/v23.04.1/nextflow | bash
La sortie devrait ressembler à ce qui suit :
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
Créer un bucket Cloud Storage
Créer un bucket Cloud Storage pour stocker les tâches temporaires et les résultats 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:
Dans la console Google Cloud, accédez à la page Buckets.
Cliquez sur
Créer.Sur la page Créer un bucket, saisissez une nom unique de votre bucket.
Cliquez sur Créer.
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 global pour votre bucket.
Si la requête aboutit, le résultat doit être semblable à suivantes:
Creating gs://BUCKET_NAME/...
```
Configurer Nextflow
Pour configurer le pipeline Nextflow afin qu'il s'exécute sur Batch, procédez comme suit : procédez comme suit dans la ligne de commande:
Clonez l'exemple de dépôt de pipeline:
git clone https://github.com/nextflow-io/rnaseq-nf.git
Accédez au dossier
rnaseq-nf
:cd rnaseq-nf
Ouvrez le fichier
nextflow.config
:nano nextflow.config
Le fichier doit contenir la section 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 = 'us-central1' } ...
Dans la section
gcb
, procédez comme suit:Remplacez
BUCKET_NAME
par le nom du bucket Cloud Storage que vous avez créé aux étapes précédentes.Remplacez
WORK_DIRECTORY
par le nom d'une nouvelle que le pipeline peut utiliser pour stocker les journaux et les sorties.Par exemple, saisissez
workDir
.Après le champ
google.region
, ajoutez la Lignegoogle.project = 'PROJECT_ID'
oùPROJECT_ID
est l'ID du projet actuel projet Google Cloud.
Pour enregistrer vos modifications, procédez comme suit:
Appuyez sur la touche
Control+S
.Saisissez
Y
.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 dans le les étapes précédentes. Cette opération peut prendre jusqu'à 10 minutes.
Une fois le pipeline exécuté, le résultat doit être semblable à celui-ci : suivantes:
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 l'exécution du pipeline terminée, il stocke les fichiers de sortie, les journaux, les erreurs ou
des fichiers temporaires dans le fichier results/qc_report.html
au sein de
Dossier WORK_DIRECTORY
de votre espace Cloud Storage
bucket.
Pour vérifier les fichiers de sortie du pipeline dans
Dossier WORK_DIRECTORY
de votre espace 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 : procédez comme suit:
Dans la console Google Cloud, accédez à la page Buckets.
Dans la colonne Nom, cliquez sur le nom du bucket que vous avez créé dans le les étapes précédentes.
Sur la page Informations sur le bucket, ouvrez le Dossier
WORK_DIRECTORY
.
Il existe un dossier pour chaque tâche distincte exécutée 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 la 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 créés au cours des étapes précédentes.WORK_DIRECTORY
: répertoire que vous avez spécifié le fichiernextflow.config
.
Le résultat répertorie un dossier pour chaque tâche distincte exécutée par le pipeline. Chaque dossier contient les commandes exécutées, les fichiers de sortie et des fichiers temporaires créés par le pipeline.
Effectuer un nettoyage
Pour éviter que les ressources utilisées lors de ce tutoriel soient facturées sur votre compte Google Cloud, supprimez le projet contenant les ressources, ou conservez le projet et supprimez les ressources individuelles.
Supprimer le projet
Le moyen le plus simple d'empêcher la facturation est de supprimer le projet en cours.
Pour supprimer le projet en cours, utilisez la console Google Cloud ou le gcloud CLI.
Console
- Dans la console Google Cloud, accédez à la page Gérer les ressources.
- Dans la liste des projets, sélectionnez le projet que vous souhaitez supprimer, puis cliquez sur Supprimer.
- Dans la boîte de dialogue, saisissez l'ID du projet, puis cliquez sur Arrêter pour supprimer le projet.
gcloud
Supprimez un projet Google Cloud :
gcloud projects delete PROJECT_ID
Supprimer des ressources individuelles
Si vous souhaitez continuer à utiliser le projet actuel, supprimez l'utilisateur les ressources utilisées dans ce tutoriel.
Supprimer le bucket
Si vous n'avez plus besoin du bucket que vous avez utilisé dans ce tutoriel, Supprimez le bucket.
Supprimer les fichiers de sortie du bucket
Une fois l'exécution du pipeline terminée, il crée et stocke les fichiers de sortie dans le
Dossier WORK_DIRECTORY
de votre espace Cloud Storage
bucket.
Pour réduire les frais Cloud Storage compte Google Cloud, vous pouvez supprimer le dossier contenant le à l'aide de la console Google Cloud ou de la ligne de commande.
Console
Pour supprimer le dossier WORK_DIRECTORY
et tous les
depuis votre bucket Cloud Storage à l'aide de la commande
console Google Cloud, procédez comme suit:
Dans la console Google Cloud, accédez à la page Buckets.
Dans la colonne Nom, cliquez sur le nom du bucket que vous avez créé dans le les étapes précédentes.
Sur la page Informations sur le bucket, sélectionnez la ligne contenant le
WORK_DIRECTORY
, puis procédez comme suit:Cliquez sur Supprimer.
Pour confirmer, saisissez
DELETE
, puis cliquez sur Supprimer.
gcloud
Pour supprimer le dossier WORK_DIRECTORY
et tous les
depuis votre bucket Cloud Storage à l'aide de la commande
gcloud CLI, utilisez la
commande gcloud storage rm
avec la commande
--recursive
.
gcloud storage rm gs://BUCKET_NAME/WORK_DIRECTORY \
--recursive
Remplacez les éléments suivants :
BUCKET_NAME
: nom du bucket que vous spécifiées dans les étapes précédentes.WORK_DIRECTORY
: répertoire dans lequel stocker le les fichiers de sortie du pipeline que vous avez spécifiés aux étapes précédentes.
Étape suivante
Pour en savoir plus sur le déploiement des workflows Nextflow, consultez Dépôt GitHub Nextflow.
Pour en savoir plus sur les processus, les scripts et les options de configuration de Nextflow, voir Documentation Nextflow