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.
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 .
.
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.
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")
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 |
--
🙃