.. mdciao documentation master file, created by
sphinx-quickstart on Fri Sep 6 11:54:24 2019.
You can adapt this file completely to your liking, but it should at least
contain the root `toctree` directive.
mdciao: Analysis of Molecular Dynamics Simulations Using Residue Neighborhoods
==============================================================================
|Pip Package| |Python Package| |MacOs Package| |Coverage| |DOI| |License|
.. figure:: imgs/banner.png
:scale: 33%
.. figure:: imgs/distro_and_violin.png
:scale: 25%
.. _my-reference-label:
.. figure:: imgs/interface.combined.png
:scale: 33%
``mdciao`` is a Python module that provides quick, "one-shot" command-line tools to analyze molecular simulation data using residue-residue distances. ``mdciao`` tries to automate as much as possible for non-experienced users while remaining highly customizable for advanced users, by exposing an API to construct your own analysis workflow.
Under the hood, the module `mdtraj `_ is doing most of the computation and handling of molecular information, using `BioPython `_ for sequence alignment, `pandas `_ for many table and IO related operations, and `matplotlib `_ for visualizaton. It tries to automatically use the consensus nomenclature for
* GPCRs, e.g. `Ballesteros-Weinstein-Numbering `_ or structure-based schemes by `Gloriam et al `_,
* G-proteins, via `Common G-alpha Numbering (CGN) `_, and
* Kinases, via their `85 pocket-residue numbering scheme `_.
by either using local files or on-the-fly lookups of the `GPCRdb `_
and/or ``_ and/or `KLIFS `_, respectively.
Basic Principle
---------------
``mdciao`` takes the files typically generated by a molecular dynamics (MD) simulation, i.e.
* topology files, like *prot.gro* or *prot.pdb*
* trajectory files, like *traj1.xtc*, *traj2.xtc*
and calculates the time-traces of residue-residue distances, and from there, **contact frequencies** and **distance distributions**.
.. note::
A note of caution regarding the above definitions for *contact* and *frequency*:
* the kinetic information is averaged out. Contacts quickly breaking and forming and contacts that break (or form) only once **will have the same frequency** as long as the **fraction of total time** they are formed is the same. For analysis taking kinetics into account, use. e.g. `pyemma `_.
* The sharp, "distance-only" cutoff can sometimes over- or under-represent some interaction types. Modules like `get_contacts `_ capture these interactions better, and have a ton of other features features.
* Frequencies are just **averages** over the input data. In some cases, *simply* computing averages is a bad idea. The user is `responsible for deciding over what data to average `_. For example, if your data is highly heterogenous you might want to `cluster `_ your data into into ``cluster1.xtc``, ``cluster.2.xtc`` etc and then do a per-cluster analysis with ``mdciao``
These issues (if/when they arise) can be spotted easily by looking at the time-traces and informed decisions can be made wrt to parameters like the cutt-off value, number of contacts displayed and many others.
.. |Pip Package| image::
https://badge.fury.io/py/mdciao.svg
:target: https://badge.fury.io/py/mdciao
.. |Python Package| image::
https://github.com/gph82/mdciao/actions/workflows/python-package.yml/badge.svg
:target: https://github.com/gph82/mdciao/actions/workflows/python-package.yml
.. |MacOs Package| image::
https://github.com/gph82/mdciao/actions/workflows/python-package.macos.yml/badge.svg
:target: https://github.com/gph82/mdciao/actions/workflows/python-package.macos.yml
.. |Coverage| image::
https://codecov.io/gh/gph82/mdciao/branch/master/graph/badge.svg
:target: https://codecov.io/gh/gph82/mdciao
.. |License| image::
https://img.shields.io/github/license/gph82/mdciao
.. |DOI| image::
https://zenodo.org/badge/DOI/10.5281/zenodo.5643177.svg
:target: https://doi.org/10.5281/zenodo.5643177
.. there's this issue about the self-referencing TOC that I cannot solve
.. https://github.com/sphinx-doc/sphinx/issues/4602
.. toctree::
:hidden:
installation
CLI Tutorial
API Jupyter Notebook Tutorial
notebooks/Covid-19-Spike-Protein-Example.ipynb
notebooks/Covid-19-Spike-Protein-Interface.ipynb
cli_cli/cli_cli
api/api
gallery