Thanks to visit codestin.com
Credit goes to github.com

Skip to content
forked from gnina/gnina

A deep learning framework for molecular docking

License

Dajeong1024/gnina

ย 
ย 

Folders and files

NameName
Last commit message
Last commit date

Latest commit

ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 

Repository files navigation

codecov Github CI

gnina (pronounced NEE-na) is a molecular docking program with integrated support for scoring and optimizing ligands using convolutional neural networks. It is a fork of smina, which is a fork of AutoDock Vina.

Help

Please subscribe to our slack team. An example colab notebook showing how to use gnina is available here. We also hosted a workshp on using gnina (video, slides).

Citation

If you find gnina useful, please cite our paper(s):

GNINA 1.3: the next increment in molecular docking with deep learning (Primary application citation)
A McNutt, Y Li, R Meli, R Aggarwal, DR Koes. J. Cheminformatics, 2025
link PubMed

GNINA 1.0: Molecular docking with deep learning (Primary application citation, previous version)
A McNutt, P Francoeur, R Aggarwal, T Masuda, R Meli, M Ragoza, J Sunseri, DR Koes. J. Cheminformatics, 2021
link PubMed ChemRxiv

Proteinโ€“Ligand Scoring with Convolutional Neural Networks (Primary methods citation)
M Ragoza, J Hochuli, E Idrobo, J Sunseri, DR Koes. J. Chem. Inf. Model, 2017
link PubMed arXiv

Virtual Screening with Gnina 1.0 (Virtual screening citation) J Sunseri, DR Koes D. Molecules, 2021 link Preprints

CACHE Challenge# 1: Docking with GNINA Is All You Need (Example application) I Dunn, S Pirhadi, Y Wang, S Ravindran, C Concepcion, DR Koes. J. Chem. Inf. Model, 2024 link PubMed

Three-Dimensional Convolutional Neural Networks and a Cross-Docked Data Set for Structure-Based Drug Design (Dataset citation) PG Francoeur, T Masuda, J Sunseri, A Jia, RB Iovanisci, I Snyder, DR Koes. J. Chem. Inf. Model, 2020
link PubMed Chemrxiv

Ligand pose optimization with atomic grid-based convolutional neural networks
M Ragoza, L Turner, DR Koes. Machine Learning for Molecules and Materials NIPS 2017 Workshop, 2017
arXiv

Visualizing convolutional neural network protein-ligand scoring
J Hochuli, A Helbling, T Skaist, M Ragoza, DR Koes. Journal of Molecular Graphics and Modelling, 2018
link PubMed arXiv

Convolutional neural network scoring and minimization in the D3R 2017 community challenge
J Sunseri, JE King, PG Francoeur, DR Koes. Journal of computer-aided molecular design, 2018
link PubMed

Docker

A pre-built docker image is available here and Dockerfiles are here.

Installation

We recommend that you use the pre-built binary unless you have significant experience building software on Linux, in which case building from source might result in an executable more optimized for your system. The pre-built binary can be used in WSL.

Ubuntu 22.04

apt-get  install build-essential git cmake wget libboost-all-dev libeigen3-dev libgoogle-glog-dev libprotobuf-dev protobuf-compiler libhdf5-dev libatlas-base-dev python3-dev librdkit-dev python3-numpy python3-pip python3-pytest libjsoncpp-dev

Follow NVIDIA's instructions to install the latest version of CUDA (>= 12.0 is required). Make sure nvcc is in your PATH.

Install OpenBabel3. Note there are errors in bond order determination in version 3.1.1 and older.

git clone https://github.com/dkoes/openbabel.git
cd openbabel
mkdir build
cd build
cmake -DWITH_MAEPARSER=OFF -DWITH_COORDGEN=OFF -DPYTHON_BINDINGS=ON -DRUN_SWIG=ON ..
make
make install

Install gnina

git clone https://github.com/gnina/gnina.git
cd gnina
mkdir build
cd build
cmake ..  # -DUSE_SYSTEM_NVTX=1 may be needed with pytorch 2.7.0 and CUDA 12.9
make
make install
sudo apt-get remove nvidia-cuda-toolkit
wget https://developer.download.nvidia.com/compute/cuda/12.4.0/local_installers/cuda_12.4.0_550.54.14_linux.run
chmod 700 cuda_12.4.0_550.54.14_linux.run
sudo sh cuda_12.4.0_550.54.14_linux.run
wget https://developer.download.nvidia.com/compute/cudnn/9.0.0/local_installers/cudnn-local-repo-ubuntu2204-9.0.0_1.0-1_amd64.deb
sudo dpkg -i cudnn-local-repo-ubuntu2204-9.0.0_1.0-1_amd64.deb
sudo cp /var/cudnn-local-repo-ubuntu2204-9.0.0/cudnn-*-keyring.gpg /usr/share/keyrings/
sudo apt-get update
sudo apt-get -y install cudnn-cuda-12
apt-get install build-essential git cmake wget libboost-all-dev libeigen3-dev libgoogle-glog-dev libprotobuf-dev protobuf-compiler libhdf5-dev libatlas-base-dev python3-dev librdkit-dev python3-numpy python3-pip python3-pytest libjsoncpp-dev

git clone https://github.com/openbabel/openbabel.git
cd openbabel
mkdir build
cd build
cmake -DWITH_MAEPARSER=OFF -DWITH_COORDGEN=OFF -DPYTHON_BINDINGS=ON -DRUN_SWIG=ON ..
make -j8
sudo make install

git clone https://github.com/gnina/gnina.git
cd gnina
mkdir build
cd build
cmake ..
make -j8
sudo make install

If you are building for systems with different GPUs (e.g. in a cluster environment), configure with -DCMAKE_CUDA_ARCHITECTURES=all.
Note that the cmake build will automatically fetch and install libmolgrid and torch if they are not already installed.

The scripts provided in gnina/scripts have additional python dependencies that must be installed.

Usage

๐Ÿ” ํ•œ ์ค„์”ฉ ์„ค๋ช…

1

gnina ๋‹จ๋ฐฑ์งˆ-๋ฆฌ๊ฐ„๋“œ ๋„ํ‚น์„ ์ˆ˜ํ–‰ํ•˜๋Š” ํ”„๋กœ๊ทธ๋žจ ์‹คํ–‰ ๋ช…๋ น์–ด์•ผ. AutoDock Vina ๊ธฐ๋ฐ˜์ด์ง€๋งŒ, deep learning scoring ๊ธฐ๋Šฅ์ด ์ถ”๊ฐ€๋œ ๋ฒ„์ „์ด์•ผ.

-r rec.pdb -r = receptor ํŒŒ์ผ ์ง€์ • ์˜ต์…˜. rec.pdb ํŒŒ์ผ์ด ๋„ํ‚น ๋Œ€์ƒ์ด ๋˜๋Š” ์ˆ˜์šฉ์ฒด ๋‹จ๋ฐฑ์งˆ ๊ตฌ์กฐ์•ผ.

-l lig.sdf -l = ligand ํŒŒ์ผ ์ง€์ • ์˜ต์…˜. lig.sdf๋Š” ์‹ค์ œ๋กœ ๋„ํ‚นํ•˜๋ ค๋Š” ๋ฆฌ๊ฐ„๋“œ(์ž‘์€ ๋ถ„์ž) ๊ตฌ์กฐ์•ผ.

--autobox_ligand orig.sdf ๋„ํ‚นํ•  ๋•Œ ๋ฆฌ๊ฐ„๋“œ๋ฅผ ๋„ฃ์„ ๊ฒฐํ•ฉ ํฌ์ผ“(binding site) ๋ฒ”์œ„๋ฅผ ์ž๋™์œผ๋กœ ์ •์˜ํ•˜๊ธฐ ์œ„ํ•ด ์‚ฌ์šฉ๋ผ. orig.sdf๋Š” ์ด๋ฏธ ๊ฒฐํ•ฉํ•œ ๋ฆฌ๊ฐ„๋“œ ๊ตฌ์กฐ โ†’ ์ด๊ฑธ ๊ธฐ์ค€์œผ๋กœ ๊ทธ ์ฃผ๋ณ€ ๋ฐ•์Šค(box)๋ฅผ ๋งŒ๋“ค์–ด ๋„ํ‚น ์˜์—ญ์„ ์ž๋™์œผ๋กœ ์žก์•„์ค˜. ์ฆ‰, โ€œ์›๋ž˜ ๋ฆฌ๊ฐ„๋“œ๊ฐ€ ์žˆ๋˜ ์ž๋ฆฌโ€๋ฅผ ์ค‘์‹ฌ์œผ๋กœ ์ƒˆ๋กœ์šด ๋ฆฌ๊ฐ„๋“œ๋ฅผ ๋„ํ‚นํ•˜๊ฒŒ ๋˜๋Š” ๊ฑฐ์ง€.

-o docked.sdf.gz -o = ์ถœ๋ ฅ ํŒŒ์ผ ์ง€์ • ์˜ต์…˜. ๋„ํ‚น ๊ฒฐ๊ณผ(์˜ˆ์ƒ ๊ฒฐํ•ฉ ๊ตฌ์กฐ์™€ ํฌ์ฆˆ๋“ค)๋ฅผ ์••์ถ•๋œ SDF ํŒŒ์ผ(.sdf.gz)๋กœ ์ €์žฅํ•ด.

์—ฌ๋Ÿฌ ํฌ์ฆˆ๊ฐ€ ์ €์žฅ๋  ์ˆ˜๋„ ์žˆ์–ด.

โœจ ์š”์•ฝํ•˜๋ฉด: ๐Ÿ‘‰ lig.sdf ๋ฆฌ๊ฐ„๋“œ๋ฅผ rec.pdb ๋‹จ๋ฐฑ์งˆ์˜ ๊ฒฐํ•ฉ ์ž๋ฆฌ(๊ธฐ์กด orig.sdf ๋ฆฌ๊ฐ„๋“œ๊ฐ€ ์žˆ๋˜ ์œ„์น˜)์— ๋„ํ‚นํ•˜๊ณ , ๊ฒฐ๊ณผ๋ฅผ docked.sdf.gz ํŒŒ์ผ์— ์ €์žฅํ•œ๋‹ค.

To dock ligand lig.sdf to a binding site on rec.pdb defined by another ligand orig.sdf:

gnina -r rec.pdb -l lig.sdf --autobox_ligand orig.sdf -o docked.sdf.gz

2

๐Ÿ” ํ•œ ์ค„์”ฉ ์„ค๋ช… gnina Gnina ํ”„๋กœ๊ทธ๋žจ ์‹คํ–‰. (AutoDock Vina + deep learning scoring)

-r rec.pdb ์ˆ˜์šฉ์ฒด ๋‹จ๋ฐฑ์งˆ ๊ตฌ์กฐ ํŒŒ์ผ ์ง€์ •.

-l lig.sdf ๋„ํ‚นํ•  ์ƒˆ๋กœ์šด ๋ฆฌ๊ฐ„๋“œ ํŒŒ์ผ ์ง€์ •.

--autobox_ligand orig.sdf orig.sdf ๋ฆฌ๊ฐ„๋“œ๊ฐ€ ์ฐจ์ง€ํ–ˆ๋˜ ์ž๋ฆฌ(๊ฒฐํ•ฉ ํฌ์ผ“)๋ฅผ ๊ธฐ์ค€์œผ๋กœ ๋„ํ‚น ๋ฐ•์Šค ์ž๋™ ์ƒ์„ฑ.

--flexdist_ligand orig.sdf orig.sdf ์ฃผ์œ„์˜ ์•„๋ฏธ๋…ธ์‚ฐ ์ž”๊ธฐ๋“ค์„ "์œ ์—ฐ(flexible)"ํ•˜๊ฒŒ ์ทจ๊ธ‰ํ•˜๋ผ๋Š” ์˜ต์…˜. ์ฆ‰, ๋‹จ๋ฐฑ์งˆ์˜ ์ผ๋ถ€ ์‚ฌ์ด๋“œ์ฒด์ธ(residues)์ด rigid(๊ณ ์ •)๋˜์ง€ ์•Š๊ณ  ์›€์ง์ผ ์ˆ˜ ์žˆ๊ฒŒ ํ•จ.

--flexdist 3.5 orig.sdf ๋ฆฌ๊ฐ„๋“œ๋กœ๋ถ€ํ„ฐ 3.5 ร… ์ด๋‚ด์— ์žˆ๋Š” ๋‹จ๋ฐฑ์งˆ ์ž”๊ธฐ๋“ค์˜ ์‚ฌ์ด๋“œ์ฒด์ธ์„ flexibleํ•˜๊ฒŒ ๋‘”๋‹ค. ๋ณดํ†ต rigid docking์ด ์ผ๋ฐ˜์ ์ธ๋ฐ, ๊ฒฐํ•ฉ ํฌ์ผ“์ด ๋งค์šฐ ์œ ์—ฐํ•˜๋‹ค๋Š” ๊ทผ๊ฑฐ๊ฐ€ ์žˆ์„ ๋•Œ๋งŒ ์“ฐ๋Š” ๊ฒŒ ๊ถŒ์žฅ๋จ. ์™œ๋ƒ๋ฉด search space๊ฐ€ ํ›จ์”ฌ ์ปค์ง€๊ณ  ๊ฒฐ๊ณผ๊ฐ€ ๋ถˆ์•ˆ์ •ํ•ด์งˆ ์ˆ˜ ์žˆ๊ธฐ ๋•Œ๋ฌธ์ด์•ผ.

-o flex_docked.sdf.gz ๋„ํ‚น ๊ฒฐ๊ณผ(๋ฆฌ๊ฐ„๋“œ ํฌ์ฆˆ + flexible residue ๋ฐ˜์˜)๋ฅผ ์••์ถ•๋œ SDF ํŒŒ์ผ๋กœ ์ €์žฅ.

โœจ ์š”์•ฝํ•˜๋ฉด: ๐Ÿ‘‰ lig.sdf ๋ฆฌ๊ฐ„๋“œ๋ฅผ rec.pdb์— ๋„ํ‚นํ•˜๋˜, orig.sdf ์ฃผ๋ณ€ 3.5 ร… ์•ˆ์ชฝ์˜ ๋‹จ๋ฐฑ์งˆ ์‚ฌ์ด๋“œ์ฒด์ธ๋“ค์„ ์œ ์—ฐํ•˜๊ฒŒ ์›€์ง์ผ ์ˆ˜ ์žˆ๋„๋ก ํ—ˆ์šฉํ•ด์„œ ๊ฒฐ๊ณผ(flex_docked.sdf.gz)๋ฅผ ์ €์žฅํ•œ๋‹ค.

๐Ÿ†• ์ƒˆ ์˜ต์…˜ --flexdist_ligand orig.sdf ๊ธฐ์ค€ ๋ฆฌ๊ฐ„๋“œ(orig.sdf)๋ฅผ ์ค‘์‹ฌ์œผ๋กœ flexible residue ํƒ์ƒ‰์„ ์‹œ์ž‘ํ•œ๋‹ค๋Š” ๋œป. ์ฆ‰, rigidํ•˜๊ฒŒ ๊ณ ์ •๋œ ๋‹จ๋ฐฑ์งˆ์ด ์•„๋‹ˆ๋ผ ํ•ด๋‹น ๋ฆฌ๊ฐ„๋“œ ์ฃผ๋ณ€ ์•„๋ฏธ๋…ธ์‚ฐ ์‚ฌ์ด๋“œ์ฒด์ธ์ด ๋„ํ‚น ์ค‘์— ์›€์ง์ผ ์ˆ˜ ์žˆ์Œ.

--flexdist 3.5 flexible residue๋กœ ์ทจ๊ธ‰ํ•  ๊ฑฐ๋ฆฌ cutoff ์„ค์ •. ์—ฌ๊ธฐ์„œ๋Š” orig.sdf ์ฃผ๋ณ€ 3.5 ร… ์•ˆ์ชฝ ์ž”๊ธฐ๋“ค์ด flexible๋กœ ์ง€์ •๋จ. ๊ฐ’์ด ์ปค์งˆ์ˆ˜๋ก ๋” ๋งŽ์€ ์ž”๊ธฐ๊ฐ€ ์œ ์—ฐํ•ด์ง€๊ณ  ์—ฐ์‚ฐ ๋ณต์žก๋„๋„ ์ปค์ง.

๐Ÿงญ ์–ธ์ œ ์“ฐ๋ฉด ์ข‹์€๊ฐ€? ์ข‹์€ ์ƒํ™ฉ ํฌ์ผ“์ด ์œ ์—ฐํ•˜๋‹ค๊ณ  ์•Œ๋ ค์ ธ ์žˆ๋Š” ๊ฒฝ์šฐ ์˜ˆ: induced-fit ํšจ๊ณผ๊ฐ€ ํฐ ํšจ์†Œ, loop๊ฐ€ ์œ ์—ฐํ•œ pocket, ๊ธฐ์กด rigid docking์œผ๋กœ docking pose ์˜ˆ์ธก์ด ์ „ํ˜€ ๋งž์ง€ ์•Š์„ ๋•Œ.

