Changing parameters (especially the # of residues per site) in the scheme for identifying surface-critical residues

Q:

I would like to ask for advice on your recently published STRESS tool. I would like to use it to identify residues that might be involved in allostery, however in the case of surface critical residues, it currently reports only up to ten residues per binding pocket. Is there a way to "hack" the identify_high_confidence_BL_sites.py script (which writes this file) to write all such residues, according to some probability cutoff? (I’m a Perl programmer, with relatively limited python experience.) Thank you in advance.

A:
In order to change the number of residues reported for each site, you may download and modify 2 of the C scripts (available on the stress github page)

For example, to modify the scripts such that the new limit is set to 15 residues (you can change this cutoff number to be any arbitrary value that you wish), do the following:

1) In the script bindingSiteMeasures.c, replace instances of "10" with "15" in lines 77, 79, 217, 219, 240, 242.

2) In the script surfaceProbe.c, I replace instances of "10" with "15" in lines 1227, 1229, 1235, 1237.

3) Recompile the source code and re-run the calculations.

However, with respect to the parameters in general, we should note that the parameters of the surface-site identification scheme were established using a known set of allosteric residues. That is, our parameters were established empirically to best capture known allosteric sites. The details of all this can be found in the Supplementary Materials of the paper, specifically in the Supp section 3.1-a-iii "Defining & Applying Thresholds to Select High-Confidence Surface-Critical Sites". Thus, we would advise against changing them, since again, they were empirically optimized.

Batch submissions to the STRESS server

Q:
I have a large number of structures that I would like to submit to the STRESS server. Does the server offer an option for batch submissions?

A:
The STRESS server itself does not currently provide an option for batch submissions. However, we encourage users to try implementing such jobs by running the source code available on our GitHub page. This may be accessed through github.com/gersteinlab/STRESS

Dealing w/system boundaries in Voronoi calculations & assigning radii to pseudo-water

Q:
I’m analyzing protein structures (specifically, I’m performing a Voronoi-based analysis) using the tools linked on the geometry page:

http://geometry.molmovdb.org/NucProt/

I understand that the bisection of distances between atoms means that the radius does not matter. However, what happens at the boundary of the system?

Also, if you add ‘pseudo-water’ to the system, then do the water atoms need to have a particular radius? If not, then is there a distance cutoff?

A:
With respect to your first question (regarding the boundary of the system — ie the protein surface): the Voronoi volumes become large and potentially infinite. That’s why you need to introduce solvent. A course lecture may help to further explain this nicely:
http://www.gersteinlab.org/courses/452/09-spring/pdf/structure2.pdf

With respect to your second question (regarding the radius assigned to water): Yes, the water atoms most definitely need to have a particular radius. Distance cutoffs won’t work. You can probably use the normal water radius here.

Change in contact areas as the radii grow larger (but remain in proportion)

Q:

I’m analyzing protein structures (specifically, I’m performing a Voronoi-based analysis) using the tools linked on the geometry page:

http://geometry.molmovdb.org/NucProt/

Is there any work you know off showing how the contact areas change as the radii grow larger but in proportion? … I managed to read in any file definition of atom radii but this has no effect on the area of polygon faces. I also tried to multiply the atom_vdw[ii] but this too had no effect. The main routine I use is "full-dump-polyhedra.main.c".

A:
I think there’s an easy answer. See the DumpAFace routine in the code linked here:

http://geometry.molmovdb.org/files/libproteingeometry/src-prog/full-dump-polyhedra.c

This prints out :
"– Face between atom %3d and neighbour %3d"
& then
"Face-Area= %9.4f Pyramid-Volume=%9.4f\n",area,FaceVolume

If you vary the radii used to parameterize the program, you can see how the contact area changes, perhaps by tabulating the value of the area variable. The effect is, as you guess, rather small but is related to the way optimal radii sets were selected in the past.

With respect to the second part of the question, ie:
I also managed to read in any file definition of atom radii but this
has no effect on the area of polygon faces.
I also tried to multiple the atom_vdw[ii] but this too had no effect.
The main routine I use is "full-dump-polyhedra.main.c".

There’s a number of reasons why this is happening.

(1) You only have one atom type (ie just CA).

