View a markdown version of this page

Especificações da definição do fluxo de trabalho do Nextflow - AWS HealthOmics

As traduções são geradas por tradução automática. Em caso de conflito entre o conteúdo da tradução e da versão original em inglês, a versão em inglês prevalecerá.

Especificações da definição do fluxo de trabalho do Nextflow

HealthOmics suporta Nextflow DSL1 e DSL2. Para obter detalhes, consulte Suporte à versão Nextflow.

O Nextflow DSL2 é baseado na linguagem de programação Groovy, portanto, os parâmetros são dinâmicos e a coerção de tipos é possível usando as mesmas regras do Groovy. Os parâmetros e valores fornecidos pelo JSON de entrada estão disponíveis no mapa parameters (params) do fluxo de trabalho.

Use plug-ins nf-schema e nf-validation

nota

Resumo do HealthOmics suporte para plug-ins:

  • v22.04 — sem suporte para plug-ins

  • v23.10 — suporta e nf-schema nf-validation

  • v24.10 — suporta nf-schema

  • v25.10, v26.04 — suportanf-schema,, e nf-core-utils nf-fgbio nf-prov

HealthOmics fornece o seguinte suporte para plug-ins Nextflow:

  • Para o Nextflow v23.10, HealthOmics pré-instala o plug-in nf-validation @1 .1.1.

  • Para o Nextflow v23.10 e v24.10, HealthOmics pré-instala o plug-in nf-schema @2 .3.0.

  • Para o Nextflow v25.10, HealthOmics pré-instala os plug-ins nf-schema @2 .6.1, nf-core-utils @0 .4.0, nf-prov @1 .7.0 e nf-fgbio @1 .0.1.

  • Para o Nextflow v26.04, HealthOmics pré-instala os plug-ins nf-schema @2 .7.2, nf-core-utils @0 .4.0, nf-prov @1 .7.0 e nf-fgbio @1 .0.1.

  • Você não pode recuperar plug-ins adicionais durante a execução de um fluxo de trabalho. HealthOmics ignora qualquer outra versão de plug-in especificada no nextflow.config arquivo.

  • Para o Nextflow v24 e superior, nf-schema é a nova versão do plug-in obsoleto. nf-validation Para obter mais informações, consulte nf-schema no repositório Nextflow. GitHub

Especificar URIs de armazenamento

Quando um Amazon S3 ou HealthOmics URI é usado para construir um arquivo Nextflow ou objeto de caminho, ele disponibiliza o objeto correspondente para o fluxo de trabalho, desde que o acesso de leitura seja concedido. O uso de prefixos ou diretórios é permitido para URIs do Amazon S3. Para obter exemplos, consulte Formatos de parâmetros de entrada do Amazon S3.

HealthOmics suporta parcialmente o uso de padrões globais em URIs ou URIs HealthOmics de armazenamento do Amazon S3. Use padrões Glob na definição do fluxo de trabalho para a criação de path nossos file canais. Para o comportamento esperado e os casos exatos, consulteNextflow: Tratamento do padrão Glob nas entradas do Amazon S3.

Diretivas Nextflow

Você configura as diretivas do Nextflow no arquivo de configuração ou na definição do fluxo de trabalho do Nextflow. A lista a seguir mostra a ordem de precedência HealthOmics usada para aplicar as definições de configuração, da prioridade mais baixa para a mais alta:

  1. Configuração global no arquivo de configuração.

  2. Seção de tarefas da definição do fluxo de trabalho.

  3. Task-specific seletores no arquivo de configuração.

Estratégia de repetição de tarefas usando ErrorStrategy

Use a errorStrategy diretiva para definir a estratégia para erros de tarefas. Por padrão, quando uma tarefa retorna com uma indicação de erro (um status de saída diferente de zero), a tarefa para e HealthOmics encerra toda a execução. Se você definir comoretry, errorStrategy HealthOmics tentará uma nova tentativa da tarefa que falhou. Para aumentar o número de novas tentativas, consulteTentativas de repetição de tarefas usando MaxRetries.

process { label 'my_label' errorStrategy 'retry' script: """ your-command-here """ }

