Skip to content

Instantly share code, notes, and snippets.

@aschreyer
Created August 22, 2011 12:20
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save aschreyer/1162251 to your computer and use it in GitHub Desktop.
Save aschreyer/1162251 to your computer and use it in GitHub Desktop.
Binding site atom surface area contributions
from credoscript import *
# FETCH PDB ENTRY 3CS9
s = StructureAdaptor().fetch_by_pdb('3cs9')
s.title
>>> 'Human ABL kinase in complex with nilotinib'
# 3CS9 CONTAINS 4 BIOLOGICAL ASSEMBLIES
s.Biomolecules
>>> {1: <Biomolecule(1)>,
>>> 2: <Biomolecule(2)>,
>>> 3: <Biomolecule(3)>,
>>> 4: <Biomolecule(4)>}
# TAKE THE FIRST
b = s[1]
# LIGANDS OF THE FIRST BIOMOLECULE: NILOTINIB
b.Ligands
>>> [<Ligand(A 600 NIL)>]
l = b.Ligands[0]
# GET SOLVENT-ACCESSIBLE SURFACE AREA OF THE LIGAND IN THE APO STATE
l.get_buried_surface_area(projection='ligand', state='apo')
>>> 783.458
# BOUND STATE
l.get_buried_surface_area(projection='ligand', state='bound')
>>> 58.2652
# DELTA: HOW MUCH ASA OF THE LIGAND BECOMES INACCESSIBLE UPON BINDING?
l.get_buried_surface_area(projection='ligand', state='delta')
>>> 725.193
# HOW MUCH OF THAT IS POLAR SURFACE AREA?
l.get_buried_surface_area(Atom.is_polar==True, projection='ligand', state='delta')
>>> 105.689
# SAME AS ABOVE BUT BROKEN DOWN INTO INDIVIDUAL LIGAND ATOMS
l.get_buried_surface_area(Atom.is_polar==True, projection='ligand', state='apo', atom_areas=True)
>>> [(<Atom(O17 )>, 28.4709),
>>> (<Atom(N14 )>, 8.95594),
>>> (<Atom(N51 )>, 0.520805),
>>> (<Atom(N54 )>, 10.0699),
>>> (<Atom(N31 )>, 12.8868),
>>> (<Atom(N40 )>, 9.57553),
>>> (<Atom(N34 )>, 10.3417),
>>> (<Atom(N44 )>, 24.8668)]
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment