My watch list  


BALL (Biochemical Algorithms Library) is a C++ library containing common algorithms used in biochemistry and bioinformatics. The library also has Python bindings. Among the supported systems are Linux, Solaris, Microsoft Windows. The library can be used for command-line utilities, but it also supports display with Qt and OpenGL.

There is a structure viewer developed by the same group of people, BALLView, which allows viewing PDB, HIN, and other formats. It is the visulization component of BALL. Both BALL and BALLView are available under LGPL and GPL licences. The programs are developed and maintained by Hans-Peter Lenhof, Oliver Kohlbacher, Andreas Hildebrandt and Andreas Moll. BALLView is an application written in C++ that uses BALL for molecular modeling and visualizing molecular models. It is available under the GPL license for Linux, Windows, and Mac OS.


This small program reads PDB file and outputs names and positions of all atoms in human-readable format.


using namespace std;
using namespace BALL;

int main() {
  // System is a basic data structure representing all molecules
  System sys;
  // Read a molecule from PDB file and add it to the system
  PDBFile pdb_file("input.pdb");
  pdb_file >> sys;
  // Iterate over all atoms in the system
  AtomIterator ai;
  for(ai = sys.beginAtom(); !ai.isEnd(); ++ai) {
      // Get atom's position
      Vector3 v = ai->getPosition();
      // Print atom's name and atom's position
      cout << "Atom " << ai->getFullName()
           << " is located at position <" << v.x
           << ", " << v.y
           << ", " << v.z
           << ">" << endl;
  return 0;
This article is licensed under the GNU Free Documentation License. It uses material from the Wikipedia article "BALL". A list of authors is available in Wikipedia.
Your browser is not current. Microsoft Internet Explorer 6.0 does not support some functions on Chemie.DE