Amazon OmicsのReady2Runワークフローを試してみた

事前定義されたワークフローを利用して、Amazon Omicsワークフローを手軽に実行
2023.07.07

みなさんこんにちは、杉金です。
今回は、2023年5月ごろのアップデートでAmazon Omicsに追加されたReady2Runワークフローを試します。

Ready2Runワークフローとは

Amazon Omicsには大きく分けて2種類のワークフローが存在します。

  • プライベートワークフロー
    • Nextflow, WDL, CWLなどのAmazon Omicsがサポートしているワークフロー言語を使ったワークフローの実行
  • Ready2Runワークフロー
    • オープンソースのワークフローや企業が公開しているワークフローなど、あらかじめ定義されているワークフローの実行

Ready2Runワークフローは、用途や目的ごとに事前に用意されたもので、これを利用することでワークフロー作成や管理の手間を省くことができます。

Ready2Runワークフローの種類

本記事執筆時点で35種類のワークフローがあります。実際にAmazon Omicsのコンソール画面から確認してみましょう。まずはコンソールのReady2Run workflowsを選びます。

選択すると右側にワークフローの一覧が表示されます。各列には、ID、名前、バージョン、実行あたりの料金、提供元、サブスクリプションの要否、推定の実行時間などが記載されています。一番上にある「AlphaFold for 601-1200 residues」を見てみます。

ワークフロー概要

名前のリンクをクリックすると、対象のワークフローに関する情報を確認できます。

中央にある「Workflow files」のリンクから、サンプルのデータやパラメータファイルを確認できます。その下にある「Workflow help」から提供元のサイトにアクセスでき、ワークフローのより詳細な情報を確認できます。

下にスクロールするとワークフローの概要について書かれた箇所があります。

入力データとして何が必要かであったり、出力データとして何のファイルがアウトプットされるかを確認できます。

ワークフロー図

更に下にスクロールするとワークフロー図が確認できます。入力データがどのようなツールを使っており、出力ファイルがどのように作成されるかの流れを確認できます。

ワークフローの概要やワークフロー図から、実際に利用できそうかを判断することになりそうです。

やってみた

用意されているサンプルデータを使って試してみます。試すワークフローは推定実行時間の短さで「ESMFold for up to 800 residues」を選びました。1回実行するだけであれば手頃なお値段かと思われます。

サンプルの確認

対象ワークフローのサンプルデータを確認してみます。Workflow filesに記載されているリンクを選択します。

選択するとAmazon S3のコンソール画面に遷移します。2つファイルがあり、「parameters.json」がワークフロー実行時に使用するパラメータファイルで、「target.fasta」はサンプルの入力データとなります。

parameter.jsonファイルの中身はこちらです。

{
  "fasta_path": "s3://omics-<region>/sample-inputs/1830181/target.fasta"
}

fasta_pathとして「target.fasta」の配置場所が記載されています。入力データが配置されている場所を定義しているようです。これだけの情報を渡すだけでワークフローが実行できるのは手軽そうですね。

ワークフロー実行

それではワークフローを実行していきます。対象ワークフローの「Create run」を選択します。

実行のための詳細情報を入力していきます。

  • Run name : 適当な名前を設定します
  • Run priority : デフォルトの100で変更なし
  • Select S3 output destination : 出力ファイルの配置先となるS3バケットを選択する

下にスクロールして実行の際に使用するIAMロールを指定します。今回はワークフロー作成とともにIAMロール作成を選びます。タグの設定は今回スキップして「Next」を選択します。

続いてパラメータファイルの設定です。
今回は前述したサンプルのパラメータを使用するため、4つあるうちの一番下にある「Run workflow with Ready2Run teset data」を選びます。選択すると下の方に設定したパラメータ(parameter.jsonで定義してあったfasta_path)が表示されます。
※本執筆時点では、コンソールの言語設定が日本語だと正しく表示されなかったため、Englishで表示させています

サンプルではなく実際のデータで試す場合は、データをS3に配置した後でparameter.jsonの内容を配置した場所に書き換えて、jsonファイルをこの画面で指定する形となります。
次へと進むと、実行前の最終確認が表示されますので、問題ないことを確認して一番下にある「Start Run」を選択します。

そうすると「Run」から実行状態を確認できます。

実行結果の確認

しばらく待つと、ステータスが完了となりました。(推定実行時間より多少時間がかかったので、推定実行時間はあくまで目安のようです)

「Run ID」から実行結果の詳細を確認してみます。「Details」タブの表示結果は以下のような形でした。実行時間などが確認できます。

「Task」タブの結果は次となります。各タスクの所要時間が確認できますね。

参考として対象のワークフロー図を記載します。

出力ファイルを見てみます。出力したAmazon S3バケットを確認します。ワークフロー実行IDと同じ値のフォルダ(プレフィックス)が存在します。

対象にアクセスしていくと「out/」以下に更にいくつかのフォルダが存在します。

ワークフロー図に記載されているファイルはそれぞれ以下にありました。

  • metrics/ : metrics.json
  • pae/ : pae.png
  • pdb/ : prediction.pdb

prediction.pdb

metrics.json

metrics.jsonファイルの中身は以下です。

{
  "model_name": "ESMFold",
  "model_version": "2.0.1",
  "start_time": "06 Jul 2023 10:41:14 +0000",
  "timings": {
    "sequence_load": 0.001,
    "model_load": 48.075,
    "prediction": 22.251,
    "output": 0.199,
    "total": 70.531
  },
  "target_id": "2022",
  "length": 100,
  "sequence": "GSTIQIPYTITVNGTSQNILSSLTFNKNQNISYKDIENKVKSVLYFNRGISDIDLRLSKQAEYTVHFKNGTKRVIDLKSGIYTADLINTSDIKAISVNVD",
  "pLDDT": 74.627,
  "pTM": 0.757,
  "max_predicted_aligned_error": 31.75,
  "peak_memory_gb": 19.6785,
  "peak_gpu_memory_gb": 0,
  "end_time": "06 Jul 2023 10:42:24 +0000"
}

pae.png

pae.pngファイルの中身は以下です。

サンプルデータを利用したReady2runワークフローの実行は以上となります。

最後に

Ready2Runワークフローを試してみました。ゲノミクスやバイオインフォマティクスの知識は浅いため、使えるか不安だったのですが、サンプルデータが用意されており、それを選択して実行するだけでしたので手軽にできました。今後、この機能を活用できるシーンが増えることを期待したいです。

参考資料