์•ˆ ์ข‹์€ ์ƒํ™ฉ (์ถ”์ฒœํ•˜์ง€ ์•Š๋Š” ๊ฒฝ์šฐ) ํฌ์ผ“์ด rigidํ•œ ๋‹จ๋ฐฑ์งˆ (์˜ˆ: ๊นŠ๊ณ  ์ž˜ ์ •์˜๋œ cavity) ๋ฐ์ดํ„ฐ๊ฐ€ ๋ถ€์กฑํ•ด์„œ ์œ ์—ฐ์„ฑ์„ ๊ฐ•์ œ๋กœ ์ฃผ๋ฉด ์˜คํžˆ๋ ค ์žก์Œ์ด ๋Š˜๊ณ  ๊ฒฐ๊ณผ๊ฐ€ ๋ถˆ์•ˆ์ •ํ•ด์ง. ๊ณ„์‚ฐ๋Ÿ‰์ด ๋งŽ์•„์ ธ ์‹œ๊ฐ„์ด ํ›จ์”ฌ ์˜ค๋ž˜ ๊ฑธ๋ฆผ.

์ฆ‰, ์ด ๋ช…๋ น์–ด๋Š” ๐Ÿ‘‰ "๋‚ด ๋‹จ๋ฐฑ์งˆ์˜ ๊ฒฐํ•ฉ ๋ถ€์œ„๊ฐ€ ๋”ฑ๋”ฑํ•˜์ง€ ์•Š๊ณ , ๋ฆฌ๊ฐ„๋“œ๊ฐ€ ๋“ค์–ด์˜ค๋ฉด์„œ ์ฃผ๋ณ€ ์ž”๊ธฐ๋“ค์ด ์›€์ง์—ฌ์•ผ ํ•œ๋‹ค๊ณ  ํ™•์‹คํžˆ ์˜ˆ์ƒ๋˜๋Š” ๊ฒฝ์šฐ" ์—๋งŒ ์“ฐ๋Š” ๊ฒŒ ์ข‹์•„.

To perform docking with flexible sidechain residues within 3.5 Angstroms of orig.sdf (generally not recommend unless prior knowledge indicates pocket is highly flexible):

gnina -r rec.pdb -l lig.sdf --autobox_ligand orig.sdf --flexdist_ligand orig.sdf --flexdist 3.5 -o flex_docked.sdf.gz

3

๐Ÿ†• ์ƒˆ ์˜ต์…˜ --autobox_ligand rec.pdb ๋ณดํ†ต์€ ์ด๋ฏธ ๊ฒฐํ•ฉํ•ด ์žˆ๋Š” ๋ฆฌ๊ฐ„๋“œ(orig.sdf)๋ฅผ ๊ธฐ์ค€์œผ๋กœ box๋ฅผ ์žก๋Š”๋ฐ, ์—ฌ๊ธฐ์„œ๋Š” **๋ฆฌ๊ฐ„๋“œ ๋Œ€์‹  ๋‹จ๋ฐฑ์งˆ ์ „์ฒด(rec.pdb)**๋ฅผ ๋„ฃ์—ˆ์–ด. ๊ทธ ๊ฒฐ๊ณผ โ†’ ๊ฒฐํ•ฉ ํฌ์ผ“์„ ํŠน์ •ํ•˜์ง€ ์•Š๊ณ  ๋‹จ๋ฐฑ์งˆ ์ „์ฒด๋ฅผ ํƒ์ƒ‰ ๊ณต๊ฐ„์œผ๋กœ ์‚ผ์•„ ๋„ํ‚น์„ ์ˆ˜ํ–‰ํ•จ. ์ฆ‰, โ€œ์–ด๋””์— ๋ถ™์„์ง€ ๋ชจ๋ฅด๋Š” ์ƒํ™ฉโ€์—์„œ ๋ฆฌ๊ฐ„๋“œ๊ฐ€ ๋‹จ๋ฐฑ์งˆ ์ „์ฒด ํ‘œ๋ฉด์„ ๋Œ€์ƒ์œผ๋กœ ๊ฒฐํ•ฉํ•  ์ˆ˜ ์žˆ๋Š” ์œ„์น˜๋ฅผ ์ฐพ๋Š” ๊ฒƒ.

--exhaustiveness 64 ๋„ํ‚น ํƒ์ƒ‰(search)์˜ ์ฒ ์ €ํ•จ ์ •๋„๋ฅผ ์„ค์ •ํ•˜๋Š” ์˜ต์…˜ (๊ธฐ๋ณธ๊ฐ’์€ ๋ณดํ†ต 8). ๊ฐ’์ด ํด์ˆ˜๋ก โ†’ ํƒ์ƒ‰์„ ํ›จ์”ฌ ๋งŽ์ด ํ•ด์„œ ๋” ๋‹ค์–‘ํ•œ ํฌ์ฆˆ๋ฅผ ํƒ์ƒ‰ํ•˜์ง€๋งŒ, ๊ณ„์‚ฐ ์‹œ๊ฐ„์ด ๊ธธ์–ด์ง. 64๋Š” ๊ฝค ๋†’์€ ๊ฐ’์ด๋ผ ์ •ํ™•๋„โ†‘, ์†๋„โ†“ ํŠธ๋ ˆ์ด๋“œ์˜คํ”„๋ฅผ ์˜๋ฏธํ•ด.

๐Ÿงญ ์–ธ์ œ ์“ฐ๋ฉด ์ข‹์€๊ฐ€? ์ข‹์€ ์ƒํ™ฉ ๋‹จ๋ฐฑ์งˆ์˜ **๊ฒฐํ•ฉ ๋ถ€์œ„(binding site)**๋ฅผ ์ „ํ˜€ ๋ชจ๋ฅผ ๋•Œ. ๊ตฌ์กฐ ๊ธฐ๋ฐ˜ drug discovery ์ดˆ๊ธฐ ๋‹จ๊ณ„ โ†’ โ€œ์ด ๋ฆฌ๊ฐ„๋“œ๊ฐ€ ๋‹จ๋ฐฑ์งˆ ์–ด๋””์— ๋ถ™์„๊นŒ?โ€๋ฅผ ์•Œ์•„๋ณด๋Š” exploratory docking. ๋‹จ๋ฐฑ์งˆ์— ์—ฌ๋Ÿฌ potential binding sites๊ฐ€ ์žˆ์„ ๊ฒƒ์œผ๋กœ ์˜์‹ฌ๋  ๋•Œ.

๋œ ์ข‹์€ ์ƒํ™ฉ ์ด๋ฏธ binding site๊ฐ€ ์•Œ๋ ค์ ธ ์žˆ์„ ๋•Œ โ†’ ๊ตณ์ด whole docking์„ ํ•˜๋ฉด search space๊ฐ€ ์ปค์ง€๊ณ  noise๊ฐ€ ๋งŽ์•„์ง. ๊ณ„์‚ฐ๋Ÿ‰์ด ํฌ๊ฒŒ ๋Š˜์–ด๋‚˜์„œ ์‹œ๊ฐ„ ์†Œ๋ชจ๊ฐ€ ์‹ฌํ•จ.

๐Ÿ‘‰ ์š”์•ฝ: ์ด ๋ช…๋ น์–ด๋Š” **โ€œbinding site๋ฅผ ๋ชจ๋ฅด๋Š” ์ƒํ™ฉ์—์„œ ๋‹จ๋ฐฑ์งˆ ์ „์ฒด๋ฅผ ๋Œ€์ƒ์œผ๋กœ ๋ฆฌ๊ฐ„๋“œ๊ฐ€ ์–ด๋”” ๋ถ™์„์ง€ ์ฐพ์•„๋ณด๋Š” ํƒ์ƒ‰์šฉโ€**์œผ๋กœ ์“ฐ๋Š” ๊ฒŒ ์ข‹์•„.

To perform whole protein docking:

gnina -r rec.pdb -l lig.sdf --autobox_ligand rec.pdb -o whole_docked.sdf.gz --exhaustiveness 64

4

๐Ÿ†• ์ƒˆ ์˜ต์…˜ --cnn_scoring refinement ๋ณดํ†ต Gnina๋Š” ๋„ํ‚น์„ ํ•˜๊ณ  ๋‚˜์„œ rescore ๋ชจ๋“œ(๋”ฅ๋Ÿฌ๋‹ CNN ์ ์ˆ˜๋กœ ํฌ์ฆˆ ์žฌํ‰๊ฐ€)๋งŒ ์ˆ˜ํ–‰ํ•˜๋Š” ๊ฒŒ ๊ธฐ๋ณธ์ด์•ผ. ๊ทธ๋Ÿฐ๋ฐ refinement ๋ชจ๋“œ๋ฅผ ์ฃผ๋ฉด, ์—๋„ˆ์ง€ ์ตœ์†Œํ™” ๊ณผ์ •(๋ฆฌ๊ฐ„๋“œ ์œ„์น˜ ์ตœ์ ํ™”) ์—์„œ๋ถ€ํ„ฐ CNN ์ ์ˆ˜๋ฅผ ์ง์ ‘ ์‚ฌ์šฉํ•ด. ์ฆ‰, docking ๊ณผ์ •์˜ ๋งˆ์ง€๋ง‰ "์„ธ๋ฐ€ํ•œ ์œ„์น˜ ์กฐ์ •(refinement)" ๋‹จ๊ณ„์—์„œ CNN์ด ๊ณ„์† ๊ฐœ์ž…ํ•ด์„œ ๋” ์ •๋ฐ€ํ•˜๊ฒŒ ์ตœ์ ํ™”ํ•จ. ๋‹จ์ : ๊ณ„์‚ฐ๋Ÿ‰์ด ์—„์ฒญ ๋Š˜์–ด์„œ ๊ธฐ๋ณธ rescore ๋Œ€๋น„ ์•ฝ 10๋ฐฐ ๋А๋ ค์ง.

๐Ÿงญ ์–ธ์ œ ์“ฐ๋ฉด ์ข‹์€๊ฐ€? ์ข‹์€ ์ƒํ™ฉ ๋ฆฌ๊ฐ„๋“œ ํฌ์ฆˆ ์ •ํ™•๋„๊ฐ€ ์ •๋ง ์ค‘์š”ํ•œ ๊ฒฝ์šฐ. ํ›„๋ณด ๋ฆฌ๊ฐ„๋“œ ์ˆ˜๊ฐ€ ๋งŽ์ง€ ์•Š๊ณ , ํ•œ๋‘ ๊ฐœ ๋ฆฌ๊ฐ„๋“œ๋ฅผ ์ •๋ฐ€ํ•˜๊ฒŒ dockํ•  ๋•Œ. ๊ธฐ์กด rigid docking ๊ฒฐ๊ณผ๊ฐ€ ์• ๋งคํ•˜๊ณ , ํฌ์ฆˆ ์˜ˆ์ธก ๊ฐœ์„ ์ด ๊ผญ ํ•„์š”ํ•  ๋•Œ.

๋œ ์ข‹์€ ์ƒํ™ฉ ์ˆ˜์ฒœ ๊ฐœ ์ด์ƒ์˜ ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ๋ฅผ high-throughput screening ํ•˜๋Š” ๊ฒฝ์šฐ โ†’ ๋„ˆ๋ฌด ๋А๋ ค์„œ ๋น„ํšจ์œจ์ . ๋น ๋ฅธ ์ดˆ๊ธฐ ์Šคํฌ๋ฆฌ๋‹ ๋‹จ๊ณ„.

๐Ÿ‘‰ ์ •๋ฆฌํ•˜๋ฉด: --cnn_scoring refinement๋Š” โ€œ๋น ๋ฅธ ์Šคํฌ๋ฆฌ๋‹์ด ์•„๋‹ˆ๋ผ, ์ค‘์š”ํ•œ ๋ฆฌ๊ฐ„๋“œ ๋ช‡ ๊ฐœ๋ฅผ ๊ณ ์ •๋ฐ€ refineํ•  ๋•Œโ€ ์“ฐ๋Š” ๊ณ ๊ธ‰ ์˜ต์…˜์ด์•ผ. ๐Ÿš€

To utilize the default ensemble CNN in the energy minimization during the refinement step of docking (10 times slower than the default rescore option):

gnina -r rec.pdb -l lig.sdf --autobox_ligand orig.sdf --cnn_scoring refinement -o cnn_refined.sdf.gz

5

๐Ÿ†• ์ƒˆ ์˜ต์…˜ --cnn_scoring all ๋„ํ‚น์˜ ๋ชจ๋“  ๋‹จ๊ณ„(sampling, refinement, rescoring)์— CNN ์ ์ˆ˜๋ฅผ ์ง์ ‘ ์‚ฌ์šฉ. ์ฆ‰, ๋žœ๋ค ํƒ์ƒ‰๋ถ€ํ„ฐ ์ตœ์ข… ํฌ์ฆˆ ํ‰๊ฐ€๊นŒ์ง€ ์ „๋ถ€ deep learning scoring์œผ๋กœ ์ปจํŠธ๋กคํ•˜๋Š” ๋ฐฉ์‹. ๊ฒฐ๊ณผ์ ์œผ๋กœ ๊ฐ€์žฅ ์ •๋ฐ€ํ•œ CNN ๊ธฐ๋ฐ˜ ๋„ํ‚น์ด ๊ฐ€๋Šฅํ•˜์ง€๋งŒโ€ฆ ๊ธฐ๋ณธ rescore ๋ชจ๋“œ๋ณด๋‹ค ์•ฝ 1000๋ฐฐ ๋А๋ฆผ โš ๏ธ

๐Ÿงญ ์–ธ์ œ ์“ฐ๋ฉด ์ข‹์€๊ฐ€? ์ƒํ™ฉ ์„ค๋ช… โœ… ์ข‹์€ ์ƒํ™ฉ - ๋‹จ์ผ ๋ฆฌ๊ฐ„๋“œ(or ์†Œ์ˆ˜ ๋ฆฌ๊ฐ„๋“œ)์— ๋Œ€ํ•ด ์ตœ๊ณ  ์ˆ˜์ค€ ์ •๋ฐ€๋„๊ฐ€ ํ•„์š”ํ•  ๋•Œ

  • ์—ฐ๊ตฌ ๋ชฉ์ ์ƒ CNN์˜ full potential์„ ํ‰๊ฐ€ํ•˜๋ ค๊ณ  ํ•  ๋•Œ โš ๏ธ ๋‚˜์œ ์ƒํ™ฉ - ์ˆ˜์‹ญ~์ˆ˜์ฒœ ๊ฐœ ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ๋ฅผ screeningํ•  ๋•Œ (์‹ค์งˆ์ ์œผ๋กœ ๋ถˆ๊ฐ€๋Šฅํ•  ๋งŒํผ ๋А๋ฆผ)
  • ์ดˆ๊ธฐ ํƒ์ƒ‰ ๋‹จ๊ณ„์—์„œ ๋น ๋ฅธ ๊ฒฐ๊ณผ๊ฐ€ ํ•„์š”ํ•œ ๊ฒฝ์šฐ

๐Ÿ‘‰ ์ •๋ฆฌํ•˜๋ฉด: --cnn_scoring all์€ **โ€œ๊ทนํ•œ์˜ ์ •๋ฐ€๋„๋ฅผ ์›ํ•  ๋•Œ ์“ฐ๋Š” ์˜ต์…˜โ€**์ด์•ผ. ํ•˜์ง€๋งŒ ํ˜„์‹ค์ ์œผ๋กœ๋Š” ๋„ˆ๋ฌด ๋А๋ ค์„œ ๋ณดํ†ต ์—ฐ๊ตฌ์šฉ ์‹คํ—˜(benchmark)์ด๋‚˜ ์ค‘์š” ๋ฆฌ๊ฐ„๋“œ ์†Œ์ˆ˜ ๋Œ€์ƒ์œผ๋กœ๋งŒ ์‚ฌ์šฉํ•ด. To utilize the default ensemble CNN for every step of docking (1000 times slower than the default rescore option):

gnina -r rec.pdb -l lig.sdf --autobox_ligand orig.sdf --cnn_scoring all -o cnn_all.sdf.gz

6

๐Ÿ†• ์ƒˆ ์˜ต์…˜ --scoring vinardo ๋„ํ‚น ์‹œ ์‚ฌ์šฉํ•˜๋Š” ๊ฒฝํ—˜์ (empirical) scoring function์„ Vinardo๋กœ ์„ค์ •. Vinardo๋Š” AutoDock Vina์˜ scoring์„ ๊ฐœ์„ ํ•œ ๋ฒ„์ „์œผ๋กœ, ์ˆ˜์†Œ ๊ฒฐํ•ฉยท์†Œ์ˆ˜์„ฑ ์ƒํ˜ธ์ž‘์šฉ ๊ฐ™์€ ํ•ญ๋ชฉ์„ ๋” ์„ธ๋ฐ€ํžˆ ๋ฐ˜์˜ํ•ด. ๋ณดํ†ต Vina๋ณด๋‹ค **ํฌ์ฆˆ ์˜ˆ์ธก ์ •ํ™•๋„์™€ ์ ์ˆ˜ ์ƒ๊ด€์„ฑ(correlation)**์ด ๊ฐœ์„ ๋œ ๊ฒƒ์œผ๋กœ ์•Œ๋ ค์ ธ ์žˆ์–ด.

