CalcArea: Difference between revisions

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...)
 
No edit summary
 
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