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 y. DSL1 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 la coerción de tipos es posible 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 () params
del flujo de trabajo.
Temas
Uso de 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-schema
nf-validation
v24.10 — admite
nf-schema
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 Nextflow v23.10 y versiones posteriores, preinstala el complemento nf-schema @2 .3.0. 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.config
archivo. -
Para Nextflow v24 y versiones posteriores,
nf-schema
es la nueva versión del complemento obsoleto.nf-validation
Para obtener más información, consulte nf-schema en el repositorio de Nextflow. GitHub
Especificar el almacenamiento URIs
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 en Amazon S3 URIs. Para ver ejemplos, consulta Formatos de parámetros de entrada de Amazon S3.
HealthOmics admite el uso de patrones globales en Amazon S3 URIs o HealthOmics Storage URIs. Utilice patrones globales en la definición del flujo de trabajo para la creación de nuestros canalespath
. file
Establecer la duración máxima de la tarea mediante directivas 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 las versiones 23 y 24 de Nextflow, también puede especificar la duración máxima de las tareas mediante las directivas horarias de Nextflow.
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 las directivas horarias de Nextflow:
-
HealthOmics admite una granularidad de 1 minuto para la directiva horaria. 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 el tiempo de espera mediante una o más de las siguientes unidades:ms
,s
, m
h
, od
. Puede especificar las directivas de tiempo en el archivo de configuración de Nextflow y en la definición del flujo de trabajo. La siguiente lista muestra el orden de prioridad, 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.
-
Selectores específicos de la tarea en el archivo de configuración.
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 """ }
El siguiente ejemplo 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' } }
Exportación del contenido de la tarea
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 """ }