京橋のバイオインフォマティシャンの日常

南国のビーチパラソルの下で、Rプログラムを打ってる日常を求めて、、Daily Life of Bioinformatician in Kyobashi of Osaka

M1チップ搭載の MacBook Air におけるAutoDock Vina (1.2.2) の使い方とドッキングシミュレーションについて

はじめに - AutoDock Vina

AutoDockは、 30年近く開発が進められている、分子モデリングシミュレーションソフトウェアの一つです。 主に、タンパク質–リガンドのドッキング(Docking)に利用されています。 2009年からオープンソース・ソフトウェアとなり、非商業的利用に関しては、無料で使用できます。 AutoDockは、過去には、HIV-1インテグラーゼ阻害剤の開発においても活用されました。

AutoDock Vinaは、 Oleg Trott 博士 (The Scripps Research Institute)らによって提供された、 AutoDock4の改良型ドッキングツール(AutoDockの後継)です。 Vinaの登場によって、計算の速度、ドッキング精度ともに大幅に改善されました。

原著論文 - AutoDock Vina -

AutoDock Vinaに関する原著論文は以下の2報となります。

  1. "J. Eberhardt, D. Santos-Martins, A. F. Tillack, and S. Forli. (2021). AutoDock Vina 1.2.0: New Docking Methods, Expanded Force Field, and Python Bindings. Journal of Chemical Information and Modeling."

  2. "O. Trott and A. J. Olson. (2010). AutoDock Vina: improving the speed and accuracy of docking with a new scoring function, efficient optimization, and multithreading. Journal of computational chemistry, 31(2), 455-461."

今回やること

M1チップ搭載の MacBook Airで、AutoDock Vina (ver 1.2.2)をセットアップしてみました。 その方法を、設定方法とともに、具体的なコマンドを説明しています。

今回、AutoDock Vinaは、ARM用のバージョンである「vina_1.2.2_macos_arm64」を使用しています。

セットアップ

brewの設定

まずは、Homebrewを設定します。

まだ設定されていない場合は、 過去の記事を参考に設定してください。

skume.net

brewコマンドを用いたパッケージのセットアップ

Macのターミナルを起動して、 所定のライブラリをbrewコマンドでインストールしていきます。

今回、インストールするのは、 boost、wget、gitのライブラリです。

#boostのインストール
brew install boost 

#wgetのインストール
brew install wget

#gitのインストール
brew install git

Autodock Vina 1.2.2のセットアップ

それでは、「Autodock Vina 1.2.2」のセットアップに入っていきます。 ここでは、wgetで「Autodock Vina 1.2.2」をダウンロードして、諸設定を行なっていきます。

#ダウンロード
wget https://github.com/ccsb-scripps/AutoDock-Vina/releases/download/v1.2.2/
vina_1.2.2_macos_arm64

#名前の変更
mv vina_1.2.2_macos_arm64 vina

#実行権限の付与
chmod +x vina

#vinaを任意のフォルダに移動させる
#/opt/homebrew/bin とか、すでにパスが通っているところがよい
mv vina /opt/homebrew/bin 

#パスの確認
which vina
#/opt/homebrew/bin/vina

「vina」のパス設定が完了して、「which」コマンドで確認できたらOKです。

ここまで設定できたら、ヘルプが表示されるかどうかも確認してみます。 以下の-helpオプションで、ヘルプが表示されるはずです。

#ヘルプ表示
vina -help

#AutoDock Vina v1.2.2-22-gb5f8dc1-mod
#Command line parse error: unrecognised option '-help'
#
#Correct usage:
#
#Input:
#  --receptor arg             rigid part of the receptor (PDBQT)
#  --flex arg                 flexible side chains, if any (PDBQT)
#  --ligand arg               ligand (PDBQT)
#  --batch arg                batch ligand (PDBQT)
#  --scoring arg (=vina)      scoring function (ad4, vina or vinardo)
#
#Search space (required):
#  --maps arg                 affinity maps for the autodock4.2 (ad4) or vina 
#                             scoring function
#  --center_x arg             X coordinate of the center (Angstrom)
#  --center_y arg             Y coordinate of the center (Angstrom)
#  --center_z arg             Z coordinate of the center (Angstrom)
#  --size_x arg               size in the X dimension (Angstrom)
#  --size_y arg               size in the Y dimension (Angstrom)
#  --size_z arg               size in the Z dimension (Angstrom)
#  --autobox                  set maps dimensions based on input ligand(s) (for 
#                             --score_only and --local_only)
#
#Output (optional):
#  --out arg                  output models (PDBQT), the default is chosen based
#                             on the ligand file name
#  --dir arg                  output directory for batch mode
#  --write_maps arg           output filename (directory + prefix name) for 
#                             maps. Option --force_even_voxels may be needed to 
#                             comply with .map format
#
#Misc (optional):
#  --cpu arg (=0)             the number of CPUs to use (the default is to try 
#                             to detect the number of CPUs or, failing that, use
#                             1)
#  --seed arg (=0)            explicit random seed
#  --exhaustiveness arg (=8)  exhaustiveness of the global search (roughly 
#                             proportional to time): 1+
#  --max_evals arg (=0)       number of evaluations in each MC run (if zero, 
#                             which is the default, the number of MC steps is 
#                             based on heuristics)
#  --num_modes arg (=9)       maximum number of binding modes to generate
#  --min_rmsd arg (=1)        minimum RMSD between output poses
#  --energy_range arg (=3)    maximum energy difference between the best binding
#                             mode and the worst one displayed (kcal/mol)
#  --spacing arg (=0.375)     grid spacing (Angstrom)
#  --verbosity arg (=1)       verbosity (0=no output, 1=normal, 2=verbose)
#
#Configuration file (optional):
#  --config arg               the above options can be put here
#
#Information (optional):
#  --help                     display usage summary
#  --help_advanced            display usage summary with advanced options
#  --version                  display program version

