Terjemahan disediakan oleh mesin penerjemah. Jika konten terjemahan yang diberikan bertentangan dengan versi bahasa Inggris aslinya, utamakan versi bahasa Inggris.
Output tugas dalam definisi HealthOmics alur kerja
Anda menentukan output tugas dalam definisi alur kerja. Secara default, HealthOmics buang semua file tugas perantara saat alur kerja selesai. Untuk mengekspor file perantara, Anda mendefinisikannya sebagai output.
Jika Anda menggunakan caching panggilan, HealthOmics menyimpan output tugas ke cache, termasuk file perantara yang Anda tentukan sebagai output.
Topik berikut mencakup contoh definisi tugas untuk setiap bahasa definisi alur kerja.
Output tugas untuk WDL
Untuk definisi alur kerja yang ditulis dalam WDL, tentukan output Anda di bagian alur kerja tingkat atas. outputs
HealthOmics
Topik
Output tugas untuk STDOUT
Contoh ini membuat tugas bernama SayHello
yang menggemakan konten STDOUT ke file output tugas. stdoutFungsi WDL menangkap konten STDOUT (dalam contoh ini, string input Hello World! ) dalam filestdout_file.
Karena HealthOmics membuat log untuk semua konten STDOUT, output juga muncul di CloudWatch Log, bersama dengan informasi logging STDERR lainnya untuk tugas tersebut.
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() } }
Output tugas untuk STDERR
Contoh ini membuat tugas bernama SayHello
yang menggemakan konten STDERR ke file output tugas. stderrFungsi WDL menangkap konten STDERR (dalam contoh ini, string input Hello World! ) dalam filestderr_file.
Karena HealthOmics membuat log untuk semua konten STDERR, output akan muncul di CloudWatch Log, bersama dengan informasi logging STDERR lainnya untuk tugas tersebut.
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() } }
Output tugas ke file
Dalam contoh ini, SayHello tugas membuat dua file (message.txt dan info.txt) dan secara eksplisit menyatakan file-file ini sebagai output bernama (message_file dan 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" } }
Output tugas ke array file
Dalam contoh ini, GenerateGreetings
tugas menghasilkan array file sebagai output tugas. Tugas secara dinamis menghasilkan satu file ucapan untuk setiap anggota array input. names
Karena nama file tidak diketahui sampai runtime, definisi output menggunakan fungsi WDL glob () untuk menampilkan semua file yang cocok dengan pola. *_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") } }
Output tugas untuk Nextflow
Untuk definisi alur kerja yang ditulis dalam Alur Berikutnya, tentukan direktif PublishDir untuk mengekspor konten tugas ke bucket Amazon S3 keluaran Anda. Setel nilai publishDir ke. /mnt/workflow/pubdir
HealthOmics Untuk mengekspor file ke Amazon S3, file harus ada di direktori ini.
Jika tugas menghasilkan sekelompok file output untuk digunakan sebagai input untuk tugas berikutnya, kami sarankan Anda mengelompokkan file-file ini dalam direktori dan memancarkan direktori sebagai output tugas. Menghitung setiap file individu dapat mengakibatkan kemacetan I/O di sistem file yang mendasarinya. Misalnya:
process my_task { ... // recommended output "output-folder/", emit: output // not recommended // output "output-folder/**", emit: output ... }
Output tugas untuk CWL
Untuk definisi alur kerja yang ditulis dalam CWL, Anda dapat menentukan output tugas menggunakan tugas. CommandLineTool
Bagian berikut menunjukkan contoh CommandLineTool
tugas yang menentukan berbagai jenis output.
Topik
Output tugas untuk STDOUT
Contoh ini membuat CommandLineTool
tugas yang menggemakan konten STDOUT ke file keluaran teks bernama. output.txt Misalnya, jika Anda memberikan masukan berikut, output tugas yang dihasilkan adalah Hello World! dalam output.txt file.
{ "message": "Hello World!" }
outputs
Direktif menentukan bahwa nama output adalah example_out dan jenisnya adalah. stdout
Untuk tugas hilir untuk mengkonsumsi output dari tugas ini, itu akan merujuk ke output sebagaiexample_out
.
Karena HealthOmics membuat log untuk semua konten STDERR dan STDOUT, output juga muncul di CloudWatch Log, bersama dengan informasi logging STDERR lainnya untuk tugas tersebut.
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
Output tugas untuk STDERR
Contoh ini membuat CommandLineTool
tugas yang menggemakan konten STDERR ke file keluaran teks bernama. stderr.txt Tugas memodifikasi baseCommand
sehingga echo
menulis ke STDERR (bukan STDOUT).
outputs
Direktif menentukan bahwa nama output adalah stderr_out dan jenisnya adalah. stderr
Karena HealthOmics membuat log untuk semua konten STDERR dan STDOUT, output akan muncul di CloudWatch Log, bersama dengan informasi logging STDERR lainnya untuk tugas tersebut.
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
Output tugas ke file
Contoh ini membuat CommandLineTool
tugas yang membuat arsip tar terkompresi dari file input. Anda memberikan nama arsip sebagai parameter input (archive_name).
outputsDirektif menentukan bahwa jenis archive_file
output adalahFile
, dan menggunakan referensi ke parameter input untuk mengikat archive_name
ke file output.
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
Output tugas ke array file
Dalam contoh ini, CommandLineTool
tugas membuat array file menggunakan touch
perintah. Perintah menggunakan string dalam parameter files-to-create
input untuk memberi nama file. Perintah mengeluarkan array file. Array mencakup file apa pun di direktori kerja yang cocok dengan glob
pola. Contoh ini menggunakan pola wildcard (“*”) yang cocok dengan semua file.
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