/AlloViz

A Python package to interactively compute, analyze and visualize protein allosteric communication (residue interaction) networks and delta-networks.

Primary LanguagePython

AlloViz 🔭

A Python package to interactively compute, analyze and visualize protein allosteric communication (residue interaction) networks and delta-networks.

AlloViz binds together some newly written modules with 8 Python packages that provide different ways of calculating residue interactions: getcontacts, correlationplus, dynetan, PyInteraph2, pytraj, MD-TASK, gRINN (needs namd) and MDEntropy.

For the same topology and molecular dynamics (MD) trajectory, the network can be constructed based on residue contact frequency, correlation of atom movement or dihedrals, or interaction energies, depending on the package selected. Moreover, for example for movement correlation, the movement tracked can be that of the whole residue, its center of mass, its alpha-C or its beta-C; and it can be calculated as the Pearson's correlation coefficient, Mutual Information (MI) or Linear MI (LMI). See below.

The resulting network can be analyzed with edge centrality metrics algorithms provided by the Python package networkx, and they can be visualized in an interactive Python Notebook (i.e., Jupyter) using nglview.

Installation

It is recommended to use a virtual environment (Miniconda). This repository includes submodules that need to be appropriately cloned alongside the main repository using the --recursive flag. At present, virtual environment dependencies can only be correctly installed with conda.

git clone --recursive --shallow-submodules -j 9 https://github.com/frannerin/AlloViz
conda create AlloViz --file AlloViz/conda_explicit.txt
conda activate AlloViz

Then go to the package folder (cd AlloViz) and install the package, preferably with pip install ..

Quickstart

The package is designed for use in interactive notebooks. The main class to be used is Protein; Pair allows to bind two States for delta-network analysis.

for GPCRmd files

A Protein is simply defined with the GPCRmd dynamics ID number, with which files are automatically retrieved from the database. For example:

import AlloViz
activeMuOR = AlloViz.Protein(GPCR=169)

And then network computations, analyses and visualizations are performed with associated class methods. For example:

activeMuOR.calculate(pkg = "corrplusCOM")
activeMuOR.analyze(metrics = "btw", filterby="whole")
activeMuOR.view("corrplusCOM", "btw_avg", filterby="whole")

Available information sources for network generation

Residue information extracted from trajectories Package Correlation measurement Subset of atoms tracked Name in AlloViz
Movement correlation dynetan Mutual Information (MI) Whole residue Dynetan
Residue COM DynetanCOM
pytraj Pearson's alpha-C PytrajCA
beta-C PytrajCB
MD-TASK Pearson's alpha-C MDTASK
correlationplus Pearson's alpha-C Corrplus
Residue COM CorrplusCOM
LMI alpha-C CorrplusLMI
Residue COM CorrplusCOMLMI
Dihedral correlation Pearson's Individual backbone dihedrals (Phi, psi and omega) and their combination CorrplusDihs (Corrplus[Psi, Phi, Omega])
AlloViz MI Individual backbone dihedrals (Phi, psi and omega) and their combination AlloVizDihs (AlloViz[Psi, Phi, Omega])
MDEntropy MI Combination of the backbone dihedrals (Phi, psi and omega) MDEntropyDihs
Alpha angle (dihedral between i-1, i, i+1 and i+2's alpha-Cs) MDEntropyAlphaAngle
Contact frequency
Whole residue MDEntropyContacts
getcontacts - Whole residue Getcontacts
PyInteraph2 - Whole residue PyInteraph
Interaction energies Whole residue PyInteraphEne
gRINN - Whole residue GRINN
Pearson's Whole residue GRINNcorr

Cite

--

Licensing

🙃