Spesifikasi definisi alur kerja alur berikutnya - 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 alur berikutnya

HealthOmics mendukung DSL1 Nextflow dan. DSL2 Lihat perinciannya di Dukungan versi Nextflow.

Nextflow DSL2 didasarkan pada bahasa pemrograman Groovy, sehingga parameternya dinamis dan pemaksaan tipe dimungkinkan menggunakan aturan yang sama seperti Groovy. Parameter dan nilai yang disediakan oleh input JSON tersedia di parameter (params) peta alur kerja.

Menggunakan plugin nf-schema dan nf-validation

catatan

Ringkasan HealthOmics dukungan untuk plugin:

  • v22.04 - tidak ada dukungan untuk plugin

  • v23.10 — mendukung dan nf-schema nf-validation

  • v24.10 - mendukung nf-schema

HealthOmics menyediakan dukungan berikut untuk plugin Nextflow:

  • Untuk Nextflow v23.10, HealthOmics pra-instal plugin nf-validation @1 .1.1.

  • Untuk Nextflow v23.10 dan yang lebih baru, HealthOmics pra-instal plugin nf-schema @2 .3.0.

  • Anda tidak dapat mengambil plugin tambahan selama menjalankan alur kerja. HealthOmics mengabaikan versi plugin lain yang Anda tentukan dalam nextflow.config file.

  • Untuk Nextflow v24 dan yang lebih tinggi, nf-schema adalah versi baru dari plugin yang tidak digunakan lagi. nf-validation Untuk informasi selengkapnya, lihat skema nf di repositori Nextflow. GitHub

Menentukan penyimpanan URIs

Ketika Amazon S3 atau HealthOmics URI digunakan untuk membuat file atau objek jalur Nextflow, itu membuat objek yang cocok tersedia untuk alur kerja, selama akses baca diberikan. Penggunaan awalan atau direktori diizinkan untuk Amazon S3. URIs Sebagai contoh, lihat Format parameter masukan Amazon S3.

HealthOmics mendukung penggunaan pola gumpalan di Amazon URIs S3 HealthOmics atau Penyimpanan. URIs Gunakan pola Glob dalam definisi alur kerja untuk pembuatan path atau file saluran.

Mengatur durasi tugas maksimum menggunakan arahan waktu

HealthOmics menyediakan kuota yang dapat disesuaikan (lihatHealthOmics kuota layanan) untuk menentukan durasi maksimum untuk menjalankan. Untuk alur kerja Nextflow v23 dan v24, Anda juga dapat menentukan durasi tugas maksimum menggunakan arahan waktu Nextflow.

Selama pengembangan alur kerja baru, menyetel durasi tugas maksimum membantu Anda menangkap tugas runaway dan tugas yang berjalan lama.

Untuk informasi selengkapnya tentang direktif waktu Nextflow, lihat direktif waktu di referensi Nextflow.

HealthOmics memberikan dukungan berikut untuk arahan waktu Nextflow:

  1. HealthOmics mendukung granularitas 1 menit untuk arahan waktu. Anda dapat menentukan nilai antara 60 detik dan nilai durasi lari maksimum.

  2. Jika Anda memasukkan nilai kurang dari 60, HealthOmics bulatkan hingga 60 detik. Untuk nilai di atas 60, HealthOmics bulatkan ke menit terdekat.

  3. Jika alur kerja mendukung percobaan ulang untuk tugas, HealthOmics coba ulang tugas jika waktu habis.

  4. Jika tugas habis waktu (atau waktu coba lagi terakhir habis), HealthOmics batalkan tugas. Operasi ini dapat memiliki durasi satu hingga dua menit.

  5. Pada batas waktu tugas, HealthOmics menetapkan status run dan task menjadi gagal, dan membatalkan tugas lain dalam proses (untuk tugas dalam status Mulai, Pending, atau Running). HealthOmics mengekspor output dari tugas yang diselesaikan sebelum batas waktu ke lokasi output S3 yang Anda tentukan.

  6. Waktu yang dihabiskan tugas dalam status tertunda tidak dihitung terhadap durasi tugas.

  7. Jika run adalah bagian dari grup run dan grup run habis lebih cepat dari pengatur waktu tugas, proses dan tugas akan beralih ke status gagal.

Tentukan durasi batas waktu menggunakan satu atau beberapa unit berikut:ms,,s, mh, ataud. Anda dapat menentukan arahan waktu dalam file konfigurasi Nextflow dan dalam definisi alur kerja. Daftar berikut menunjukkan urutan prioritas, dari prioritas terendah hingga tertinggi:

  1. Konfigurasi global dalam file konfigurasi.

  2. Bagian tugas dari definisi alur kerja.

  3. Selektor khusus tugas dalam file konfigurasi.

Contoh berikut menunjukkan cara menentukan konfigurasi global dalam file konfigurasi Nextflow. Ini menetapkan batas waktu global 1 jam dan 30 menit:

process { time = '1h30m' }

Contoh berikut menunjukkan cara menentukan direktif waktu di bagian tugas definisi alur kerja. Contoh ini menetapkan batas waktu 3 hari, 5 jam, dan 4 menit. Nilai ini lebih diutamakan daripada nilai global dalam file konfigurasi, tetapi tidak diutamakan daripada arahan waktu khusus tugas untuk dalam file konfigurasi: my_label

process myTask { label 'my_label' time '3d5h4m' script: """ your-command-here """ }

Contoh berikut menunjukkan cara menentukan arahan waktu khusus tugas dalam file konfigurasi Nextflow, berdasarkan pemilih nama atau label. Contoh ini menetapkan nilai batas waktu tugas global 30 menit. Ini menetapkan nilai 2 jam untuk tugas myTask dan menetapkan nilai 3 jam untuk tugas dengan labelmy_label. Untuk tugas yang cocok dengan pemilih, nilai ini lebih diutamakan daripada nilai global dan nilai dalam definisi alur kerja:

process { time = '30m' withLabel: 'my_label' { time = '3h' } withName: 'myTask' { time = '2h' } }

Mengekspor konten tugas

Untuk alur kerja yang ditulis dalam Alur Berikutnya, tentukan direktif PublishDir untuk mengekspor konten tugas ke bucket Amazon S3 keluaran Anda. Seperti yang ditunjukkan pada contoh berikut, atur nilai publishDir ke. /mnt/workflow/pubdir Untuk mengekspor file ke Amazon S3, file harus ada di direktori ini.

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