Skip to main content

Conserved water search is a tool for finding conserved water molecules from MD trajectories.

Project description

ConservedWaterSearch

https://readthedocs.org/projects/conservedwatersearch/badge/?version=latest https://badge.fury.io/py/conservedwatersearch.svg https://img.shields.io/conda/vn/conda-forge/conservedwatersearch.svg

The ConservedWaterSearch (CWS) Python library uses density based clustering approach to detect conserved waters from simulation trajectories. First, positions of water molecules are determined based on clustering of oxygen atoms belonging to water molecules(see figure below for more information). Positions on water molecules can be determined using Multi Stage Re-Clustering (MSRC) approach or Single Clustering (SC) approach (see for more information on clustering procedures).

https://raw.githubusercontent.com/JecaTosovic/ConservedWaterSearch/main/docs/source/figs/Scheme.png

Conserved water molecules can be classified into 3 distinct conserved water types based on their hydrogen orientation: Fully Conserved Waters (FCW), Half Conserved Waters (HCW) and Weakly Conserved Waters (WCW) - see figure below for examples and more information or see CWS docs.

https://raw.githubusercontent.com/JecaTosovic/ConservedWaterSearch/main/docs/source/figs/WaterTypes.png

Both, MSRC and SC can be used with either OPTICS (via sklearn) and HDBSCAN. MSRC approach using either of the two algorithms produces better quality results at the cost of computational time, while SC approach produces lowe quality results at a fraction of the computational cost.

Citation

See this article.

Installation

The easiest ways to install ConservedWaterSearch is to install it from conda-forge using conda:

conda install -c conda-forge ConservedWaterSearch

CWS can also be installed from PyPI (using pip). To install via pip use:

pip install ConservedWaterSearch

Optional visualization dependencies

nglview can be installed from PyPI (pip) or conda or when installing CWS through pip by using pip install ConservedWaterSearch[nglview]. PyMOL is the recomended visualization tool for CWS and can be installed only using conda or from source. PyMOL is not available via PyPI (pip), but can be installed from conda-forge. If PyMOL is already installed in your current python environment it can be used with CWS. If not, the free (open-source) version can be installed from conda-forge via conda (or mamba):

conda install -c conda-forge pymol-open-source

and paid (licensed version) from schrodinger channel (see here for more details) via conda (or mamba):

conda install -c conda-forge -c schrodinger pymol-bundle

Matplotlib is only required for analyzing of clustering and is useful if default values of clustering parameters need to be fine-tuned (which should be relatively rarely). You can install it from pip or conda or when installing CWS through pip by using pip install ConservedWaterSearch[matplotlib]. Both mpl and nglveiw can be installed when installing CWS by using:

pip install ConservedWaterSearch[all]

For more information see installation.

Example

The easiest way to use CWS is by calling WaterClustering class. The starting trajectory should be aligned first, and coordinates of water oxygen and hydrogens extracted. See WaterNetworkAnalysis for more information and convenience functions.

# imports
from ConservedWaterSearch.water_clustering import WaterClustering
from ConservedWaterSearch.utils import get_orientations_from_positions
# Number of snapshots
Nsnap = 20
# load some example - trajectory should be aligned prior to extraction of atom coordinates
Opos = np.loadtxt("tests/data/testdataO.dat")
Hpos = np.loadtxt("tests/data/testdataH.dat")
wc = WaterClustering(nsnaps=Nsnap)
wc.multi_stage_reclustering(*get_orientations_from_positions(Opos, Hpos))
print(wc.water_type)
# "aligned.pdb" should be the snapshot original trajectory was aligned to.
wc.visualise_pymol(aligned_protein = "aligned.pdb", output_file = "waters.pse")
https://raw.githubusercontent.com/JecaTosovic/ConservedWaterSearch/main/docs/source/figs/Results.png

Sometimes users might want to explicitly classify conserved water molecules. A simple python code can be used to classify waters into categories given an array of 3D oxygen coordinates and their related relative hydrogen orientations:

import ConservedWaterSearch.hydrogen_orientation as HO
# load some example
orientations = np.loadtxt("tests/data/conserved_sample_FCW.dat")
# Run classification
res = HO.hydrogen_orientation_analysis(
     orientations,
)
# print the water type
print(res[0][2])

For more information on preprocessing trajectory data, please refer to the WaterNetworkAnalysis.

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

ConservedWaterSearch-0.4.0.tar.gz (32.3 kB view details)

Uploaded Source

Built Distribution

ConservedWaterSearch-0.4.0-py3-none-any.whl (30.6 kB view details)

Uploaded Python 3

File details

Details for the file ConservedWaterSearch-0.4.0.tar.gz.

File metadata

  • Download URL: ConservedWaterSearch-0.4.0.tar.gz
  • Upload date:
  • Size: 32.3 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/5.0.0 CPython/3.9.19

File hashes

Hashes for ConservedWaterSearch-0.4.0.tar.gz
Algorithm Hash digest
SHA256 8ec66c449dab0c35f75be6bf381da00aff9f5ed5e3dc9ff30fe18c3af46d5182
MD5 8f9487bf044da584f8f6f383ac0e6fb4
BLAKE2b-256 fd947a24fdf56e80396fa10937526592e55d6d94963340afbbddf5ad1bd09f3e

See more details on using hashes here.

File details

Details for the file ConservedWaterSearch-0.4.0-py3-none-any.whl.

File metadata

File hashes

Hashes for ConservedWaterSearch-0.4.0-py3-none-any.whl
Algorithm Hash digest
SHA256 a0332e9ca8a58a150a64e4a4d2228938d4b015c2e9401021068cacc822450ad0
MD5 e74c47b09bdd095d8da91f781bee76f6
BLAKE2b-256 8bf9062c3341c5c48fae0b84b662d152151942be6f8554c87c15b8970512eefb

See more details on using hashes here.

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page