BALL

The open source project BALL includes the C framework BALL ( Biochemical Algorithms Library ), a library of algorithms and data structures for Molecular Design and Computational Structural Bioinformatics, a Python interface and built on BALL graphical application BALLView ( also open source).

The library BALL is being developed since 1996 and offers approximately 730 classes ( as of 2010) algorithms and data structures for reading, analyzing, and editing of molecules in the context of structural bioinformatics, the rational drug design and cheminformatics.

The C classes in BALL are complemented by a Python interface. The library also provides command-line utilities. Supported operating systems include Linux, Solaris, Microsoft Windows and Mac OS X. BALL used both Qt and OpenGL and is available under the LGPL.

The molecule viewer BALLView is developed by the same team and allows three-dimensional representation and processing of molecules. Various molecular formats such as PDB, HIN, MOL2 can be read and the algorithms of the BALL library can be applied directly via a graphical user interface. BALLView used as a renderer OpenGL and the real-time ray tracer RTfact. In addition BALLView supports stereoscopic display for both renderers. BALLView is written in C using BALL application and is available for Linux, Windows and Mac OS under the GPL.

BALL and BALLView be developed and maintained by groups at the University of the Saarland, University of Mainz and the University of Tübingen. Both are used by many research groups in research and teaching. Since April 2010 there BALL packages in the Debian project, which BALL can also be relatively easy to install on Ubuntu.

Main software features

Functionality / * is in a test phase of the next version

Functionality limited to BALLView

The library BALL

File Read / Write

BALL supports a wide variety of molecular file formats such as PDB, MOL2, MOL, HIN, XYZ, KCF, SD and beyond secondary file formats such as DCD, DSN6, GAMESS, JCAMP, SCWRL, and TRR. Furthermore, the molecules by means of ball peptide builder or SMILES expressions out can be generated.

Structural analysis

The further preparation of the molecules and validate their structure supported by BALL eg aromaticity and Kekulisierer, hydrogen bonding and secondary structure processors. A fragment database completes missing details such as hydrogens and bonds in proteins automatically. A rotamer library allows the determination, allocation and switching between side-chain conformations of proteins. Balls transformation processor supports the spatial construction of valid three-dimensional structures. Balls selection mechanism allows the specification of simple expressions ( SMILES, SMARTS, element types). The choice thus produced can then be used by all modeling classes such as processors and force fields for the definition of application.

Molecular mechanics

BALL provides fast and robust implementations of known force fields such as CHARMM, Amber and MMFF94. These can be with balls minimizers and simulation classes ( steepest decent, conjugate gradient, L- BFGS, and shifted L- VMM ) can be used directly.

Example

The use of BALL reduces the development time for new algorithms and makes programming easier, since error-prone Nachimplementierungen complex algorithms can be replaced by simple library calls. BALL ensures the stability and accuracy of the code contained by extensive regression tests and a self- controlling user community.

The following program reads a PDB file, adds missing information, such as hydrogen atoms and bonds optimized the positions of the hydrogen atoms, and writes the thus completed file back out.

Using namespace BALL; ... / / Read a PDB file PDBFile file ( " test.pdb "); System S; file >> S; file.close ();   / / Add missing information / / E. G. hydrogens and bonds FragmentDB fragment_db ( ""); S.apply ( fragment_db.normalize_names ); S.apply ( fragment_db.add_hydrogens ); S.apply ( fragment_db.build_bonds );   / / Check for charges, bond lengths, / / And missing atom ResidueChecker checker ( fragment_db ); S.apply ( checker );   / / Create on AMBER force field AmberFF FF; S.deselect (); FF.setup (S); Selector selector ( "element (H )"); S.apply (selector );   / / Optimize the hydrogen 's positions ConjugateGradientMinimizer minimizer; minimizer.setup (FF ); minimizer.setEnergyOutputFrequency (1); minimizer.minimize (50);   / / Write a PDB file file.open ( " test_out.pdb ", ios :: out); file << S; file.close (); Python interface

For all relevant classes in a BALL Python interface is generated automatically via SIP. The above example can be almost translate one to one into the Python syntax:

# Read a PDB file file = PDBFile ( " test.pdb " ) system = System () file.read (system) file.close ()   # Add missing information # E. G. hydrogens and bonds fragment_db FragmentDB = ("") system.apply ( fragment_db.normalize_names ) system.apply ( fragment_db.add_hydrogens ) system.apply ( fragment_db.build_bonds )   # Check for charges, bond lengths, # And missing atom checker = ResidueChecker ( fragment_db ) system.apply ( checker )   # Create on AMBER force field FF = AmberFF () system.deselect () FF.setup (system) selector = Selector ( "element (H)" ) system.apply (selector )   # Optimize the hydrogen 's positions minimizer = ConjugateGradientMinimizer () minimizer.setup (FF ) minimizer.setEnergyOutputFrequency (1) minimizer.minimize (50)   # Write a PDB file outfile = PDBFile ( " test_out.pdb " File.MODE_OUT ) outfile.write (system) outfile.close () The Python interface is fully integrated into the viewer BALLView, so that the results of the scripts can be directly visualized. In this way, the behavior of BALLView can control and automate.

BALLView

BALLView offers standard visualization models for atoms, bonds and surfaces also grid-based visualizations. In BALLView several structures can be loaded simultaneously and at any time appear off and on again. Much of the functionality of BALL can be used directly from BALLView out. BALLView supports many advanced visualization and input methods such as different stereo modes, Space Navigator and VRPN -based input devices.

At CeBIT 2009, the first full integration of real -time ray tracing has been demonstrated in molecular visualization and modeling using BALLView.

102029
de