Skip to main content

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.

Animation GIF

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
Correlation plot of enthalpy Correlation plot of entropy

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.

Correlation plot of enthalpy

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)

Source distribution for hydration-site-prediction 0.1.3
File Size Uploaded
hydration_site_prediction-0.1.3.tar.gz 42.8 kB Details

Built distribution (wheel)

Table of built distributions (wheels) for hydration-site-prediction 0.1.3
File Interpreter ABI Platform
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

Release history Release notifications | RSS feed

This release

0.1.3 This release

2 release files

0.1.2

2 release files

0.1.1

2 release files

0.1.0

2 release files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page