Las traducciones son generadas a través de traducción automática. En caso de conflicto entre la traducción y la version original de inglés, prevalecerá la version en inglés.
Especificaciones de la definición del flujo de trabajo de Nextflow
HealthOmics es compatible con Nextflow DSL1 y DSL2. Para obtener más información, consulte Compatibilidad con la versión de Nextflow.
Nextflow DSL2 se basa en el lenguaje de programación Groovy, por lo que los parámetros son dinámicos y es posible aplicar coerción de tipos utilizando las mismas reglas que Groovy. Los parámetros y valores proporcionados por el JSON de entrada están disponibles en el mapa de parámetros () del flujo de trabajo. params
Temas
Utilice los complementos nf-schema y nf-validation
nota
Resumen del soporte para complementos HealthOmics :
v22.04: no hay soporte para complementos
v23.10: admite y
nf-schemanf-validationv24.10 — admite
nf-schemav25.10, v26.04: admite,, y
nf-schemanf-core-utilsnf-fgbionf-prov
HealthOmics proporciona el siguiente soporte para los complementos de Nextflow:
-
Para la versión 23.10 de Nextflow, HealthOmics preinstala el complemento nf-validation @1 .1.1.
-
Para las versiones 23.10 y 24.10 de Nextflow, preinstala el complemento nf-schema @2 .3.0. HealthOmics
-
Para la versión 25.10 de Nextflow, HealthOmics preinstala los complementos nf-schema @2 .6.1, nf-core-utils @0 .4.0, nf-prov @1 .7.0 y nf-fgbio @1 .0.1.
-
Para la versión 26.04 de Nextflow, preinstala los complementos nf-schema @2 .7.2, nf-core-utils @0 .4.0, nf-prov @1 .7.0 y nf-fgbio @1 .0.1. HealthOmics
-
No puede recuperar complementos adicionales durante la ejecución de un flujo de trabajo. HealthOmics ignora cualquier otra versión del complemento que especifique en el
nextflow.configarchivo. -
Para Nextflow v24 y versiones posteriores,
nf-schemaes la nueva versión del complemento obsoleto.nf-validationPara obtener más información, consulte nf-schema en el repositorio de Nextflow. GitHub
Especifique los URI de almacenamiento
Cuando se utiliza un Amazon S3 o un HealthOmics URI para crear un archivo o un objeto de ruta de Nextflow, el objeto coincidente está disponible para el flujo de trabajo, siempre y cuando se conceda el acceso de lectura. Se permite el uso de prefijos o directorios para los URI de Amazon S3. Para ver ejemplos, consulte Formatos de parámetros de entrada de Amazon S3.
HealthOmics admite parcialmente el uso de patrones globales en los URI o los URI de HealthOmics almacenamiento de Amazon S3. Utilice patrones globales en la definición del flujo de trabajo para la creación de nuestros canales. path file Para conocer el comportamiento esperado y los casos exactos, consulteManejo de Nextflow del patrón Glob en las entradas de Amazon S3.
Directivas de Nextflow
Las directivas de Nextflow se configuran en el archivo de configuración o en la definición del flujo de trabajo de Nextflow. La siguiente lista muestra el orden de prioridad que se HealthOmics utiliza para aplicar los ajustes de configuración, de menor a mayor prioridad:
-
Configuración global en el archivo de configuración.
-
Sección de tareas de la definición del flujo de trabajo.
-
Task-specific selectores en el archivo de configuración.
Temas
Estrategia de reintento de tareas mediante ErrorStrategy
Utilice la errorStrategy directiva para definir la estrategia en caso de errores en las tareas. De forma predeterminada, cuando una tarea regresa con una indicación de error (un estado de salida distinto de cero), la tarea se detiene y HealthOmics finaliza toda la ejecución. Si lo establecesretry, errorStrategy HealthOmics intenta volver a intentar la tarea fallida una vez. Para aumentar el número de reintentos, consulte. Los intentos de reintento de tareas se realizan con MaxRetries
process { label 'my_label' errorStrategy 'retry' script: """ your-command-here """ }
Para obtener información sobre cómo HealthOmics gestiona los reintentos de tareas durante una ejecución, consulte. La tarea se reintenta
Los intentos de reintento de tareas se realizan con MaxRetries
De forma predeterminada, HealthOmics no intenta reintentar una tarea fallida ni intenta volver a intentarlo si se configura. errorStrategy Para aumentar el número máximo de reintentos, errorStrategy defina retry y configure el número máximo de reintentos mediante la directiva. maxRetries
El siguiente ejemplo establece el número máximo de reintentos en 3 en la configuración global.
process { errorStrategy = 'retry' maxRetries = 3 }
El siguiente ejemplo muestra cómo configurarlo maxRetries en la sección de tareas de la definición del flujo de trabajo.
process myTask { label 'my_label' errorStrategy 'retry' maxRetries 3 script: """ your-command-here """ }
El siguiente ejemplo muestra cómo especificar la configuración específica de la tarea en el archivo de configuración de Nextflow, en función de los selectores de nombres o etiquetas.
process { withLabel: 'my_label' { errorStrategy = 'retry' maxRetries = 3 } withName: 'myTask' { errorStrategy = 'retry' maxRetries = 3 } }
Opte por no participar en la tarea y vuelva a intentarlo con Omics 5xx RetryOn
Para Nextflow v23 y versiones posteriores, HealthOmics admite reintentos de tareas si la tarea falló debido a errores de servicio (códigos de estado HTTP 5XX). De forma predeterminada, HealthOmics intenta reintentar hasta dos veces una tarea fallida.
Puede configurarlo omicsRetryOn5xx para excluirse del reintento de la tarea en caso de errores de servicio. Para obtener más información sobre cómo volver a intentar una tarea HealthOmics, consulte. La tarea se reintenta
El siguiente ejemplo se configura omicsRetryOn5xx en la configuración global para optar por no volver a intentar la tarea.
process { omicsRetryOn5xx = false }
El siguiente ejemplo muestra cómo realizar la configuración omicsRetryOn5xx en la sección de tareas de la definición del flujo de trabajo.
process myTask { label 'my_label' omicsRetryOn5xx = false script: """ your-command-here """ }
El siguiente ejemplo muestra cómo establecer omicsRetryOn5xx una configuración específica para una tarea en el archivo de configuración de Nextflow, en función de los selectores de nombres o etiquetas.
process { withLabel: 'my_label' { omicsRetryOn5xx = false } withName: 'myTask' { omicsRetryOn5xx = false } }
Duración de la tarea según la directiva de tiempo
HealthOmics proporciona una cuota ajustable (consulteHealthOmics cuotas de servicio) para especificar la duración máxima de una ejecución. Para los flujos de trabajo de Nextflow v23 y posteriores, también puedes especificar la duración máxima de las tareas mediante la directiva Nextflow. time
Durante el desarrollo de un nuevo flujo de trabajo, establecer la duración máxima de las tareas te ayuda a atrapar las tareas fuera de control y las tareas de larga duración.
Para obtener más información sobre la directiva horaria de Nextflow, consulta la directiva horaria en la referencia
HealthOmics proporciona el siguiente soporte para la directiva horaria de Nextflow:
-
HealthOmics admite una granularidad de 1 minuto para la directiva de tiempo. Puede especificar un valor entre 60 segundos y el valor de duración máxima de la ejecución.
-
Si introduce un valor inferior a 60, lo HealthOmics redondea a 60 segundos. Para valores superiores a 60, HealthOmics redondea al minuto más cercano.
-
Si el flujo de trabajo admite reintentos para una tarea, HealthOmics reintenta la tarea si se agota el tiempo de espera.
-
Si se agota el tiempo de espera de una tarea (o se agota el tiempo de espera del último reintento), HealthOmics cancela la tarea. Esta operación puede tener una duración de uno a dos minutos.
-
Cuando se agota el tiempo de espera de la tarea, HealthOmics establece el estado de ejecución y tarea como fallido y cancela las demás tareas en ejecución (para las tareas en estado Iniciativo, Pendiente o En ejecución). HealthOmics exporta los resultados de las tareas que completó antes de que se agotara el tiempo de espera a la ubicación de salida de S3 que haya designado.
-
El tiempo que una tarea pasa en estado pendiente no se tiene en cuenta para la duración de la tarea.
-
Si la ejecución forma parte de un grupo de ejecución y se agota el tiempo de espera antes que el temporizador de la tarea, la ejecución y la tarea pasan al estado fallido.
Especifique la duración del tiempo de espera mediante una o más de las siguientes unidades:ms,s, mh, od.
El siguiente ejemplo muestra cómo especificar la configuración global en el archivo de configuración de Nextflow. Establece un tiempo de espera global de 1 hora y 30 minutos.
process { time = '1h30m' }
El siguiente ejemplo muestra cómo especificar una directiva horaria en la sección de tareas de la definición del flujo de trabajo. En este ejemplo se establece un tiempo de espera de 3 días, 5 horas y 4 minutos. Este valor tiene prioridad sobre el valor global del archivo de configuración, pero no tiene prioridad sobre una directiva de tiempo específica de la tarea en el archivo de my_label configuración.
process myTask { label 'my_label' time '3d5h4m' script: """ your-command-here """ }
En el siguiente ejemplo, se muestra cómo especificar las directivas horarias específicas de la tarea en el archivo de configuración de Nextflow, en función de los selectores de nombres o etiquetas. En este ejemplo, se establece un valor de tiempo de espera global de la tarea de 30 minutos. Establece un valor de 2 horas para la tarea myTask y establece un valor de 3 horas para las tareas con etiquetamy_label. Para las tareas que coinciden con el selector, estos valores tienen prioridad sobre el valor global y el valor de la definición del flujo de trabajo.
process { time = '30m' withLabel: 'my_label' { time = '3h' } withName: 'myTask' { time = '2h' } }
Utilice los perfiles de Nextflow
Los perfiles de Nextflow se denominan conjuntos de valores de configuración que puede seleccionar en tiempo de ejecución. Defina los perfiles en el profiles bloque de su nextflow.config archivo:
profiles { standard { process.cpus = 2 process.memory = '4 GB' } production { process.cpus = 16 process.memory = '64 GB' params.input = 's3://bucket/production-data.bam' } }
Al iniciar una ejecución, especifique uno o más perfiles mediante el engineSettings parámetro. HealthOmics pasa el -profile indicador al motor Nextflow. Para obtener más información, consulte Especifique la configuración del motor.
aws omics start-run \ --workflow-idworkflow-id\ --role-arnrole-arn\ --output-uri s3://bucket/prefix/ \ --engine-settings '{"profile": "production"}'
Cuando se especifican varios perfiles (por ejemplo,"test,docker"), Nextflow los aplica en el orden en que se especifican en la línea de comandos. Los perfiles posteriores anulan los anteriores en caso de configuraciones conflictivas. Para las versiones de Nextflow anteriores a la 26, los perfiles se aplican en el orden en que están definidos en el archivo de configuración en lugar de en el orden de la línea de comandos.
Tenga en cuenta lo siguiente:
-
El soporte de perfiles está disponible para todas las versiones HealthOmics compatibles de Nextflow.
-
Los perfiles pueden contener parámetros, directivas de proceso,
includeConfigdeclaraciones y anulaciones de manifiestos (incluidasmanifest.nextflowVersion). -
Los parámetros de ejecución explícitos tienen prioridad sobre los valores de los parámetros definidos por el perfil.
-
Si especifica un perfil inexistente, HealthOmics devuelve un error de validación.
-
Los perfiles se deben definir en el archivo zip de definición del flujo de trabajo. HealthOmics no admite la búsqueda de definiciones de perfil de fuentes externas.
-
Si no especificas un perfil, la ejecución utilizará el
standardperfil si está definido en los perfiles de la definición del flujo de trabajo. De lo contrario, la ejecución utiliza la configuración predeterminada (de nivel superior). -
Cuando utilice perfiles, le recomendamos fijar la versión de Nextflow en la definición de flujo de trabajo
manifest.nextflowVersionpara garantizar un comportamiento coherente de la aplicación de perfiles en todas las ejecuciones.
Exporte contenido a nivel de flujo de trabajo
Para la versión 25.10 de Nextflow y versiones posteriores, puede exportar archivos generados al margen de tareas individuales, como los informes de procedencia o los DAG en proceso. Para exportar estos archivos, escríbalos en. /mnt/workflow/output/ HealthOmics exporta los archivos ubicados en este directorio al output/ prefijo de la ubicación de salida de Amazon S3 de la ejecución.
El siguiente ejemplo muestra cómo configurar el nf-prov complemento para escribir un informe de procedencia en él. /mnt/workflow/output/
prov { formats { bco { file = "/mnt/workflow/output/pipeline_info/manifest.bco.json" } } }
También puedes pasar esta ruta como parámetro en el JSON de entrada de tu ejecución. Este enfoque es común en los flujos de trabajo nf-core que utilizan. params.outdir
{ "outdir": "/mnt/workflow/output/" }
Exporta el contenido de las tareas
Para los flujos de trabajo escritos en Nextflow, defina una directiva PublishDir para exportar el contenido de las tareas a su bucket de salida de Amazon S3. Como se muestra en el siguiente ejemplo, defina el valor PublishDir en. /mnt/workflow/pubdir Para exportar archivos a Amazon S3, los archivos deben estar en este directorio.
nextflow.enable.dsl=2 workflow { CramToBamTask(params.ref_fasta, params.ref_fasta_index, params.ref_dict, params.input_cram, params.sample_name) ValidateSamFile(CramToBamTask.out.outputBam) } process CramToBamTask { container "<account>.dkr.ecr.us-west-2.amazonaws.com/genomes-in-the-cloud" publishDir "/mnt/workflow/pubdir" input: path ref_fasta path ref_fasta_index path ref_dict path input_cram val sample_name output: path "${sample_name}.bam", emit: outputBam path "${sample_name}.bai", emit: outputBai script: """ set -eo pipefail samtools view -h -T $ref_fasta $input_cram | samtools view -b -o ${sample_name}.bam - samtools index -b ${sample_name}.bam mv ${sample_name}.bam.bai ${sample_name}.bai """ } process ValidateSamFile { container "<account>.dkr.ecr.us-west-2.amazonaws.com/genomes-in-the-cloud" publishDir "/mnt/workflow/pubdir" input: file input_bam output: path "validation_report" script: """ java -Xmx3G -jar /usr/gitc/picard.jar \ ValidateSamFile \ INPUT=${input_bam} \ OUTPUT=validation_report \ MODE=SUMMARY \ IS_BISULFITE_SEQUENCED=false """ }
En el caso de Nextflow v25.10 y versiones posteriores, como alternativapublishDir, puede utilizar los resultados del flujo de trabajo para exportar el contenido de las tareas. El siguiente ejemplo muestra cómo definir un output bloque de flujo de trabajo que exporta los resultados de las tareas a Amazon S3.
process myTask { input: val data output: path 'result.txt' script: """ echo ${data} > result.txt """ } workflow { main: output_file = myTask('hello') publish: results = output_file } output { results { path '.' } }
Para obtener más información sobre los resultados del flujo de trabajo, consulte los resultados del flujo
Especifique la versión de sintaxis de Nextflow
La versión 26.04.0 de Nextflow usa el analizador sintáctico estricto (v2) de forma predeterminada. Se trata de un cambio importante para los flujos de trabajo escritos con la sintaxis antigua (v1), que es la predeterminada en Nextflow v25.10.0 y versiones anteriores. Para obtener información sobre la sintaxis de la versión 2, consulte Sintaxis estricta
Para ejecutar un flujo de trabajo creado con el analizador anterior (v1), engineSettings.syntaxVersion configúrelo en la solicitud: v1 StartRun
{ "engineSettings": { "syntaxVersion": "v1" } }
Para la versión 25.10.0 de Nextflow y versiones anteriores, HealthOmics no es compatible con el analizador de la versión 2.
Notas de la versión 2.6.04 de Nextflow
En las siguientes tablas se resume la HealthOmics compatibilidad con las nuevas funciones, mejoras y versiones obsoletas publicadas en la versión 26.04 de Nextflow.
Nuevas características y mejoras
| Característica | Desde la versión | HealthOmics soporte | Notas |
|---|---|---|---|
| Analizador sintáctico estricto (predeterminado) | 26.04 | Sí | Habilitado de forma predeterminada desde la versión 26.04. El analizador antiguo está disponible syntaxVersion: "v1" en la configuración del motor. |
| Tipos de registro | 26.04 | Sí | Para obtener más información, consulte Registros |
| Resúmenes de resultados del flujo de trabajo | 26.04 | Sí | Imprime un resumen de los resultados del flujo de trabajo al finalizar la ejecución. Formato de salida configurable mediante outputFormat los ajustes del motor. Para obtener más información, consulte Especifique la configuración del motor. |
| Modo de registro de agentes | 26.04 | Sí | Configurable mediante agentMode los ajustes del motor. Para obtener más información, consulte Especifique la configuración del motor. |
| Sistema de módulos (Nextflow Registry) | 26.04 | No | HealthOmics los flujos de trabajo se ejecutan en una red aislada sin acceso saliente a Internet. Puede incluir módulos directamente en el archivo zip de su flujo de trabajo. |
| Escritura estática (vista previa) | 26.04 | No | HealthOmics no admite las funciones de vista previa. |
| Auto-load recopilación de parámetros de archivos | 26.04 | No | Requiere escritura estática (vista previa), que HealthOmics no es compatible. |
| Multi-revision oleoductos: pago | 26.04 | N/A | No aplicable. HealthOmics no utiliza Git-based Pipeline Checkout. |
Obsolescencias
| Artículo obsoleto | Desde la versión | Impact | Acción recomendada |
|---|---|---|---|
Método de listFiles() |
26.04 | Advertencia de obsolescencia | Sustituir por. listDirectory() |
Indicador nextflow.enable.strict |
26.04 | Ya no es necesario | Eliminar de la configuración. El modo estricto es ahora el predeterminado. |
manifest.defaultBranch |
26.04 | Ya no es necesario | Eliminar de la configuración. HealthOmics no utiliza Git-based Pipeline Checkout y nunca ha admitido esta opción. |