CASE 04検索・シミュレーション

受容体結合能予測のための
ドッキングシミュレーション開発

候補となるペプチド配列が受容体とどの程度結合しうるかを、ドッキングシミュレーションで評価するシステムを開発しました。配列リストを渡すだけで、立体構造の生成から計算、スコアの集計までを自動で実行します。

CLIENT
微生物系研究室
SCOPE
シミュレーションシステムの設計・実装
ENVIRONMENT
PC(Mac/Windows)/スーパーコンピューター/Docker
TECHNOLOGY
  • Python
  • LightDock
  • RDKit
  • Docker

研究で求められたこと

多数の候補配列について、受容体との結合のしやすさを計算で比較したいというご要望でした。ドッキングシミュレーションは配列ごとに複数の工程と長い計算時間を伴うため、繰り返し実行できる仕組みが必要でした。

  • 多数の候補配列を一括で評価する配列ごとに構造作成・計算・スコア抽出を手作業で行うと、候補数に比例して手間が増えます。
  • 専門的な計算条件を扱いやすくするドッキングツールには多くのパラメータがあり、条件を整理して管理できる形が求められました。
  • 手元のPCとスーパーコンピューターの両方で動かす試行はPCで、本番の大規模計算はスーパーコンピューターで、と環境を使い分ける必要がありました。

処理の全体像

配列ごとに複数の立体配座を生成し、それぞれについてドッキングを計算します。配列ごとの最良スコアを一覧にまとめ、候補を比較できる形で出力します。

ドッキングシミュレーションの仕組みCSVの候補ペプチド配列、PDB形式の受容体構造、YAMLの計算条件を入力とする。RDKitで配列から立体構造を作り、1配列あたり最大10の配座を生成。LightDock(GSOアルゴリズム)で受容体表面に配置した探索の起点からドッキングを計算し、配列ごとの最良スコアをCSVに出力する。PC・スーパーコンピューター・Dockerで、コア数を指定して並列実行できる。01 INPUT02 STRUCTURE03 DOCKING04 SCORE候補ペプチド配列01 GLFDIVKK02 KWKLFKKI03 FLPLIAGL受容体の立体構造PDB形式計算条件YAML(auto 指定可)立体構造と配座RDKitで3D構造を生成1配列あたり最大10配座LightDock(GSO)受容体表面に探索の起点を配置配列ごとの最良スコア010203最良CSV+ 実行ログ05 RUN ANYWHEREMac / Windows PCスーパーコンピューターDockermultiprocessing で並列計算
FIGURE配列リストを渡すと、立体構造の生成・配座探索・ドッキング計算・スコア集計までを自動実行。PC・スパコン・Dockerのいずれでも動作します。

INPUT

  • 候補ペプチド配列CSV形式の配列リスト
  • 受容体の立体構造PDB形式
  • 計算条件YAML形式の設定ファイル

PROCESS

  1. 立体構造の生成RDKitで配列から3D構造を作成
  2. 配座の探索1配列あたり最大10配座を生成
  3. シミュレーションの準備受容体表面に探索の起点を配置
  4. ドッキング計算LightDock(GSOアルゴリズム)
  5. スコアの集計配座ごとの結果から最良値を抽出

OUTPUT

  • 配列ごとのドッキングスコアCSV形式の一覧
  • 実行ログ配列ごとの進捗と最良スコア

開発のポイント

研究者がシミュレーションの中身に集中できるよう、定型的な工程の自動化と、実行環境の違いの吸収に重点を置きました。

POINT 01

配列リストからの一括実行

CSVに並べた配列を順に読み込み、立体構造の生成から配座探索、ドッキング計算、スコア抽出までを自動で行います。作業用ファイルは実行の前後で自動的に整理され、結果とログだけが残ります。

  • RDKit
  • pandas
  • ロギング

POINT 02

計算条件を設定ファイルで一元管理

探索の数、スコアリング関数、シミュレーションのステップ数などを、解説付きのYAMLファイルにまとめました。未指定の項目は推奨値を使う「auto」指定に対応し、必要な項目だけを調整できます。

  • YAML
  • LightDock
  • GSO

POINT 03

計算資源に応じた並列実行

実行時に使用するCPUコア数を指定でき、複数の配列をプロセス並列で計算します。手元のPCでは少ないコアで、スーパーコンピューターでは多くのコアで、と環境に合わせて規模を変えられます。

  • multiprocessing
  • 並列計算

POINT 04

3つの実行環境への対応

Mac・WindowsのPC、ジョブスケジューラを備えたスーパーコンピューター、Dockerのそれぞれについて、環境構築と実行の手順を用意しました。Dockerを使えば、環境の違いを気にせず同じ条件で計算できます。

  • Docker
  • docker-compose
  • ジョブスケジューラ

技術構成

オープンソースのドッキングエンジンを中心に、前処理と集計をPythonで組み合わせています。

区分技術用途
ドッキングLightDockGSO(グローワーム群最適化)によるドッキング計算
化学情報処理RDKit配列からの3D構造生成、配座の探索
データ処理Python/pandas配列リストの読み込み、スコアの集計
設定管理YAML計算条件・ファイル構成の管理
実行環境Docker/ジョブスケジューラ環境の統一、スーパーコンピューターへのジョブ投入

実現したこと

  • 候補配列のスクリーニング配列リストを用意するだけで、多数の候補を同じ条件で計算し、スコアで比較できるようになりました。
  • 条件を変えた再計算が容易に計算条件を設定ファイルで切り替えられるため、条件を変えた比較検討を繰り返し行えます。
  • 環境を選ばない実行PC・スーパーコンピューター・Dockerに対応し、試行から大規模計算まで同じ仕組みで実行できます。

研究テーマに合った開発方法を、
一緒に検討します

扱うデータや研究目的に応じて、必要なモデルとシステムをご提案します。検討中のテーマや実装したい機能からご相談ください。

研究開発について相談する