Saídas de tarefas em uma definição de HealthOmics fluxo de trabalho - 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á.

Saídas de tarefas em uma definição de HealthOmics fluxo de trabalho

Você especifica as saídas da tarefa na definição do fluxo de trabalho. Por padrão, HealthOmics descarta todos os arquivos de tarefas intermediárias quando o fluxo de trabalho é concluído. Para exportar um arquivo intermediário, você o define como uma saída.

Se você usar o cache de chamadas, HealthOmics salva as saídas da tarefa no cache, incluindo todos os arquivos intermediários que você definir como saídas.

Os tópicos a seguir incluem exemplos de definição de tarefas para cada uma das linguagens de definição de fluxo de trabalho.

Saídas de tarefas para WDL

Para definições de fluxo de trabalho escritas em WDL, defina suas saídas na seção de fluxo outputs de trabalho de nível superior.

HealthOmics

Saída de tarefa para STDOUT

Este exemplo cria uma tarefa chamada SayHello que ecoa o conteúdo STDOUT no arquivo de saída da tarefa. A stdout função WDL captura o conteúdo STDOUT (neste exemplo, a string de entrada Hello World! ) no arquivostdout_file.

Como HealthOmics cria registros para todo o conteúdo STDOUT, a saída também aparece em CloudWatch Logs, junto com outras informações de registro STDERR da tarefa.

version 1.0 workflow HelloWorld { input { String message = "Hello, World!" String ubuntu_container = "123456789012.dkr.ecr.us-east-1.amazonaws.com/dockerhub/library/ubuntu:20.04" } call SayHello { input: message = message, container = ubuntu_container } output { File stdout_file = SayHello.stdout_file } } task SayHello { input { String message String container } command <<< echo "~{message}" echo "Current date: $(date)" echo "This message was printed to STDOUT" >>> runtime { docker: container cpu: 1 memory: "2 GB" } output { File stdout_file = stdout() } }

Saída de tarefa para STDERR

Este exemplo cria uma tarefa chamada SayHello que ecoa o conteúdo STDERR no arquivo de saída da tarefa. A stderr função WDL captura o conteúdo STDERR (neste exemplo, a string de entrada Hello World! ) no arquivostderr_file.

Como HealthOmics cria registros para todo o conteúdo STDERR, a saída aparecerá em CloudWatch Logs, junto com outras informações de registro STDERR da tarefa.

version 1.0 workflow HelloWorld { input { String message = "Hello, World!" String ubuntu_container = "123456789012.dkr.ecr.us-east-1.amazonaws.com/dockerhub/library/ubuntu:20.04" } call SayHello { input: message = message, container = ubuntu_container } output { File stderr_file = SayHello.stderr_file } } task SayHello { input { String message String container } command <<< echo "~{message}" >&2 echo "Current date: $(date)" >&2 echo "This message was printed to STDERR" >&2 >>> runtime { docker: container cpu: 1 memory: "2 GB" } output { File stderr_file = stderr() } }

Saída da tarefa para um arquivo

Neste exemplo, a SayHello tarefa cria dois arquivos (message.txt e info.txt) e declara explicitamente esses arquivos como as saídas nomeadas (message_file e info_file).

