magattacaのブログ

日付以外誤報

静電ポテンシャルからタンパク質-リガンド複合体を眺めよう 〜パート①:ESP-DNNの使い方〜

もはや元旦恒例となっている創薬ちゃん(@souyakuchan)さん主催の創薬人格付けチェック

皆さんもちろん正解してますよね?・・・私は毎年外しています(解説を読んでもよくわからない)。

ぶっちゃけリガンドとタンパク質の複合体の図を見ても「当てはまりが良い!」とか、「ここが変!」とかさっぱりわかりません。

観察眼を鍛えたい!もう一歩踏み込んだ視点が欲しい!」ということで、今回は静電ポテンシャル図(ESP)を描いて複合体を眺めてみたいと思います。

利用するツールは①ESP-DNNで、計算対象としては②TYK2キナーゼ阻害剤データセットを用います。

この記事ではまず簡単な分子(1置換ベンゼン)を例にESP-DNNの使い方を把握します(複合体の描画は次回)。*1

Google ColabでESPを簡易計算

1. ESP-DNN

1-1. ESPの復習

静電ポテンシャルElectrostatic Potential, ESP)は「ある分子の周りに+1価の電荷をおいた際に、その電荷が感じるポテンシャルエネルギー」です。

これを分子について可視化するために分子表面として描いたのが静電ポテンシャル図(Electrostatic Potensial Surface)です。等電子密度面静電ポテンシャル(電位)を色で表現したもので、分子の静電的な特徴を簡単に把握できます。

学部の有機化学で1置換ベンゼンの反応性(ortho-, meta-, para- 配向性)の説明で出てきたりするやつですね。

こういうの。

赤い部分の原子は負の(部分)電荷をもち、青い部分の原子は正の(部分)電荷をもちます。置換基による芳香環上の変化が目に見えるのが面白いですね。*2

ところで以前、どこかで「ニトロベンゼンピリジンはESPを描くとめっちゃ似てる!」って力説してる先生がいらっしゃった気がします。確かに似てるかも・・・

ってなわけで(?)、ESPをつかって可視化すると構造式で単純に描く以上に分子の性質を考察することができます。生理活性物質への応用を考えると、「リガンドタンパク質静電的な相補性の観点から、親和性・活性について議論できる!」ってなりそうです。

つまり、ESP力を鍛えれば相互作用の観察力が上がって創薬人格付けチェックに正解できるはず!

・・・知らんけど

1-2. ESP-DNNって?

さて、とても魅力的なESPによる可視化ですが、きちんと計算しようとすると量子力学QM)が必要です。例えば「化学の新しいカタチ」さんは以下の記事でPsi4を使った計算方法を解説してくださっています。

future-chem.com

・・・QM計算しんどいですね。

「面倒な計算はディープラーニングで置き換えよう!」ということで、QMのデータセットを学習して短時間の計算で置き換えられるようにしたのがESP-DNNです。

Practical High-Quality Electrostatic Potential Surfaces for Drug Discovery Using a Graph-Convolutional Deep Neural Network
Prakash Chandra Rathi, R. Frederick Ludlow, and Marcel L. Verdonk
J. Med. Chem. 2020, 63, 16, 8778–8790 (Open Access)

Astex Pharmaceuticalsの研究者によって開発されたプログラムで、GitHubで公開してくださっています。(Apache-2.0ライセンス)

github.com

また、ESP-DNNについては@iwatobipen先生が以下の記事で取り上げてくださっています。

Electrostatic Potential Surface(ESP) calculation with GCNN #RDKit #chemoinformaticsiwatobipen.wordpress.com

github.com

上記GitHubでは、Python 2系のコードで書かれていたESP-DNNをPython系にアップデートしたものを公開してくださっています。

これは遊ぶしかないですね!

・・・でも残念ながら私のMacではうまく動きませんでした。

2. ESP-DNNをGoogle Colabで

OSが合ってないならGoogle Colabを使えばいいじゃない!ということでちょっとだけ書き換えました。

github.com

conda createで環境構築できるようにenvironment.ymlをPython3(@iwatobipen先生の記事で公開されている設定)に合わせただけです。

Google Colab上で以下を実行すればESP-DNNを使うためのconda環境(esp-dnn-env)ができます。

# Linux用のMinicondaの環境を作成
!wget -c https://repo.continuum.io/miniconda/Miniconda3-latest-Linux-x86_64.sh
!chmod +x Miniconda3-latest-Linux-x86_64.sh
!bash ./Miniconda3-latest-Linux-x86_64.sh -b -f -p /usr/local

# GitHubからESP-DNNをもってくる
!git clone https://github.com/magattaca/ESP_DNN.git
    
# 作業ディレクトリを移動
%cd ESP_DNN

# condaの仮想環境をyamlから作成
!conda env create -f ESP_DNN/environment.yml

これで計算環境の準備はおしまいです(すこし時間かかります)。

ESP-DNNをつかって静電ポテンシャルを計算するコマンドは、計算対象が「リガンドか?タンパク質か?」によって少し変わります。

いずれにせよ入力はPDBファイルなので適当に準備してください(RDKitならChem.MolToPDBFileです)。

