Using in silico click chemistry to design novel dopamine D3 receptor ligands as blood-brain barrier permeants
This repository contains supplementary data files and code for reproduction of the analysis in the paper. Clone this repository and follow the instructions to perform the library preparation and docking.
The file supplemntary_figures.pdf
contains supplementary figures for the paper.
- RDKit v. 2020.09.1.0
- Open Babel v. 3.1.0
- AutoDock Vina v. 1.1.2
- iDock v. 2.2.3
- other required python packages can be view in ipynb notebooks
Note: it is advised to create a separate python3 environment to run the prject scripts.
azides.txt
, the library of azide molecules as SMILES stringsclick_compunds_dataset.csv
, the dataset of click reaction products constructed withclick_library_preparation.ipynb
vina_data.csv
, precomputed results of docking with AutoDock Vinaidock_data.csv
, precomputed results of docking with iDock
- Library preparation. In order to prepare library by running in silico click reaction follow the steps in
click_library_preparation.ipynb
. It will produceclick_compunds_dataset.csv
with molecules ids, SMILES, logBB values computed by Clark and Rishton equations. - D3R docking
2.1 The docking is performed inside the docking
dir. Note that this dir already contains the d3r.pdbqt receptor file prepared for docking as a rigid receptor with AutoDockTools4.
cd docking
2.2 First run docking for reference molecules (eticloprode and the scaffold). To do so, execute run_docking_for_reference.py
. The sccript will run Vina and iDock on the reference molecules and produce a folder reference
with epq
and scaffold
subdirs, containing the input pdbqt molecule files and output docking positions.
It is important to specify paths to your Vina and iDock executables inside the script (path_to_vina
and path_to_idock
variables). You can review specified Vina and iDock options inside the script. Edit --cpu
, if you wish to change the number of cpus per job (default 20). Note that --exhaustiveness
is set high to ensure thorough search, however it considerably increases the run time. --num_modes
is set to 1 to pick the best binding position only. Note that the output parsing inside the script accounts for only one output mode. This notes are applicable for run_vina.py
and run_idock.py
too.
By default the docking is performed for 3 conformations of each molecule generated by Open Babel. This can be tuned inside the script in n_conf
variable. The docking affinities for each conformation will be printed in terminal log during the execution:
python run_docking_for_reference.py
2.3 In order to prepare pdbqt 1,2,3-triazole ligands for docking execute run_obabel.py
. The script will subset necessary compounds from data/click_compunds_dataset.csv
and create the molecules
dir with mol2
and pdbqt
subdirs containing prepared conformations for 3062 compunds with logBB Rishton > 0.3:
python run_obabel.py
2.4 Vina run is initiated by run_vina.py
. Don't forget to specify path to your Vina executable inside the script. You can review the Vina input options inside the script. The script will produce the vina_data.csv
(precomputed available in data
folder) with following columns: id (molecule id), isomer (either 14 or 15), conf_id (1 to 3 by default), affinity (kcal/mol). Docking positions will be stored in docking_vina_results
dir, containing pdbqt
and pdb
subdirs with respective output file formats:
python run_vina.py
2.5 iDock run is initiated by run_idock.py
. Don't forget to specify path to your iDock executable inside the script. It works quite same as run_vina.py
. The script yields the idock_data.csv
(precomputed available in data
folder) with following columns: id (molecule id), isomer (either 14 or 15), conf_id (1 to 3 by default), idock_score (aka affinity in kcal/mol) and rf_score (pKd). Docking positions will be stored in new docking_idock_results
dir:
python run_idock.py
- Analysis of docking scores. Follow the
analyze_docking_results.ipynb
in order to aggregate and plot the docking output fromvina_data.csv
andidock_data.csv