--cnn_scoring none ๋”ฅ๋Ÿฌ๋‹ ๊ธฐ๋ฐ˜ CNN ์ ์ˆ˜๋Š” ์‚ฌ์šฉํ•˜์ง€ ์•Š๊ฒ ๋‹ค๋Š” ๋œป. ์ฆ‰, ์ˆœ์ˆ˜ํ•˜๊ฒŒ ๊ฒฝํ—˜์  scoring function(Vinardo)๋งŒ ์‚ฌ์šฉํ•ด์„œ ๋„ํ‚น์„ ์ˆ˜ํ–‰ํ•จ.

๐Ÿงญ ์–ธ์ œ ์“ฐ๋ฉด ์ข‹์€๊ฐ€? ์ƒํ™ฉ ์„ค๋ช… โœ… ์ข‹์€ ์ƒํ™ฉ - baseline ๋น„๊ต: CNN ๊ธฐ๋ฐ˜ ์Šค์ฝ”์–ด์™€ ๊ฒฝํ—˜์  ์Šค์ฝ”์–ด์˜ ์ฐจ์ด๋ฅผ ๋ณด๊ณ  ์‹ถ์„ ๋•Œ.

  • ๋”ฅ๋Ÿฌ๋‹ ๋ชจ๋ธ์„ ์‹ ๋ขฐํ•˜๊ธฐ ์–ด๋ ต๊ฑฐ๋‚˜, ๊ธฐ์กด Vina/Vinardo ๊ธฐ๋ฐ˜ ๊ฒฐ๊ณผ์™€ ์ผ๊ด€์„ฑ์„ ํ™•์ธํ•˜๊ณ  ์‹ถ์„ ๋•Œ.
  • ๋น ๋ฅธ ๊ณ„์‚ฐ์ด ํ•„์š”ํ•  ๋•Œ (CNN ์—†์ด ๊ฐ€๋ณ๊ฒŒ ์‹คํ–‰).

โš ๏ธ ๋‚˜์œ ์ƒํ™ฉ - ์ตœ์‹  CNN scoring์ด ๋” ์‹ ๋ขฐ๋„ ๋†’์€ ์ƒํ™ฉ (์˜ˆ: ํ•™์Šต๋œ ๋ชจ๋ธ์ด ํ•ด๋‹น ๋‹จ๋ฐฑ์งˆ-๋ฆฌ๊ฐ„๋“œ domain์— ์ž˜ ๋งž์„ ๋•Œ).

  • ์ •๋ฐ€ refinement๊ฐ€ ํ•„์š”ํ•œ ๊ฒฝ์šฐ (Vinardo๋งŒ ์“ฐ๋ฉด ์ตœ์‹  CNN ๋ฐฉ์‹๋ณด๋‹ค ๋œ ์ •ํ™•ํ•  ์ˆ˜ ์žˆ์Œ).

๐Ÿ‘‰ ์š”์•ฝ: ์ด ๋ช…๋ น์–ด๋Š” โ€œCNN์„ ์™„์ „ํžˆ ๋„๊ณ , Vinardo๋งŒ ์จ์„œ ๊ฒฝํ—˜์  ์ ์ˆ˜ ๊ธฐ๋ฐ˜ ๋„ํ‚น์„ ํ•˜๊ณ  ์‹ถ์„ ๋•Œโ€ ์‚ฌ์šฉํ•˜๋Š” ์˜ต์…˜์ด์•ผ. ๋ณดํ†ต CNN ๊ฒฐ๊ณผ๋ž‘ ๋น„๊ต์šฉ์œผ๋กœ ๋งŽ์ด ์“ฐ์ด์ง€! To utilize all empirical scoring using the Vinardo scoring function:

gnina -r rec.pdb -l lig.sdf --autobox_ligand orig.sdf --scoring vinardo --cnn_scoring none -o vinardo_docked.sdf.gz

7

๐Ÿ†• ์ƒˆ ์˜ต์…˜ --cnn dense ๋„ํ‚น ๊ณผ์ •์—์„œ ์‚ฌ์šฉํ•  CNN ๋ชจ๋ธ์„ ๊ธฐ๋ณธ ensemble ๋ง๊ณ  ๋‹ค๋ฅธ ํŠน์ • CNN ์•„ํ‚คํ…์ฒ˜๋กœ ์ง€์ •ํ•˜๋Š” ์˜ต์…˜. ์—ฌ๊ธฐ์„œ๋Š” dense๋ผ๋Š” ๋ชจ๋ธ์„ ์„ ํƒํ•œ ๊ฑฐ์•ผ. gnina --help๋ฅผ ๋ณด๋ฉด dense, general_default2018, crossdock_default2018 ๊ฐ™์€ ๋‹ค์–‘ํ•œ ์‚ฌ์ „ํ•™์Šต CNN๋“ค์ด ์žˆ์–ด. ๊ฐ CNN์€ ํ•™์Šต๋œ ๋ฐ์ดํ„ฐ์…‹๊ณผ ๋„คํŠธ์›Œํฌ ๊ตฌ์กฐ๊ฐ€ ๋‹ฌ๋ผ์„œ, ํŠน์ • ์ƒํ™ฉ์—์„œ ๋” ์ž˜ ๋งž์„ ์ˆ˜ ์žˆ์–ด.

๐Ÿงญ ์–ธ์ œ ์“ฐ๋ฉด ์ข‹์€๊ฐ€? ์ƒํ™ฉ ์„ค๋ช… โœ… ์ข‹์€ ์ƒํ™ฉ - ํŠน์ • CNN์ด ๋‚ด ๋‹จ๋ฐฑ์งˆ-๋ฆฌ๊ฐ„๋“œ ๊ณ„์—ด์— ๋” ์ž˜ ๋งž๋Š”๋‹ค๊ณ  ์•Œ๋ ค์ง„ ๊ฒฝ์šฐ.

  • ์—ฌ๋Ÿฌ CNN์„ ์จ๋ณด๊ณ  ๋ชจ๋ธ๋ณ„ ์ ์ˆ˜ ์ฐจ์ด/์„ฑ๋Šฅ ๋น„๊ต๋ฅผ ํ•˜๊ณ  ์‹ถ์„ ๋•Œ.
  • ๋…ผ๋ฌธ reproducibility (์˜ˆ: ์–ด๋–ค ์—ฐ๊ตฌ์—์„œ dense CNN์„ ์‚ฌ์šฉํ–ˆ๋‹ค๊ณ  ๋ช…์‹œํ•œ ๊ฒฝ์šฐ).

โš ๏ธ ๋‚˜์œ ์ƒํ™ฉ - CNN ๋ชจ๋ธ์— ๋Œ€ํ•ด ์‚ฌ์ „ ์ง€์‹์ด ์ „ํ˜€ ์—†๊ณ , ๊ทธ๋ƒฅ default ensemble์ด ๋” ์•ˆ์ „ํ•œ ๊ฒฝ์šฐ.

  • ๋Œ€๊ทœ๋ชจ screening (๋ชจ๋ธ๋ณ„ ์ฐจ์ด๋ฅผ ๋‹ค ๋Œ๋ ค๋ณด๊ธฐ์—๋Š” ์‹œ๊ฐ„์ด ์˜ค๋ž˜ ๊ฑธ๋ฆผ).

๐Ÿ‘‰ ์ •๋ฆฌํ•˜๋ฉด: --cnn dense๋Š” โ€œ๊ธฐ๋ณธ CNN ๋ง๊ณ  ํŠน์ • CNN ์•„ํ‚คํ…์ฒ˜๋ฅผ ์ง€์ •ํ•ด์„œ ๋„ํ‚นํ•˜๊ณ  ์‹ถ์„ ๋•Œโ€ ์“ฐ๋Š” ๊ฑฐ์•ผ. ์ฃผ๋กœ ์‹คํ—˜ ๋น„๊ต์šฉ์ด๋‚˜ reproducibility์— ์œ ์šฉํ•˜์ง€!

To utilize a different CNN during docking (see help for possible options):

gnina -r rec.pdb -l lig.sdf --autobox_ligand orig.sdf --cnn dense -o dense_docked.sdf.gz

8

๐Ÿ†• ์ƒˆ ์˜ต์…˜ --minimize ๋ฆฌ๊ฐ„๋“œ๊ฐ€ ์ด๋ฏธ ๋‹จ๋ฐฑ์งˆ์˜ ๊ฒฐํ•ฉ๋ถ€์œ„์— ๋ฐฐ์น˜๋œ ์ƒํƒœ๋ผ๊ณ  ๊ฐ€์ •ํ•˜๊ณ , ๋„ํ‚น ํƒ์ƒ‰์€ ํ•˜์ง€ ์•Š๊ณ  ๋ฐ”๋กœ ์—๋„ˆ์ง€ ์ตœ์†Œํ™”(geometry optimization) ๋งŒ ์ˆ˜ํ–‰. ์ฆ‰, ๋ฆฌ๊ฐ„๋“œ์˜ ํฌ์ฆˆ๋ฅผ ํฌ๊ฒŒ ๋ฐ”๊พธ์ง€ ์•Š๊ณ , ๊ตญ์†Œ์ ์œผ๋กœ ์œ„์น˜์™€ ๊ฒฐํ•ฉ ํ˜•ํƒœ๋ฅผ ๋” ์•ˆ์ •ํ™”์‹œํ‚ค๋Š” ๊ณผ์ •์ด์•ผ. ๊ฒฐ๊ณผ๋Š” ์ตœ์ ํ™”๋œ ํฌ์ฆˆ + ์ ์ˆ˜๊ฐ€ ํ•จ๊ป˜ ์ถœ๋ ฅ๋จ.

๐Ÿงญ ์–ธ์ œ ์“ฐ๋ฉด ์ข‹์€๊ฐ€? ์ƒํ™ฉ ์„ค๋ช… โœ… ์ข‹์€ ์ƒํ™ฉ - ๋ฆฌ๊ฐ„๋“œ ํฌ์ฆˆ๊ฐ€ ์ด๋ฏธ ์•Œ๋ ค์ ธ ์žˆ์„ ๋•Œ (์˜ˆ: co-crystal ๊ตฌ์กฐ, ์ˆ˜๋™์œผ๋กœ ๋ฐฐ์น˜ํ•œ ๊ฒฝ์šฐ).

  • docking ์—†์ด ๊ธฐ์กด ํฌ์ฆˆ์˜ ์—๋„ˆ์ง€ ํ‰๊ฐ€๋งŒ ํ•˜๊ณ  ์‹ถ์„ ๋•Œ.
  • docking ๊ฒฐ๊ณผ๋ฅผ ๋” ์ •์ œ(refine)ํ•ด์„œ ์•ˆ์ •ํ™”์‹œํ‚ค๊ณ  ์‹ถ์„ ๋•Œ.

โš ๏ธ ๋‚˜์œ ์ƒํ™ฉ - ์•„์ง binding site๊ฐ€ ํ™•์‹คํ•˜์ง€ ์•Š๊ฑฐ๋‚˜, ๋ฆฌ๊ฐ„๋“œ๊ฐ€ ์ œ์ž๋ฆฌ๋ฅผ ๋ชป ์žก์€ ๊ฒฝ์šฐ โ†’ ๋‹จ์ˆœ ์ตœ์†Œํ™”๋งŒ ํ•˜๋ฉด ์ž˜๋ชป๋œ ํฌ์ฆˆ๊ฐ€ ๊ทธ๋Œ€๋กœ ์œ ์ง€๋จ.

  • ์ƒˆ๋กœ์šด ๊ฒฐํ•ฉ ๋ชจ๋“œ๋ฅผ ์ฐพ๊ณ  ์‹ถ์€ ๊ฒฝ์šฐ (ํƒ์ƒ‰์„ ์ „ํ˜€ ํ•˜์ง€ ์•Š์Œ).

๐Ÿ‘‰ ์š”์•ฝํ•˜๋ฉด: ์ด ๋ช…๋ น์–ด๋Š” โ€œ์ด๋ฏธ binding site์— ๋“ค์–ด๊ฐ„ ๋ฆฌ๊ฐ„๋“œ๋“ค์„ ๊ทธ๋Œ€๋กœ ๋‘๊ณ , ํฌ์ฆˆ๋ฅผ ์ตœ์ ํ™” + ์Šค์ฝ”์–ด๋งŒ ๋งค๊ธฐ๊ณ  ์‹ถ์„ ๋•Œโ€ ์“ฐ๋Š” ๊ฑฐ์•ผ. ๐Ÿš€

To minimize and score ligands ligs.sdf already positioned in a binding site:

gnina -r rec.pdb -l ligs.sdf --minimize -o minimized.sdf.gz

9

๐Ÿ†• ์ƒˆ ์˜ต์…˜ --covalent_rec_atom A:601:FE ์ˆ˜์šฉ์ฒด์—์„œ ๊ณต์œ  ๊ฒฐํ•ฉ(covalent bond)์„ ํ˜•์„ฑํ•  ์›์ž๋ฅผ ์ง€์ •. ์—ฌ๊ธฐ์„œ๋Š” chain A์˜ residue ๋ฒˆํ˜ธ 601์— ์žˆ๋Š” ์ฒ (Fe) ์›์ž๋ฅผ ๋Œ€์ƒ์œผ๋กœ ํ•จ. ์ฆ‰, docking ๊ณผ์ •์—์„œ ๋ฆฌ๊ฐ„๋“œ๊ฐ€ ์ด ์ฒ  ์›์ž์™€ ๊ฒฐํ•ฉํ•  ์ˆ˜ ์žˆ๋„๋ก ๊ฐ•์ œํ•˜๋Š” ๊ฑฐ์•ผ.

--covalent_lig_atom_pattern '[$(n1nccc1)]' ๋ฆฌ๊ฐ„๋“œ์—์„œ ๊ฒฐํ•ฉํ•  ํŠน์ • ์›์ž ํŒจํ„ด์„ SMARTS ํ˜•์‹์œผ๋กœ ์ง€์ •. '[$(n1nccc1)]'๋Š” pyrazole ๊ณ ๋ฆฌ ์•ˆ์˜ **์งˆ์†Œ ์›์ž(N)**๋ฅผ ์˜๋ฏธํ•ด. ๋”ฐ๋ผ์„œ ๋ฆฌ๊ฐ„๋“œ์˜ pyrazole N๊ณผ ์ˆ˜์šฉ์ฒด์˜ Fe๊ฐ€ ๊ณต์œ ๊ฒฐํ•ฉ์„ ํ˜•์„ฑํ•˜๋„๋ก ๋„ํ‚น์ด ์ง„ํ–‰๋จ. ์—ฌ๊ธฐ์„œ '[$(n1nccc1)]' = pyrazole ๊ณ ๋ฆฌ(n1nccc1)์˜ ์งˆ์†Œ ์›์ž SMARTS ํŒจํ„ด. ๋”ฐ๋ผ์„œ pyrazole N์ด covalent ๊ฒฐํ•ฉ ๋Œ€์ƒ์ด ๋˜๋Š” ๊ฑฐ์•ผ.

๐Ÿ‘‰ ๋‹ค๋ฅธ ์›์ž๋กœ ๋ฐ”๊พธ๋Š” ๋ฐฉ๋ฒ• ์ด ํŒจํ„ด์„ ๋‹ค๋ฅธ SMARTS ํ‘œํ˜„์‹์œผ๋กœ ๋ฐ”๊พธ๋ฉด, ํ•ด๋‹น ์›์ž๊ฐ€ covalent ๊ฒฐํ•ฉ ์ง€์ ์œผ๋กœ ์ธ์‹๋ผ.

์˜ˆ์‹œ: ์›์ž SMARTS ํŒจํ„ด ์˜๋ฏธ ์•„๋ฏผ N (-NH2) [NH2] 1์ฐจ ์•„๋ฏผ ์งˆ์†Œ ํ•˜์ด๋“œ๋ก์‹ค O (-OH) [OH] ์•Œ์ฝ”์˜ฌ ์‚ฐ์†Œ ํ‹ฐ์˜ฌ S (-SH) [SH] ํ™ฉ ์›์ž ๋ฐฉํ–ฅ์กฑ N (pyridine N) [nH0] ๋ฐฉํ–ฅ์กฑ ์งˆ์†Œ(์ˆ˜์†Œ ์—†๋Š” ๊ฒฝ์šฐ) ํŠน์ • ํƒ„์†Œ [C;H2] 2๊ฐœ์˜ ์ˆ˜์†Œ๋ฅผ ๊ฐ€์ง„ ํƒ„์†Œ (spยณ methylene)

์˜ˆ๋ฅผ ๋“ค์–ด, -OH ๊ทธ๋ฃน ์‚ฐ์†Œ๋ฅผ covalent target์œผ๋กœ ์“ฐ๊ณ  ์‹ถ๋‹ค๋ฉด: --covalent_lig_atom_pattern '[OH]'