リガンド(低分子)の場合は、以下のコマンドで「①仮想環境をアクティベートして、②ligand_filesディレクトリにある複数のPDBファイルをまとめて計算」できます。

%%bash
source activate esp-dnn-env
python -m esp_dnn.predict -m ligand -i ligand_files

タンパク質の場合は引数-m(計算モード, mode)をproteinにすればOKです。

%%bash
source activate esp-dnn-env
python -m esp_dnn.predict -m protein -i protein_files

上記でprotein_filesディレクトリにあるPDBファイルが計算されます(ディレクトリ名は適宜修正してください)。

計算結果はpqr形式のファイルで、入力のPDBファイル名のあとに.pqrが追加されたファイルが同じディレクトリ内に作成されます。

これで計算したものが先の1置換ベンゼンです。簡単ですね!

3. NGL viewerで可視化

ESP-DNNの計算結果の描画はNGL viewerがオススメされています。

上記のURLにアクセスして「Fileopen」で目的の「.pqrファイル」を選びます。もしくはファイルをドラッグ&ドロップでもOKです。

例えばニトロベンゼンのpqrファイルだとこんな感じ。

PDBファイルを基にしているので結合次数の情報が入っていないベンゼンが全て単結合)であることにご注意ください。

ESP図を表示する手順は「① 表面(Surface)描画を追加して、② 描画方法を静電ポテンシャルに変更」です。

まず表面描画を追加します。

    1. 右枠上の横三本線マークをクリックしてStructure オプションのメニューを開く
    1. Representationsurfaceを追加
    1. 分子表面が描画され右枠にsurfaceメニューがあらわれる

ついで描画方法を静電ポテンシャルに変更します。

    1. surfaceメニューの横三本線マークをクリックしてRepresentation オプションのメニューを開く
    1. 各項目を変更
      • surface typeavを選択
      • scale factor4.0に変更
      • radius Typeexplicitに変更
      • opacityをスライドバー調整(表面が透けて骨格が見える)
      • colorSchemeelectrostaticに変更
      • colorScaleRed-White-Blueに変更

以上の設定で以下の図ができます。

「目のアイコン」をクリックすると描画の表示をON/OFFできるので、複数の分子を1つのViewerで見るときに便利です。

4. 拡張子PQRと謎の原子

4-1. PQR?

さて、さらっと流しましたがPQRファイルとはなんでしょうか?

PQRはPDBをベースにしたフォーマットで、「PPDBQ電荷(charge)、R半径radius)」を意味するそうです。

この意味に合わせて、保持する情報が以下のように変更されています。*3

  • PDB : 占有率occupancy)→ PQR : 原子の電荷 (atomic charge, Q)
  • PDB温度因子B factor) → PQR原子半径atomic radius, R)

但し、カラム(列)の位置はPQRとPDBでズレていることも多いそうです。

先のニトロベンゼンのファイルで比較してみましょう。

こんな感じ

各行の座標(xyz)情報は同じですが、それ以降の数字が変わっていますね。

4-2. 謎の原子?

ところで上図の4行とも炭素原子C)ですが、面白いことにPQRファイルの原子半径は「C1, C2, C31.700」と「C41.780」で異なっています(黄色枠で示した箇所) 。

このC4はニトロ基置換のイプソ位になります。もう一度描画を確認すると、炭素原子のうちC4だけ白い球が追加されています。他の炭素との違いを反映して原子半径も異なっているのかもしれません(???)

この白い球の原子名はHpとなっていて、ニトロ基の窒素原子N)、酸素原子O)上にも同様にHpという名前の球が追加されています。また、酸素原子上には他にもHlpという原子が追加されています。

Hとついていますが水素原子ではなさそうです。追加の様子を見る限り非共有電子対や(芳香族以外の)二重結合の電子を表すダミーのようにも見えますが、PQRフォーマットやESP-DNNの説明をみてもそれらしい記述がありませんでした。

お分かりの方、ご教示いただけると嬉しいです。*4

5. おわりに

以上、今回はタンパク質-リガンド複合体を眺めるための観察方法「静電ポテンシャル図」を試す準備として、簡易計算ツール ESP-DNN の使い方と描画方法を確認しました。

ESPの計算には量子力学が必要で大変そうですが、ディープラーニングで置き換えたESP-DNNを使えばとても簡単に計算できました。素晴らしいツールを公開してくださっている皆様に感謝です。

結果のからし量子力学計算との比較)は検証できませんでしたが、そもそも私はQM計算できない・・・。できない人向けの簡易ツールということで許してください。

次回、実際にリガンドやタンパク質を計算してみたいと思います。

間違いが多いと思うのでご指摘いただけると嬉しいです。ではでは!

*1:ESP-DNNの図はGitHubのFigureより

*2:静電ポテンシャルの説明と見方についてははこちらの記事「静電ポテンシャルマップの誤解」を参考にさせていただきました。ずっと誤解してた。。。

*3:参考:Jmol/JSmol wiki File formats/Coordinates: PQRより

*4:なお、ESP-DNNのexamplesにあるPQRファイルにも同様にHpHlpがあるので計算が失敗しているわけではなさそうです。