2026/09/24 追記
分子ドッキングは創薬において広く利用されており、特に大規模な化合物ライブラリを対象とする場合に重要である。本著者らはこれまでに、このような大規模ドッキングを支援するため、複数サーバーへのタスク分散機能を備えた自動ドッキングパイプライン EasyDockを開発してきた。本研究では、その拡張版を報告する。対応するドッキングエンジンは拡充され、Vina系のCPU版・GPU版(QVina2、Vina-GPUなど)に加え、組み込みのクライアント–サーバーアーキテクチャを介して、深層学習ベースのドッキングエンジン(CarsiDock、SurfDock)にも対応した。リガンド前処理機能についても強化され、塩の除去、立体異性体の列挙、ならびに飽和環構造のコンフォメーションサンプリングが追加された。また、オープンソースのプロトン化状態予測ツール(pkasolver、MolGpKa、Uni-pKa)を統合することで、これまで必要であった商用ソフトウェアを置き換え、パイプライン全体を完全にオープンソース化した。ドッキング後解析には、タンパク質–リガンド相互作用フィンガープリント(PLIF)の計算、およびPoseBustersを用いたドッキングポーズの品質評価が新たに追加された。さらに、ドッキングエンジンおよびプロトン化ツール用のApptainer/Dockerコンテナを提供しており、インストールやHPC環境への導入を容易にしている。ソースコードは以下で公開されている。https://github.com/ci-lab-cz/easydock
HP
https://easydock.readthedocs.io/en/latest/
インストール
DockerはCarsiDock、SurfDock、Vina-GPU、Uni-pKaなど、コンテナ化された外部エンジンを使う場合に必要。
Github
git clone https://github.com/ci-lab-cz/easydock.git cd easydock mamba env create -f env.yml conda activate easydock
> easydock --help
usage: easydock [-h] [-i FILENAME] -o FILENAME [-s INTEGER]
[--protonation PROTONATION] [--pH FLOAT] [--no_tautomerization]
[--prefix STRING] [--program STRING] [--config FILENAME]
[--ring_sample] [--sdf] [--hostfile FILENAME]
[--dask_report FILENAME] [--tmpdir DIRNAME] [--log FILENAME]
[--log_level LEVEL] [-c NCPU] [-v]
Automated molecular docking pipeline including all necessary ligand preparation
steps.
options:
-h, --help show this help message and exit
Input/output files:
-i FILENAME, --input FILENAME
input file with molecules (SMI, SDF, SDF.GZ, PKL).
SMILES file should be tab-delimited. The argument can be
omitted if output DB was previously created, in this
case calculations will be continued from the interrupted
point. (default: None)
-o FILENAME, --output FILENAME
output SQLite DB with scores and poses in PDBQT and MOL
formats. It also stores other information (input
structures, protein pdbqt file and grid box config). If
output DB exists all other inputs will be ignored and
calculations will be continued. (default: None)
Initialization parameters:
-s INTEGER, --max_stereoisomers INTEGER
maximum number of isomers to enumerate. The default is
set to 1. (default: 1)
--protonation PROTONATION
choose a protonation program supported by EasyDock
(chemaxon, pkasolver, molgpka, molgpka_fix). An existing
apptainer container (.sif) with implemented protonation
script and an installed environment can be passed as
well. (default: None)
--pH FLOAT pH value used for protonation. (default: 7.4)
--no_tautomerization disable tautomerization of molecules during protonation
(applicable to chemaxon only). (default: False)
--prefix STRING prefix which will be added to all molecule names. This
might be useful if multiple repeated runs are made which
will be analyzed together. (default: None)
Docking parameters:
--program STRING name of a docking program. Choices: vina, gnina, vina-
gpu, qvina, server, generic. (default: None)
--config FILENAME YAML file with parameters used by docking program. See
documentation for the format. (default: None)
--ring_sample sample conformations of saturated rings. Multiple
starting conformers will be docked and the best one will
be stored. Otherwise a single random ring conformer will
be used. (default: False)
--sdf save best docked poses to SDF file with the same name as
output DB. (default: False)
--hostfile FILENAME text file with addresses of nodes of dask SSH cluster.
The most typical, it can be passed as $PBS_NODEFILE
variable from inside a PBS script. The first line in
this file will be the address of the scheduler running
on the standard port 8786. If omitted, calculations will
run on a single machine as usual. (default: None)
--dask_report FILENAME
save Dask report to HTML file. It will have the same
name as the output database. (default: False)
--tmpdir DIRNAME path to a dir where to store temporary setup files
accessible to a program. Normally should be used if
calculations with dask have to be continued, (default:
None)
Common parameters for both docking and initialization):
--log FILENAME log file path. If omitted logging information wil be
printed to STDOUT. (default: None)
--log_level LEVEL logging level name: NOTSET, DEBUG, INFO, WARNING, ERROR,
or CRITICAL. Case-insensitive. (default: 20)
-c NCPU, --ncpu NCPU number of cpus. This affects only docking on a single
server. (default: 1)
-v, --verbose print progress to STDERR. (default: False)
実行方法
まず、SMILES形式のリガンド一覧、PDBQT形式の受容体、探索ボックスを記したgrid.txtを準備する。-cは並列に処理する分子数、config.yml内のncpuは各分子のドッキングに割り当てるCPU数。すでにリガンド調製を済ませたSQLiteデータベースを利用する場合は、入力ファイルの-i指定は不要。
# input.smi(SMILESと化合物名)を用意して実行。Vinaを使う easydock -i input.smi -o output.db --program vina --config config.yml --protonation molgpka -c 4 --sdf
config.ymlには、受容体、探索ボックス、探索の深さ、ポーズ数などを指定する。
protein: /path/to/protein.pdbqt protein_setup: /path/to/grid.txt exhaustiveness: 8 seed: 0 n_poses: 5 ncpu: 4
Vinaが読む.pdbqt形式の受容体を指定している。
easydock -o output.db --program vina --config config.yml -c 4 --sdf
出力
output.dbには、リガンド調製結果、ドッキングスコア、ポーズなどがSQLite形式で保存される。
たとえば、立体構造が分かっている酵素があって、タンパク質構造と10万個の化合物について、どの低分子がポケットに入りそうかを調べるために、EasyDockを使って各化合物の結合ポーズ + docking scoreを取得し、上位100~1000化合物を選ぶというような使い方が考えられます。一方、EasyDockだけではMDシミュレーションだったり実際に阻害するかの証明まではできませんので、注意が必要です。Docking scoreはあくまで候補順位を付ける指標という位置づけになります。
Luttensらの研究では、SARS-CoV-2が持っているプロテアーゼ: Mproの結晶構造を使い、2億3500万個以上の低分子化合物 (ZINC15という、virtual screening用の化合物データベース)を活性部位へドッキングさせた。そのうち約2億2800万化合物について実際にドッキングが完了し、スコア上位を絞り込み、最終的に100化合物を実験で評価した。その結果、最初の大規模スクリーニングだけで3種類のMpro阻害剤が得られた。さらにX線結晶構造解析によって、計算で予測した結合ポーズが実際の結合様式と一致することも確認した。
https://pmc.ncbi.nlm.nih.gov/articles/PMC8848513/?utm_source=chatgpt.com
LuttensらはGPUを使わないDOCK3.7で、CPUでドッキング計算している。計算は単純に各CPUコアに振って並列化している。AIに計算させたところ、64〜128コア級のワークステーションなら「数週間〜2か月回しっぱなしにすれば理論上できる」規模と推定された。EasyDock 1.3論文では819化合物を同じ標的へdockするベンチマークを行っているので、そちらも参照。
その他
-
EasyDockは、数十万〜数百万規模の化合物を対象とした分子ドッキングを自動化するためのPythonパイプラインである。1つの標的タンパク質に対して大量の化合物をドッキングし、それぞれの結合しやすさをスコア化することで、有望な候補を効率的に絞り込む virtual screening(仮想スクリーニング) に利用できる。
-
EasyDock自体がドッキング計算を行うのではなく、Vina、QVina2、Vina-GPUなどの計算エンジンを利用し、複数のCPUやGPU、サーバーに処理を分散することで、大規模なドッキング解析を自動的に実行・管理できる。
- v1.3では、AutoDock Vina、GNINA/Sminaに加えてQVina系、Vina-GPU系、CarsiDock、SurfDockなどを扱えるようになった。深層学習系やGPU系のように依存関係が重いエンジンは、長時間起動したサーバープロセスと通信する構成でコンテナ内から実行できる。さらに、PLIFによる相互作用比較、PoseBustersによる化学的・立体的に不自然なポーズの検出、飽和環の配座サンプリングも組み込まれている。
- EasyDockが対象とするのはリガンド調製、ドッキング、ドッキング後解析であり、タンパク質調製そのものは別途行う必要がある。
- リガンド調製とドッキングを独立した段階に分けるため、一度調製した化合物データベースを異なる標的やドッキングプログラムで再利用できる。結果はSQLiteデータベースに逐次保存され、中断した計算も同じコマンドで再開できる。
- 受容体のプロトン化、欠損原子・残基の補完、探索ボックスの設計はEasyDockの範囲外であり、結果の解釈を左右するため別途妥当な手順で行う必要がある。
- ドッキングスコアだけで候補を決めず、PLIF、PoseBusters、目視確認、必要に応じて再スコアリングや実験で評価する。
-
--sdfを付けると、ドッキング済みポーズをSDFとしても出力する。
引用
EasyDock 1.3: An Automated Pipeline for Molecular Docking.
Minibaeva, G.; Yap, V.; Polishchuk, P.
Journal of Chemical Information and Modeling 2026, 66 (15), 8691–8697.