This is a read-only mirror of pymolwiki.org

Difference between revisions of "Get Area"

From PyMOL Wiki
Jump to navigation Jump to search
m (15 revisions)
 
m (1 revision)
 
(9 intermediate revisions by 4 users not shown)
Line 1: Line 1:
−
'''get_area''' calculates the surface area in square Angstroms of the selection given. Note that the accessibility is assessed in the context of the object(s) that the selection is part of. So, to get the surface areas of e.g. a component of a complex, you should make a new object containing a copy of just that component and calculate its area.
+
#REDIRECT [[Get area]]
−
 
 
−
The "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.
 
−
 
 
−
The following PyMOL settings control how '''get_area''' works:
 
−
 
 
−
'''[[dot_solvent]]'''
 
−
:: '''0''' = calculate '''molecular surface''' area
 
−
:: '''1''' = calculate '''solvent accessible surface''' area
 
−
 
 
−
'''[[dot_density]]'''
 
−
:: The accuracy of the measurement depends on the density of dots, which is controlled by the "dot_density" setting (1-4).
 
−
 
 
−
'''[[solvent_radius]]'''
 
−
:: The solvent radius is controlled by the "solvent_radius" setting (default 1.4).
 
−
 
−
For example:
 
−
<source lang="python">
 
−
PyMOL> load $TUT/1hpv.pdb
 
−
PyMOL> show dots, resn arg
 
−
PyMOL> get_area resn arg
 
−
cmd.get_area: 1147.956 Angstroms^2.
 
−
PyMOL>set dot_solvent, on
 
−
PyMOL>get_area resn arg
 
−
cmd.get_area: 673.084 Angstroms^2.
 
−
PyMOL>set dot_density, 3
 
−
PyMOL>get_area resn arg
 
−
cmd.get_area: 674.157 Angstroms^2.
 
−
PyMOL>set dot_density, 4
 
−
PyMOL>get_area resn arg
 
−
cmd.get_area: 672.056 Angstroms^2.
 
−
PyMOL>get_area all
 
−
cmd.get_area: 13837.804 Angstroms^2.
 
−
</source>
 
−
 
−
This code has not been recently validated though it was checked a couple years back. We suggest that people perform some kind of independent check on their system before trusting the results. 
 
−
 
 
−
===USAGE===
 
−
<source lang="python">
 
−
get_area sele [,state[, load_b ]]
 
−
</source>
 
−
 
 
−
===PYMOL API===
 
−
<source lang="python">
 
−
cmd.get_area(string selection="(all)", load_b=0, state=0 )
 
−
</source>
 
−
 
 
−
= Examples =
 
−
== Example 1 - starting with a complex in a single file ==
 
−
<source lang="python">
 
−
# load complex
 
−
# Haemoglobin in this example illustrates careful use of selection algebra
 
−
load 2HHB.pdb
 
−
 
 
−
# create objects for alpha1, beta1 and alpha1,beta1 pair of subunits
 
−
create alpha1, 2HHB and chain A
 
−
create beta1, 2HHB and chain B
 
−
create ab1, 2HHB and chain A+B
 
−
 
 
−
# get hydrogens onto everything (NOTE: must have valid valences on e.g. small organic molecules)
 
−
h_add
 
−
 
 
−
# make sure all atoms within an object occlude one another
 
−
flag ignore, none
 
−
 
 
−
# use solvent-accessible surface with high sampling density
 
−
set dot_solvent, 1
 
−
set dot_density, 3
 
−
 
 
−
# measure the components individually storing the results for later
 
−
alpha1_area=cmd.get_area("alpha1")
 
−
beta1_area=cmd.get_area("beta1")
 
−
 
 
−
 
 
−
# measure the alpha1,beta1 pair
 
−
ab1_area=cmd.get_area("ab1")
 
−
 
 
−
# now print results and do some maths to get the buried surface
 
−
print alpha1_area
 
−
print beta1_area
 
−
print ab1_area
 
−
print (alpha1_area + beta1_area) - ab1_area
 
−
</source>
 
−
 
 
−
== Example 2 - starting with two components in separate files ==
 
−
<source lang="python">
 
−
# load components separately
 
−
load my_ligand.pdb
 
−
load my_target.pdb
 
−
 
 
−
# get hydrogens onto everything (NOTE: must have valid valences on the ligand...)
 
−
h_add
 
−
 
 
−
# make sure all atoms within an object occlude one another
 
−
flag ignore, none
 
−
 
 
−
# use solvent-accessible surface with high sampling density
 
−
set dot_solvent, 1
 
−
set dot_density, 3
 
−
 
 
−
# measure the components individually
 
−
ligand_area=cmd.get_area("my_ligand")
 
−
target_area=cmd.get_area("my_target")
 
−
 
 
−
# create the complex
 
−
create my_complex, my_ligand my_target
 
−
 
 
−
# measure the complex
 
−
complex_area=cmd.get_area("my_complex")
 
−
 
 
−
# now print results
 
−
print ligand_area
 
−
print target_area
 
−
print complex_area
 
−
print (ligand_area + target_area) - complex_area
 
−
</source>
 
−
 
 
−
==Example 3 - using load_b to get surface area per atom ==
 
−
<source lang="python">
 
−
# example usage of load_b
 
−
# select some organic small molecule
 
−
select ligand, br. first organic
 
−
# get its area and load it into it's b-factor column
 
−
get_area ligand, load_b=1
 
−
# print out the b-factor/areas per atom
 
−
iterate ligand, print b
 
−
</source>
 
−
 
 
−
== See Also ==
 
−
* For an example of '''load_b''' in use check out [[FindSurfaceResidues]].
 
−
* [[Surface]], most notably [[Surface#Calculating_a_partial_surface]].
 
−
 
 
−
[[Category:Commands|Get Area]]
 
−
[[Category:Biochemical_Properties|Get Area]]
 

Latest revision as of 03:43, 6 December 2021

Redirect to: