Edit this page on GitHub

Interface Analysis


The Interface module integrated in Biopython provides an easy and friendly way to extract and analyze interface from PDB complexes. Different information are calculated and provided with the extraction of the interface: - polar/apolar/charged residues distribution - buried surface area.

Developed during the Google Summer of Code 2011 by Mikael Trellet, this module is still not available in the official repository of Biopython. Nevertheless you can find the code (open-source) at the current link: GitHub source In order to be relevant and complete, the Interface module works in parallel with extended residues, a subclass of residue created during the same period and also available at the previous link.


The main part of the Interface analysis module requires only a stable installation of Biopython and Python 2.7. A more precise definition of the interface can be done using the NACCESS module present in Biopython but require a stable version of Naccess (available in NACCESS).

How to use


Extraction of an interface is done from a complex PDB

from Bio.PDB import InterfaceBuilder

parser = PDBParser()
structure = parser.get_structure("test", "/home/directory/of/your/PDB/test.pdb")

Then the extraction of the interface is done in only one line

interface = InterfaceBuilder.InterfaceBuilder(structure[0]).get_interface()

From the Interface object some function and information are included

chains = interface.get_chains()
for c in chains:
ss = interface.secondary_structure

Further own calculations

Several statistics and information can be calculated from a single interface

percent = interface.calculate_polarity()
neighbors = interface.set_neighbors()
access = interface.calculate_accessibility()

Comparison of 2 interfaces

In order to compare 2 interfaces, so indirectly 2 complexes, few calculations can be done:

rmsd = interface.rmsd(interface2)
fcc = interface.fcc(interface2)