翻訳は機械翻訳により提供されています。提供された翻訳内容と英語版の間で齟齬、不一致または矛盾がある場合、英語版が優先します。
Nextflow ワークフロー定義の詳細
HealthOmics は Nextflow DSL1 と DSL2 をサポートしています。詳細については、「Nextflow バージョンのサポート」を参照してください。
Nextflow DSL2 は Groovy プログラミング言語に基づいているため、パラメータは動的であり、型強制は Groovy と同じルールを使用して可能です。入力 JSON によって提供されるパラメータと値は、ワークフローのパラメータ (params
) マップで使用できます。
nf-schema および nf-validation プラグインの使用
注記
プラグインの HealthOmics サポートの概要:
v22.04 – プラグインのサポートなし
v23.10 – と をサポート
nf-schema
nf-validation
v24.10 – をサポート
nf-schema
HealthOmics は Nextflow プラグインに対して次のサポートを提供します。
-
Nextflow v23.10 の場合、HealthOmics は nf-validation@1.1.1 プラグインをプリインストールします。
-
Nextflow v23.10 以降では、HealthOmics は nf-schema@2.3.0 プラグインをプリインストールします。
-
ワークフローの実行中に追加のプラグインを取得することはできません。HealthOmics は、
nextflow.config
ファイルで指定した他のプラグインバージョンを無視します。 -
Nextflow v24 以降では、
nf-schema
は廃止されたnf-validation
プラグインの新しいバージョンです。詳細については、Nextflow GitHub リポジトリの「nf-schema」を参照してください。
ストレージ URIs指定
Amazon S3 または HealthOmics URI を使用して Nextflow ファイルまたはパスオブジェクトを作成すると、読み取りアクセスが付与されている限り、一致するオブジェクトがワークフローで使用できるようになります。Amazon S3 URIs では、プレフィックスまたはディレクトリを使用できます。例については「Amazon S3 入力パラメータ形式」を参照してください。
HealthOmics は、Amazon S3 URI または HealthOmics Storage URIs での glob パターンの使用をサポートしています。 URIs HealthOmics path
または file
チャネルの作成には、ワークフロー定義で Glob パターンを使用します。
時間ディレクティブを使用した最大タスク期間の設定
HealthOmics は、実行の最大期間を指定するための調整可能なクォータを提供します (「」を参照HealthOmics サービスクォータ)。Nextflow v23 および v24 ワークフローでは、Nextflow 時間ディレクティブを使用して最大タスク期間を指定することもできます。
新しいワークフロー開発中、最大タスク期間を設定すると、実行可能なタスクと長時間実行されるタスクをキャッチするのに役立ちます。
Nextflow 時間ディレクティブの詳細については、Nextflow リファレンスの「時間ディレクティブ
HealthOmics は、Nextflow 時間ディレクティブに対して次のサポートを提供します。
-
HealthOmics は、タイムディレクティブの 1 分の詳細度をサポートします。60 秒から最大実行期間の値までの値を指定できます。
-
60 未満の値を入力すると、HealthOmics はそれを 60 秒に切り上げます。60 を超える値の場合、HealthOmics は最も近い分に切り下げます。
-
ワークフローがタスクの再試行をサポートしている場合、HealthOmics はタイムアウトするとタスクを再試行します。
-
タスクがタイムアウト (または最後の再試行がタイムアウト) すると、HealthOmics はタスクをキャンセルします。このオペレーションの期間は 1~2 分です。
-
タスクのタイムアウト時に、HealthOmics は実行ステータスとタスクステータスを失敗に設定し、実行中の他のタスク (開始中、保留中、または実行中ステータスのタスクの場合) をキャンセルします。HealthOmics は、タイムアウト前に完了したタスクから指定された S3 出力場所に出力をエクスポートします。
-
タスクが保留中のステータスに費やした時間は、タスク期間にはカウントされません。
-
実行が実行グループの一部であり、実行グループがタスクタイマーよりも早くタイムアウトした場合、実行とタスクは失敗したステータスに移行します。
タイムアウト期間は、、ms
、、m
h
または の 1 s
つ以上の単位を使用して指定しますd
。Nextflow 設定ファイルとワークフロー定義で時間ディレクティブを指定できます。次のリストは、優先度が最低から最高までの優先順位を示しています。
-
設定ファイルのグローバル設定。
-
ワークフロー定義のタスクセクション。
-
設定ファイル内のタスク固有のセレクタ。
次の例は、Nextflow 設定ファイルでグローバル設定を指定する方法を示しています。グローバルタイムアウトを 1 時間 30 分に設定します。
process { time = '1h30m' }
次の例は、ワークフロー定義のタスクセクションでタイムディレクティブを指定する方法を示しています。この例では、タイムアウトを 3 日、5 時間、4 分に設定します。この値は、設定ファイルのグローバル値よりも優先されますが、設定ファイルの my_label
のタスク固有の時間ディレクティブよりも優先されません。
process myTask { label 'my_label' time '3d5h4m' script: """ your-command-here """ }
次の例は、名前またはラベルセレクタに基づいて、Nextflow 設定ファイルでタスク固有の時間ディレクティブを指定する方法を示しています。この例では、グローバルタスクのタイムアウト値を 30 分に設定します。タスクの値は 2 時間に設定myTask
し、ラベルが のタスクの値は 3 時間に設定しますmy_label
。セレクターに一致するタスクの場合、これらの値はグローバル値とワークフロー定義の値よりも優先されます。
process { time = '30m' withLabel: 'my_label' { time = '3h' } withName: 'myTask' { time = '2h' } }
タスクコンテンツのエクスポート
Nextflow で記述されたワークフローの場合、タスクコンテンツを出力 Amazon S3 バケットにエクスポートする publishDir ディレクティブを定義します。次の例に示すように、publishDir 値を に設定します/mnt/workflow/pubdir
。Amazon S3 にファイルをエクスポートするには、ファイルがこのディレクトリにある必要があります。
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 """ }