En este instructivo, se explica cómo ejecutar un Nextflow en Batch. En este instructivo, se ejecuta un ejemplo canalización de ciencias biológicas que cuantifica los atributos genómicos de datos de lectura cortos mediante RNA-Seq.
Este instructivo está dirigido a los usuarios de Batch que deseen Nextflow con Batch.
Nextflow es un software de código abierto para organizar flujos de trabajo bioinformáticos.
Objetivos
Cuando completes este instructivo, aprenderás a hacer lo siguiente:
- Instala Nextflow en Cloud Shell.
- Crear un bucket de Cloud Storage
- Configurar una canalización de Nextflow.
- Ejecutar una canalización de muestra con Nextflow en Batch
- Visualiza los resultados de la canalización.
- Realiza una de las siguientes tareas para realizar una limpieza para evitar que se apliquen cargos adicionales:
- Borra un proyecto.
- Borra recursos individuales.
Costos
En este documento, usarás los siguientes componentes facturables de Google Cloud:
- Batch
- Cloud Storage
Para generar una estimación de costos en función del uso previsto, usa la calculadora de precios.
Los recursos creados en este instructivo suelen costar menos de un dólar, suponiendo que completaste todos los pasos, incluida la limpieza, de un forma oportuna.
Antes de comenzar
- Accede a tu cuenta de Google Cloud. Si eres nuevo en Google Cloud, crea una cuenta para evaluar el rendimiento de nuestros productos en situaciones reales. Los clientes nuevos también obtienen $300 en créditos gratuitos para ejecutar, probar y, además, implementar cargas de trabajo.
- 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.
-
-
Asegúrate de que la facturación esté habilitada para tu proyecto de Google Cloud.
-
Habilita las APIs de Batch, Cloud Storage, Compute Engine, and Logging:
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.
-
-
Asegúrate de que la facturación esté habilitada para tu proyecto de Google Cloud.
-
Habilita las APIs de Batch, Cloud Storage, Compute Engine, and Logging:
gcloud services enable batch.googleapis.com
compute.googleapis.com logging.googleapis.com storage.googleapis.com -
Asegúrate de que tu proyecto tenga al menos una cuenta de servicio con el los permisos necesarios para este instructivo.
Cada trabajo requiere una cuenta de servicio que permita Agente de servicio por lotes para crear y acceder a los recursos necesarias para ejecutar el trabajo. En este instructivo, la cuenta de servicio del trabajo es el Cuenta de servicio predeterminada de Compute Engine.
Para asegurarte de que la cuenta de servicio predeterminada de Compute Engine tenga permisos para permitir que el agente de servicio de Batch cree recursos y acceda a ellos para trabajos de Batch solicita a tu administrador que otorgue a la cuenta de servicio predeterminada de Compute Engine el los siguientes roles de IAM:
-
Batch Agent Reporter (
roles/batch.agentReporter
) en el proyecto -
Administrador de almacenamiento (
roles/storage.admin
) en el proyecto -
Permite que los trabajos generen registros en Cloud Logging (recomendado):
Escritor de registros (
roles/logging.logWriter
) en el proyecto
Si quieres obtener más información para otorgar roles, consulta Administra el acceso.
Es posible que el administrador también pueda otorgar a la cuenta de servicio predeterminada de Compute Engine los permisos requeridos a través de la configuración rolesu otros predefinidos roles.
-
Batch Agent Reporter (
-
Asegúrate de tener los permisos necesarios para este instructivo.
A fin de obtener los permisos que necesitas para completar este instructivo, haz lo siguiente: solicita a tu administrador que te otorgue el los siguientes roles de IAM:
-
Editor de trabajos por lotes (
roles/batch.jobsEditor
) en el proyecto -
Usuario de cuenta de servicio (
roles/iam.serviceAccountUser
) en la cuenta de servicio del trabajo, que, en este instructivo, es la cuenta de servicio predeterminada de Compute Engine -
Administrador de objetos de almacenamiento (
roles/storage.objectAdmin
) en el proyecto
-
Editor de trabajos por lotes (
-
Instala Nextflow:
curl -s -L https://github.com/nextflow-io/nextflow/releases/download/v23.04.1/nextflow | bash
El resultado debería ser similar al siguiente ejemplo:
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
Cree un bucket de Cloud Storage
Crear un bucket de Cloud Storage para almacenar trabajo y resultados temporales de la canalización de Nextflow, usa la consola de Google Cloud o la línea de comandos.
Console
Para crear un bucket de Cloud Storage con la consola de Google Cloud, sigue estos pasos: sigue estos pasos:
En la consola de Google Cloud, ve a la página Buckets.
Haz clic en
Crear.En la página Crear un bucket, ingresa un nombre global único para tu bucket.
Haz clic en Crear.
En la ventana Se impedirá el acceso público, haz clic en Confirmar.
gcloud
Para crear un bucket de Cloud Storage con Google Cloud CLI, sigue estos pasos:
usa el
Comando gcloud storage buckets create
gcloud storage buckets create gs://BUCKET_NAME
Reemplaza BUCKET_NAME
por un
nombre único a nivel global para tu bucket.
Si la solicitud tiene éxito, el resultado debería ser similar al siguiente: lo siguiente:
Creating gs://BUCKET_NAME/...
```
Configura Nextflow
Para configurar la canalización de Nextflow para que se ejecute en Batch, sigue estos pasos: estos pasos en la línea de comandos:
Clona el repositorio de la canalización de muestra:
git clone https://github.com/nextflow-io/rnaseq-nf.git
Ve a la carpeta
rnaseq-nf
:cd rnaseq-nf
Abre el archivo
nextflow.config
:nano nextflow.config
El archivo debe contener la siguiente sección:
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' } ...
En la sección
gcb
, haz lo siguiente:Reemplaza
BUCKET_NAME
por el nombre del El bucket de Cloud Storage que creaste en los pasos anteriores.Reemplaza
WORK_DIRECTORY
por el nombre de un elemento nuevo. que la canalización puede usar para almacenar registros y resultados.Por ejemplo, ingresa
workDir
.Después del campo
google.region
, agrega elgoogle.project = 'PROJECT_ID'
línea dondePROJECT_ID
es el ID del proyecto de la clase proyecto de Google Cloud.
Para guardar los cambios, haz lo siguiente:
Presiona
Control+S
.Ingresa
Y
.Presiona
Enter
.
Ejecuta la canalización
Ejecuta la canalización de muestra de Nextflow con la línea de comandos:
../nextflow run nextflow-io/rnaseq-nf -profile gcb
La canalización ejecuta un conjunto de datos pequeño con la configuración que proporcionaste en la pasos anteriores. Esta operación puede tardar hasta 10 minutos en completarse.
Una vez que la canalización termina de ejecutarse, el resultado debería ser similar al siguiente: lo siguiente:
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
Visualiza los resultados de la canalización
Cuando la canalización termina de ejecutarse, almacena archivos de salida, registros, errores o
archivos temporales en el archivo results/qc_report.html
dentro del
Carpeta WORK_DIRECTORY
de tu almacenamiento de Cloud Storage
bucket.
Para comprobar los archivos de salida de la canalización en la
Carpeta WORK_DIRECTORY
de tu almacenamiento de Cloud Storage
bucket, puedes usar la consola de Google Cloud o la línea de comandos.
Console
Para verificar los archivos de salida de la canalización con la consola de Google Cloud, sigue estos pasos: estos pasos:
En la consola de Google Cloud, ve a la página Buckets.
En la columna Nombre, haz clic en el nombre del bucket que creaste. pasos anteriores.
En la página Detalles del bucket, abre el
WORK_DIRECTORY
carpeta
Hay una carpeta para cada tarea individual que ejecuta el flujo de trabajo. Cada carpeta Contiene los comandos que se ejecutaron, los archivos de salida y los archivos temporales que crea la canalización.
gcloud
Para verificar los archivos de salida de la canalización con gcloud CLI, usa
el
Comando gcloud storage ls
gcloud storage ls gs://BUCKET_NAME/WORK_DIRECTORY
Reemplaza lo siguiente:
BUCKET_NAME
: Es el nombre del bucket que que creaste en los pasos anteriores.WORK_DIRECTORY
: El directorio que especificaste en el archivonextflow.config
.
En el resultado, se muestra una carpeta para cada tarea individual que ejecuta la canalización. Cada carpeta contiene los comandos que se ejecutaron, los archivos de salida y archivos temporales creados por la canalización.
Limpia
Para evitar que se apliquen cargos a tu cuenta de Google Cloud por los recursos usados en este instructivo, borra el proyecto que contiene los recursos o conserva el proyecto y borra los recursos individuales.
Borra el proyecto
La manera más fácil de eliminar la facturación es borrar el proyecto actual.
Para borrar el proyecto actual, usa la consola de Google Cloud o gcloud CLI.
Console
- En la consola de Google Cloud, ve a la página Administrar recursos.
- En la lista de proyectos, elige el proyecto que quieres borrar y haz clic en Borrar.
- En el diálogo, escribe el ID del proyecto y, luego, haz clic en Cerrar para borrar el proyecto.
gcloud
Borra un proyecto de Google Cloud:
gcloud projects delete PROJECT_ID
Borra los recursos individuales
Si quieres seguir usando el proyecto actual, borra el proyecto recursos que se usan en este instructivo.
Borra el bucket
Si ya no necesitas el bucket que usaste en este instructivo, borrar el bucket
Borra los archivos de salida del bucket
Cuando la canalización termina de ejecutarse, crea y almacena archivos de salida en la
Carpeta WORK_DIRECTORY
de tu almacenamiento de Cloud Storage
bucket.
Para reducir los cargos de Cloud Storage al valor actual de Google Cloud, puedes borrar la carpeta que contiene la carpeta archivos de salida con la consola de Google Cloud o la línea de comandos.
Console
Para borrar la carpeta WORK_DIRECTORY
y todos los
archivos de salida, desde tu bucket de Cloud Storage con el
la consola de Google Cloud, sigue estos pasos:
En la consola de Google Cloud, ve a la página Buckets.
En la columna Nombre, haz clic en el nombre del bucket que creaste. pasos anteriores.
En la página Detalles del bucket, selecciona la fila que contiene los
WORK_DIRECTORY
y, luego, haz lo siguiente:Haz clic en Borrar.
Para confirmar, ingresa
DELETE
y, luego, haz clic en Borrar.
gcloud
Para borrar la carpeta WORK_DIRECTORY
y todos los
archivos de salida, desde tu bucket de Cloud Storage con el
gcloud CLI, usa el
Comando gcloud storage rm
con el
--recursive
.
gcloud storage rm gs://BUCKET_NAME/WORK_DIRECTORY \
--recursive
Reemplaza lo siguiente:
BUCKET_NAME
: Es el nombre del bucket que especificadas en los pasos anteriores.WORK_DIRECTORY
: Es el directorio en el que se almacenará la los archivos de salida de la canalización que especificaste en los pasos anteriores.
¿Qué sigue?
Para obtener más información sobre la implementación de flujos de trabajo de Nextflow, consulta Repositorio de GitHub de Nextflow.
Para obtener más información sobre los procesos, las secuencias de comandos y las opciones de configuración de Nextflow, ver Documentación de Nextflow.