メインコンテンツまでスキップ

AWS HealthOmics で AlphaFold を実行し、タンパク質の立体構造を可視化する

· 約8分
Yukinobu Mine

AWS HealthOmics では、設定不要で手軽に利用できる Ready2Run ワークフローとして、タンパク質の立体構造を予測するオープンソースソフトウェアである AlphaFold が提供されています。今回は、以前の記事で紹介した「AWS HealthOmics Analysis App」で AlphaFold を実行し、予測されたタンパク質の立体構造を可視化する方法について解説します。

前回のおさらい

前回の記事では、AWS HealthOmics を使った Web アプリケーションのサンプル実装である AWS HealthOmics Analysis App のアーキテクチャや利用方法について解説しました。また、オミクスデータ分析ワークフローの例として、Ready2Run ワークフローとして提供されている AlphaFold を実行し、実行結果をダウンロードするまでの手順を解説しました。

今回は、AlphaFold の実行結果からタンパク質の立体構造データを取得し、Web アプリ上で 3D 表示する方法を解説します。

アーキテクチャ

AWS HealthOmics Analysis App の概要とアーキテクチャについては、前回の記事をご参照ください。今回は、AlphaFold の実行結果の可視化に関する部分を解説します。

AWS HealthOmics Analysis App では、AWS HealthOmics ワークフローの実行後に二次解析 (可視化) を実行することができます。ワークフローで実行可能な可視化の種類は、以下の定義を持つ DynamoDB テーブル OmicsWorkflowVisualizers で管理されます。

カラム名内容
workflowIdStringワークフロー ID
visualizerIdString可視化 ID
nameString可視化の名前
stateMachineArnString可視化を実行する Step Functions ステートマシンの ARN

また、二次解析の処理において、Web アプリ上での可視化の対象となるものがあれば、以下の定義を持つ DynamoDB テーブル OmicsRunVisualizations に登録します。

カラム名内容
runIdStringワークフローの実行 ID
visualizationIdString可視化 ID
typeString可視化の種類QuickSightDashboard: QuickSight ダッシュボード
3Dmol: 3Dmol による立体構造の 3D 表示
dashboardIdStringQuickSight ダッシュボード ID(typeQuickSightDashboard の場合)
Web アプリ上に埋め込む QuickSight ダッシュボードの ID
pdbPathString立体構造ファイルのパス(type3Dmol の場合)
Web アプリ上で 3Dmol を使って表示する PDB 形式の立体構造ファイルのパス
(ワークフローの出力先 S3 URL からの相対パス)

今回解説する AlphaFold の可視化では、AlphaFold3DmolVisualizer という Step Functions ステートマシンを利用します。このステートマシンでは、AlphaFold の出力に含まれる立体構造予測データを展開する AWS Glue Python Shell ジョブを実行します。

AlphaFold3DmolVisualizer の定義

タスク名タスク種別処理内容
ExtractResultsTaskGlue JobAlphaFold の予測結果を展開する Glue Python Shell ジョブ AlphaFoldExtractResultsJob を実行

AlphaFold 実行結果の展開

AWS HealthOmics の Ready2Run ワークフローに含まれる AlphaFold では、タンパク質の立体構造の予測結果を out/prediction/results.tar.gz というアーカイブファイルとして出力します。このアーカイブには、以下のファイルが含まれています。

ファイル名種別内容
ranked_[0-4].pdbPDBAmber relaxation 適用後に pLDDT でランク付けされた立体構造データ
unrelaxedmodel[1-5]_ptm_pred_0.pdbPDB各モデルから予測された立体構造データ
model_[1-5]_ptm_pred_0_pae.pngPNG各モデルの Predicted Aligned Error の画像
resultmodel[1-5]_ptm_pred_0.pklPKL各モデルから AlphaFold が生成した全データのシリアライズ
ranking_debug.jsonJSON各モデルの pLDDT 情報
timings.jsonJSONAlphaFold のパイプラインの各セクションにかかった実行時間

AlphaFoldExtractResultsJob では、これらのファイルを out/prediction/ ディレクトリに展開すると共に、PDB ファイルのパスを 3Dmol による 3D 表示の対象として DynamoDB の OmicsRunVisualizations に登録します。実装の詳細についてはソースコードをご参照ください。

デプロイ方法

AlphaFold3DmolVisualizer は、AWS HealthOmics Analysis App と同じく AWS CDK を使ってデプロイします。AWS HealthOmics Analysis App 本体のデプロイについては前回の記事で解説しましたので、今回はそれに続く手順を解説します。

注意

今回の記事の公開にあたり、AWS HealthOmics Analysis App の CDK スタックの構成が大きく変化しています。2023年10月25日以前に AWS HealthOmics Analysis App をデプロイされている場合、お手数ですが AWS CloudFormation コンソール等で一旦削除してから、リポジトリの内容を更新して再度デプロイして頂く必要があります。

AlphaFold3DmolVisualizerStack のデプロイ

/cdk ディレクトリで以下のコマンドを実行してください。

npx cdk deploy AlphaFold3DmolVisualizerStack --require-approval never

これにより、AlphaFold の実行後に Web アプリ上で PDB ファイルが 3D 表示されるようになります。

AlphaFold の実行手順

基本的な実行手順は前回の記事と同じですが、今回は「Visualizer」として「3Dmol visualization」を選択します。

  1. AWS HealthOmics Analysis App にサインインしたら「New Analysis」をクリックします。
  2. 次の画面で「Workflow」をクリックすると Ready2Run ワークフローの一覧が表示されるので、「AlphaFold for up to 600 residues」を選択します。
  3. 「Visualizer」をクリックし、「3Dmol visualization」を選択します。
  4. 「Analysis Name」に任意の名前を入力して「CONTINUE」をクリックします。

New Analysis

  1. 次の画面で「fasta_path」に以下の S3 URL を入力し、「CONTINUE」をクリックします。
s3://omics-us-east-1/sample-inputs/4885129/3d06.fasta

Parameters

  1. 次の画面に表示された内容を確認し、「RUN」をクリックします。

Confirmation

  1. 確認ダイアログが表示されるので、「OK」をクリックします。

立体構造予測結果の 3D 表示

ワークフローの実行が完了したら、立体構造の予測結果を確認しましょう。「Analysis List」で該当のワークフローをクリックするか、または完了通知メールが届いた場合はメール内のリンクをクリックすると分析の詳細情報が表示され、3Dmol による立体構造の 3D 表示を見ることができます。

3Dmol

まとめ

今回は、AWS HealthOmics Analysis App で AlphaFold の実行結果を可視化する方法を解説しました。同様の仕組みを使う事で、AWS HealthOmics で実行したワークフローに対して、様々な二次解析や可視化を行うシステムを構築する事ができます。