Organizar tareas ejecutando flujos de procesamiento de Nextflow en Batch

En este tutorial se explica cómo ejecutar una canalización de Nextflow en Batch. En concreto, en este tutorial se ejecuta el flujo de procesamiento de datos de ciencias de la vida de ejemplo rnaseq-nf de Nextflow, que cuantifica las características genómicas a partir de datos de lecturas cortas mediante RNA-Seq.

Este tutorial está dirigido a los usuarios de Batch que quieran usar Nextflow con Batch.

Nextflow es un software de código abierto para orquestar flujos de trabajo de bioinformática.

Crea un segmento de Cloud Storage

Para crear un segmento de Cloud Storage en el que almacenar los archivos de trabajo y de salida temporales de la canalización de Nextflow, usa la consola de Google Cloud o la línea de comandos.

Consola

Para crear un segmento de Cloud Storage con la Google Cloud consola, sigue estos pasos:

  1. En la Google Cloud consola, ve a la página Buckets.

    Ir a Contenedores

  2. Haz clic en Crear.

  3. En la página Crear un segmento, asigna un nombre único a nivel global al segmento.

  4. Haz clic en Crear.

  5. En la ventana Se impedirá el acceso público, haz clic en Confirmar.

gcloud

Para crear un segmento de Cloud Storage con la CLI de Google Cloud, usa el comando gcloud storage buckets create.

gcloud storage buckets create gs://BUCKET_NAME

Sustituye BUCKET_NAME por un nombre único a nivel global para tu segmento.

Si la solicitud se realiza correctamente, el resultado debería ser similar al siguiente:

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

Configurar Nextflow

Para configurar la canalización de Nextflow para que se ejecute en Batch, sigue estos pasos en la línea de comandos:

  1. Clona el repositorio de la canalización de ejemplo:

    git clone https://github.com/nextflow-io/rnaseq-nf.git
    
  2. Ve a la carpeta rnaseq-nf:

    cd rnaseq-nf
    
  3. Abre el archivo nextflow.config:

    nano nextflow.config
    

    El archivo debe contener la siguiente sección 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'
    }
    
  4. En la sección gcb, haga lo siguiente:

    1. Sustituye BUCKET_NAME por el nombre del segmento de Cloud Storage que has creado en los pasos anteriores.

    2. Sustituye WORK_DIRECTORY por el nombre de una nueva carpeta que la canalización pueda usar para almacenar registros y resultados.

      Por ejemplo, escribe workDir.

    3. Sustituye REGION por la región que quieras usar.

      Por ejemplo, escribe us-central1.

    4. Después del campo google.region, añade los siguientes campos:

      1. Añade el campo google.project:

        google.project = 'PROJECT_ID'
        

        Sustituye PROJECT_ID por el ID del proyecto Google Cloud actual.

      2. Si no usas la cuenta de servicio predeterminada de Compute Engine como cuenta de servicio del trabajo, añade el campo google.batch.serviceAccountEmail:

        google.batch.serviceAccountEmail = 'SERVICE_ACCOUNT_EMAIL'
        

        Sustituye SERVICE_ACCOUNT_EMAIL por la dirección de correo de la cuenta de servicio del trabajo que has preparado para este tutorial.

  5. Para guardar los cambios, sigue estos pasos:

    1. Pulsa Control+S.

    2. Introduce Y.

    3. Pulsa Enter.

Ejecutar el flujo de procesamiento

Ejecuta el flujo de procesamiento de Nextflow de ejemplo mediante la línea de comandos:

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

La canalización ejecuta un conjunto de datos pequeño con los ajustes que has proporcionado en los pasos anteriores. Esta operación puede tardar hasta 10 minutos en completarse.

Una vez que se haya ejecutado la canalización, la salida debería ser similar a la 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

Ver las salidas de la canalización

Una vez que se ha ejecutado la canalización, almacena los archivos de salida, los registros, los errores o los archivos temporales en el archivo results/qc_report.html de la carpeta WORK_DIRECTORY de tu segmento de Cloud Storage.

Para comprobar los archivos de salida de la canalización en la carpeta WORK_DIRECTORY de tu segmento de Cloud Storage, puedes usar la consola Google Cloud o la línea de comandos.

Consola

Para comprobar los archivos de salida de la canalización mediante la consola Google Cloud , sigue estos pasos:

  1. En la Google Cloud consola, ve a la página Buckets.

    Ir a Contenedores

  2. En la columna Nombre, haz clic en el nombre del segmento que has creado en los pasos anteriores.

  3. En la página Detalles del segmento, abra la carpeta WORK_DIRECTORY.

Hay una carpeta para cada tarea independiente que ejecuta el flujo de trabajo. Cada carpeta contiene los comandos que se han ejecutado, los archivos de salida y los archivos temporales creados por la canalización.

gcloud

Para comprobar 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

Haz los cambios siguientes:

  • BUCKET_NAME: el nombre del segmento que has creado en los pasos anteriores.

  • WORK_DIRECTORY: el directorio que has especificado en el archivo nextflow.config.

La salida muestra una carpeta para cada tarea independiente que ejecuta el flujo de trabajo. Cada carpeta contiene los comandos que se han ejecutado, los archivos de salida y los archivos temporales creados por la canalización.