์ด๋ ‡๊ฒŒ ๋ฐ”๊ฟ€ ์ˆ˜ ์žˆ์–ด.

โš ๏ธ ์ฃผ์˜ํ•  ์  SMARTS ํŒจํ„ด์ด ๋ฆฌ๊ฐ„๋“œ ํŒŒ์ผ(lig.sdf or conformer.sdf.gz) ์•ˆ์— ์‹ค์ œ๋กœ ์กด์žฌํ•˜๋Š” ์›์ž์™€ ๋งค์นญ๋ผ์•ผ ํ•ด. ์•ˆ ๋งž์œผ๋ฉด gnina๊ฐ€ covalent atom์„ ๋ชป ์ฐพ๊ณ  ์—๋Ÿฌ๊ฐ€ ๋‚  ์ˆ˜ ์žˆ์–ด. covalent_rec_atom ์ชฝ๊ณผ ํ™”ํ•™์ ์œผ๋กœ ์–ด์šธ๋ฆฌ๋Š” ํŒจํ„ด์„ ์จ์•ผ ์•ˆ์ •์ ์ธ ๊ฒฐํ•ฉ ๋ชจ๋ธ๋ง์ด ๋ผ (์˜ˆ: ๊ธˆ์†-์งˆ์†Œ, ๊ธˆ์†-ํ™ฉ, ์‹œ์Šคํ…Œ์ธ-SH ๋“ฑ).

๐Ÿ‘‰ ์ •๋ฆฌํ•˜๋ฉด: ๋„ค, SMARTS ํŒจํ„ด์„ ๋ฐ”๊พธ๋ฉด ๋ฆฌ๊ฐ„๋“œ์˜ ๋‹ค๋ฅธ ์›์ž๋ฅผ covalent ๊ฒฐํ•ฉ ์ง€์ ์œผ๋กœ ์ง€์ •ํ•  ์ˆ˜ ์žˆ์–ด! ๐Ÿ”ง To covalently dock a pyrazole to a specific iron atom on the receptor with the bond formed between a nitrogen of the pyrazole and the iron.

์ „์ฒด์ ์œผ๋กœ ๐Ÿงญ ์–ธ์ œ ์“ฐ๋ฉด ์ข‹์€๊ฐ€? ์ƒํ™ฉ ์„ค๋ช… โœ… ์ข‹์€ ์ƒํ™ฉ - ๊ธˆ์† ์ฐฉ๋ฌผ(metalloenzyme) ์‹œ์Šคํ…œ ์—ฐ๊ตฌ (์˜ˆ: heme, iron-sulfur cluster, zinc-binding proteins).

  • covalent inhibitor ์„ค๊ณ„ (ํŠน์ • ํฌ์ผ“์—์„œ ๋ฆฌ๊ฐ„๋“œ๊ฐ€ ๋‹จ๋ฐฑ์งˆ/๊ธˆ์†๊ณผ ๊ณต์œ ๊ฒฐํ•ฉํ•˜๋„๋ก ์œ ๋„).
  • ์ผ๋ฐ˜ ๋„ํ‚น์œผ๋กœ๋Š” ํฌ์ฐฉํ•˜๊ธฐ ์–ด๋ ค์šด ๊ธˆ์†-๋ฆฌ๊ฐ„๋“œ ์ƒํ˜ธ์ž‘์šฉ์„ ์ •ํ™•ํžˆ ๋ชจ๋ธ๋งํ•˜๊ณ  ์‹ถ์„ ๋•Œ.

โš ๏ธ ๋‚˜์œ ์ƒํ™ฉ - ํ‘œ์ค€ ๋น„๊ณต์œ ์ (non-covalent) ๋„ํ‚น์„ ํ•˜๊ณ  ์‹ถ์„ ๋•Œ.

  • ๊ฒฐํ•ฉ ๋ถ€์œ„๊ฐ€ ๋ถˆํ™•์‹คํ•˜๊ฑฐ๋‚˜, covalent binding evidence๊ฐ€ ์—†๋Š” ๊ฒฝ์šฐ โ†’ ์ž˜๋ชป๋œ ๊ฐ•์ œ ๊ฒฐํ•ฉ์ด ์˜คํžˆ๋ ค ์™œ๊ณก๋œ ๊ฒฐ๊ณผ๋ฅผ ๋‚ณ์„ ์ˆ˜ ์žˆ์Œ.

๐Ÿ‘‰ ์š”์•ฝ: ์ด ๋ช…๋ น์–ด๋Š” โ€œ๋ฆฌ๊ฐ„๋“œ์˜ pyrazole N์ด ์ˆ˜์šฉ์ฒด์˜ ํŠน์ • Fe ์›์ž์™€ ๋ฐ˜๋“œ์‹œ ๊ณต์œ ๊ฒฐํ•ฉ์„ ํ˜•์„ฑํ•˜๊ฒŒโ€ ํ•ด์„œ ๋„ํ‚น์„ ์ˆ˜ํ–‰ํ•˜๋Š” ์˜ต์…˜์ด์•ผ. โšก To covalently dock a pyrazole to a specific iron atom on the receptor with the bond formed between a nitrogen of the pyrazole and the iron.

gnina  -r rec.pdb.gz -l conformer.sdf.gz --autobox_ligand bindingsite.sdf.gz --covalent_rec_atom A:601:FE --covalent_lig_atom_pattern '[$(n1nccc1)]' -o output.sdf.gz 

10

--covalent_lig_atom_position x,y,z ๊ณต์œ ๊ฒฐํ•ฉ์„ ํ˜•์„ฑํ•  ๋ฆฌ๊ฐ„๋“œ ์ธก ์›์ž๋ฅผ OpenBabel ์ž๋™ ํœด๋ฆฌ์Šคํ‹ฑ ๋Œ€์‹ , ๋„ค๊ฐ€ ์ง€์ •ํ•œ ์ขŒํ‘œ(ร…) ์— ์ง์ ‘ ๋ฐฐ์น˜ํ•ด. ์ขŒํ‘œ๊ณ„๋Š” ์ˆ˜์šฉ์ฒด(rec.pdb.gz)์˜ ์ขŒํ‘œ ํ”„๋ ˆ์ž„๊ณผ ๋™์ผํ•ด์•ผ ํ•ด(ํŒŒ์ผ๋งˆ๋‹ค ์›์ ยท๋‹จ์œ„๊ฐ€ ๊ฐ™์•„์•ผ ํ•จ). ๋ชฉ์ : ๊ธˆ์†โ€“์งˆ์†Œ ๊ฐ™์€ ์ •ํ•ด์ง„ ๊ฒฐํ•ฉ ๊ฑฐ๋ฆฌ/๋ฐฉํ–ฅ์„ฑ์„ ์ •ํ™•ํžˆ ๋งž์ถ”๊ณ  ์‹œ์ž‘ํ•˜๊ณ  ์‹ถ์„ ๋•Œ.

--covalent_optimize_lig ์œ„์—์„œ ๋ฐฐ์น˜ํ•œ ๋ฆฌ๊ฐ„๋“œ(ํ˜น์€ ๊ธฐ์กด ๋ฐฐ์น˜)๋ฅผ UFF(Universal Force Field) ๋กœ ๊ตญ์†Œ ์ตœ์ ํ™”ํ•ด์„œ, ์ดˆ๊ธฐ ๋ฐฐ์น˜์—์„œ ์ƒ๊ธธ ์ˆ˜ ์žˆ๋Š” ๋น„ํ˜„์‹ค์  ๊ฑฐ๋ฆฌยท๊ฐ๋„๋ฅผ ์™„ํ™”ํ•ด. ๋‹จ๋ฐฑ์งˆ์€ ๊ทธ๋Œ€๋กœ ๋‘๊ณ  ๋ฆฌ๊ฐ„๋“œ ๋‹จ๋…์„ UFF๋กœ ๋‹ค๋“ฌ๋Š” ๊ฐœ๋…(๋ฆฌ๊ฐ„๋“œ/์ž”๊ธฐ ๋ณตํ•ฉ์ฒด์˜ ๊ธฐํ•˜ ์•ˆ์ •ํ™”).

๐Ÿงญ ์–ธ์ œ ์“ฐ๋ฉด ์ข‹์€๊ฐ€? ์ข‹์€ ์ƒํ™ฉ ๊ธˆ์† ๋ฐฐ์œ„ ๊ฑฐ๋ฆฌ/๊ฐ(์˜ˆ: Feโ€“N โ‰ˆ 2.0 ร…๋Œ€)์„ ์ •๋ฐ€ํ•˜๊ฒŒ ๋งž์ถฐ ์‹œ์ž‘ํ•˜๊ณ  ์‹ถ์„ ๋•Œ. ์ž๋™ ๋ฐฐ์น˜๊ฐ€ ๊ณ„์† ์—‡๋‚˜๊ฐ€์„œ ์ˆ˜๋™์œผ๋กœ ๊ธฐ์ค€์ ์„ ํ™•์‹คํžˆ ์žก๊ณ  ์‹ถ์„ ๋•Œ. ์ฝ”์–ด ํฌ์ฆˆ๋Š” ํ™•์‹ ํ•˜์ง€๋งŒ, ๋ง๋‹จ ํ† ์…˜๋งŒ ๊ฐ€๋ณ๊ฒŒ ์ •๋ฆฌ(UFF) ํ•˜๊ณ  ์‹ถ์„ ๋•Œ.

๋œ ์ข‹์€ ์ƒํ™ฉ ๊ฒฐํ•ฉ ์ง€์  ์ขŒํ‘œ์— ์ž์‹ ์ด ์—†์„ ๋•Œ(์ž˜๋ชป ์ฐ์œผ๋ฉด ์ „ ๊ณผ์ •์ด ๋น„ํ‹€์–ด์ง). ํฌ์ผ“ ์ž์ฒด ์žฌ๋ฐฐ์น˜/์œ ์—ฐํ™”๊ฐ€ ํ•„์š”ํ•œ ๋ฌธ์ œ(์ด ์˜ต์…˜์€ ๋ฆฌ๊ฐ„๋“œ ์ค‘์‹ฌ์ด๋ผ ๋‹จ๋ฐฑ์งˆ ์žฌ๋ฐฐ์—ด์€ ์•ˆ ํ•จ).

โœ… ์‹ค๋ฌด ํŒ(์งง๊ฒŒ) ์ขŒํ‘œ๋Š” ร… ๋‹จ์œ„, ์ˆ˜์šฉ์ฒด์™€ ๋™์ผ ํ”„๋ ˆ์ž„์ธ์ง€ ๊ผญ ํ™•์ธ.

--covalent_lig_atom_pattern์ด ๋‹จ ํ•˜๋‚˜์˜ ์›์ž๋งŒ ๋งค์นญ๋˜๋„๋ก SMARTS๋ฅผ ๋ช…ํ™•ํžˆ. ํ•„์š”ํ•˜๋ฉด ํ›„์†์œผ๋กœ --minimize๋‚˜ CNN ๊ธฐ๋ฐ˜ refine(์˜ˆ: --cnn_scoring refinement)๋กœ ๋ฏธ์„ธ ์กฐ์ •๊นŒ์ง€ ๊ณ ๋ คํ•ด๋ด.

The same as above, but with the covalently bonding ligand atom manually positioned (instead of using OpenBabel binding heuristics) and the ligand/residue complex UFF optimized.

gnina  -r rec.pdb.gz -l conformer.sdf.gz --autobox_ligand bindingsite.sdf.gz --covalent_lig_atom_position -11.796,31.887,72.682  --covalent_optimize_lig  --covalent_rec_atom A:601:FE --covalent_lig_atom_pattern '[$(n1nccc1)]' -o output.sdf.gz 

11.๐Ÿ“˜ Gnina ์ฃผ์š” ์˜ต์…˜ ํ•œ๊ตญ์–ด ์„ค๋ช… ์ •๋ฆฌ

์˜ต์…˜ ์˜๋ฏธ (ํ•œ๊ตญ์–ด) ์–ธ์ œ ์“ฐ๋ฉด ์ข‹์€๊ฐ€
-r rec.pdb ๋„ํ‚นํ•  ์ˆ˜์šฉ์ฒด(๋‹จ๋ฐฑ์งˆ) ๊ตฌ์กฐ ์ง€์ • ํ•ญ์ƒ ํ•„์š”
-l lig.sdf ๋„ํ‚นํ•  ๋ฆฌ๊ฐ„๋“œ(์†Œ๋ถ„์ž) ๊ตฌ์กฐ ์ง€์ • ํ•ญ์ƒ ํ•„์š”
--autobox_ligand file.sdf ํŠน์ • ๋ฆฌ๊ฐ„๋“œ ์ฃผ์œ„๋กœ ๋„ํ‚น ๋ฐ•์Šค ์ž๋™ ์ƒ์„ฑ ๊ฒฐํ•ฉ ํฌ์ผ“์ด ์ด๋ฏธ ์•Œ๋ ค์ ธ ์žˆ์„ ๋•Œ
--flexdist_ligand file.sdf ๊ธฐ์ค€ ๋ฆฌ๊ฐ„๋“œ ์ฃผ๋ณ€ ์ž”๊ธฐ๋ฅผ flexible ์ฒ˜๋ฆฌ ํฌ์ผ“์ด ์œ ์—ฐํ•˜๋‹ค๊ณ  ์•Œ๋ ค์ง„ ๊ฒฝ์šฐ
--flexdist 3.5 ๊ธฐ์ค€ ๋ฆฌ๊ฐ„๋“œ์—์„œ 3.5 ร… ์ด๋‚ด ์ž”๊ธฐ๋“ค๋งŒ flexible induced-fit ๊ฐ€๋Šฅ์„ฑ์ด ์žˆ์„ ๋•Œ
--exhaustiveness 64 ํƒ์ƒ‰ ์ฒ ์ €๋„(๊ธฐ๋ณธ๊ฐ’ 8, ๋†’์„์ˆ˜๋ก ๋А๋ฆฌ์ง€๋งŒ ์ •ํ™•) ํฌ์ฆˆ ์ •ํ™•๋„ ๋†’์ด๊ณ  ์‹ถ์„ ๋•Œ
--cnn_scoring rescore (๊ธฐ๋ณธ) ๋„ํ‚น ํ›„ CNN ์ ์ˆ˜๋กœ ์žฌํ‰๊ฐ€๋งŒ ํ•จ ๋น ๋ฅธ ๊ณ ์† ์Šคํฌ๋ฆฌ๋‹
--cnn_scoring refinement refinement ๋‹จ๊ณ„์—์„œ CNN ๋ฐ˜์˜ (10๋ฐฐ ๋А๋ฆผ) ์†Œ์ˆ˜ ๋ฆฌ๊ฐ„๋“œ์˜ ์ •๋ฐ€ ํฌ์ฆˆ ํ•„์š”
--cnn_scoring all ๋ชจ๋“  ๋‹จ๊ณ„์—์„œ CNN ๋ฐ˜์˜ (1000๋ฐฐ ๋А๋ฆผ) ์ตœ๊ณ  ์ •๋ฐ€๋„ ์—ฐ๊ตฌ์šฉ
--scoring vinardo ๊ฒฝํ—˜์  scoring function Vinardo ์‚ฌ์šฉ CNN๊ณผ ๋น„๊ต, baseline ์šฉ
--cnn_scoring none CNN ์‚ฌ์šฉ ์•ˆ ํ•˜๊ณ  ๊ฒฝํ—˜์  ์ ์ˆ˜๋งŒ ์‚ฌ์šฉ CNN์ด ๋ถˆํ™•์‹คํ•  ๋•Œ
--cnn dense ๊ธฐ๋ณธ ์•™์ƒ๋ธ” ๋Œ€์‹  ํŠน์ • CNN ์‚ฌ์šฉ ๋…ผ๋ฌธ ์žฌํ˜„, CNN ๋น„๊ต ์‹คํ—˜
--minimize ์ด๋ฏธ ๋ฐฐ์น˜๋œ ๋ฆฌ๊ฐ„๋“œ๋ฅผ ์—๋„ˆ์ง€ ์ตœ์†Œํ™” co-crystal ํฌ์ฆˆ ์ •์ œ, ํ‰๊ฐ€
--covalent_rec_atom A:601:FE ์ˆ˜์šฉ์ฒด์˜ ํŠน์ • ์›์ž์™€ covalent bond ์ง€์ • ๊ธˆ์†ยทํŠน์ • ์ž”๊ธฐ์™€ ๊ณต์œ ๊ฒฐํ•ฉ ๋ชจ๋ธ๋ง
--covalent_lig_atom_pattern 'SMARTS' ๋ฆฌ๊ฐ„๋“œ์—์„œ ๊ฒฐํ•ฉํ•  ์›์ž ํŒจํ„ด ์ง€์ • ํŠน์ • ์ž‘์šฉ๊ธฐ ์›์ž ๊ฒฐํ•ฉ
--covalent_lig_atom_position x,y,z ๋ฆฌ๊ฐ„๋“œ ๊ฒฐํ•ฉ ์›์ž ์ขŒํ‘œ ์ง์ ‘ ์ง€์ • ์ž๋™ ๋ฐฐ์น˜ ๋Œ€์‹  ์ˆ˜๋™ ์œ„์น˜ ์ง€์ •
--covalent_optimize_lig ๋ฆฌ๊ฐ„๋“œ ๊ตฌ์กฐ๋ฅผ UFF๋กœ ๊ตญ์†Œ ์ตœ์ ํ™” covalent ์ดˆ๊ธฐ ํฌ์ฆˆ ์•ˆ์ •ํ™”

