Difference between revisions of "CalcArea"

From PyMOLWiki
Jump to navigation Jump to search
(New page: =Overview= This code will calculate the area of a given selection. If you have a bunch of disparate selections, or one selection made up of various objects then you can use this to find t...)
 
 
Line 4: Line 4:
 
=The Code=
 
=The Code=
 
<source lang="python">
 
<source lang="python">
def calcArea(sel):
+
def calcArea(sel, ASA=0, density=3, quiet=1):
 
"""
 
"""
Calculate the area of an object or selection (as if it were one complete object).
+
DESCRIPTION
 +
 
 +
    Calculate the area of an object or selection (as if it were one complete object).
 +
 
 +
ARGUMENTS
 +
 
 +
    sel = string: atom selection
 +
 
 +
    ASA = 0/1: solvent excluded or solvent accessible surface area
 +
 
 +
    density = int: sampling quality {default: 3}
 
"""
 
"""
cmd.flag("ignore", "none")
 
cmd.set("dot_density", 3)
 
 
tName = "__temp__for__doArea__"
 
tName = "__temp__for__doArea__"
 
cmd.create(tName, sel)
 
cmd.create(tName, sel)
 +
cmd.flag("ignore", tName, "clear")
 +
cmd.set("dot_solvent", int(ASA), tName)
 +
cmd.set("dot_density", int(density), tName)
 
theArea = cmd.get_area(tName)
 
theArea = cmd.get_area(tName)
 
cmd.delete(tName)
 
cmd.delete(tName)
 +
if not int(quiet):
 +
print 'Area (solvent %s): %.3f Angstroms^2' % (['excluded',
 +
'accessible'][int(ASA)], theArea)
 
return theArea
 
return theArea
 +
 +
cmd.extend('calcArea', calcArea)
 
</source>
 
</source>
  

Latest revision as of 03:31, 9 June 2011

Overview

This code will calculate the area of a given selection. If you have a bunch of disparate selections, or one selection made up of various objects then you can use this to find the area.

The Code

def calcArea(sel, ASA=0, density=3, quiet=1):
	"""
DESCRIPTION

    Calculate the area of an object or selection (as if it were one complete object).

ARGUMENTS

    sel = string: atom selection

    ASA = 0/1: solvent excluded or solvent accessible surface area

    density = int: sampling quality {default: 3}
	"""
	tName = "__temp__for__doArea__"
	cmd.create(tName, sel)
	cmd.flag("ignore", tName, "clear")
	cmd.set("dot_solvent", int(ASA), tName)
	cmd.set("dot_density", int(density), tName)
	theArea = cmd.get_area(tName)
	cmd.delete(tName)
	if not int(quiet):
		print 'Area (solvent %s): %.3f Angstroms^2' % (['excluded',
			'accessible'][int(ASA)], theArea)
	return theArea

cmd.extend('calcArea', calcArea)

See Also