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.
Tópicos
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-schemanf-validationv24.10 — suporta
nf-schemav25.10, v26.04 — suporta
nf-schema,, enf-core-utilsnf-fgbionf-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.configarquivo. -
Para o Nextflow v24 e superior,
nf-schemaé a nova versão do plug-in obsoleto.nf-validationPara obter mais informações, consulte nf-schemano 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:
-
Configuração global no arquivo de configuração.
-
Seção de tarefas da definição do fluxo de trabalho.
-
Task-specific seletores no arquivo de configuração.
Tópicos
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
HealthOmics fornece o seguinte suporte para a diretiva de tempo Nextflow:
-
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.
-
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.
-
Se o fluxo de trabalho suportar novas tentativas para uma tarefa, HealthOmics tente novamente a tarefa se o tempo limite atingir o tempo limite.
-
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.
-
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.
-
O tempo que uma tarefa passa no status pendente não conta para a duração da tarefa.
-
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-idworkflow-id\ --role-arnrole-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,
includeConfigdeclaraçõ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
standardperfil 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.nextflowVersionpara 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
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 |
| 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. |