โœจ ์š”์•ฝ

  • ๊ธฐ๋ณธ ์˜ต์…˜ โ†’ -r, -l, --autobox_ligand
  • ์ •๋ฐ€๋„ ์ œ์–ด โ†’ --exhaustiveness, --cnn_scoring ๊ณ„์—ด
  • ์Šค์ฝ”์–ด๋ง ๋ฐฉ์‹ โ†’ --scoring vinardo, --cnn_scoring none/all/refinement
  • ๋ฆฌ๊ฐ„๋“œ ์ฒ˜๋ฆฌ โ†’ --minimize, --flexdist*
  • ๊ณต์œ ๊ฒฐํ•ฉ ๋„ํ‚น โ†’ --covalent_* ๊ณ„์—ด

All options:

๐Ÿ“ฅ Input Options (์ž…๋ ฅ ๊ด€๋ จ ์˜ต์…˜)

์˜ต์…˜ ์˜๋ฏธ (์›๋ฌธ) ํ•œ๊ตญ์–ด ์„ค๋ช… ์–ธ์ œ ์“ฐ๋ฉด ์ข‹์€๊ฐ€
-r, --receptor rigid part of the receptor ๋„ํ‚นํ•  ์ˆ˜์šฉ์ฒด(๋‹จ๋ฐฑ์งˆ)์˜ ๊ณ ์ •๋œ ๋ถ€๋ถ„ ๊ตฌ์กฐ ํŒŒ์ผ ํ•ญ์ƒ ํ•„์š”
--flex flexible side chains, if any (PDBQT) ๋ณ„๋„๋กœ ์ค€๋น„๋œ flexible side chain ๊ตฌ์กฐ(PDBQT ํ˜•์‹) advanced ์‚ฌ์šฉ์ž: ์ง์ ‘ flexible residue ์ •์˜ํ•  ๋•Œ
-l, --ligand ligand(s) ๋„ํ‚นํ•  ๋ฆฌ๊ฐ„๋“œ ํŒŒ์ผ (์—ฌ๋Ÿฌ ๊ฐœ ๊ฐ€๋Šฅ) ํ•ญ์ƒ ํ•„์š”
--flexres chain:resid,... flexible side chains specified by comma separated list of chain:resid ์ฒด์ธ:์ž”๊ธฐ๋ฒˆํ˜ธ ๋ฆฌ์ŠคํŠธ๋กœ flexible residue ์ง์ ‘ ์ง€์ • (์‰ผํ‘œ๋กœ ๊ตฌ๋ถ„) ํŠน์ • ์ž”๊ธฐ๋งŒ ์œ ์—ฐํ•˜๊ฒŒ ์ฒ˜๋ฆฌํ•˜๊ณ  ์‹ถ์„ ๋•Œ
--flexdist_ligand file.sdf Ligand to use for flexdist ๊ธฐ์ค€ ๋ฆฌ๊ฐ„๋“œ ํŒŒ์ผ์„ ์‚ฌ์šฉํ•ด flexible residue ๋ฒ”์œ„ ๊ณ„์‚ฐ binding site ์œ ์—ฐ์„ฑ์„ ๋ฐ˜์˜ํ•˜๊ณ  ์‹ถ์„ ๋•Œ
--flexdist distance set all side chains within specified distance to flexdist_ligand to flexible ๊ธฐ์ค€ ๋ฆฌ๊ฐ„๋“œ์—์„œ ์ง€์ • ๊ฑฐ๋ฆฌ(ร…) ์•ˆ์— ์žˆ๋Š” ๋ชจ๋“  side chain์„ flexible ์ฒ˜๋ฆฌ induced-fit ์˜์‹ฌ๋  ๋•Œ
--flex_limit N Hard limit for the number of flexible residues flexible residue ๊ฐœ์ˆ˜์˜ ์ƒํ•œ์„  ์ง€์ • ๋„ˆ๋ฌด ๋งŽ์€ ์ž”๊ธฐ๊ฐ€ flexible ๋˜๋Š” ๊ฑธ ๋ฐฉ์ง€
--flex_max N Retain at most the closest flex_max flexible residues ๊ฐ€์žฅ ๊ฐ€๊นŒ์šด flexible residue N๊ฐœ๋งŒ ์œ ์ง€ ์—ฐ์‚ฐ๋Ÿ‰์„ ์ค„์ด๊ณ  ์‹ถ์„ ๋•Œ
Input:
  -r [ --receptor ] arg              rigid part of the receptor
  --flex arg                         flexible side chains, if any (PDBQT)
  -l [ --ligand ] arg                ligand(s)
  --flexres arg                      flexible side chains specified by comma 
                                     separated list of chain:resid
  --flexdist_ligand arg              Ligand to use for flexdist
  --flexdist arg                     set all side chains within specified 
                                     distance to flexdist_ligand to flexible
  --flex_limit arg                   Hard limit for the number of flexible 
                                     residues
  --flex_max arg                     Retain at at most the closest flex_max 
                                     flexible residues

๐Ÿ” Search Space Options (ํƒ์ƒ‰ ๊ณต๊ฐ„ ๊ด€๋ จ ์˜ต์…˜)

์˜ต์…˜ ์˜๋ฏธ (์›๋ฌธ) ํ•œ๊ตญ์–ด ์„ค๋ช… ์–ธ์ œ ์“ฐ๋ฉด ์ข‹์€๊ฐ€
--center_x X coordinate of the center ํƒ์ƒ‰ ๋ฐ•์Šค ์ค‘์‹ฌ์˜ X ์ขŒํ‘œ ๊ฒฐํ•ฉ ํฌ์ผ“ ์ค‘์‹ฌ ์ขŒํ‘œ๋ฅผ ์ง์ ‘ ์ง€์ •ํ•  ๋•Œ
--center_y Y coordinate of the center ํƒ์ƒ‰ ๋ฐ•์Šค ์ค‘์‹ฌ์˜ Y ์ขŒํ‘œ ์œ„์™€ ๋™์ผ
--center_z Z coordinate of the center ํƒ์ƒ‰ ๋ฐ•์Šค ์ค‘์‹ฌ์˜ Z ์ขŒํ‘œ ์œ„์™€ ๋™์ผ
--size_x size in the X dimension (ร…) ํƒ์ƒ‰ ๋ฐ•์Šค์˜ X์ถ• ํฌ๊ธฐ (ร…) ๊ฒฐํ•ฉ ํฌ์ผ“ ํฌ๊ธฐ๋ฅผ ์ˆ˜๋™์œผ๋กœ ์ง€์ •ํ•  ๋•Œ
--size_y size in the Y dimension (ร…) ํƒ์ƒ‰ ๋ฐ•์Šค์˜ Y์ถ• ํฌ๊ธฐ (ร…) ์œ„์™€ ๋™์ผ
--size_z size in the Z dimension (ร…) ํƒ์ƒ‰ ๋ฐ•์Šค์˜ Z์ถ• ํฌ๊ธฐ (ร…) ์œ„์™€ ๋™์ผ
--autobox_ligand file.sdf Ligand to use for autobox ๋ฆฌ๊ฐ„๋“œ ์ฃผ๋ณ€์œผ๋กœ ์ž๋™ ํƒ์ƒ‰ ๋ฐ•์Šค ์ƒ์„ฑ co-crystal ๋ฆฌ๊ฐ„๋“œ ๊ธฐ๋ฐ˜์œผ๋กœ box ์ž๋™ ์„ค์ •
--autobox_add N Amount of buffer space to add (default +4 ร…) ์ž๋™ ์ƒ์„ฑ๋œ ๋ฐ•์Šค์˜ ์—ฌ์œ  ๊ณต๊ฐ„ (๊ธฐ๋ณธ 4 ร…) ๋ฐ•์Šค๋ฅผ ์กฐ๊ธˆ ๋” ํฌ๊ฒŒ ์„ค์ •ํ•˜๊ณ  ์‹ถ์„ ๋•Œ
--autobox_extend (๊ธฐ๋ณธ=1) Expand autobox if ligand cannot rotate ๋ฆฌ๊ฐ„๋“œ๊ฐ€ ์ž์œ ๋กญ๊ฒŒ ํšŒ์ „ํ•  ์ˆ˜ ์žˆ๋„๋ก ๋ฐ•์Šค๋ฅผ ์ž๋™ ํ™•์žฅ ๊ธด ๋ฆฌ๊ฐ„๋“œ๋‚˜ ์œ ์—ฐํ•œ ๊ตฌ์กฐ์— ์œ ์šฉ
--no_lig no ligand; for sampling/minimizing flexible residues ๋ฆฌ๊ฐ„๋“œ ์—†์ด ์‹คํ–‰ (flexible residue ์ƒ˜ํ”Œ๋ง/์ตœ์†Œํ™” ์ „์šฉ) ๋ฆฌ๊ฐ„๋“œ ๋„ํ‚น ์—†์ด ์ˆ˜์šฉ์ฒด๋งŒ ๋‹ค๋ฃจ๊ณ  ์‹ถ์„ ๋•Œ

๐Ÿ“ Search Space ๊ฐœ๋…๋„

ํƒ์ƒ‰ ๋ฐ•์Šค(Search Box)๋Š” ๋ฆฌ๊ฐ„๋“œ๊ฐ€ ํƒ์ƒ‰๋˜๋Š” 3์ฐจ์› ๊ณต๊ฐ„์„ ์ •์˜ํ•ฉ๋‹ˆ๋‹ค.
๋ฐ•์Šค๋Š” ์ค‘์‹ฌ ์ขŒํ‘œ(center_x, center_y, center_z)์™€ ๊ฐ ๋ฐฉํ–ฅ ํฌ๊ธฐ(size_x, size_y, size_z)๋กœ ์„ค์ •๋ฉ๋‹ˆ๋‹ค.

       Z
       โ†‘
       โ”‚
       โ”‚      โ”Œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”
       โ”‚     /               /โ”‚
       โ”‚    /               / โ”‚
       โ”‚   /               /  โ”‚  size_y
       โ”‚  โ””โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”˜   โ”‚
       โ”‚  โ”‚               โ”‚   โ”‚
       โ”‚  โ”‚               โ”‚   โ”‚
       โ”‚  โ”‚               โ”‚   โ”‚
       โ”‚  โ””โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”˜โ”€โ”€โ”€โ”ผโ”€โ”€โ”€โ†’  X
      center (x,y,z)           โ”‚
                               
             size_x
  • center_x, center_y, center_z โ†’ ๋ฐ•์Šค ์ค‘์‹ฌ ์ขŒํ‘œ
  • size_x, size_y, size_z โ†’ ๋ฐ•์Šค์˜ ๊ฐ ์ถ• ํฌ๊ธฐ (ร… ๋‹จ์œ„)
Search space (required):
  --center_x arg                     X coordinate of the center
  --center_y arg                     Y coordinate of the center
  --center_z arg                     Z coordinate of the center
  --size_x arg                       size in the X dimension (Angstroms)
  --size_y arg                       size in the Y dimension (Angstroms)
  --size_z arg                       size in the Z dimension (Angstroms)
  --autobox_ligand arg               Ligand to use for autobox. A multi-ligand 
                                     file still only defines a single box.
  --autobox_add arg                  Amount of buffer space to add to 
                                     auto-generated box (default +4 on all six 
                                     sides)
  --autobox_extend arg (=1)          Expand the autobox if needed to ensure the
                                     input conformation of the ligand being 
                                     docked can freely rotate within the box.
  --no_lig                           no ligand; for sampling/minimizing 
                                     flexible residues

๐Ÿ”— Covalent Docking Options (๊ณต์œ ๊ฒฐํ•ฉ ๋„ํ‚น ์˜ต์…˜)

์˜ต์…˜ ์˜๋ฏธ (์›๋ฌธ) ํ•œ๊ตญ์–ด ์„ค๋ช… ์–ธ์ œ ์“ฐ๋ฉด ์ข‹์€๊ฐ€
--covalent_rec_atom arg Receptor atom ligand is covalently bound to. ์ง€์ •: chain:resnum:atom_name ๋˜๋Š” x,y,z ์ขŒํ‘œ ๊ณต์œ ๊ฒฐํ•ฉ์ด ํ˜•์„ฑ๋  ์ˆ˜์šฉ์ฒด์˜ ํŠน์ • ์›์ž ์ง€์ • (์˜ˆ: A:601:FE ๋˜๋Š” ์ขŒํ‘œ) ๊ธˆ์† ์ฐฉ๋ฌผ, ํŠน์ • ์•„๋ฏธ๋…ธ์‚ฐ ์ž”๊ธฐ ๋“ฑ covalent ๊ฒฐํ•ฉ ๋ชฉํ‘œ๊ฐ€ ๋ช…ํ™•ํ•  ๋•Œ
--covalent_lig_atom_pattern arg SMARTS expression for ligand atom ๋ฆฌ๊ฐ„๋“œ์—์„œ ๊ณต์œ ๊ฒฐํ•ฉ์„ ํ˜•์„ฑํ•  ์›์ž SMARTS ํŒจํ„ด (์˜ˆ: '[SH]', '[OH]', '[$(n1nccc1)]') ๊ฒฐํ•ฉํ•  ๋ฆฌ๊ฐ„๋“œ ์›์ž๋ฅผ ํŠน์ •ํ•˜๊ณ  ์‹ถ์„ ๋•Œ
--covalent_lig_atom_position x,y,z Initial placement of ligand atom (ร…). ๊ธฐ๋ณธ: OpenBabel ์ž๋™ ๋ฐฐ์น˜ ๊ณต์œ ๊ฒฐํ•ฉ ๋ฆฌ๊ฐ„๋“œ ์›์ž์˜ ์ดˆ๊ธฐ ์ขŒํ‘œ๋ฅผ ์ง์ ‘ ์ง€์ • ์ž๋™ ๋ฐฐ์น˜๊ฐ€ ๋งˆ์Œ์— ์•ˆ ๋“ค๊ณ , ๊ฒฐํ•ฉ ๊ฑฐ๋ฆฌยท๊ฐ์„ ์ˆ˜๋™์œผ๋กœ ์„ค์ •ํ•˜๊ณ  ์‹ถ์„ ๋•Œ
--covalent_fix_lig_atom_position Fix ligand atom at specified position --covalent_lig_atom_position์—์„œ ์ง€์ •ํ•œ ์ขŒํ‘œ๋ฅผ ์ดˆ๊ธฐ ๊ตฌ์กฐ๊ฐ€ ์•„๋‹ˆ๋ผ ๊ณ ์ • ์œ„์น˜๋กœ ์‚ฌ์šฉ ๋ฆฌ๊ฐ„๋“œ ์›์ž๋ฅผ ํŠน์ • ์ขŒํ‘œ์— ์™„์ „ํžˆ ๊ณ ์ •ํ•˜๊ณ  ์‹ถ์„ ๋•Œ
--covalent_bond_order N (๊ธฐ๋ณธ=1) Bond order of covalent bond ๊ณต์œ ๊ฒฐํ•ฉ์˜ ๊ฒฐํ•ฉ ์ฐจ์ˆ˜ ์„ค์ • (๋‹จ์ผ/์ด์ค‘/์‚ผ์ค‘๊ฒฐํ•ฉ) ๊ธˆ์† ๋ฐฐ์œ„๋‚˜ ํŠน์ˆ˜ํ•œ ๊ฒฐํ•ฉ์„ ์‹œ๋ฎฌ๋ ˆ์ด์…˜ํ•  ๋•Œ
--covalent_optimize_lig Optimize ligand-residue complex with UFF ๊ณต์œ ๊ฒฐํ•ฉ๋œ ๋ฆฌ๊ฐ„๋“œ/์ž”๊ธฐ ๋ณตํ•ฉ์ฒด๋ฅผ UFF force field๋กœ ์ตœ์ ํ™” โ†’ ๊ฒฐํ•ฉ ๊ฑฐ๋ฆฌยท๊ฐ ์กฐ์ • covalent docking ํ›„ ๊ตฌ์กฐ ์•ˆ์ •ํ™” ํ•„์š”ํ•  ๋•Œ

๐Ÿงช Common SMARTS Patterns for Covalent Docking (์ž์ฃผ ์“ฐ์ด๋Š” SMARTS ํŒจํ„ด)

