Parte 3: Usar perfiles para cambiar configuraciones¶
Traducción asistida por IA - más información y sugerencias
En la Parte 1 y la Parte 2, acumuló algunas opciones de configuración: empaquetado de software, plataforma de ejecución y asignación de recursos. En la práctica, con frecuencia querrá cambiar entre conjuntos completos de estas opciones dependiendo de dónde esté ejecutando, por ejemplo, una laptop para desarrollo y un clúster HPC para producción.
Nextflow le permite configurar cualquier número de perfiles que describen diferentes configuraciones, y seleccionar uno (o varios) en tiempo de ejecución con una sola bandera.
Ya usó uno: el perfil test de Nextflow Run reemplaza los parámetros de entrada con un conjunto pequeño y bien definido.
Ahora creará sus propios perfiles de infraestructura y los combinará con él.
1. Crear perfiles para diferentes entornos¶
1.1. Configurar los perfiles¶
Agregue dos perfiles a nextflow.config: uno para ejecutar en una laptop regular con Docker, y otro para un clúster HPC universitario con un planificador Slurm y Conda.
El perfil univ_hpc también establece límites de recursos, ya que esto generalmente es requerido en infraestructura HPC compartida.
1.2. Ejecutar el workflow con un perfil¶
Seleccione un perfil en tiempo de ejecución con -profile.
Salida del comando
N E X T F L O W ~ version 26.04.4
Launching `main.nf` [nice_kimura] revision: c3c85dec78
executor > local (8)
[df/b86b2f] sayHello (2) | 3 of 3 ✔
[b2/e2cb9c] convertToUpper (3) | 3 of 3 ✔
[af/2ecff7] collectGreetings | 1 of 1 ✔
[c6/713c96] cowpy | 1 of 1 ✔
Outputs:
/workspaces/training/config-exec/results
first_output:
- full_pipeline/intermediates/Bonjour-output.txt
- full_pipeline/intermediates/Hello-output.txt
- full_pipeline/intermediates/Hola-output.txt
uppercased:
- full_pipeline/intermediates/UPPER-Bonjour-output.txt
- full_pipeline/intermediates/UPPER-Hello-output.txt
- full_pipeline/intermediates/UPPER-Hola-output.txt
collected: full_pipeline/intermediates/COLLECTED-batch-output.txt
batch_report: full_pipeline/batch-report.txt
cowpy_art: full_pipeline/cowpy-COLLECTED-batch-output.txt
Advertencia
El perfil univ_hpc no se ejecutará en el entorno de capacitación, ya que no hay un planificador Slurm disponible.
Si encuentra otras configuraciones que siempre van juntas, agréguelas al perfil correspondiente. También puede crear perfiles adicionales para agrupar cualquier otra combinación que necesite.
1.3. Ejecutar con múltiples perfiles¶
Los perfiles no son mutuamente excluyentes.
Puede activar varios a la vez con -profile <perfil1>,<perfil2>.
Combine my_laptop con el perfil test que ya conoce de Nextflow Run.
Salida del comando
N E X T F L O W ~ version 26.04.4
Launching `main.nf` [romantic_volhard] revision: c3c85dec78
executor > local (8)
[22/81de4f] sayHello (3) | 3 of 3 ✔
[93/e16b04] convertToUpper (1) | 3 of 3 ✔
[ca/3e6a91] collectGreetings | 1 of 1 ✔
[16/0cc7e3] cowpy | 1 of 1 ✔
Outputs:
/workspaces/training/config-exec/results
first_output:
- full_pipeline/intermediates/Hola-output.txt
- full_pipeline/intermediates/Hello-output.txt
- full_pipeline/intermediates/Bonjour-output.txt
uppercased:
- full_pipeline/intermediates/UPPER-Hello-output.txt
- full_pipeline/intermediates/UPPER-Bonjour-output.txt
- full_pipeline/intermediates/UPPER-Hola-output.txt
collected: full_pipeline/intermediates/COLLECTED-test-output.txt
batch_report: full_pipeline/test-report.txt
cowpy_art: full_pipeline/cowpy-COLLECTED-test-output.txt
Los nombres de los archivos individuales recogen correctamente batch = 'test' del perfil test (COLLECTED-test-output.txt, y así sucesivamente).
Si combina perfiles que establecen la misma opción, Nextflow resuelve el conflicto usando el valor que lee en último lugar, es decir, el que aparece más tarde en el archivo. Si las configuraciones en conflicto provienen de fuentes de configuración completamente diferentes, se aplica el orden de precedencia estándar.
Conclusión¶
Sabe cómo definir perfiles que agrupan configuración específica de infraestructura, seleccionar uno en tiempo de ejecución con -profile, combinar múltiples perfiles en una sola ejecución, y cómo Nextflow resuelve los conflictos cuando más de un perfil establece la misma opción.
¿Qué sigue?¶
Aprenda cómo inspeccionar la configuración completamente resuelta antes de ejecutar cualquier cosa.
2. Inspeccionar la configuración resuelta¶
Ya usó nextflow config -profile test en Nextflow Run para verificar a qué se resuelve un solo perfil.
Ese comando se vuelve especialmente útil una vez que está combinando múltiples perfiles: como acaba de ver, cuando dos perfiles establecen la misma opción, puede ser complicado determinar manualmente qué valor prevalece.
El comando nextflow config resuelve todo eso por usted, sin ejecutar el pipeline.
2.1. Resolver la configuración predeterminada¶
Salida del comando
Esto es exactamente lo que se aplicaría si ejecutara el pipeline sin banderas adicionales.
2.2. Resolver la configuración con perfiles activados¶
Agregue los mismos perfiles que usaría para una ejecución real.
Salida del comando
Comparar los dos confirma qué cambió: params.batch, params.character y process.executor reflejan los perfiles my_laptop,test.
Esto resulta especialmente valioso para pipelines con muchas capas de configuración, donde determinar manualmente las configuraciones resueltas sería tedioso y propenso a errores.
Conclusión¶
Sabe cómo usar nextflow config para inspeccionar la configuración completamente resuelta para cualquier combinación de perfiles, antes de ejecutar cualquier cosa.
¿Qué sigue?¶
Ha cubierto los aspectos esenciales de la configuración de pipelines en Nextflow. Consulte el Resumen del curso para saber hacia dónde ir desde aquí.
Resumen¶
En esta parte aprendió a:
- Definir perfiles que agrupan configuración específica de infraestructura
- Combinar múltiples perfiles en una sola ejecución, y entender cómo se resuelven los conflictos entre ellos
- Usar
nextflow configpara inspeccionar la configuración completamente resuelta