BALL (Biochemical Algorithms Library) is a C++ class framework and set of algorithms and data structures for molecular modelling and computational structural bioinformatics, a Python interface to this library, and a graphical user interface to BALL, the molecule viewer BALLView.
|Developer(s)||BALL project team|
1.4.2 / 28 January 2013
1.4.79 / 7 August 2014
|Written in||C++, Python|
|Operating system||Linux, Unix, macOS, Windows|
BALL has evolved from a commercial product into free-of-charge open-source software licensed under the GNU Lesser General Public License (LGPL). BALLView is licensed under the GNU General Public License (GPL) license.
The molecule viewer BALLView, also developed by the BALL project team, is a C++ application of BALL using Qt, and OpenGL with the real-time ray tracer RTFact as render back-ends. For both, BALLView offers three-dimensional and stereoscopic visualizing in several different modes, and applying directly the algorithms of the BALL library via its graphical user interface.
The BALL project is developed and maintained by groups at Saarland University, Mainz University, and University of Tübingen. Both the library and the viewer are used for education and research. BALL packages have been made available in the Debian project.
- Interactive molecular drawing and conformational editing
- Reading and writing of molecular file formats (PDB, MOL2, MOL, HIN, XYZ, KCF, SD, AC)
- Reading secondary data sources e.g. (DCD, DSN6, GAMESS, JCAMP, SCWRL, TRR)
- Generating molecules from and matching of SMILES- and SMARTS expressions to molecules
- Geometry optimization
- Minimizer and molecular dynamics classes
- Support for force fields (MMFF94, AMBER, CHARMM) for scoring and energy minimization
- Python interface and scripting functionality
- Plugin infrastructure (3D Space-Navigator)
- Molecular graphics (3D, stereoscopic viewing)
- comprehensive documentation (Wiki, code snippets, online class documentation, bug tracker)
- comprehensive regression tests
- BALL project format for presentations and collaborative data exchange
- editable shortcuts
BALL is a development framework for structural bioinformatics. Using BALL as a programming toolbox allows greatly reducing application development times and helps ensure stability and correctness by avoiding often error-prone reimplementation of complex algorithms and replacing them with calls into a library that has been tested by many developers.
- File import-export
BALL supports molecular file formats including PDB, MOL2, MOL, HIN, XYZ, KCF, SD, AC, and secondary data sources like DCD, DSN6, GAMESS, JCAMP, SCWRL, and TRR. Molecules can also be created using BALL's peptide builder, or based on SMILES expressions.
- General structure analysis
Further preparation and structure validation is enabled by, e.g., Kekuliser-, Aromaticity-, Bondorder-, HBond-, and Secondary Structure processors. A Fragment Library automatically infers missing information, e.g., a protein's hydrogens or bonds. A Rotamer Library allows determining, assigning, and switching between a protein's most likely side chain conformations. BALL's Transformation processors guide generation of valid 3D structures. Its selection mechanism enables to specify parts of a molecule by simple expressions (SMILES, SMARTS, element types). This selection can be used by all modeling classes like the processors or force fields.
- Molecular mechanics
Implementations of the popular force fields CHARMM, Amber, and MMFF94 can be combined with BALL's minimizer and simulation classes (steepest descent, conjugate gradient, L-BFGS, and shifted L-VMM).
SIP is used to automatically create Python classes for all relevant C++ classes in the BALL library to allow for the same class interfaces. The Python classes have the same name as the C++ classes, to aid in porting code that uses BALL from C++ to Python, and vice versa.
The Python interface is fully integrated into the viewer application BALLView and thus allows for direct visualization of results computed by python scripts. Also, BALLView can be operated from the scripting interface and recurring tasks can be automated.
BALLView is BALL's standalone molecule modeling and visualization application. It is also a framework to develop molecular visualization functions.
BALLView offers standard visualization models for atoms, bonds, surfaces, and grid based visualization of e.g., electrostatic potentials. A large part of the functionality of the library BALL can be applied directly to the loaded molecule in BALLView. BALLView supports several visualization and input methods such as different stereo modes, space navigator, and VRPN-supported Input devices.
- "Debian -- Details of source package ball in sid". Retrieved 9 August 2021.
- "BALLView with real-time raytracing capabilities demonstrated at official Intel press conference," BALL website, 3 March 2009. Archived 25 July 2011 at the Wayback Machine Accessed 12/13/10.
- Hildebrandt, Andreas; Dehof, Anna Katharina; Rurainski, Alexander; Bertsch, Andreas; Schumann, Marcel; Toussaint, Nora C; Moll, Andreas; Stockel, Daniel; Nickels, Stefan; Mueller, Sabine C; Lenhof, Hans-Peter; Kohlbacher, Oliver (2010). "BALL - Biochemical Algorithms Library 1.3". BMC Bioinformatics. 11: 531ff. doi:10.1186/1471-2105-11-531. PMC 2984589. PMID 20973958.
- Kohlbacher, Oliver; Lenhof, Hans-Peter (2000). "BALL—rapid software prototyping in computational molecular biology". Bioinformatics. 16 (9): 815–24. doi:10.1093/bioinformatics/16.9.815. PMID 11108704.
- Moll, Andreas; Hildebrandt, Andreas; Lenhof, Hans-Peter; Kohlbacher, Oliver (2005). "BALLView: a tool for research and education in molecular modeling". Bioinformatics. 22 (3): 365–6. doi:10.1093/bioinformatics/bti818. PMID 16332707.
- Moll, Andreas; Hildebrandt, Andreas; Lenhof, Hans-Peter; Kohlbacher, Oliver (2006). "BALLView: an object-oriented molecular visualization and modeling framework". Journal of Computer-Aided Molecular Design. 19 (11): 791–800. doi:10.1007/s10822-005-9027-x. PMID 16470421.