Para obter informações sobre como HealthOmics manipula novas tentativas de tarefas durante uma execução, consulteTentativas de tarefas.

Tentativas de repetição de tarefas usando MaxRetries

Por padrão, HealthOmics não tenta nenhuma nova tentativa de uma tarefa com falha, nem tenta uma nova tentativa se você configurar. errorStrategy Para aumentar o número máximo de novas tentativas, errorStrategy defina retry e configure o número máximo de novas tentativas usando a maxRetries diretiva.

O exemplo a seguir define o número máximo de tentativas como 3 na configuração global.

process { errorStrategy = 'retry' maxRetries = 3 }

O exemplo a seguir mostra como definir maxRetries na seção de tarefas da definição do fluxo de trabalho.

process myTask { label 'my_label' errorStrategy 'retry' maxRetries 3 script: """ your-command-here """ }

O exemplo a seguir mostra como especificar a configuração específica da tarefa no arquivo de configuração do Nextflow, com base nos seletores de nome ou rótulo.

process { withLabel: 'my_label' { errorStrategy = 'retry' maxRetries = 3 } withName: 'myTask' { errorStrategy = 'retry' maxRetries = 3 } }

Opte por não tentar novamente a tarefa usando omics 5xx RetryOn

Para o Nextflow v23 e versões posteriores, HealthOmics oferece suporte a novas tentativas de tarefas se a tarefa falhar devido a erros de serviço (códigos de status HTTP 5XX). Por padrão, HealthOmics tenta até duas tentativas de uma tarefa com falha.

Você pode configurar omicsRetryOn5xx para desativar a repetição de tarefas em caso de erros de serviço. Para obter mais informações sobre a repetição de tarefas HealthOmics, consulteTentativas de tarefas.

O exemplo a seguir é configurado omicsRetryOn5xx na configuração global para desativar a repetição da tarefa.

process { omicsRetryOn5xx = false }

O exemplo a seguir mostra como configurar omicsRetryOn5xx na seção de tarefas da definição do fluxo de trabalho.

process myTask { label 'my_label' omicsRetryOn5xx = false script: """ your-command-here """ }

O exemplo a seguir mostra omicsRetryOn5xx como definir uma configuração específica da tarefa no arquivo de configuração do Nextflow, com base nos seletores de nome ou rótulo.

process { withLabel: 'my_label' { omicsRetryOn5xx = false } withName: 'myTask' { omicsRetryOn5xx = false } }

Duração da tarefa usando a diretiva de tempo

HealthOmics fornece uma cota ajustável (consulteHealthOmics cotas de serviço) para especificar a duração máxima de uma execução. Para fluxos de trabalho do Nextflow v23 e posteriores, você também pode especificar a duração máxima das tarefas usando a diretiva Nextflow. time

Durante o desenvolvimento de um novo fluxo de trabalho, definir a duração máxima da tarefa ajuda você a capturar tarefas descontroladas e tarefas de longa execução.

Para obter mais informações sobre a diretiva de tempo do Nextflow, consulte a diretiva de tempo na referência do Nextflow.

HealthOmics fornece o seguinte suporte para a diretiva de tempo Nextflow:

  1. HealthOmics suporta granularidade de 1 minuto para a diretiva de tempo. Você pode especificar um valor entre 60 segundos e o valor máximo da duração da execução.

  2. Se você inserir um valor menor que 60, o HealthOmics arredonda para 60 segundos. Para valores acima de 60, HealthOmics arredonda para baixo para o minuto mais próximo.

  3. Se o fluxo de trabalho suportar novas tentativas para uma tarefa, HealthOmics tente novamente a tarefa se o tempo limite atingir o tempo limite.

  4. Se uma tarefa atingir o tempo limite (ou se a última tentativa atingir o tempo limite), a tarefa HealthOmics será cancelada. Essa operação pode ter uma duração de um a dois minutos.

  5. No tempo limite da tarefa, HealthOmics define a execução e o status da tarefa como falha e cancela as outras tarefas na execução (para tarefas com status Inicial, Pendente ou Em execução). HealthOmics exporta as saídas das tarefas concluídas antes do tempo limite para o local de saída designado do S3.

  6. O tempo que uma tarefa passa no status pendente não conta para a duração da tarefa.

  7. Se a execução fizer parte de um grupo de execução e o grupo de execução expirar antes do cronômetro da tarefa, a execução e a tarefa passarão para o status de falha.