version 1.0 workflow HelloWorld { input { String message = "Hello, World!" String ubuntu_container = "123456789012.dkr.ecr.us-east-1.amazonaws.com/dockerhub/library/ubuntu:20.04" } call SayHello { input: message = message, container = ubuntu_container } output { File message_file = SayHello.message_file File info_file = SayHello.info_file } } task SayHello { input { String message String container } command <<< # Create message file echo "~{message}" > message.txt # Create info file with date and additional information echo "Current date: $(date)" > info.txt echo "This message was saved to a file" >> info.txt >>> runtime { docker: container cpu: 1 memory: "2 GB" } output { File message_file = "message.txt" File info_file = "info.txt" } }

Saída de tarefas para uma matriz de arquivos

Neste exemplo, a GenerateGreetings tarefa gera uma matriz de arquivos como saída da tarefa. A tarefa gera dinamicamente um arquivo de saudação para cada membro da matriz de entrada. names Como os nomes dos arquivos não são conhecidos até o tempo de execução, a definição de saída usa a função WDL glob () para gerar todos os arquivos que correspondam ao padrão. *_greeting.txt

version 1.0 workflow HelloArray { input { Array[String] names = ["World", "Friend", "Developer"] String ubuntu_container = "123456789012.dkr.ecr.us-east-1.amazonaws.com/dockerhub/library/ubuntu:20.04" } call GenerateGreetings { input: names = names, container = ubuntu_container } output { Array[File] greeting_files = GenerateGreetings.greeting_files } } task GenerateGreetings { input { Array[String] names String container } command <<< # Create a greeting file for each name for name in ~{sep=" " names}; do echo "Hello, $name!" > ${name}_greeting.txt done >>> runtime { docker: container cpu: 1 memory: "2 GB" } output { Array[File] greeting_files = glob("*_greeting.txt") } }

Saídas de tarefas para Nextflow

Para definições de fluxo de trabalho escritas no Nextflow, defina uma diretiva PublishDir para exportar o conteúdo da tarefa para seu bucket de saída do Amazon S3. Defina o valor PublishDir como/mnt/workflow/pubdir.

HealthOmics Para exportar arquivos para o Amazon S3, os arquivos devem estar nesse diretório.

Se uma tarefa produzir um grupo de arquivos de saída para uso como entradas para uma tarefa subseqüente, recomendamos que você agrupe esses arquivos em um diretório e emita o diretório como uma saída de tarefa. A enumeração de cada arquivo individual pode resultar em um gargalo de E/S no sistema de arquivos subjacente. Por exemplo:

process my_task { ... // recommended output "output-folder/", emit: output // not recommended // output "output-folder/**", emit: output ... }

Saídas de tarefas para CWL

Para definições de fluxo de trabalho escritas em CWL, você pode especificar as saídas da tarefa usando CommandLineTool tarefas. As seções a seguir mostram exemplos de CommandLineTool tarefas que definem diferentes tipos de saídas.

Saída de tarefa para STDOUT

Este exemplo cria uma CommandLineTool tarefa que ecoa o conteúdo STDOUT em um arquivo de saída de texto chamado. output.txt Por exemplo, se você fornecer a seguinte entrada, a saída da tarefa resultante será Hello World! no output.txt arquivo.

{ "message": "Hello World!" }

A outputs diretiva especifica que o nome da saída é example_out e seu tipo éstdout. Para que uma tarefa posterior consuma a saída dessa tarefa, ela se referiria à saída comoexample_out.

Como HealthOmics cria registros para todo o conteúdo STDERR e STDOUT, a saída também aparece em CloudWatch Logs, junto com outras informações de registro STDERR da tarefa.

cwlVersion: v1.2 class: CommandLineTool baseCommand: echo stdout: output.txt inputs: message: type: string inputBinding: position: 1 outputs: example_out: type: stdout requirements: DockerRequirement: dockerPull: 123456789012.dkr.ecr.us-east-1.amazonaws.com/dockerhub/library/ubuntu:20.04 ResourceRequirement: ramMin: 2048 coresMin: 1

Saída de tarefa para STDERR

Este exemplo cria uma CommandLineTool tarefa que ecoa o conteúdo STDERR em um arquivo de saída de texto chamado. stderr.txt A tarefa modifica o baseCommand para que seja echo gravado em STDERR (em vez de STDOUT).

A outputs diretiva especifica que o nome da saída é stderr_out e seu tipo éstderr.

Como HealthOmics cria registros para todo o conteúdo STDERR e STDOUT, a saída aparecerá em CloudWatch Logs, junto com outras informações de registro STDERR da tarefa.

cwlVersion: v1.2 class: CommandLineTool baseCommand: [bash, -c] stderr: stderr.txt inputs: message: type: string inputBinding: position: 1 shellQuote: true valueFrom: "echo $(self) >&2" outputs: stderr_out: type: stderr requirements: DockerRequirement: dockerPull: 123456789012.dkr.ecr.us-east-1.amazonaws.com/dockerhub/library/ubuntu:20.04 ResourceRequirement: ramMin: 2048 coresMin: 1

Saída da tarefa para um arquivo

Este exemplo cria uma CommandLineTool tarefa que cria um arquivo tar compactado a partir dos arquivos de entrada. Você fornece o nome do arquivo como um parâmetro de entrada (archive_name).

A outputs diretiva especifica que o tipo de archive_file saída é File e usa uma referência ao parâmetro de entrada archive_name para vincular ao arquivo de saída.

cwlVersion: v1.2 class: CommandLineTool baseCommand: [tar, cfz] inputs: archive_name: type: string inputBinding: position: 1 input_files: type: File[] inputBinding: position: 2 outputs: archive_file: type: File outputBinding: glob: "$(inputs.archive_name)" requirements: DockerRequirement: dockerPull: 123456789012.dkr.ecr.us-east-1.amazonaws.com/dockerhub/library/ubuntu:20.04 ResourceRequirement: ramMin: 2048 coresMin: 1

Saída de tarefas para uma matriz de arquivos

Neste exemplo, a CommandLineTool tarefa cria uma matriz de arquivos usando o touch comando. O comando usa as cadeias de caracteres no parâmetro files-to-create de entrada para nomear os arquivos. O comando gera uma matriz de arquivos. A matriz inclui todos os arquivos no diretório de trabalho que correspondam ao glob padrão. Este exemplo usa um padrão curinga (“*”) que corresponde a todos os arquivos.

cwlVersion: v1.2 class: CommandLineTool baseCommand: touch inputs: files-to-create: type: type: array items: string inputBinding: position: 1 outputs: output-files: type: type: array items: File outputBinding: glob: "*" requirements: DockerRequirement: dockerPull: 123456789012.dkr.ecr.us-east-1.amazonaws.com/dockerhub/library/ubuntu:20.04 ResourceRequirement: ramMin: 2048 coresMin: 1