これで、初めの設定は完了です。

AutoDock Vinaのチュートリアル「basic_docking」を実行してみる

次に、GitHubにあるAutodock Vinaのリポジトリをダンロードして、 そのチュートリアルのデータで動作検証をしてみます。

以下のgit cloneコマンドで、リポジトリを取得します。

git clone https://github.com/ccsb-scripps/AutoDock-Vina.git

今回は、exampleフォルダ内のbasic_dockingをサンプルとして試してみます。

このドッキングシミュレーションのbasic_dockingのサンプルは、 典型的な使用パターンで、剛体モデルの受容体に1つの分子をドッキングすることを行います。 具体的には、非受容体型チロシンキナーゼ c-Abl の立体構造に、 抗がん剤イマチニブ(Gleevec、PDB entry: 1iep)を AutoDock Vinaを使用してドッキング実行を行います。

c-Ablは、癌原遺伝子チロシンプロテインキナーゼで、 このタンパク質は、がん化学療法、特に慢性骨髄性白血病の治療において重要な標的です。

それでは、Vinaの実行を試しますが、問題なく設定できていれば、 下記の2コマンドで、Dockingが実行されて、結果が表示されます。

#ダウンロードしたディレクト内に移動します
cd ./AutoDock-Vina/example/basic_docking/solution  

#vina実行
vina  \
    --receptor 1iep_receptor.pdbqt \
    --ligand 1iep_ligand.pdbqt \
        --config 1iep_receptor_vina_box.txt \
        --exhaustiveness=32 \
        --out 1iep_ligand_vina_out.pdbqt

--receptorには、受容体タンパク質のpdbqtファイル名を指定します。 --ligandには、リガンド(主に低分子化合物)のpdbqtファイル名を指定します。 --configには、引数として与えていない条件設定をテキストファイルとして指定します。 --exhaustivenessには、グローバル探索の網羅性を指定します(32が良いようです)。 --outには、出力ファイル名を指定します。

実行時のコンソール表示

実行結果は、以下のような感じになります。

AutoDock Vina v1.2.2-22-gb5f8dc1-mod
#################################################################
# If you used AutoDock Vina in your work, please cite:          #
#                                                               #
# J. Eberhardt, D. Santos-Martins, A. F. Tillack, and S. Forli  #
# AutoDock Vina 1.2.0: New Docking Methods, Expanded Force      #
# Field, and Python Bindings, J. Chem. Inf. Model. (2021)       #
# DOI 10.1021/acs.jcim.1c00203                                  #
#                                                               #
# O. Trott, A. J. Olson,                                        #
# AutoDock Vina: improving the speed and accuracy of docking    #
# with a new scoring function, efficient optimization and       #
# multithreading, J. Comp. Chem. (2010)                         #
# DOI 10.1002/jcc.21334                                         #
#                                                               #
# Please see https://github.com/ccsb-scripps/AutoDock-Vina for  #
# more information.                                             #
#################################################################

Scoring function : vina
Rigid receptor: 1iep_receptor.pdbqt
Ligand: 1iep_ligand.pdbqt
Grid center: X 15.19 Y 53.903 Z 16.917
Grid size  : X 20 Y 20 Z 20
Grid space : 0.375
Exhaustiveness: 32
CPU: 0
Verbosity: 1

Computing Vina grid ... done.
Performing docking (random seed: -885801442) ... 
0%   10   20   30   40   50   60   70   80   90   100%
|----|----|----|----|----|----|----|----|----|----|
***************************************************

mode |   affinity | dist from best mode
     | (kcal/mol) | rmsd l.b.| rmsd u.b.
-----+------------+----------+----------
   1       -13.38          0          0
   2        -11.4      2.993      12.41
   3        -11.4      1.658      2.053
   4       -11.15      3.869      12.31
   5       -10.76      2.544      12.64
   6        -10.1      1.988      13.73
   7       -9.774      1.706      13.63
   8       -9.695      2.683      12.64
   9       -9.494      2.834       12.4       

出力ファイルの結果表示

ここでは、1iep_ligand_vina_out.pdbqtとういうファイルに、 構造データとBinding eneryなどの結果を出力されています。

#先頭20行を表示
head -n 20 1iep_ligand_vina_out.pdbqt

#MODEL 1
#REMARK VINA RESULT:   -13.057      0.000      0.000
#REMARK INTER + INTRA:         -19.158
#REMARK INTER:                 -18.700
#REMARK INTRA:                  -0.458
#REMARK UNBOUND:                -0.757
#REMARK Flexibility Score: inf
#REMARK Active torsions [ 7 ] -> [ 7 ]
#ROOT
#ATOM      1  C1  LIG L   1      15.834  54.718  12.393  1.00  0.00     0.038 A 
#ATOM      2  C2  LIG L   1      16.908  54.561  11.405  1.00  0.00    -0.029 A 
#ATOM      3  C3  LIG L   1      17.891  53.541  11.628  1.00  0.00     0.007 A 
#ATOM      4  C4  LIG L   1      17.820  52.693  12.792  1.00  0.00     0.024 A 
#ATOM      5  C5  LIG L   1      16.777  52.840  13.752  1.00  0.00     0.035 A 
#ATOM      6  C6  LIG L   1      15.778  53.874  13.532  1.00  0.00     0.047 A 
#ATOM      7  C7  LIG L   1      17.030  55.437  10.136  1.00  0.00     0.045 C 
#ENDROOT
#BRANCH    1    8
#ATOM      8  N1  LIG L   1      14.849  55.695  12.232  1.00  0.00    -0.283 N 
#ATOM      9  H1  LIG L   1      13.972  55.445  11.860  1.00  0.00     0.155 HD

PyMolによるDockingモデルの表示(2022年7月6日更新)

ドッキングの結果のPyMolでの可視化について紹介します。

ターミナルを起動して、以下のコマンドでPyMolをセットアップします。

PyMolインストールは以下のサイトを参照しました。

pymolwiki.org

#PyMolのインストール: 5-10分くらいかかる
brew install brewsci/bio/pymol

#パス確認
which pymol
#/opt/homebrew/bin/pymol

#pymol実行
pymol

# PyMOL(TM) Molecular Graphics System, Version 2.5.0.
# Copyright (c) Schrodinger, LLC.
# All Rights Reserved.
# 
#    Created by Warren L. DeLano, Ph.D. 
# 
#    PyMOL is user-supported open-source software.  Although some versions
#    are freely available, PyMOL is not in the public domain.
# 
#    If PyMOL is helpful in your work or study, then please volunteer 
#    support for our ongoing efforts to create open and affordable scientific
#    software by purchasing a PyMOL Maintenance and/or Support subscription.
#
#    More information can be found at "http://www.pymol.org".
# 
#    Enter "help" for a list of commands.
#    Enter "help <command-name>" for information on a specific command.
#
# Hit ESC anytime to toggle between text and graphics.
#
# Detected OpenGL version 2.1. Shaders available.
# Detected GLSL version 1.20.
# OpenGL graphics engine:
#  GL_VENDOR:   Apple
#  GL_RENDERER: Apple M1
#  GL_VERSION:  2.1 Metal - 71.7.1
# Detected 8 CPU cores.  Enabled multithreaded rendering.

pymolコマンドを実行すると、下記の画面が立ち上がります。

1iep_receptor.pdbqt と 1iep_ligand_vina_out.pdbqt をPyMolで開いて重ねてみると、以下のようにグラフィカルにドッキングを観察できます。

https://raw.githubusercontent.com/kumeS/Blog/master/AutoDock_vina/02.gif

LigPlot+を使った結合モデルの可視化

LigPlot+は、リガンドとタンパク質の相互作用図を2次元で自動生成するオリジナルプログラムLIGPLOTの後継版です。LigPlot+を使うと、分子間コンタクトが簡単に見やすく可視化できます。

残念ながら、もうアカデミアライセンスが無いので、過去のスライドをのっけときます。

www.ebi.ac.uk

mov を gif に変換

参考にリンクを貼っておきます。

convertio.co

まとめ

(結構、詳細は省いているが)AutoDock Vinaのセットアップから、Dockingシミュレーションまでの実行方法を紹介しました。

AutoDOck Vinaは、M1 Macでも、意外にもサクッと実行できるという良いソフトウェアでした。

参考資料

skume.net

AutoDock Vina

autodock-vina.readthedocs.io

github.com

github.com