Especifique a duração do tempo limite usando uma ou mais das seguintes unidades:ms,,s, mh, oud.

O exemplo a seguir mostra como especificar a configuração global no arquivo de configuração do Nextflow. Ele define um tempo limite global de 1 hora e 30 minutos.

process { time = '1h30m' }

O exemplo a seguir mostra como especificar uma diretiva de horário na seção de tarefas da definição do fluxo de trabalho. Este exemplo define um tempo limite de 3 dias, 5 horas e 4 minutos. Esse valor tem precedência sobre o valor global no arquivo de configuração, mas não tem precedência sobre uma diretiva de tempo específica da tarefa no arquivo de my_label configuração.

process myTask { label 'my_label' time '3d5h4m' script: """ your-command-here """ }

O exemplo a seguir mostra como especificar diretivas de horário específicas da tarefa no arquivo de configuração do Nextflow, com base nos seletores de nome ou rótulo. Este exemplo define um valor global de tempo limite da tarefa de 30 minutos. Ele define um valor de 2 horas para a tarefa myTask e define um valor de 3 horas para tarefas com rótulomy_label. Para tarefas que correspondem ao seletor, esses valores têm precedência sobre o valor global e o valor na definição do fluxo de trabalho.

process { time = '30m' withLabel: 'my_label' { time = '3h' } withName: 'myTask' { time = '2h' } }

Use perfis Nextflow

Os perfis Nextflow são conjuntos nomeados de configurações que você pode selecionar em tempo de execução. Defina perfis no profiles bloco do seu nextflow.config arquivo:

profiles { standard { process.cpus = 2 process.memory = '4 GB' } production { process.cpus = 16 process.memory = '64 GB' params.input = 's3://bucket/production-data.bam' } }

Ao iniciar uma execução, especifique um ou mais perfis usando o engineSettings parâmetro. HealthOmics passa a -profile bandeira para o mecanismo Nextflow. Para obter mais informações, consulte Especifique as configurações do motor.

aws omics start-run \ --workflow-id workflow-id \ --role-arn role-arn \ --output-uri s3://bucket/prefix/ \ --engine-settings '{"profile": "production"}'

Quando vários perfis são especificados (por exemplo,"test,docker"), o Nextflow os aplica na ordem em que são especificados na linha de comando. Perfis posteriores substituem os anteriores por configurações conflitantes. Para versões do Nextflow inferiores a 26, os perfis são aplicados na ordem em que são definidos no arquivo de configuração, em vez da ordem da linha de comando.

Observe o seguinte:

  • O suporte de perfil está disponível para todas as versões HealthOmics suportadas do Nextflow.

  • Os perfis podem conter parâmetros, diretivas de processo, includeConfig declarações e substituições de manifesto (inclusive). manifest.nextflowVersion

  • Os parâmetros de execução explícitos têm precedência sobre os valores dos parâmetros definidos pelo perfil.

  • Se você especificar um perfil inexistente, HealthOmics retornará um erro de validação.

  • Os perfis devem ser definidos no arquivo zip de definição do fluxo de trabalho. HealthOmics não suporta a busca de definições de perfil de fontes externas.

  • Se você não especificar um perfil, a execução usará o standard perfil se ele estiver definido em perfis na definição do fluxo de trabalho. Caso contrário, a execução usa a configuração padrão (nível superior).

  • Ao usar perfis, recomendamos fixar a versão do Nextflow em sua definição de fluxo de trabalho usando manifest.nextflowVersion para garantir um comportamento consistente do aplicativo de perfil em todas as execuções.

Exportar conteúdo em nível de fluxo de trabalho

Para o Nextflow v25.10 e versões posteriores, você pode exportar arquivos produzidos fora de tarefas individuais, como relatórios de proveniência ou DAGs de pipeline. Para exportar esses arquivos, grave-os em/mnt/workflow/output/. HealthOmics exporta arquivos colocados nesse diretório para o output/ prefixo no local de saída do Amazon S3 da sua execução.

