ACCELERATED HYDRATION SITE LOCALIZATION AND THERMODYNAMIC PROFILING
This is the code supporting our work ''ACCELERATED HYDRATION SITE LOCALIZATION AND THERMODYNAMIC PROFILING''. We predict location, entropy and enthalpy of high occupancy hydration sites of proteins.
Data sets
The data for training and test can be downloaded here.
Installation
The conda environment can be created by running
conda env create -f environment.yml
For faster installation we recommend using mamba instead:
mamba env create -f environment.yml
Training
Location model
To train the model for hydration site location prediction, execute the command
python -m training.train
Training can be performed on multiple GPUs by changing the line cuda_ids: [0] in the config file config/location_model.yaml.
Thermodynamics model
A separate model was trained for predicting thermodynamic properties (i.e. enthalpy and entropy). To train this model, switch the config_name in
@hydra.main(config_path="../config/", config_name="location_model", version_base="1.1")
to thermo_model in the training script training/train.py.
The execute
python -m training.train
Evaluation and visualization
Location model
After training, the model performance can be evaluated:
python -m inference.evaluation.evaluate_after_clustering
Loading our pretrained model checkpoint, we obtain the following results:
| Cutoff (Angstrom) | Ground Truth Revory Rate | Prediction Hit Rate |
|---|---|---|
| 0.5 | 59.0% | 48.3% |
| 1.0 | 80.2% | 65.9% |
The ground truth recovery rate can be further investigated by differentiating based on occupancy:
| Cutoff (Angstrom) | [0.5,0.6] | [0.6,0.7] | [0.7,0.8] | [0.8,0.9] | [0.9,1.0] |
|---|---|---|---|---|---|
| 0.5 | 42.0% | 57.2% | 65.1% | 70.0% | 69.7% |
| 1.0 | 62.3% | 79.4% | 89.0% | 91.0% | 90.8% |
If we restrict ourselves to the first layer of hydration sites (distance from non-hydrogen atoms no further than $3.5$ Å), then we obtain the following resuluts:
| Cutoff (Angstrom) | Ground Truth Revory Rate |
|---|---|
| 0.5 | 62.5% |
| 1.0 | 84.5% |
| Cutoff (Angstrom) | [0.5,0.6] | [0.6,0.7] | [0.7,0.8] | [0.8,0.9] | [0.9,1.0] |
|---|---|---|---|---|---|
| 0.5 | 48.5% | 60.6% | 67.0% | 70.9% | 69.9% |
| 1.0 | 71.0% | 83.6% | 88.9% | 91.9% | 90.9% |
The second layer water hydration sites (distance from protein non-hydrogen atoms at least $3.5$ Å) are more challenging to predict, accordingly the results are substantially worse:
| Cutoff (Angstrom) | Ground Truth Revory Rate |
|---|---|
| 0.5 | 15.2% |
| 1.0 | 26.9% |
| Cutoff (Angstrom) | [0.5,0.6] | [0.6,0.7] | [0.7,0.8] | [0.8,0.9] | [0.9,1.0] |
|---|---|---|---|---|---|
| 0.5 | 11.4% | 17.6% | 22.8% | 29.6% | 38.7% |
| 1.0 | 20.8% | 30.6% | 39.8% | 50.7% | 63.5% |
Thermodynamics model
We evaluate the prediction peformance for enthalpy and entropy by investigating the correlation of the predictions with the simulated ground truth. Running the following command prints Pearson correlation and creates density plots:
python -m inference.visualization.thermodynamics.create_correlation_plots
The correlation between predictions and ground truth is given the following table:
| Predicted Variable | Pearson r Correlation with Ground Truth |
|---|---|
| Enthalpy | 0.8388 |
| Entropy | 0.8643 |
Desolvation free energies vs experimental binding affinities
For a protein-ligand binding, the ligand displaces the water molecules in the binding pocket. The desolvation free energy can be calculated as
$$ \Delta G = \sum_{i=1}^{n} [ \Delta H_{i} - T \Delta S_{i}], \quad \text{(1)} $$
for $i \in {1,...,n}$ displaced waters with corresponding entthalpy $H_{i}$ and entropy $S_{i}$.
We apply our model to predict the hydration sites within a protein binding pocket and calculate the Gibbs free energy $G$ by displacement (see (1)) for a range of different ligands. The results are plotted against experimental binding affinities. If our model is correct we should observe an affine linear relationship. To execute the corresponding code, first change in both config files config/location_model.yaml and config/thermo_model.yaml the data parameter to data: case_study.
Then execute the script
python -m inference.visualization.calculate_displaced_waters
The highest Pearson correlation of $0.931$ is found for a water dispacement tolerance distance of $2.4$ Å. Note that we ignored hydrogens (both for the hydration sites and and the protein) in our model, which justifies this cutoff.
Case studies
In order to predict water molecules with associated enthalpy and entropy, set both in config/location_model.yaml and config/thermo_model.yaml the data entry to the data set of interest:
- data: case_study.
Then run
python -m inference.evaluation.predict_waters.
The predicted location, entropy and enthalpy e.g. for the protein 1I06 will be saved at
images/case_study/1I06/enthalpy.pt
images/case_study/1I06/entropy.pt
images/case_study/1I06/location_prediction.pt
A pymol visualization is provided at
images/case_study/1I06/ protein_with_predictions.pse.
Metadata
Release files for hydration-site-prediction 0.1.3
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | |
|---|---|---|---|
| hydration_site_prediction-0.1.3.tar.gz | 42.8 kB | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| hydration_site_prediction-0.1.3-py3-none-any.whl | Python 3 | none | any | Details |
Total release size: 99.2 kB
Release files / hydration_site_prediction-0.1.3.tar.gz
| Download URL | hydration_site_prediction-0.1.3.tar.gz |
|---|---|
| Size | 42.8 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
dd2339a600c16776418881ee180558b1029d8dd46481f994e21e852829be0ad2
|
|
BLAKE2b-256 checksum How to use checksums |
ea595eaeceb9c7dd01263d53f9c3be7afc3010c76507aaabbd0e0d455c0b7b55
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/6.2.0 CPython/3.11.14
|
Release files / hydration_site_prediction-0.1.3-py3-none-any.whl
| Download URL | hydration_site_prediction-0.1.3-py3-none-any.whl |
|---|---|
| Size | 56.4 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
eab3ca61f7dac00e10a2d8df213130bacf2b885e2a207d6daca2bfc773bb466b
|
|
BLAKE2b-256 checksum How to use checksums |
c98097df388e05c549316023a2fe2d0047d79bd65bae1d8f4dd0183318982529
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/6.2.0 CPython/3.11.14
|