SMARTS ํŒจํ„ด ์˜๋ฏธ (ํ•œ๊ตญ์–ด) ์˜ˆ์‹œ ์ƒํ™ฉ
[SH] ํ‹ฐ์˜ฌ(-SH) ๊ทธ๋ฃน์˜ ํ™ฉ ์›์ž ์‹œ์Šคํ…Œ์ธ ์ž”๊ธฐ์™€ ๊ณต์œ ๊ฒฐํ•ฉ ํ˜•์„ฑ (์˜ˆ: covalent inhibitor targeting Cys)
[OH] ํ•˜์ด๋“œ๋ก์‹ค(-OH) ๊ทธ๋ฃน์˜ ์‚ฐ์†Œ ์›์ž ์„ธ๋ฆฐ/ํŠธ๋ ˆ์˜ค๋‹Œ ์ž”๊ธฐ, ๊ธˆ์†-์‚ฐ์†Œ ๊ฒฐํ•ฉ
[NH2] ์•„๋ฏผ(-NHโ‚‚) ์งˆ์†Œ ์›์ž ๋ฆฌ์‹ (Lys) side chain๊ณผ ๊ณต์œ ๊ฒฐํ•ฉ
[nH0] ๋ฐฉํ–ฅ์กฑ ๊ณ ๋ฆฌ ์•ˆ์˜ ์งˆ์†Œ(์ˆ˜์†Œ ์—†์Œ) ํ”ผ๋ฆฌ๋”˜ N, ๊ธˆ์† ์ฐฉ๋ฌผ๊ณผ์˜ ๋ฐฐ์œ„ ๊ฒฐํ•ฉ
[$(n1nccc1)] ํ”ผ๋ผ์กธ(pyrazole) ๊ณ ๋ฆฌ ๋‚ด ์งˆ์†Œ ์ฒ (Fe) ๋“ฑ ๊ธˆ์†๊ณผ ๋ฐฐ์œ„ ๊ฒฐํ•ฉ
[C;H2] ์ˆ˜์†Œ 2๊ฐœ๋ฅผ ๊ฐ€์ง„ spยณ ํƒ„์†Œ (๋ฉ”ํ‹ธ๋ Œ) ๋“œ๋ฌผ์ง€๋งŒ ํŠน์ˆ˜ํ•œ ํƒ„์†Œ-๊ธˆ์† ๊ฒฐํ•ฉ ๋ชจ๋ธ๋ง
[Cl] ์—ผ์†Œ ์›์ž ๊ธˆ์†-ํ• ๋กœ๊ฒ ์ƒํ˜ธ์ž‘์šฉ ๋ชจ๋ธ๋ง
[Br] ๋ธŒ๋กœ๋ฏผ ์›์ž ์œ„์™€ ๋™์ผ
Covalent docking:
  --covalent_rec_atom arg            Receptor atom ligand is covalently bound 
                                     to.  Can be specified as 
                                     chain:resnum:atom_name or as x,y,z 
                                     Cartesian coordinates.
  --covalent_lig_atom_pattern arg    SMARTS expression for ligand atom that 
                                     will covalently bind protein.
  --covalent_lig_atom_position arg   Optional.  Initial placement of covalently
                                     bonding ligand atom in x,y,z Cartesian 
                                     coordinates.  If not specified, 
                                     OpenBabel's GetNewBondVector function will
                                     be used to position ligand.
  --covalent_fix_lig_atom_position   If covalent_lig_atom_position is 
                                     specified, fix the ligand atom to this 
                                     position as opposed to using this position
                                     to define the initial structure.
  --covalent_bond_order arg (=1)     Bond order of covalent bond. Default 1.
  --covalent_optimize_lig            Optimize the covalent complex of ligand 
                                     and residue using UFF. This will change 
                                     bond angles and lengths of the ligand.

โš–๏ธ Scoring & Minimization Options (์ ์ˆ˜ ํ•จ์ˆ˜ ๋ฐ ์ตœ์†Œํ™” ์˜ต์…˜)

์˜ต์…˜ ์˜๋ฏธ (์›๋ฌธ) ํ•œ๊ตญ์–ด ์„ค๋ช… ์–ธ์ œ ์“ฐ๋ฉด ์ข‹์€๊ฐ€
--scoring arg specify alternative built-in scoring function ๋‚ด์žฅ๋œ ๋‹ค๋ฅธ ์Šค์ฝ”์–ด๋ง ํ•จ์ˆ˜ ์ง€์ • (ad4_scoring, vina, vinardo, etc.) CNN๊ณผ ๋น„๊ตํ•˜๊ฑฐ๋‚˜ baseline ๊ณ„์‚ฐํ•  ๋•Œ
--custom_scoring file custom scoring function file ์‚ฌ์šฉ์ž ์ •์˜ ์Šค์ฝ”์–ด๋ง ํ•จ์ˆ˜ ํŒŒ์ผ ์ง€์ • ์ง์ ‘ ์ ์ˆ˜ ํ•จ์ˆ˜๋ฅผ ๊ฐœ๋ฐœํ–ˆ์„ ๋•Œ
--custom_atoms file custom atom type parameters file ์‚ฌ์šฉ์ž ์ •์˜ ์›์ž ํƒ€์ž… ํŒŒ๋ผ๋ฏธํ„ฐ ํŒŒ์ผ ์ง€์ • ์ƒˆ๋กœ์šด ์›์ž ํƒ€์ž…์„ ๋‹ค๋ฃฐ ๋•Œ
--score_only score provided ligand pose ์ฃผ์–ด์ง„ ๋ฆฌ๊ฐ„๋“œ ํฌ์ฆˆ ์ ์ˆ˜๋งŒ ๊ณ„์‚ฐ (๋„ํ‚น ์—†์Œ) co-crystal ๊ตฌ์กฐ ํ‰๊ฐ€
--local_only local search only using autobox ์˜คํ† ๋ฐ•์Šค๋ฅผ ๊ธฐ๋ฐ˜์œผ๋กœ ๊ตญ์†Œ ํƒ์ƒ‰๋งŒ ์ˆ˜ํ–‰ ๋น ๋ฅธ ํ…Œ์ŠคํŠธ, ๋ณดํ†ต --minimize ์ถ”์ฒœ
--minimize energy minimization ์—๋„ˆ์ง€ ์ตœ์†Œํ™” ์ˆ˜ํ–‰ ๋ฆฌ๊ฐ„๋“œ ํฌ์ฆˆ ์ •์ œ
--randomize_only generate random poses ๋ฌด์ž‘์œ„ ํฌ์ฆˆ ์ƒ์„ฑ (์ถฉ๋Œ ํ”ผํ•˜๋ ค ์‹œ๋„) ๋žœ๋ค ์ดˆ๊ธฐํ™” ์‹คํ—˜
--num_mc_steps N fixed number of MC steps per chain ๊ฐ ๋ชฌํ…Œ์นด๋ฅผ๋กœ ์ฒด์ธ์—์„œ ๊ณ ์ •๋œ ๋‹จ๊ณ„ ์ˆ˜ ์ƒ˜ํ”Œ๋ง ๊นŠ์ด ์ œ์–ด
--max_mc_steps N cap on number of MC steps MC ์ตœ๋Œ€ ๋‹จ๊ณ„ ์ œํ•œ ๊ณผ๋„ํ•œ ๊ณ„์‚ฐ ๋ฐฉ์ง€
--num_mc_saved N number of top poses saved ์ฒด์ธ๋ณ„ ์ƒ์œ„ ํฌ์ฆˆ ๊ฐœ์ˆ˜ ์ €์žฅ ๋‹ค์–‘ํ•œ ํฌ์ฆˆ ๋ณด์กด
--temperature T temperature for metropolis criterion Metropolis ๊ธฐ์ค€ ์˜จ๋„ ์ˆ˜์šฉ/๊ฑฐ๋ถ€ ํ™•๋ฅ  ์กฐ์ •
--minimize_iters N number of steepest descent iterations ์ตœ์†Œํ™” ๋ฐ˜๋ณต ํšŸ์ˆ˜ (๊ธฐ๋ณธ์€ rotors ์ˆ˜ ๊ธฐ๋ฐ˜) ๋” ์ •๋ฐ€ํ•œ ์ตœ์†Œํ™” ํ•„์š”ํ•  ๋•Œ
--accurate_line use accurate line search ๋” ์ •๋ฐ€ํ•œ ๋ผ์ธ ํƒ์ƒ‰ ์‚ฌ์šฉ ์ตœ์†Œํ™” ์ •ํ™•๋„โ†‘, ์†๋„โ†“
--simple_ascent use simple gradient ascent ๋‹จ์ˆœ ๊ทธ๋ž˜๋””์–ธํŠธ ์ƒ์Šน๋ฒ• ์‚ฌ์šฉ ์‹คํ—˜์  ์ตœ์ ํ™”
--minimize_early_term early stop minimization ์ˆ˜๋ ด ์ „ ์ตœ์†Œํ™” ์กฐ๊ธฐ ์ข…๋ฃŒ ๊ณ„์‚ฐ ์‹œ๊ฐ„ ์ ˆ์•ฝ
--minimize_single_full single full minimization ์ „์ฒด ์ตœ์†Œํ™” 1ํšŒ ์ˆ˜ํ–‰ (์‚ฌ์ „ ํ‰๊ฐ€ ์—†์ด) ์•ˆ์ •์  ์ตœ์†Œํ™” ์›ํ•  ๋•Œ
--approximation mode linear, spline, exact ๊ทผ์‚ฌํ™” ๋ฐฉ์‹ ์„ ํƒ ์†๋„ vs ์ •ํ™•๋„ ํŠธ๋ ˆ์ด๋“œ์˜คํ”„
--factor N approximation factor ๊ทผ์‚ฌํ™” ์ •๋ฐ€๋„ ์กฐ์ • (๋†’์„์ˆ˜๋ก ์„ธ๋ฐ€) ๋” ์ •ํ™•ํ•œ ํ‰๊ฐ€ ํ•„์š” ์‹œ
--force_cap N max allowed force ์ตœ๋Œ€ ํ—ˆ์šฉ ํž˜ ์„ค์ • (๋‚ฎ์œผ๋ฉด ๋ถ€๋“œ๋Ÿฌ์šด ์ตœ์†Œํ™”) clash ์™„ํ™”
--user_grid file Autodock map file for user grid ์‚ฌ์šฉ์ž ์ง€์ • ๊ทธ๋ฆฌ๋“œ ๋ฐ์ดํ„ฐ ์‚ฌ์šฉ ์™ธ๋ถ€ ๊ณ„์‚ฐ๊ฒฐ๊ณผ ํ™œ์šฉ
--user_grid_lambda N scale user_grid and functional scoring ์‚ฌ์šฉ์ž ๊ทธ๋ฆฌ๋“œ์™€ ํ•จ์ˆ˜ ์Šค์ฝ”์–ด์˜ ์Šค์ผ€์ผ๋ง scoring ํ˜ผํ•ฉ
--print_terms print all terms ๋ชจ๋“  ๊ฐ€๋Šฅํ•œ ํ•ญ๋ชฉ๊ณผ ๊ธฐ๋ณธ ํŒŒ๋ผ๋ฏธํ„ฐ ์ถœ๋ ฅ ๋””๋ฒ„๊น…, ํ•™์Šต์šฉ
--print_atom_types print all atom types ์‚ฌ์šฉ ๊ฐ€๋Šฅํ•œ ์›์ž ํƒ€์ž… ์ถœ๋ ฅ custom atom ์ •์˜ ์ „ ํ™•์ธ

โš–๏ธ Scoring & Minimization Options (์ ์ˆ˜ ํ•จ์ˆ˜ ๋ฐ ์ตœ์†Œํ™” ์˜ต์…˜) ์žฌ๋ถ„๋ฅ˜

๐Ÿ”น Scoring Functions (์ ์ˆ˜ ํ•จ์ˆ˜)

์˜ต์…˜ ํ•œ๊ตญ์–ด ์„ค๋ช… ์–ธ์ œ ์“ฐ๋ฉด ์ข‹์€๊ฐ€
--scoring arg ๋‚ด์žฅ ์Šค์ฝ”์–ด๋ง ํ•จ์ˆ˜ ์„ ํƒ (vina, vinardo, ad4_scoring ๋“ฑ) CNN๊ณผ ๋น„๊ตํ•˜๊ฑฐ๋‚˜ baseline ์ ์ˆ˜๊ฐ€ ํ•„์š”ํ•  ๋•Œ
--custom_scoring file ์‚ฌ์šฉ์ž ์ •์˜ ์Šค์ฝ”์–ด๋ง ํ•จ์ˆ˜ ํŒŒ์ผ ์ง€์ • ์ง์ ‘ ๋งŒ๋“  scoring ํ•จ์ˆ˜ ์ ์šฉ
--custom_atoms file ์‚ฌ์šฉ์ž ์ •์˜ ์›์ž ํƒ€์ž… ํŒŒ๋ผ๋ฏธํ„ฐ ํŒŒ์ผ ์ƒˆ๋กœ์šด ์›์ž ํƒ€์ž… ๋‹ค๋ฃฐ ๋•Œ
--score_only ์ฃผ์–ด์ง„ ๋ฆฌ๊ฐ„๋“œ ํฌ์ฆˆ ์ ์ˆ˜๋งŒ ๊ณ„์‚ฐ (๋„ํ‚น ์—†์Œ) co-crystal ๊ตฌ์กฐ ํ‰๊ฐ€
--print_terms ์‚ฌ์šฉ ๊ฐ€๋Šฅํ•œ scoring ํ•ญ๋ชฉ๊ณผ ๊ธฐ๋ณธ ํŒŒ๋ผ๋ฏธํ„ฐ ์ถœ๋ ฅ ๋””๋ฒ„๊น…, ํ•™์Šต์šฉ
--print_atom_types ์‚ฌ์šฉ ๊ฐ€๋Šฅํ•œ ์›์ž ํƒ€์ž… ์ถœ๋ ฅ custom atom ์ •์˜ ์ „ ํ™•์ธ

๐Ÿ”น Minimization (์ตœ์†Œํ™” ์˜ต์…˜)

์˜ต์…˜ ํ•œ๊ตญ์–ด ์„ค๋ช… ์–ธ์ œ ์“ฐ๋ฉด ์ข‹์€๊ฐ€
--minimize ๋ฆฌ๊ฐ„๋“œ ํฌ์ฆˆ ์—๋„ˆ์ง€ ์ตœ์†Œํ™” ๋„ํ‚น ํ›„ ํฌ์ฆˆ ์ •์ œ
--minimize_iters N steepest descent ๋ฐ˜๋ณต ํšŸ์ˆ˜ (๊ธฐ๋ณธ=rotors ์ˆ˜ ๊ธฐ๋ฐ˜) ๋” ์ •๋ฐ€ํ•œ ์ตœ์†Œํ™” ํ•„์š”ํ•  ๋•Œ
--accurate_line ๋” ์ •๋ฐ€ํ•œ ๋ผ์ธ ์„œ์น˜ ์‚ฌ์šฉ ์ตœ์†Œํ™” ์ •ํ™•๋„โ†‘, ์†๋„โ†“
--simple_ascent ๋‹จ์ˆœ gradient ascent ์‚ฌ์šฉ ์‹คํ—˜์  ์ตœ์ ํ™” ์‹œ๋„
--minimize_early_term ์ˆ˜๋ ด ์ „์— ์ตœ์†Œํ™” ์กฐ๊ธฐ ์ข…๋ฃŒ ๊ณ„์‚ฐ ์‹œ๊ฐ„ ์ ˆ์•ฝ
--minimize_single_full ์ „์ฒด ์ตœ์†Œํ™” 1ํšŒ ์ˆ˜ํ–‰ (์‚ฌ์ „ ํ‰๊ฐ€ ์—†์ด) ์•ˆ์ •์ ์ธ ์ตœ์†Œํ™” ์›ํ•  ๋•Œ
--force_cap N ์ตœ๋Œ€ ํ—ˆ์šฉ ํž˜ ์ œํ•œ (๋‚ฎ์œผ๋ฉด ๋ถ€๋“œ๋Ÿฝ๊ฒŒ) clash ์™„ํ™”
--approximation mode ๊ทผ์‚ฌํ™” ๋ฐฉ์‹ (linear, spline, exact) ์†๋„ vs ์ •ํ™•๋„ ์กฐ์ •
--factor N ๊ทผ์‚ฌํ™” ์ •๋ฐ€๋„ (๋†’์„์ˆ˜๋ก ์„ธ๋ฐ€) ๋” ์ •ํ™•ํ•œ ํ‰๊ฐ€ ํ•„์š” ์‹œ

๐Ÿ”น Monte Carlo Sampling (์ƒ˜ํ”Œ๋ง ์˜ต์…˜)