In this case, radii are irrelevant and you’re effectively just using bisection. The radii are only relevant when two atoms of different types come into contact, and one has to apportion the space between them.

(2) You have differently typed atoms, but you’re using the normal Voronoi bisection method and not the alternate plane positioning methods using radii.

You need to tell the program explicitly not to use the normal bisection approach via the "-method" argument. See the documentation for calc-volume in the readme file linked here:

http://geometry.molmovdb.org/files/libproteingeometry/src-prog/README

I think this argument works properly for full-dump-polyhedra:

http://geometry.molmovdb.org/files/libproteingeometry/src-prog/full-dump-polyhedra.main.c

See the code for the main() routine to see it being invoked.

(3) You have differently typed atoms & are specifying a non-bisection plane positioning method, but you’re not reading the radii properly.

Here you can verify the atoms are correctly typed by using the show-2rad-refV program, viz:

http://geometry.molmovdb.org/files/libproteingeometry/src-prog/show-2rad-refV.main.c

Re-parameterizing radii when performing Voronoi-based analysis on structures with only the alpha carbon atoms

Q:

I’m analyzing protein structures (specifically, I’m performing a Voronoi-based analysis) using the tools linked on the geometry page:

http://geometry.molmovdb.org/NucProt/

I’m hoping to run the calculations using just the CA atoms, and so I must change the radii accordingly. Where should I start in terms of figuring out the new radii that should be used?

A:
The most recent re-parameterization of the radii is from Neil Voss’s work about ten years ago. See

http://papers.gersteinlab.org/papers/nucprot/

The logic in this paper could be easily extended to derive a set of CA radii.

Voronoi-based analyses of very large structures using tools in NucProt

Q:

I’m analyzing protein structures (specifically, I’m performing a Voronoi-based analysis) using the tools linked on the geometry page:

http://geometry.molmovdb.org/NucProt/

I’m using this on huge systems with more than 99,999 atoms. Is this possible?

A:
I don’t think there’s any hard coded limitation in the number of atoms. Look at the read_pdb_file routine this source script:

http://geometry.molmovdb.org/files/libproteingeometry/src-lib/readpdb.c

This "mallocs" up space on demand so in theory if you have enough memory I think you can accommodate >100K atoms. However, the PDB format itself is an issue here. You can modify the PDB reading routines to a different format. Just modify the read_record routine in the same file. However, I don’t know if doing this in multiple "models" will work.

Distinction Between Surface- and Interior-Critical Residues

Q:
What is the main difference between surface- and interior-critical residues?

A:
Allosteric surface residues play regulatory roles that are fundamentally distinct from those of allosteric residues within the interior. While surface residues may often constitute the sources or sinks of allosteric signals, interior residues act to transmit such signals. Thus, different approaches are needed for identifying these two classes of residues. Surface-critical residues are identified by finding pockets such that the occlusion of such pockets is likely to interfere with large-scale protein motions (see Documentation for details; see also Ming and Wall, 2005; Mitternacht and Berezovsky, 2011). Interior-critical residues are identified by finding information-flow bottlenecks within the protein structure (see Documentation and main paper for details; see also del Sol et al, 2006; Ghosh et al, 2008; Rousseau et al, 2005).

del Sol, A., Fujihashi, H., Amoros, D., and Nussinov, R. (2006). Residues crucial for maintaining short paths in network communication mediate signaling in proteins. Mol. Syst. Biol. 2(1).

Ghosh, A., and Vishveshwara, S. (2008). Variations in Clique and Community Patterns in Protein Structures during Allosteric Communication: Investigation of Dynamically Equilibrated Structures of Methionyl tRNA Synthetase Complexes. Biochemistry. 47, 11398-11407.

Ming, Dengming, and Michael E. Wall. “Quantifying allosteric effects in proteins.” Proteins: Structure, Function, and Bioinformatics 59.4 (2005): 697-707.

Mitternacht, S. and Berezovsky, I.N. (2011). Binding leverage as a molecular basis for allosteric regulation. PLoS Comput. Biol. 7, e1002148.

Rousseau, F. and Schymkowitz, J. (2005). A systems biology perspective on protein structural dynamics and signal transduction. Curr. Opin. Struct. Biol. 15, 23–30.