2. Nextflow

2.7. Configuración

Finalmente trataremos los archivos de configuración de Netxflow. Estos archivos son relevantes para poder migrar los scripts entre entornos de computación y para el control de los recursos a utilizar.

Podemos encontrar diversos archivos de configuración y algunos pueden entrar en conflicto entre ellos. Por ello Nextflow tiene una priorización:

  1. Parámetros especificados en la línea de comandos.
  2. Parámetros procedentes del archivo especificado mediante la opción -params-file.
  3. Archivo de configuración especificado mediante la opción -c my_config.
  4. Archivo de configuración nexflow.config en el directorio de trabajo.
  5. Archivo de configuración nexflow.config en el directorio del proyecto de workflow.
  6. Parámetros definidos en el mismo script de Nextflow.

Si un parámetro está en más de una de estas fuentes, Nextflow utiliza la primera fuente como referencia y no utiliza las subsiguientes.

El archivo consta de parejas nombre = valor

process.memory = '10G'

Un archivo de configuración puede incluirse en otro. Por ejemplo:

includeConfig 'path/foo.config'

La instrucción includeConfig busca el archivo de parámetros y los incluye como propios.

Los parámetros de configuración se pueden especificar en lo que se denominan scopes. Son parámetros que afectan específicamente a un tipo de configuración. Hay varios scopes de configuración, los más habituales de los cuales son:

  • aws: Amazon S3.
  • conda: entornos Conda.
  • docker: contenedores Docker.
  • k8s: clúster de Kubernetes.

Para habilitar la utilización de una imagen Docker, por ejemplo, se podría introducir en el nextflow.config:

docker.enabled = true

o se podría especificar directamente en la línea de comandos:

nextflow run <script> -with-docker [imagen Docker]

También es posible especificar una imagen Docker para un proceso determinado:

process uno {

  container 'nombre_imagen_1'


  '''

  ejecución

  '''

}


process dos {

  container 'nombre_imagen_2'


  '''

 ejecución

  '''

}