This pipeline automatically places and expands fragments in a binding pocket of a given kinase structure – based on a user-defined subpocket path – to generate numerous possible kinase inhibitors. It allows the user to customize this process by e.g. setting the starting subpocket and the subpocket path for fragment growing and defining thresholds.
Note: This repository is currently a pre-release.
BioSolveIT's SeeSAR (3D desktop modeling platform to prepare the protein input files) and the following SeeSAR command-line tools need to be installed and attached with a valid license:
- FlexX - for docking
- HYDE - for scoring and optimization The SeeSAR command-line tools should be be preferable placed within the root directory of the project.
Create a conda environment containing all required packages:
conda env create -f environment.yml
# When using a MacBook with an M1 chip you may need:
CONDA_SUBDIR=osx-64 conda env create -f environment.yml
Activate the new environment:
conda activate kinfraglib_pocket_enum
Download and install KinFragLib
package:
git clone https://github.com/volkamerlab/KinFragLib.git
# now we can continue installing the package
pip install -e KinFragLib
Install the KinFragLib_PocketEnum
package itself (required to run the notebooks):
cd ..
# install package
pip install -e KinFragLib_PocketEnum
.flexx
and.hydescorer
binding pocket, and pharmacophore (i.e., subpocket) definition files need to be prepared and downloaded for evey subpocket using the SeeSAR GUI. These files All these files need to be placed in one directoy that is named only by the pdb ID of the structure (e.g.,5n1f
) and should be named according to the following scheme:<subpocket>.flexx
(<subpocket>.hydescorer
),<subpocket>
needs to be replaced with the subpocket of this file. E.g. the FlexX file for the AP subpocket needs to be stored asAP.flexx
. By default, the program will search for this directory within theconfig
directory, however, this can be changed wihtin thesettings.json
file. For an example see theconfig/5n1f
directory.- Create a JSON configuration file, such that the structure pdb id, the core subpocket, path of subpockets for fragment growing, the path to the fragment library, the path to the FlexX and HYDE executeable, and the path to the folder conatining folder (named with the PDB ID) with the
.flexx
and.hydescorer
files is defined. A template file is given inconfig/templates/settings.json
, where all required arguments are labeled with aTODO
(TODO
needs to be replaced by the argument) and all optional arguments are set by their deafult value.config/5n1f/settings.json
provides an example configuration file.
Note: We provide a script (pocket_definition/pocket_definition.py
) that determines the 85 KLIFS binding pocket and subpocket-specific anchor residues which might be handy if the kinase structure of interest is not listed in KLIFS.
python3 src/fragment_docking.py -s <JSON_settings_file> -r <path_to_results_folder>
Here, <JSON_settings_file>
should be replaced by the path to the JSON configuration file (e.g., conf/5n1f/settings.json
), and <path_to_results_folder>
by a path to a result folder, by default this will be set to results
.
For help run:
python3 src/fragment_docking.py -h
Note: The process can be tracked on https://wandb.ai/home: To enable this, just run the subpocket based docking porgram (as instructed) and follow the instruction (either select (1) to create an account or (2) to login if an account exists already) If this is not wanted choose the option (3)
All output files are located in a folder named with the PDB ID followed by the submitting date within the specified result directory (<path_to_results_folder> / <PDB ID>_<submit_date>
, e.g. results/5n1f_2024_01_31
):
program_statistics.json
: contains program statistics, such as the runtime, or quantities of the ligand generation processresults.sdf
: comprising the generated ligands (for each ligand only the docking conformation of the highest scoring pose is given)SPx.sdf
: comprising all docking conformations of the ligands that have been docking in thex
-th iteration