CalcArea

From PyMOLWiki
Jump to navigation Jump to search
The printable version is no longer supported and may have rendering errors. Please update your browser bookmarks and please use the default browser print function instead.

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