Skip to main content

Python package for MD simulation analysis

Project description

KIF - Key Interactions Finder

A python package to identify the key molecular interactions that regulate any conformational change.

New in Version 0.4.0 - (30/05/2024)

Now KIF results can be projected onto a given 3D structure using ChimeraX. Previously only PyMOL was possible. Thanks to @darianyang for adding this functionality.

Check out the tutorial to see it in action:

In order to make use of this you'll need to update your install of KIF to at least 0.4.0 or greater:

pip install --upgrade KIF

Keep in mind that your trajectory(s) must be imaged before using KIF, to remove periodic effects.

KIF_ReadMe_Pic

In short, this package allows you to:

  • Identify important non-covalent interactions that are associated with any conformational change you are interested in (as long as you can describe the descriptor and sample the descriptor in your MD simulations). The non-covalent interactions are scored according to their association/importance to the conformational change and you can easily convert the per interaction/feature scores to per residue scores as well.
  • Generate PyMOL output scripts that enable you to visualise your results on 3D structures.
  • Generate per residue correlation and distance matrices that can be easily applied to the many graph theory methods available in order to study protein interaction networks and allostery within your system (no descriptor/target variable required for this).

Note that how you define the descriptor is up to you, and you can use either a continuous variable or a categorical variable (some tips on how to decide what to use will be given below).

More Detail Please! For a more complete description of KIF, please refer to our article. Included in the article is a description of some of the generic workflows possible alongside the application of KIF to several different biomolecular systems.

There are also tutorials available (discussed below).

The approximate workflow for this package is as follows:

  1. Run MD simulations on your system(s) of interest with whichever MD engine you want.
  2. (Both can be done simultaneously)
    1. Analyse the trajectory frames with KIF to determine all non-covalent interactions.* See tutorial 0 for how to do this.
    2. (Optional) Calculate the value of a target variable for each frame using whatever approach you see fit (tips provided below).
  3. Load your non-covalent interactions data and optionally generated target data into KIF and perform some combination of machine learning, statistical analysis or network analysis.
  4. Output the results for analysis. This includes visualisation scripts which are compatible with PyMOL so you can see the results on a 3D protein structure.

*The previous implementation of KIF used PyContact (note that this program is not made by us), to determine all the non-covalent interactions in your trajectory. You can still use this approach if desired, see the legacy tutorials section below.

Dependencies and Install

  • Python 3.7 or higher is required as this package uses dataclasses. We recommend python 3.10 as 3.7 is rather old.

Option 1: Install with pip

pip install KIF

Option 2: Clone/Download Repo first and then run setup.py :

cd KIF-main
python setup.py install

Note that in prior versions of KIF (less than 0.2.0) you would have needed to also install PyContact (see the repo for how to do this). This is no longer the case.

Choosing an Appropriate Target variable.

To perform either the machine learning or statistical analysis methods available in this package you will want to calculate a target variable to go alongside the features (non-covalent interactions identified by KIF). This target variable should as cleanly as possible describe your process of interest.

Below are some examples of what could work for you. Of course, this is use case specific so feel free to select what makes sense for your problem.

Enzyme catalysis - A per frame reacting atom distance for regression or define a max reacting atom distance cut-off to classify each frame as either "active" or "inactive".

Conformational Changes - Calculate the RMSD for each frame in your simulation to each conformational state. In this case of 2 different states, classify each frame as either "State 1", "State 2" or "neither" based on your RMSD metrics.

For example:

  • if RMSD to "State 1" <= 1.5 Å and an RMSD to "State 2" >= 1.5 Å --> assign frame as "State 1".
  • if RMSD to "State 1" => 1.5 Å and an RMSD to "State 2" <= 1.5 Å --> assign frame as "State 2".
  • else --> assign frame as "neither". You can also consider dropping the frames with state "neither" from your analysis to make the calculation cleaner (i.e., turn it into binary classification). This is the approach we took for the enzyme PTP1B, which you can find described in our manuscript.

Tutorials Available