์˜ต์…˜ ํ•œ๊ตญ์–ด ์„ค๋ช… ์–ธ์ œ ์“ฐ๋ฉด ์ข‹์€๊ฐ€
--local_only ์˜คํ† ๋ฐ•์Šค๋ฅผ ๊ธฐ๋ฐ˜์œผ๋กœ ๊ตญ์†Œ ํƒ์ƒ‰๋งŒ ์ˆ˜ํ–‰ ๋น ๋ฅธ ํ…Œ์ŠคํŠธ (๋ณดํ†ต --minimize ๊ถŒ์žฅ)
--randomize_only ๋ฌด์ž‘์œ„ ํฌ์ฆˆ ์ƒ์„ฑ (์ถฉ๋Œ ํ”ผํ•˜๋ ค ์‹œ๋„) ๋žœ๋ค ์ดˆ๊ธฐํ™” ์‹คํ—˜
--num_mc_steps N ๊ฐ ์ฒด์ธ์—์„œ ๊ณ ์ •๋œ MC ๋‹จ๊ณ„ ์ˆ˜ ์ƒ˜ํ”Œ๋ง ๊นŠ์ด ์ œ์–ด
--max_mc_steps N MC ์ตœ๋Œ€ ๋‹จ๊ณ„ ์ œํ•œ ๊ณ„์‚ฐ๋Ÿ‰ ์ œํ•œ
--num_mc_saved N ์ฒด์ธ๋ณ„ ์ƒ์œ„ ํฌ์ฆˆ ์ €์žฅ ๊ฐœ์ˆ˜ ๋‹ค์–‘ํ•œ ํฌ์ฆˆ ํ™•๋ณด
--temperature T Metropolis ๊ธฐ์ค€ ์˜จ๋„ ํฌ์ฆˆ ์ˆ˜์šฉ/๊ฑฐ๋ถ€ ํ™•๋ฅ  ์ œ์–ด

๐Ÿ”น User Grid (์‚ฌ์šฉ์ž ์ •์˜ ๊ทธ๋ฆฌ๋“œ)

์˜ต์…˜ ํ•œ๊ตญ์–ด ์„ค๋ช… ์–ธ์ œ ์“ฐ๋ฉด ์ข‹์€๊ฐ€
--user_grid file AutoDock map ํŒŒ์ผ์„ ์ด์šฉํ•œ ์‚ฌ์šฉ์ž ๊ทธ๋ฆฌ๋“œ ๊ธฐ๋ฐ˜ ๊ณ„์‚ฐ ์™ธ๋ถ€ grid ๋ฐ์ดํ„ฐ ํ™œ์šฉ
--user_grid_lambda N ์‚ฌ์šฉ์ž ๊ทธ๋ฆฌ๋“œ์™€ scoring์˜ ์Šค์ผ€์ผ๋ง ์ธ์ž ํ˜ผํ•ฉ scoring ์‹คํ—˜
Scoring and minimization options:
  --scoring arg                      specify alternative built-in scoring 
                                     function: ad4_scoring default dkoes_fast 
                                     dkoes_scoring dkoes_scoring_old vina 
                                     vinardo
  --custom_scoring arg               custom scoring function file
  --custom_atoms arg                 custom atom type parameters file
  --score_only                       score provided ligand pose
  --local_only                       local search only using autobox (you 
                                     probably want to use --minimize)
  --minimize                         energy minimization
  --randomize_only                   generate random poses, attempting to avoid
                                     clashes
  --num_mc_steps arg                 fixed number of monte carlo steps to take 
                                     in each chain
  --max_mc_steps arg                 cap on number of monte carlo steps to take
                                     in each chain
  --num_mc_saved arg                 number of top poses saved in each monte 
                                     carlo chain
  --temperature arg                  temperature for metropolis accept 
                                     criterion
  --minimize_iters arg (=0)          number iterations of steepest descent; 
                                     default scales with rotors and usually 
                                     isn't sufficient for convergence
  --accurate_line                    use accurate line search
  --simple_ascent                    use simple gradient ascent
  --minimize_early_term              Stop minimization before convergence 
                                     conditions are fully met.
  --minimize_single_full             During docking perform a single full 
                                     minimization instead of a truncated 
                                     pre-evaluate followed by a full.
  --approximation arg                approximation (linear, spline, or exact) 
                                     to use
  --factor arg                       approximation factor: higher results in a 
                                     finer-grained approximation
  --force_cap arg                    max allowed force; lower values more 
                                     gently minimize clashing structures
  --user_grid arg                    Autodock map file for user grid data based
                                     calculations
  --user_grid_lambda arg (=-1)       Scales user_grid and functional scoring
  --print_terms                      Print all available terms with default 
                                     parameterizations
  --print_atom_types                 Print all available atom types

๐Ÿง  CNN Scoring Options (๋”ฅ๋Ÿฌ๋‹ ๊ธฐ๋ฐ˜ ์Šค์ฝ”์–ด๋ง ์˜ต์…˜)

๐Ÿ”น CNN Scoring Modes

์˜ต์…˜ ํ•œ๊ตญ์–ด ์„ค๋ช… ์–ธ์ œ ์“ฐ๋ฉด ์ข‹์€๊ฐ€
--cnn_scoring mode CNN ์ ์ˆ˜ ์ ์šฉ ๋‹จ๊ณ„ ์„ค์ •
- none: CNN ์‚ฌ์šฉ ์•ˆ ํ•จ
- rescore (๊ธฐ๋ณธ): ๋„ํ‚น ํ›„ CNN์œผ๋กœ ์žฌํ‰๊ฐ€
- refinement: refinement ๋‹จ๊ณ„์—์„œ CNN ์‚ฌ์šฉ (10๋ฐฐ ๋А๋ฆผ)
- metrorescore: metropolis + rescore
- metrorefine: metropolis + refine
- all: ๋ชจ๋“  ๋‹จ๊ณ„์—์„œ CNN ์‚ฌ์šฉ (1000๋ฐฐ ๋А๋ฆผ)
baseline ๋น„๊ต(none), ๋น ๋ฅธ ์Šคํฌ๋ฆฌ๋‹(rescore), ๊ณ ์ •๋ฐ€ ํฌ์ฆˆ(refinement), ์—ฐ๊ตฌ์šฉ(all)

๐Ÿ”น CNN Model Selection

์˜ต์…˜ ํ•œ๊ตญ์–ด ์„ค๋ช… ์–ธ์ œ ์“ฐ๋ฉด ์ข‹์€๊ฐ€
--cnn model ์‚ฌ์šฉํ•  ๋‚ด์žฅ CNN ๋ชจ๋ธ ์ง€์ •
(์˜ˆ: dense, general_default2018, crossdock_default2018, redock_default2018 ๋“ฑ)
PREFIX_ensemble ํ˜•์‹์œผ๋กœ ์—ฌ๋Ÿฌ ๋ชจ๋ธ ์•™์ƒ๋ธ” ๊ฐ€๋Šฅ
๋…ผ๋ฌธ ์žฌํ˜„, ํŠน์ • ๋ฐ์ดํ„ฐ์…‹ ๊ธฐ๋ฐ˜ ๋ชจ๋ธ ์„ ํƒ, ๋ชจ๋ธ ๋น„๊ต ์‹คํ—˜
--cnn_model file ์‚ฌ์šฉ์ž ์ •์˜ Torch CNN ๋ชจ๋ธ ํŒŒ์ผ ์ง€์ • ์ง์ ‘ ํ•™์Šตํ•œ CNN ๋ชจ๋ธ ์ ์šฉ

๐Ÿ”น CNN Evaluation Settings

์˜ต์…˜ ํ•œ๊ตญ์–ด ์„ค๋ช… ์–ธ์ œ ์“ฐ๋ฉด ์ข‹์€๊ฐ€
--cnn_rotation N ํฌ์ฆˆ๋ฅผ ์—ฌ๋Ÿฌ ํšŒ์ „(์ตœ๋Œ€ 24ํšŒ)์œผ๋กœ ํ‰๊ฐ€ ํฌ์ฆˆ orientation์— ๋ฏผ๊ฐํ•  ๋•Œ ์ •๋ฐ€ ํ‰๊ฐ€
--cnn_mix_emp_force CNN๊ณผ ๊ฒฝํ—˜์  force๋ฅผ ํ•ฉ์นจ ํ•˜์ด๋ธŒ๋ฆฌ๋“œ scoring
--cnn_mix_emp_energy CNN๊ณผ ๊ฒฝํ—˜์  energy๋ฅผ ํ•ฉ์นจ ํ•˜์ด๋ธŒ๋ฆฌ๋“œ scoring
--cnn_empirical_weight W ๊ฒฝํ—˜์  force/energy ๊ฐ€์ค‘์น˜ ์„ค์ • (๊ธฐ๋ณธ=1) CNN vs ๊ฒฝํ—˜์  ์Šค์ฝ”์–ด ๋น„์ค‘ ์กฐ์ ˆ

๐Ÿ”น CNN Search Space

์˜ต์…˜ ํ•œ๊ตญ์–ด ์„ค๋ช… ์–ธ์ œ ์“ฐ๋ฉด ์ข‹์€๊ฐ€
--cnn_center_x CNN ํ‰๊ฐ€ ์ค‘์‹ฌ X ์ขŒํ‘œ CNN์„ ํŠน์ • ์œ„์น˜์—์„œ๋งŒ ์ง‘์ค‘์ ์œผ๋กœ ํ‰๊ฐ€
--cnn_center_y CNN ํ‰๊ฐ€ ์ค‘์‹ฌ Y ์ขŒํ‘œ ์œ„์™€ ๋™์ผ
--cnn_center_z CNN ํ‰๊ฐ€ ์ค‘์‹ฌ Z ์ขŒํ‘œ ์œ„์™€ ๋™์ผ

๐Ÿ”น Debugging

์˜ต์…˜ ํ•œ๊ตญ์–ด ์„ค๋ช… ์–ธ์ œ ์“ฐ๋ฉด ์ข‹์€๊ฐ€
--cnn_verbose CNN ๋””๋ฒ„๊น…์šฉ ์ƒ์„ธ ์ถœ๋ ฅ ๋ชจ๋ธ ์„ฑ๋Šฅ ๋ถ„์„, ๋””๋ฒ„๊น… ํ•„์š”ํ•  ๋•Œ
Convolutional neural net (CNN) scoring:
  --cnn_scoring arg (=1)             Amount of CNN scoring: none, rescore 
                                     (default), refinement, metrorescore 
                                     (metropolis+rescore), metrorefine 
                                     (metropolis+refine), all
  --cnn arg                          built-in model to use, specify 
                                     PREFIX_ensemble to evaluate an ensemble of
                                     models starting with PREFIX: 
                                     all_default_to_default_1_3_1 
                                     all_default_to_default_1_3_2 
                                     all_default_to_default_1_3_3 
                                     crossdock_default2018 
                                     crossdock_default2018_1 
                                     crossdock_default2018_1_3 
                                     crossdock_default2018_1_3_1 
                                     crossdock_default2018_1_3_2 
                                     crossdock_default2018_1_3_3 
                                     crossdock_default2018_1_3_4 
                                     crossdock_default2018_2 
                                     crossdock_default2018_3 
                                     crossdock_default2018_4 
                                     crossdock_default2018_KD_1 
                                     crossdock_default2018_KD_2 
                                     crossdock_default2018_KD_3 
                                     crossdock_default2018_KD_4 
                                     crossdock_default2018_KD_5 default1.0 
                                     default2017 dense dense_1 dense_1_3 
                                     dense_1_3_1 dense_1_3_2 dense_1_3_3 
                                     dense_1_3_4 dense_1_3_PT_KD 
                                     dense_1_3_PT_KD_1 dense_1_3_PT_KD_2 
                                     dense_1_3_PT_KD_3 dense_1_3_PT_KD_4 
                                     dense_1_3_PT_KD_def2018 
                                     dense_1_3_PT_KD_def2018_1 
                                     dense_1_3_PT_KD_def2018_2 
                                     dense_1_3_PT_KD_def2018_3 
                                     dense_1_3_PT_KD_def2018_4 dense_2 dense_3 
                                     dense_4 fast general_default2018 
                                     general_default2018_1 
                                     general_default2018_2 
                                     general_default2018_3 
                                     general_default2018_4 
                                     general_default2018_KD_1 
                                     general_default2018_KD_2 
                                     general_default2018_KD_3 
                                     general_default2018_KD_4 
                                     general_default2018_KD_5 
                                     redock_default2018 redock_default2018_1 
                                     redock_default2018_1_3 
                                     redock_default2018_1_3_1 
                                     redock_default2018_1_3_2 
                                     redock_default2018_1_3_3 
                                     redock_default2018_1_3_4 
                                     redock_default2018_2 redock_default2018_3 
                                     redock_default2018_4 redock_default2018_KD
                                     _1 redock_default2018_KD_2 
                                     redock_default2018_KD_3 
                                     redock_default2018_KD_4 
                                     redock_default2018_KD_5
  --cnn_model arg                    torch cnn model file; if not specified a 
                                     default model ensemble will be used
  --cnn_rotation arg (=0)            evaluate multiple rotations of pose (max 
                                     24)
  --cnn_mix_emp_force                Merge CNN and empirical minus forces
  --cnn_mix_emp_energy               Merge CNN and empirical energy
  --cnn_empirical_weight arg (=1)    Weight for scaling and merging empirical 
                                     force and energy 
  --cnn_center_x arg                 X coordinate of the CNN center
  --cnn_center_y arg                 Y coordinate of the CNN center
  --cnn_center_z arg                 Z coordinate of the CNN center
  --cnn_verbose                      Enable verbose output for CNN debugging

๐Ÿ“ค Output Options (์ถœ๋ ฅ ๊ด€๋ จ ์˜ต์…˜)

์˜ต์…˜ ํ•œ๊ตญ์–ด ์„ค๋ช… ์–ธ์ œ ์“ฐ๋ฉด ์ข‹์€๊ฐ€
-o, --out file ์ถœ๋ ฅ ํŒŒ์ผ ์ด๋ฆ„ ์ง€์ • (ํŒŒ์ผ ํ™•์žฅ์ž์— ๋”ฐ๋ผ ํ˜•์‹ ๊ฒฐ์ •: SDF, PDBQT ๋“ฑ) ๊ธฐ๋ณธ ๋„ํ‚น ๊ฒฐ๊ณผ ์ €์žฅ
--out_flex file flexible residue ์ถœ๋ ฅ ํŒŒ์ผ ์ง€์ • flexible docking ์‹œ flexible residue ๊ฒฐ๊ณผ ๋”ฐ๋กœ ์ €์žฅ
--log file ๋กœ๊ทธ ํŒŒ์ผ ์ž‘์„ฑ ์‹คํ–‰ ๊ณผ์ • ๊ธฐ๋ก์ด ํ•„์š”ํ•  ๋•Œ
--atom_terms file ์›์ž๋ณ„ ์ƒํ˜ธ์ž‘์šฉ ๊ฐ’ ์ถœ๋ ฅ per-atom ์—๋„ˆ์ง€/์ƒํ˜ธ์ž‘์šฉ ๋ถ„์„
--atom_term_data per-atom ์ƒํ˜ธ์ž‘์šฉ ๋ฐ์ดํ„ฐ๋ฅผ ์ถœ๋ ฅ SDF์— ์ง์ ‘ ํฌํ•จ ๊ฒฐ๊ณผ ํŒŒ์ผ ์•ˆ์—์„œ ์ƒํ˜ธ์ž‘์šฉ ๊ฐ’ ํ™•์ธํ•˜๊ณ  ์‹ถ์„ ๋•Œ
--pose_sort_order mode ๊ฒฐ๊ณผ ํฌ์ฆˆ ์ •๋ ฌ ๊ธฐ์ค€ ์„ ํƒ
- CNNscore (๊ธฐ๋ณธ)
- CNNaffinity
- Energy
์›ํ•˜๋Š” ๊ธฐ์ค€์œผ๋กœ ๊ฒฐ๊ณผ ํฌ์ฆˆ ์ˆœ์œ„๋ฅผ ์ •๋ ฌ
--full_flex_output flexible residue ์ถœ๋ ฅ ์‹œ, ์ „์ฒด ๊ตฌ์กฐ๋ฅผ ์ €์žฅ (๊ธฐ๋ณธ์€ flexible residue๋งŒ ์ถœ๋ ฅ) ์ „์ฒด ์ˆ˜์šฉ์ฒด ๊ตฌ์กฐ๊นŒ์ง€ ํฌํ•จ๋œ ๊ฒฐ๊ณผ๊ฐ€ ํ•„์š”ํ•  ๋•Œ

๐Ÿ‘‰ ์š”์•ฝ:

๊ฒฐ๊ณผ ์ €์žฅ โ†’ -o, --out_flex, --log ์„ธ๋ถ€ ๋ถ„์„ โ†’ --atom_terms, --atom_term_data ๊ฒฐ๊ณผ ์ •๋ ฌ โ†’ --pose_sort_order ์ถœ๋ ฅ ๋ฒ”์œ„ โ†’ --full_flex_output

Output:
  -o [ --out ] arg                   output file name, format taken from file 
                                     extension
  --out_flex arg                     output file for flexible receptor residues
  --log arg                          optionally, write log file
  --atom_terms arg                   optionally write per-atom interaction term
                                     values
  --atom_term_data                   embedded per-atom interaction terms in 
                                     output sd data
  --pose_sort_order arg (=0)         How to sort docking results: CNNscore 
                                     (default), CNNaffinity, Energy
  --full_flex_output                 Output entire structure for out_flex, not 
                                     just flexible residues.

