Spesifikasi definisi alur kerja CWL - AWS HealthOmics

Terjemahan disediakan oleh mesin penerjemah. Jika konten terjemahan yang diberikan bertentangan dengan versi bahasa Inggris aslinya, utamakan versi bahasa Inggris.

Spesifikasi definisi alur kerja CWL

Alur kerja yang ditulis dalam Bahasa Alur Kerja Umum, atau CWL, menawarkan fungsionalitas serupa dengan alur kerja yang ditulis dalam WDL dan Alur Berikutnya. Anda dapat menggunakan Amazon S3 atau HealthOmics penyimpanan URIs sebagai parameter input.

Jika Anda menentukan input dalam SecondaryFile dalam sub alur kerja, tambahkan definisi yang sama dalam alur kerja utama.

HealthOmics alur kerja tidak mendukung proses operasi. Untuk mempelajari lebih lanjut tentang proses operasi dalam alur kerja CWL, lihat dokumentasi CWL.

Praktik terbaik adalah menentukan alur kerja CWL terpisah untuk setiap wadah yang Anda gunakan. Kami menyarankan Anda untuk tidak melakukan hardcode entri DockerPull dengan URI ECR Amazon tetap.

Konversi alur kerja CWL untuk digunakan HealthOmics

Untuk mengonversi definisi alur kerja CWL yang ada untuk digunakan HealthOmics, buat perubahan berikut:

  • Ganti semua wadah Docker URIs dengan Amazon URIs ECR.

  • Pastikan bahwa semua file alur kerja dideklarasikan dalam alur kerja utama sebagai input, dan semua variabel didefinisikan secara eksplisit.

  • Pastikan bahwa semua JavaScript kode adalah keluhan mode ketat.

Menyisih dari tugas coba lagi menggunakan omicsRetryOn5xx

HealthOmics mendukung percobaan ulang tugas jika tugas gagal karena kesalahan layanan (kode status HTTP 5XX). Secara default, HealthOmics mencoba hingga dua percobaan ulang tugas yang gagal. Untuk informasi selengkapnya tentang coba lagi tugas HealthOmics, lihatTugas Mencoba Ulang.

Untuk memilih keluar dari tugas coba lagi untuk kesalahan layanan, konfigurasikan omicsRetryOn5xx arahan dalam definisi alur kerja. Anda dapat menentukan arahan ini di bawah persyaratan atau petunjuk. Kami merekomendasikan menambahkan arahan sebagai petunjuk untuk portabilitas.

requirements: ResourceRequirement: omicsRetryOn5xx: false hints: ResourceRequirement: omicsRetryOn5xx: false

Persyaratan mengesampingkan petunjuk. Jika implementasi tugas menyediakan persyaratan sumber daya dalam petunjuk yang juga disediakan oleh persyaratan dalam alur kerja terlampir, persyaratan terlampir diutamakan.

Jika persyaratan tugas yang sama muncul pada tingkat alur kerja yang berbeda, HealthOmics gunakan entri paling spesifik dari requirements (atauhints, jika tidak ada entri direquirements). Daftar berikut menunjukkan urutan prioritas yang HealthOmics digunakan untuk menerapkan pengaturan konfigurasi, dari prioritas terendah hingga tertinggi:

  • Tingkat alur kerja

  • Tingkat langkah

  • Bagian tugas dari definisi alur kerja

Contoh berikut menunjukkan cara mengkonfigurasi omicsRetryOn5xx direktif di berbagai tingkat alur kerja. Dalam contoh ini, persyaratan tingkat alur kerja mengesampingkan petunjuk tingkat alur kerja. Konfigurasi persyaratan pada tingkat tugas dan langkah mengesampingkan konfigurasi petunjuk.

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

Contoh

Berikut ini adalah contoh alur kerja yang ditulis dalam 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

File berikut mendefinisikan copy.cwl tugas.

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

Berikut ini adalah contoh alur kerja yang ditulis dalam CWL dengan persyaratan 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: []