p3d - Python module for structural bioinformatics

From p3d
Jump to: navigation, search

p3d was developed in order to offer a Python module that is powerful and fast, yet intuitive to use. The simplicity of p3d is due to

  • the usage of object oriented programming (i.e. atoms are treated as vectors),
  • the implementation of a query parser that translates queries readable by humans into a combination of algebra set operations
  • the fact that no additional Python packages are necessary.

The speed is due to the usage of a binary space partitioning (BSP) tree which allows very fast queries in 3D (Henry et al. 1980). The additional synergy is obtained by the flexible combination of both speed and complexity in the queries to the structural data. The combination of these factors makes p3d the optimal module to rapidly develop new and powerful bioinformatic tools that follow the Python philosophy of making the source code readable.

The results of three example scripts are shown below: A) script that determined the flexibility of NMR structures, B) alignment of pdb structures using three atoms and C) observed Phi-Psi distribution in a non-redundant protein data set. More examples can be found here.

A) B) C)
"Determine structural flexibility in NMR structures"
quickly Align pdbs by three atoms, e.g. three atoms of ATP
Ramchandran plot of observed Phi Psi combinations in non redundant protein data set


High-throughput bioinformatic analysis tools are needed to mine the large amount of structural data via knowledge based approaches. Development of such tools requires a robust interface to access the structural data. p3d is an object oriented Python module that adds a simple yet powerful interface to the Python interpreter to process and analyse three dimensional protein structure files (PDB files). p3d’s synergy arises from the combination of a) very fast spatial access to the structural data due to the implementation of a binary space partitioning (BSP) tree and b) the power of set theory. These factors combined facilitate the development of bioinformatical tools that can perform rapid and complex analyses of protein structures. Thus p3d is the perfect tool to quickly develop structural bioinformatic tools using the Python scripting language.


If you use p3d modules for your own python scripts and publications please cite:

  • Fufezan, C and Specht, M. (2009): p3d – Python module for structural bioinformatics, BMC Bioinformatics, 10:258

Furthermore, why not submit your script to the example script library. Just send an email to examplescripts (at) fufezan.net If you'd like we will also list your publication on this website.



For any suggestions, comments or problems please write to to p3d (at) fufezan dot net.

The forums have been taken down, since the web site was used to spam people. Sorry.

Publications that used the p3d module

  1. Fufezan, C et al. 2008. Ligand Preference and Orientation in B- and C-Type Heme-Binding Proteins. Proteins 73(3): 690–704.
  2. Negron, C et al. 2009. Geometric Constraints for Porphyrin Binding in Helical Protein Binding Sites. Proteins 74400–16.
  3. Fufezan, C. (2010) The role of Buergi-Dunitz interactions in the structural stability of proteins., Proteins 78, 2831-8.
  4. Saga, G. et al. (2010) Mutation analysis of violaxanthin de-epoxidase identifies substrate-binding sites and residues involved in catalysis., The Journal of biological chemistry 285, 23763-70.