All tutorials include the setup and post-processing steps used for each system. All tutorials used datasets we analyzed in our manuscript

  1. identify_contacts.py - Example script showing how you can use KIF to identify all the non-covalent interactions present in your MD simulations. This needs to be determined before using the rest of KIF.

  2. Tutorial_PTP1B_Classification_ML_Stats.ipynb Open in Colab - Perform binary classification ML and statistical analysis on simulations of PTP1B. Used to describe the differences in the closed and open WPD-loop states of PTP1B.

  3. Tutorial_KE07_Regression_ML_Stats.ipynb Open in Colab - Perform regression ML and statistical analysis on a kemp eliminase enzyme. Here the target value is the side chain dihedral of W50.

  4. network_analysis_tutorial Open in Colab - Preparation of PTP1B inputs required for graph theory based calculations. This tutorial is in its own folder, as two additional scripts are provided:

    • A .R script (which uses BIO3D) to perform WISP
    • A python script to generate PyMOL compatible figures depicting the results from the WISP calculation (The .R script will only generate VMD compatible ones.)
  5. Workup_PDZ_Bootstrapping.ipynb Open in Colab - Workup the bootstrapping calculations performed on the PDZ3 domain. As described in the notebook, the bootstrapping itself was computationally intensive to run so only the workup is included in this notebook. We have however included the scripts that we used to perform bootstrapping for both PTP1B and the PDZ3 domain on Zenodo

There are also several legacy tutorials which can be found here. These tutorials are almost identical to the equivalent ones found above, but instead use non-covalent interaction data identified with PyContact instead of KIF.

License and Disclaimer

This software is published under a GNU General Public License v2.0.

As the principal investigator behind this software is employed by Georgia Tech University we must also clarify: “The software is provided “as is.” Neither the Georgia Institute of Technology nor any of its units or its employees, nor the software developers of KIF or any other person affiliated with the creation, implementation, and upkeep of the software’s code base, knowledge base, and servers (collectively, the “Entities”) shall be held liable for your use of the platform or any data that you enter. The Entities do not warrant or make any representations of any kind or nature with respect to the System, and the Entities do not assume or have any responsibility or liability for any claims, damages, or losses resulting from your use of the platform. None of the Entities shall have any liability to you for use charges related to any device that you use to access the platform or use and receive the platform, including, without limitation, charges for Internet data packages and Personal Computers. THE ENTITIES DISCLAIM ALL WARRANTIES WITH REGARD TO THE SERVICE,INCLUDING WARRANTIES OF MERCHANTABILITY, NON-INFRINGEMENT, AND FITNESS FOR A PARTICULAR PURPOSE TO THE FULLEST EXTENT ALLOWED BY LAW.”

Citing this work

If you make use of this package please cite our manuscript:.

KIF – Key Interactions Finder: A Program to Identify the Key Molecular Interactions that Regulate Protein Conformational Changes

Authors: Rory M. Crean, Joanna S. G. Slusky, Peter M. Kasson and Shina Caroline Lynn Kamerlin

DOI: 10.1063/5.0140882

Issues/Questions/Contributions

All welcome. Please feel free to open an issue or submit a pull request as necessary. Feature requests are welcome too. You can also reach me at: rory.crean [at] kemi.uu.se

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

kif-0.4.2.tar.gz (56.1 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

kif-0.4.2-py3-none-any.whl (59.3 kB view details)

Uploaded Python 3

File details

Details for the file kif-0.4.2.tar.gz.

File metadata

  • Download URL: kif-0.4.2.tar.gz
  • Upload date:
  • Size: 56.1 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: uv/0.6.17

File hashes

Hashes for kif-0.4.2.tar.gz
Algorithm Hash digest
SHA256 f3c34d3c3f0bb9663d01d6bab10686c4c974a189272b114fd3f68cedd9503130
MD5 7a807bb622a2beb742ab6ea1104fff7b
BLAKE2b-256 27a0ead465d86ae357af60069b748292cc02c8a4e7209ece2b4623e3f7d52821

See more details on using hashes here.

File details

Details for the file kif-0.4.2-py3-none-any.whl.

File metadata

  • Download URL: kif-0.4.2-py3-none-any.whl
  • Upload date:
  • Size: 59.3 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: uv/0.6.17

File hashes

Hashes for kif-0.4.2-py3-none-any.whl
Algorithm Hash digest
SHA256 73b248a392aab8887d2d4bdd33fcf3d0739e45e1f203d1efafb03cd646c4a360
MD5 9fb311abf7765b96084124166ee34b9c
BLAKE2b-256 2262da9448fce607ed68d94932ed2bd6ddeea46deba609c572415dc9c84f5147

See more details on using hashes here.

Supported by

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