Accelerated hydration site localization and thermodynamic profiling
Project description
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.
Project details
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file hydration_site_prediction-0.1.3.tar.gz.
File metadata
- Download URL: hydration_site_prediction-0.1.3.tar.gz
- Upload date:
- Size: 42.8 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.11.14
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
dd2339a600c16776418881ee180558b1029d8dd46481f994e21e852829be0ad2
|
|
| MD5 |
5b30fcb7b1249e7429c2b8cfc256f11c
|
|
| BLAKE2b-256 |
ea595eaeceb9c7dd01263d53f9c3be7afc3010c76507aaabbd0e0d455c0b7b55
|
File details
Details for the file hydration_site_prediction-0.1.3-py3-none-any.whl.
File metadata
- Download URL: hydration_site_prediction-0.1.3-py3-none-any.whl
- Upload date:
- Size: 56.4 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.11.14
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
eab3ca61f7dac00e10a2d8df213130bacf2b885e2a207d6daca2bfc773bb466b
|
|
| MD5 |
ae5344b16f6316f4194b6b9a3936141e
|
|
| BLAKE2b-256 |
c98097df388e05c549316023a2fe2d0047d79bd65bae1d8f4dd0183318982529
|