2. Nextflow

2.7. Configuració

Finalment tractarem els arxius de configuració de Nextflow. Aquests arxius són rellevants per poder migrar els scripts entre entorns de computació i per al control dels recursos a utilitzar.

Podem trobar diversos arxius de configuració i alguns poden entrar en conflicte entre ells. Per això Nextflow té una priorització:

  1. Paràmetres especificats a la línia d’ordres.
  2. Paràmetres procedents de l’arxiu especificat mitjançant l’opció -params-file.
  3. Arxiu de configuració especificat mitjançant l’opció -c my_config.
  4. Arxiu de configuració nexflow.config en el directori de treball.
  5. Arxiu de configuració nexflow.config en el directori del projecte de workflow.
  6. Paràmetres definits en el mateix script de Nextflow.

Si un paràmetre es troba en més d’una d’aquestes fonts, Nextflow fa servir la primera font com a referència i no fa servir les subsegüents.

L’arxiu consta de parelles nom = valor

process.memory = '10G'

Un arxiu de configuració es pot incloure en un altre. Per exemple:

includeConfig 'path/foo.config'

La instrucció includeConfig busca l’arxiu de paràmetres i els inclou com a propis.

Els paràmetres de configuració es poden especificar en el que s’anomenen scopes. Són paràmetres que afecten específicament un tipus de configuració. Hi ha diversos scopes de configuració, els més habituals dels quals són:

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

Per habilitar la utilització d’una imatge Docker, per exemple, es podria introduir al nextflow.config:

docker.enabled = true

o es podria especificar directament a la línia d’ordres:

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

També és possible especificar una imatge Docker per a un procés determinat:

process uno {

  container 'nombre_imatge_1'


  '''

  execució

  '''

}


process dos {

  container 'nombre_imatge_2'


  '''

 execució

  '''

}