

翻訳は機械翻訳により提供されています。提供された翻訳内容と英語版の間で齟齬、不一致または矛盾がある場合、英語版が優先します。

# HealthOmics ワークフロー定義の要件
<a name="workflow-defn-requirements"></a>

HealthOmics ワークフロー定義ファイルは、次の要件を満たしている必要があります。
+ タスクでは、入出力パラメータ、Amazon ECR コンテナリポジトリ、メモリや CPU 割り当てなどのランタイム仕様を定義する必要があります。
+ IAM ロールに必要なアクセス許可があることを確認します。<a name="lower"></a>
  + ワークフローは、Amazon S3 などの AWS リソースからの入力データにアクセスできます。
  + ワークフローは、必要に応じて外部リポジトリサービスにアクセスできます。
+ ワークフロー定義で出力ファイルを宣言します。中間実行ファイルを出力場所にコピーするには、それらをワークフロー出力として宣言します。
+ 入力場所と出力場所は、ワークフローと同じリージョンにある必要があります。
+ HealthOmics ストレージワークフロー入力は `ACTIVE`ステータスである必要があります。HealthOmics は `ARCHIVED`ステータスの入力をインポートせず、ワークフローが失敗します。Amazon S3 オブジェクト入力の詳細については、「」を参照してください[HealthOmics 実行入力](workflows-run-inputs.md)。
+ ZIP アーカイブに単一のワークフロー定義または「main」という名前のファイルが含まれている場合、ワークフロー**main**の場所はオプションです。<a name="lower"></a>
  + パスの例: `workflow-definition/main-file.wdl`
+ Amazon S3 またはローカルドライブからワークフローを作成する前に、ワークフロー定義ファイルとサブワークフローなどの依存関係の zip アーカイブを作成します。
+ ワークフロー内の Amazon ECR コンテナを Amazon ECR アクセス許可を検証するための入力パラメータとして宣言することをお勧めします。

Nextflow に関するその他の考慮事項:
+ **/bin**

  Nextflow ワークフロー定義には、実行可能スクリプトを含む /bin フォルダが含まれる場合があります。このパスには、タスクへの読み取り専用アクセスと実行可能アクセスがあります。これらのスクリプトに依存するタスクは、適切なスクリプトインタプリタで構築されたコンテナを使用する必要があります。ベストプラクティスは、インタプリタを直接呼び出すことです。例えば、次のようになります。

  ```
  process my_bin_task {
     ...
     script:
        """
        python3 my_python_script.py
        """
  }
  ```
+ **includeConfig**

  Nextflow ベースのワークフロー定義には、パラメータ定義の抽象化やリソースプロファイルの処理に役立つ nextflow.config ファイルを含めることができます。複数の環境で Nextflow パイプラインの開発と実行をサポートするには、includeConfig ディレクティブを使用してグローバル設定に追加する HealthOmics 固有の設定を使用します。移植性を維持するには、次のコードを使用して HealthOmics で実行されている場合にのみ ファイルを含めるようにワークフローを設定します。

  ```
  // at the end of the nextflow.config file
  if ("$AWS_WORKFLOW_RUN") {
      includeConfig 'conf/omics.config'
  }
  ```
+ **Reports**

  HealthOmics は、エンジンが生成したダグ、トレース、実行レポートをサポートしていません。GetRun と GetRunTask API コールの組み合わせを使用して、トレースレポートと実行レポートに代わるものを生成できます。

CWL に関するその他の考慮事項:
+ **Container image uri interpolation**

  HealthOmics では、DockerRequirement の dockerPull プロパティをインライン javascript 式にすることができます。 DockerRequirement 例えば、次のようになります。

  ```
  requirements:
    DockerRequirement:
      dockerPull: "$(inputs.container_image)"
  ```

  これにより、ワークフローへの入力パラメータとしてコンテナイメージ URIs を指定できます。
+ **Javascript expressions**

  Javascript 式は`strict mode`準拠している必要があります。
+ **Operation process**

  HealthOmics は CWL オペレーションプロセスをサポートしていません。