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.
get_area sele [,state[, load_b ]]
cmd.get_area(string selection="(all)", load_b=0, state=0 )
# 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
# 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