Essential Site Scanning Analysis

Copyright (c) 2020 Burak Kaynak, Pemra Doruker.

Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the “Software”), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:

The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.

THE SOFTWARE IS PROVIDED “AS IS”, WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.

class ESSA[source]

ESSA determines the essentiality score of each residue based on the extent to which it can alter the global dynamics ([KB20]). It can also rank potentially allosteric pockets by calculating their ESSA and local hydrophibic density z-scores using Fpocket algorithm ([LGV09]).

[KB20]Kaynak B.T., Bahar I., Doruker P., Essential site scanning analysis: A new approach for detecting sites that modulate the dispersion of protein global motions, Comput. Struct. Biotechnol. J. 2020 18:1577-1586.
[LGV09]Le Guilloux, V., Schmidtke P., Tuffery P., Fpocket: An open source platform for ligand pocket detection, BMC Bioinformatics 2009 10:168.

Instantiate an ESSA object.

getESSAEnsemble()[source]

Returns ESSA mode ensemble, comprised of ENMS calculated for each scanned/perturbed residue.

getESSAZscores()[source]

Returns ESSA z-scores.

getEigvals()[source]

Returns eigenvalues of the matched modes.

getEigvecs()[source]

Returns eigenvectors of the matched modes.

getLigandResidueCodes()[source]

Returns chain ids and residue numbers of the residues interacting with ligands.

getLigandResidueESSAZscores()[source]

Returns ESSA z-scores of the residues interacting with ligands as a dictionary. The keys of which are the corresponding chain ids and residue numbers of the ligands. Each value comprises the indices of the residue ESSA z-scores in the profile and the corresponding scores as separate arrays.

getLigandResidueIndices()[source]

Returns residue indices of the residues interacting with ligands.

getPocketFeatures()[source]

Returns pocket features as a Pandas dataframe.

getPocketRanks()[source]

Returns pocket ranks (allosteric potential).

getPocketZscores()[source]

Returns ESSA and local hydrophobic density (LHD) z-scores for pockets as a Pandas dataframe.

rankPockets()[source]

Ranks pockets in terms of their allosteric potential, based on their ESSA z-scores (max/median) with local hydrophobic density (LHD) screening.

saveESSAEnsemble()[source]

Saves ESSA mode ensemble, comprised of ENMS calculated for each scanned/perturbed residue.

saveESSAZscores()[source]

Saves ESSA z-scores to a binary file in Numpy .npy format.

saveEigvals()[source]

Saves eigenvalues of the matched modes in Numpy .npy format.

saveEigvecs()[source]

Saves eigenvectors of the matched modes in Numpy .npy format.

saveLigandResidueCodes()[source]

Saves chain ids and residue numbers of the residues interacting with ligands.

saveLigandResidueESSAZscores()[source]

Saves the dictionary of ESSA z-scores of the residues interacting with ligands to a pickle .pkl file. The keys of the dictionary are the corresponding chain ids and residue numbers of the ligands. Each value comprises the indices of the residue ESSA z-scores in the profile and the corresponding scores as separate arrays.

savePocketFeatures()[source]

Saves pocket features to a pickle .pkl file.

savePocketRanks()[source]

Saves pocket ranks to a binary file in Numpy .npy format.

savePocketZscores()[source]

Saves ESSA and local hydrophobic density (LHD) z-scores of pockets to a pickle .pkl file.

scanPockets()[source]

Generates ESSA z-scores for pockets and parses pocket features. It requires both Fpocket 3.0 and Pandas being installed in your system.

scanResidues(n_modes=10, enm='gnm', cutoff=None)[source]

Scans residues to generate ESSA z-scores.

Parameters:
  • n_modes (int) – Number of global modes.
  • enm (str) – Type of elastic network model, ‘gnm’ or ‘anm’, default is ‘gnm’.
  • cutoff (float) – Cutoff distance (A) for pairwise interactions, default is 10 A for GNM and 15 A for ANM.
setSystem(atoms, **kwargs)[source]

Sets atoms, ligands and a cutoff distance for protein-ligand interactions.

Parameters:
  • atomsatoms parsed by parsePDB
  • lig (str) – String of ligands’ chainIDs and resSeqs (resnum) separated by a whitespace, e.g., ‘A 300 B 301’. Default is None.
  • dist (float) – Atom-atom distance (A) to select the protein residues that are in contact with a ligand, default is 4.5 A.
  • lowmem (bool) – If True, a ModeEnsemble is not generated due to the lack of memory resources, and eigenvalue/eigenvectors are only stored, default it False.
showESSAProfile(q=0.75, rescode=False, sel=None)[source]

Shows ESSA profile.

Parameters:
  • q (float) – Quantile value to plot a baseline for z-scores, default is 0.75. If it is set to 0.0, then the baseline is not drawn.
  • rescode (bool) – If it is True, the ligand interacting residues with ESSA scores larger than the baseline are denoted by their single letter codes and chain ids on the profile. If quantile vaue is 0.0, then all ligand-interacting residues denoted by their codes.
  • sel (str) – It is a selection string, default is None. If it is provided, then selected residues are shown with their single letter codes and residue numbers on the profile. For example, ‘chain A and resnum 33 47’.
showPocketZscores()[source]

Plots maximum/median ESSA and local hydrophobic density (LHD) z-scores for pockets.

writeESSAZscoresToPDB()[source]

Writes a pdb file with ESSA z-scores placed in the B-factor column.

writePocketRanksToCSV()[source]

Writes pocket ranks to a .csv file.