O exemplo a seguir mostra como configurar o nf-prov plug-in para gravar um relatório de proveniência. /mnt/workflow/output/

prov { formats { bco { file = "/mnt/workflow/output/pipeline_info/manifest.bco.json" } } }

Você também pode passar esse caminho como um parâmetro no JSON de entrada da sua execução. Essa abordagem é comum com fluxos de trabalho nf-core que usam. params.outdir

{ "outdir": "/mnt/workflow/output/" }

Exportar conteúdo da tarefa

Para fluxos de trabalho escritos em Nextflow, defina uma diretiva PublishDir para exportar o conteúdo da tarefa para seu bucket de saída do Amazon S3. Conforme mostrado no exemplo a seguir, defina o valor publishDir como/mnt/workflow/pubdir. Para exportar arquivos para o Amazon S3, os arquivos devem estar nesse diretório.

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 """ }

Para o Nextflow v25.10 e posterior, como alternativa, você pode usar as saídas do fluxo de trabalho para publishDir exportar o conteúdo da tarefa. O exemplo a seguir mostra como definir um output bloco de fluxo de trabalho que exporta resultados de tarefas para o 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 obter mais informações sobre as saídas do fluxo de trabalho, consulte Saídas do fluxo de trabalho na documentação do Nextflow.

Especifique a versão da sintaxe do Nextflow

O Nextflow v26.04.0 usa o analisador de sintaxe estrito (v2) por padrão. Essa é uma alteração importante para fluxos de trabalho escritos usando a sintaxe legada (v1), que é o padrão no Nextflow v25.10.0 e anteriores. Para obter informações sobre a sintaxe v2, consulte Sintaxe estrita na documentação do Seqera Nextflow.

Para executar um fluxo de trabalho criado com base no analisador legado (v1), engineSettings.syntaxVersion defina v1 como na solicitação: StartRun

{ "engineSettings": { "syntaxVersion": "v1" } }

Para o Nextflow v25.10.0 e versões anteriores, HealthOmics não oferece suporte ao analisador v2.

Notas de lançamento do Nextflow v26.04

As tabelas a seguir resumem o HealthOmics suporte para novos recursos, aprimoramentos e depreciações lançados na versão 26.04 do Nextflow.

Novos recursos e aprimoramentos

Recurso Da versão HealthOmics apoio Observações
Analisador de sintaxe estrito (padrão) 26.04 Sim Ativado por padrão a partir da versão 26.04. Analisador antigo disponível syntaxVersion: "v1" nas configurações do motor.
Tipos de registro 26.04 Sim Para obter mais informações, consulte Registros na documentação do Seqera Nextflow.
Resumos de saída do fluxo de trabalho 26.04 Sim Imprime um resumo das saídas do fluxo de trabalho na conclusão da execução. Formato de saída configurável por meio outputFormat das configurações do motor. Para obter mais informações, consulte Especifique as configurações do motor.
Modo de registro do agente 26.04 Sim Configurável por meio agentMode das configurações do motor. Para obter mais informações, consulte Especifique as configurações do motor.
Sistema de módulos (Nextflow Registry) 26.04 Não HealthOmics fluxos de trabalho são executados em uma rede isolada sem acesso externo à Internet. Você pode incluir módulos diretamente no zip do seu fluxo de trabalho.
Digitação estática (pré-visualização) 26.04 Não HealthOmics não suporta recursos de pré-visualização.
Auto-load parâmetros de coleta de arquivos 26.04 Não Requer digitação estática (pré-visualização), que HealthOmics não é compatível.
Multi-revision checkout de oleodutos 26.04 N/A Não aplicável. HealthOmics não usa o Git-based pipeline checkout.

Defasagens

Item obsoleto Da versão Impacto Ação recomendada
Método listFiles() 26.04 Aviso de depreciação Substitua porlistDirectory().
sinalizador nextflow.enable.strict 26.04 Não é mais necessário Remover da configuração. O modo estrito agora é o padrão.
manifest.defaultBranch 26.04 Não é mais necessário Remover da configuração. HealthOmics não usa o Git-based pipeline checkout e nunca ofereceu suporte a essa opção.