Warren L. DeLano wrote: >> 1) "get_area selection" command will return the effective surface area >> of the dots that you would see from "show dots, selection". This is a >> discrete approximation -- not an exact calculation. >> >> 2) you can use the "dot_solvent" setting to control whether you get >> solvent surface area or a molecular surface area. 1=solvent, >> 0=molecular >> >> 3) the accuracy of the measurement depends on the density of dots, which >> is controlled by the "dot_density" setting (1-4). >>.. >> This code has not been recently validated (though I did check it a >> couple years back), so I would suggest that people perform some kind of >> independent check on their system before trusting the results.
I had chance to compare several packages for the computation of accessible surface area. My impression is that PyMOL does give reasonably accurate results... Just for instance: for 1KQX:K40 (one more example of buried lysine in protein with almost inaccessible cavity) following code PyMOL>import pymol PyMOL>set dot_solvent, 1 PyMOL>set dot_density, 4 PyMOL> iterate resi 40, print(string.join([str(ID), name,resn,resi,str(cmd.get_area("id " + str(ID)))])) gives 315 N LYS 40 0.0 316 CA LYS 40 0.0 319 CB LYS 40 0.0 320 CG LYS 40 5.17457199097 321 CD LYS 40 0.0 322 CE LYS 40 2.47665882111 323 NZ LYS 40 6.23523902893 317 C LYS 40 0.0 318 O LYS 40 0.0 That is *qualitatively* similar to results, computed by libProteinGeometry (M. Gerstein Lab) 315 N LYS A 40 0.00 316 CA LYS A 40 0.00 317 C LYS A 40 0.00 318 O LYS A 40 0.00 319 CB LYS A 40 0.00 320 CG LYS A 40 2.01 321 CD LYS A 40 0.00 322 CE LYS A 40 2.53 323 NZ LYS A 40 2.20 or by GETAREA (W. Brown group) 315 N LYS 40 0.00 316 CA LYS 40 0.00 317 C LYS 40 0.00 318 O LYS 40 0.00 319 CB LYS 40 0.00 320 CG LYS 40 2.78 321 CD LYS 40 0.00 322 CE LYS 40 4.48 323 NZ LYS 40 3.69 and much more reasonable than M. Sanner MSMS results (with -probe_radius 1.4). In any case, PyMOL performance in this task was prohibitively low. It may be well explained, because, as I understood, get_area computation in PyMOL is rather "side-effect" of rendering-oriented algorithm. Perhaps, it would be great to decouple "calculation" functionality in PyMOL from "presentation" one. The natural way to do it - is to provide crosstalk between PyMOL and back-end computational kernel (somewhat similar to so appealing crosstalk with MMTK?) -igor