Closed Glucksistemi closed 1 year ago
Short answer: You need to set dot_solvent
.
cmd.set("dot_solvent")
pm_sasa = cmd.get_area()
From the help get_area
output:
Get the surface area of an selection. Depends on the "dot_solvent" setting. With "dot_solvent=off" (default) it calculates the solvent excluded surface area, else the surface accessible surface.
Closing since OP reacted positively to the last comment--assuming this fixes your issue.
Thanks, Thomas.
There is a script to test the situation described in header witch uses Pymol, Biopython and Biotite to get the same information:
The output is:
I tried it with several files, all containing a single chain without ligands and solvent (previously cleaned using
remove not polymer
), and always the result given py PyMol is greater than with other two ways to calculate. Commonly it is about two times higher, but I found no real dependency, for some structures difference is lower than two times.If there were smaller difference I would belive this is a question of accuracy or default settings, like in case of biopython vs biotite, but this difference I got has no excuse about accuracy.
Or I assume I can be wrong and result of get_area is not exaxtly SASA (solvent-accessible surface area), so please fix me and recommend a way to get exactly SASA value for a whole structure/selection using PyMol