Enabling Rapid Interaction with the Protein Data Bank. Alexy Khrabrov Rutgers University John D. Westbrook Rutgers University. Goals. Provide application and database access to macromolecular structure data Follow standards-based approach (OMG MMS finalized 2001)
Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author.While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server.
John D. Westbrook
Ligand – Which ligands are contained within the entry?
Chain/Entity – Extract the sequence and coordinates for each molecular entity.
Secondary Structure – Extract helices and sheets for the entry.
Residues/Atoms - What is the
environment of this residue? Extract the coordinates for a selection of atoms or residues.
PDB Exchange Dictionary + API Specific Data Dictionaries
CORBA IDL, SQL Schema,
Database Access Classes
mmCIF Data Files
(Data Reference Standard)
A primary requirement of the design was that it present an interface that was clearly defined and easy to use from the point of view of developing new applications. The code examples in this section illustrate how client programs can use the API to quickly access macromolecular structure data. As a simple example the following Python code fragment will print out the atom identifier and the Cartesian (x, y, z) position for atoms in the macromolecule 4hhb.
Example 1. Retrieving the AtomSite list for hemoglobin (4HHB) and printing the atomic coordinates.
sid = ”4HHB"
e = ef.get_entry_from_id(sid);
print "cannot get entry %s, exiting!" % sid
print "got entry!"
# Get the atom site list
atoms = e.get_atom_site_list()
print "got %d atoms total" % (len(atoms))
print "A few atoms:"
for a in atoms[:10]:
print "%s\t%.3f %.3f %.3f" %
(a.id, a.cartn.x, a.cartn.y, a.cartn.z)
# Get the symmetry information
s = e.get_sym_info()
print "space group: %s" % s.space_group
print "cell constants: "
c = s.acell.unit_cell
print "a=%.3f, b=%.3f, c=%.3f" % \
(c.length_a, c.length_b, c.length_c)
print "alpha=%.3f, beta=%.3f, gamma=%.3f" % \
(c.angle_alpha, c.angle_beta, c.angle_gamma)
# Get the secondary structures
sconfs = e.get_struct_conf_list()
print "Secondary structures:"
for a in sconfs:
print a.id, '\t', \
a.beg_auth.asym.id, a.beg_auth.comp.id, a.beg_auth.seq.id, \
a.end_auth.asym.id, a.end_auth.comp.id, a.end_auth.seq.id