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á.
Especificidades da definição do fluxo de trabalho do CWL
Os fluxos de trabalho escritos em Common Workflow Language, ou CWL, oferecem funcionalidade semelhante aos fluxos de trabalho escritos em WDL e Nextflow. Você pode usar o Amazon S3 ou o HealthOmics armazenamento URIs como parâmetros de entrada.
Se você definir a entrada em um SecondaryFile em um subfluxo de trabalho, adicione a mesma definição no fluxo de trabalho principal.
HealthOmics os fluxos de trabalho não oferecem suporte aos processos operacionais. Para saber mais sobre os processos operacionais nos fluxos de trabalho da CWL, consulte a documentação da CWL
A melhor prática é definir um fluxo de trabalho CWL separado para cada contêiner que você usa. Recomendamos que você não codifique a entrada DockerPull com um URI fixo do Amazon ECR.
Tópicos
Converta fluxos de trabalho CWL para uso HealthOmics
Para converter uma definição de fluxo de trabalho CWL existente para uso HealthOmics, faça as seguintes alterações:
-
Substitua todo o contêiner URIs Docker pelo Amazon URIs ECR.
-
Certifique-se de que todos os arquivos do fluxo de trabalho sejam declarados no fluxo de trabalho principal como entrada e que todas as variáveis estejam definidas explicitamente.
-
Certifique-se de que todo JavaScript código seja uma reclamação de modo estrito.
Opte por não participar da tarefa novamente usando omicsRetryOn5xx
HealthOmics suporta 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. Para obter mais informações sobre a repetição de tarefas HealthOmics, consulteTentativas de tarefas.
Para desativar a repetição da tarefa devido a erros de serviço, configure a omicsRetryOn5xx diretiva na definição do fluxo de trabalho. Você pode definir essa diretiva em requisitos ou dicas. Recomendamos adicionar a diretiva como uma dica de portabilidade.
requirements: ResourceRequirement: omicsRetryOn5xx: false hints: ResourceRequirement: omicsRetryOn5xx: false
Os requisitos substituem as dicas. Se a implementação de uma tarefa fornece um requisito de recurso em dicas que também é fornecido pelos requisitos em um fluxo de trabalho envolvente, os requisitos anexos têm precedência.
Se o mesmo requisito de tarefa aparecer em níveis diferentes do fluxo de trabalho, HealthOmics usa a entrada mais específica de requirements (ouhints, se não houver entradasrequirements). 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:
-
Nível do fluxo de trabalho
-
Nível de etapa
-
Seção de tarefas da definição do fluxo de trabalho
O exemplo a seguir mostra como configurar a omicsRetryOn5xx diretiva em diferentes níveis do fluxo de trabalho. Neste exemplo, o requisito no nível do fluxo de trabalho substitui as dicas no nível do fluxo de trabalho. As configurações de requisitos nos níveis de tarefa e etapa substituem as configurações de dicas.
class: Workflow # Workflow-level requirement and hint requirements: ResourceRequirement: omicsRetryOn5xx: false hints: ResourceRequirement: omicsRetryOn5xx: false # The value in requirements overrides this value steps: task_step: # Step-level requirement requirements: ResourceRequirement: omicsRetryOn5xx: false # Step-level hint hints: ResourceRequirement: omicsRetryOn5xx: false run: class: CommandLineTool # Task-level requirement requirements: ResourceRequirement: omicsRetryOn5xx: false # Task-level hint hints: ResourceRequirement: omicsRetryOn5xx: false
Exemplos
Veja a seguir um exemplo de um fluxo de trabalho escrito em CWL.
cwlVersion: v1.2 class: Workflow inputs: in_file: type: File secondaryFiles: [.fai] out_filename: string docker_image: string outputs: copied_file: type: File outputSource: copy_step/copied_file steps: copy_step: in: in_file: in_file out_filename: out_filename docker_image: docker_image out: [copied_file] run: copy.cwl
O arquivo a seguir define a copy.cwl tarefa.
cwlVersion: v1.2 class: CommandLineTool baseCommand: cp inputs: in_file: type: File secondaryFiles: [.fai] inputBinding: position: 1 out_filename: type: string inputBinding: position: 2 docker_image: type: string outputs: copied_file: type: File outputBinding: glob: $(inputs.out_filename) requirements: InlineJavascriptRequirement: {} DockerRequirement: dockerPull: "$(inputs.docker_image)"
Veja a seguir um exemplo de um fluxo de trabalho escrito em CWL com um requisito de GPU.
cwlVersion: v1.2 class: CommandLineTool baseCommand: ["/bin/bash", "docm_haplotypeCaller.sh"] $namespaces: cwltool: http://commonwl.org/cwltool# requirements: cwltool:CUDARequirement: cudaDeviceCountMin: 1 cudaComputeCapability: "nvidia-tesla-t4" cudaVersionMin: "1.0" InlineJavascriptRequirement: {} InitialWorkDirRequirement: listing: - entryname: 'docm_haplotypeCaller.sh' entry: | nvidia-smi --query-gpu=gpu_name,gpu_bus_id,vbios_version --format=csv inputs: [] outputs: []