โš™๏ธ Misc Options (๊ธฐํƒ€ ์˜ต์…˜)

์˜ต์…˜ ํ•œ๊ตญ์–ด ์„ค๋ช… ์–ธ์ œ ์“ฐ๋ฉด ์ข‹์€๊ฐ€
--cpu N ์‚ฌ์šฉํ•  CPU ๊ฐœ์ˆ˜ ์ง€์ • (๊ธฐ๋ณธ: ์ž๋™ ๊ฐ์ง€, ์‹คํŒจ ์‹œ 1) CPU ์ž์› ์ œํ•œํ•˜๊ฑฐ๋‚˜ ๋ฉ€ํ‹ฐ์ฝ”์–ด ํ™œ์šฉํ•  ๋•Œ
--seed N ๋žœ๋ค ์‹œ๋“œ ๊ณ ์ • ์žฌํ˜„ ๊ฐ€๋Šฅํ•œ ๊ฒฐ๊ณผ ํ•„์š”ํ•  ๋•Œ
--exhaustiveness N (๊ธฐ๋ณธ=8) ์ „์—ญ ํƒ์ƒ‰ ์ฒ ์ €๋„ (์‹œ๊ฐ„์— ๋น„๋ก€) ์ •๋ฐ€ ํƒ์ƒ‰ ์‹œ ๊ฐ’โ†‘, ๋น ๋ฅธ ํƒ์ƒ‰ ์‹œ ๊ฐ’โ†“
--num_modes N (๊ธฐ๋ณธ=9) ์ƒ์„ฑํ•  ์ตœ๋Œ€ ๊ฒฐํ•ฉ ํฌ์ฆˆ ์ˆ˜ ๋‹ค์–‘ํ•œ ํฌ์ฆˆ ํ™•์ธํ•˜๊ณ  ์‹ถ์„ ๋•Œ
--min_rmsd_filter X (๊ธฐ๋ณธ=1 ร…) ์ตœ์ข… ํฌ์ฆˆ ์ค‘ RMSD๊ฐ€ X ร… ์ดํ•˜์ธ ์ค‘๋ณต ์ œ๊ฑฐ ๋น„์Šทํ•œ ํฌ์ฆˆ ์ค‘๋ณต ์ œ๊ฑฐ
-q, --quiet ์ถœ๋ ฅ ๋ฉ”์‹œ์ง€ ์ตœ์†Œํ™” ์Šคํฌ๋ฆฝํŠธ ์‹คํ–‰ ์‹œ ๋กœ๊ทธ ๊ฐ„์†Œํ™”
--addH ๋ฆฌ๊ฐ„๋“œ์— ์ž๋™์œผ๋กœ ์ˆ˜์†Œ ์ถ”๊ฐ€ (๊ธฐ๋ณธ ON) ์ž๋™ H ๋ณด์ •์ด ํ•„์š”ํ•  ๋•Œ
--stripH atom typing ํ›„ ๊ทน์„ฑ H ์ œ๊ฑฐ (๊ธฐ๋ณธ OFF, ๋น„๊ทน์„ฑ H๋Š” ํ•ญ์ƒ ์ œ๊ฑฐ) ๊ณ„์‚ฐ ํšจ์œจโ†‘, ๋ถˆํ•„์š”ํ•œ H ์ œ๊ฑฐ
--device N (๊ธฐ๋ณธ=0) ์‚ฌ์šฉํ•  GPU ์žฅ์น˜ ๋ฒˆํ˜ธ ์ง€์ • ๋ฉ€ํ‹ฐ GPU ํ™˜๊ฒฝ์—์„œ ํŠน์ • GPU ์„ ํƒ
--no_gpu GPU ๊ฐ€์† ๋น„ํ™œ์„ฑํ™” (๊ฐ•์ œ๋กœ CPU ์‹คํ–‰) GPU ์—†๋Š” ํ™˜๊ฒฝ, ๋””๋ฒ„๊น… ์‹œ
Misc (optional):
  --cpu arg                          the number of CPUs to use (the default is 
                                     to try to detect the number of CPUs or, 
                                     failing that, use 1)
  --seed arg                         explicit random seed
  --exhaustiveness arg (=8)          exhaustiveness of the global search 
                                     (roughly proportional to time)
  --num_modes arg (=9)               maximum number of binding modes to 
                                     generate
  --min_rmsd_filter arg (=1)         rmsd value used to filter final poses to 
                                     remove redundancy
  -q [ --quiet ]                     Suppress output messages
  --addH arg                         automatically add hydrogens in ligands (on
                                     by default)
  --stripH arg                       remove polar hydrogens from molecule 
                                     _after_ performing atom typing for 
                                     efficiency (off by default - nonpolar are 
                                     always removed)
  --device arg (=0)                  GPU device to use
  --no_gpu                           Disable GPU acceleration, even if 
                                     available.

๐Ÿ“ Configuration & Information Options

๐Ÿ”น Configuration

์˜ต์…˜ ํ•œ๊ตญ์–ด ์„ค๋ช… ์–ธ์ œ ์“ฐ๋ฉด ์ข‹์€๊ฐ€
--config file ์œ„์—์„œ ์„ค๋ช…ํ•œ ๋ชจ๋“  ์˜ต์…˜๋“ค์„ ์„ค์ • ํŒŒ์ผ์— ๋„ฃ์–ด์„œ ๋ถˆ๋Ÿฌ์˜ค๊ธฐ ๋งค๋ฒˆ ๊ธด ๋ช…๋ น์–ด ๋Œ€์‹  config ํŒŒ์ผ๋กœ ๊ด€๋ฆฌํ•˜๊ณ  ์‹ถ์„ ๋•Œ
Configuration file (optional):
  --config arg                       the above options can be put here

๐Ÿ”น Information

์˜ต์…˜ ํ•œ๊ตญ์–ด ์„ค๋ช… ์–ธ์ œ ์“ฐ๋ฉด ์ข‹์€๊ฐ€
--help ๊ธฐ๋ณธ ์‚ฌ์šฉ๋ฒ• ์š”์•ฝ ์ถœ๋ ฅ ๋ช…๋ น์–ด ์˜ต์…˜ ๋น ๋ฅด๊ฒŒ ํ™•์ธํ•  ๋•Œ
--help_hidden ์ˆจ๊ฒจ์ง„ ์˜ต์…˜๊นŒ์ง€ ํฌํ•จํ•œ ์ „์ฒด ์‚ฌ์šฉ๋ฒ• ์ถœ๋ ฅ advanced ์˜ต์…˜๊นŒ์ง€ ๋ณด๊ณ  ์‹ถ์„ ๋•Œ
--version ํ”„๋กœ๊ทธ๋žจ ๋ฒ„์ „ ํ‘œ์‹œ ์„ค์น˜๋œ gnina ๋ฒ„์ „ ํ™•์ธ
Information (optional):
  --help                             display usage summary
  --help_hidden                      display usage summary with hidden options
  --version                          display program version

CNN Scoring

๐Ÿง  CNN Scoring Options

--cnn_scoring determines at what points of the docking procedure that the CNN scoring function is used.
--cnn_scoring ์˜ต์…˜์€ ๋„ํ‚น ๊ณผ์ •์˜ ์–ด๋А ๋‹จ๊ณ„์—์„œ CNN ๊ธฐ๋ฐ˜ ์ ์ˆ˜ ํ•จ์ˆ˜๋ฅผ ์‚ฌ์šฉํ• ์ง€ ๊ฒฐ์ •ํ•ฉ๋‹ˆ๋‹ค.

๋ชจ๋“œ (Mode) ์„ค๋ช… (English) ์„ค๋ช… (ํ•œ๊ตญ์–ด) ๊ถŒ์žฅ ์‚ฌ์šฉ ์ƒํ™ฉ
none No CNNs used. Uses empirical scoring only. CNN์„ ์ „ํ˜€ ์‚ฌ์šฉํ•˜์ง€ ์•Š๊ณ , ๊ฒฝํ—˜์  ์Šค์ฝ”์–ด๋ง๋งŒ ์‚ฌ์šฉ. ์ „ํ†ต์  baseline ๋„ํ‚น, CNN ์˜ํ–ฅ ๋ฐฐ์ œํ•˜๊ณ  ์‹ถ์„ ๋•Œ
rescore (default) CNN used only to rerank final poses. Fastest option. ๋„ํ‚น ํ›„ ์ตœ์ข… ํฌ์ฆˆ๋งŒ CNN์œผ๋กœ ์žฌ์ •๋ ฌ. ๊ฐ€์žฅ ๋น ๋ฆ„. ๋Œ€๊ทœ๋ชจ ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ ๊ณ ์† ์Šคํฌ๋ฆฌ๋‹
refinement CNN used to refine poses after MC search and for final ranking. ~10x slower. Monte Carlo ํƒ์ƒ‰ ํ›„ ํฌ์ฆˆ refinement ๋ฐ ์ตœ์ข… ๋žญํ‚น์— CNN ์‚ฌ์šฉ. rescore๋ณด๋‹ค 10๋ฐฐ ๋А๋ฆผ. ์†Œ์ˆ˜์˜ ๋ฆฌ๊ฐ„๋“œ ์ •๋ฐ€ ๋„ํ‚น
all CNN used throughout docking. Extremely computationally expensive (~1000x slower). ๋„ํ‚น ์ „ ๊ณผ์ •์—์„œ CNN ์‚ฌ์šฉ. ๊ณ„์‚ฐ๋Ÿ‰ ๋งค์šฐ ๋งŽ์Œ. ์—ฐ๊ตฌ์šฉ/๋ฒค์น˜๋งˆํ‚น, ์ตœ๊ณ  ์ •๋ฐ€๋„ ํ•„์š”ํ•  ๋•Œ

๐Ÿ”น Default CNN Models

  • The default CNN scoring function is an ensemble of 3 models balancing accuracy and speed:

    • dense_1_3
    • dense_1_3_PT_KD_3
    • crossdock_default2018_KD_4
  • GNINA 1.0 default ensemble is also available as default1.0.

๊ธฐ๋ณธ CNN ์Šค์ฝ”์–ด๋ง ํ•จ์ˆ˜๋Š” 3๊ฐœ ๋ชจ๋ธ ์•™์ƒ๋ธ”๋กœ ๊ตฌ์„ฑ๋˜์–ด ์žˆ์œผ๋ฉฐ, ์ •ํ™•๋„์™€ ์†๋„์˜ ๊ท ํ˜•์„ ๊ณ ๋ คํ•˜์—ฌ ์„ ํƒ๋˜์—ˆ์Šต๋‹ˆ๋‹ค.

  • dense_1_3
  • dense_1_3_PT_KD_3
  • crossdock_default2018_KD_4

์˜ˆ์ „ GNINA 1.0์˜ ๊ธฐ๋ณธ ์•™์ƒ๋ธ”๋„ default1.0 ์ด๋ฆ„์œผ๋กœ ์—ฌ์ „ํžˆ ์‚ฌ์šฉ ๊ฐ€๋Šฅํ•ฉ๋‹ˆ๋‹ค.

Training

๐Ÿ‹๏ธ Training (๋ชจ๋ธ ํ•™์Šต)

GNINA supports training deep learning models for docking using PyTorch (modern) and Caffe (legacy).
GNINA๋Š” ๋„ํ‚น์„ ์œ„ํ•œ ๋”ฅ๋Ÿฌ๋‹ ๋ชจ๋ธ ํ•™์Šต์„ PyTorch(์ตœ์‹ ) ์™€ Caffe(๊ตฌ๋ฒ„์ „) ๊ธฐ๋ฐ˜์œผ๋กœ ์ง€์›ํ•ฉ๋‹ˆ๋‹ค.


๐Ÿ”น PyTorch Training

English ํ•œ๊ตญ์–ด
Scripts for PyTorch GNINA models and pretrained models are available at gnina-torch. PyTorch ๊ธฐ๋ฐ˜ GNINA ํ•™์Šต ์Šคํฌ๋ฆฝํŠธ์™€ ์‚ฌ์ „ ํ•™์Šต๋œ ๋ชจ๋ธ์€ gnina-torch์—์„œ ํ™•์ธํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.
Example code for converting a PyTorch model into a GNINA-usable model file is shown below. Metadata should specify grid resolution, dimension, and atom typing. Defaults are used if not provided. PyTorch ๋ชจ๋ธ์„ GNINA์—์„œ ์‚ฌ์šฉ ๊ฐ€๋Šฅํ•œ ๋ชจ๋ธ๋กœ ๋ณ€ํ™˜ํ•˜๋Š” ์˜ˆ์‹œ๋Š” ์•„๋ž˜ ์ฝ”๋“œ์™€ ๊ฐ™์Šต๋‹ˆ๋‹ค. metadata์—๋Š” ๊ทธ๋ฆฌ๋“œ ํ•ด์ƒ๋„, ์ฐจ์›, ์›์ž ํƒ€์ž… ์ •๋ณด๊ฐ€ ํฌํ•จ๋˜์–ด์•ผ ํ•˜๋ฉฐ, ์—†์„ ๊ฒฝ์šฐ ๊ธฐ๋ณธ๊ฐ’์ด ์‚ฌ์šฉ๋ฉ๋‹ˆ๋‹ค.

๐Ÿ”น Caffe Training (Legacy)

English ํ•œ๊ตญ์–ด
Legacy scripts for training Caffe models can be found at gnina/scripts. Caffe ๊ธฐ๋ฐ˜ ํ•™์Šต ์Šคํฌ๋ฆฝํŠธ(๊ตฌ๋ฒ„์ „)๋Š” gnina/scripts์—์„œ ํ™•์ธํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.
Sample pretrained Caffe models are available at gnina/models. ์˜ˆ์‹œ pretrained Caffe ๋ชจ๋ธ์€ gnina/models์—์„œ ๋‹ค์šด๋กœ๋“œํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.
โš ๏ธ Note: Caffe support is legacy and no longer actively developed. โš ๏ธ ์ฐธ๊ณ : Caffe ์ง€์›์€ ๊ตฌ๋ฒ„์ „์œผ๋กœ, ๋” ์ด์ƒ ํ™œ๋ฐœํžˆ ๊ฐœ๋ฐœ๋˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค.

๐Ÿ”น Datasets

English ํ•œ๊ตญ์–ด
The DUD-E docked poses used in the original GNINA paper can be found here. ์› ๋…ผ๋ฌธ์—์„œ ์‚ฌ์šฉ๋œ DUD-E docked poses๋Š” ์—ฌ๊ธฐ์—์„œ ๋ฐ›์„ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.
However, we do not recommend training virtual screening models on DUD-E due to dataset biases. ํ•˜์ง€๋งŒ ๋…ผ๋ฌธ์—์„œ ์–ธ๊ธ‰๋œ ๊ฒƒ์ฒ˜๋Ÿผ, DUD-E๋Š” ๋ฐ์ดํ„ฐ์…‹ ํŽธํ–ฅ ๋ฌธ์ œ ๋•Œ๋ฌธ์— virtual screening ํ•™์Šต์šฉ์œผ๋กœ ๊ถŒ์žฅ๋˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค.
The CrossDocked2020 dataset can be found here. CrossDocked2020 ๋ฐ์ดํ„ฐ์…‹์€ ์—ฌ๊ธฐ์—์„œ ๋ฐ›์„ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.
CrossDocked2020 is more suitable for GNINA training and benchmarking as it better reflects real docking scenarios. CrossDocked2020์€ ์‹ค์ œ ๋„ํ‚น ์‹œ๋‚˜๋ฆฌ์˜ค๋ฅผ ๋” ์ž˜ ๋ฐ˜์˜ํ•˜๊ธฐ ๋•Œ๋ฌธ์— GNINA ํ•™์Šต ๋ฐ ๋ฒค์น˜๋งˆํ‚น์— ๋” ์ ํ•ฉํ•ฉ๋‹ˆ๋‹ค.
import torch, json

# Metadata example
d = {
    'resolution': 0.5,
    'dimension' : 23.5,
    'recmap' : '''AliphaticCarbonXSHydrophobe ... Iron''',
    'ligmap': '''AliphaticCarbonXSHydrophobe ... Iron'''
}

extra = {'metadata': json.dumps(d)}

z = torch.zeros((1,28,48,48,48))  # dummy input grid

script = torch.jit.trace(model, z)
script.save('gnina_model.pt', _extra_files=extra)




License
=======

gnina is dual licensed under GPL and Apache.  The GPL license is necessitated by the use of OpenBabel (which is GPL licensed).  In order to use gnina under the Apache license only, all references to OpenBabel must be removed from the source code.

About

A deep learning framework for molecular docking

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages

  • C++ 93.1%
  • Cuda 2.3%
  • C 1.6%
  • CMake 1.3%
  • Python 1.0%
  • Jupyter Notebook 0.4%
  • Dockerfile 0.3%