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:
- Parámetros especificados en la línea de comandos.
- Parámetros procedentes del archivo especificado mediante la opción -params-file.
- Archivo de configuración especificado mediante la opción -c my_config.
- Archivo de configuración nexflow.config en el directorio de trabajo.
- Archivo de configuración nexflow.config en el directorio del proyecto de workflow.
- 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 ''' }