Skip to content

Design Goals

BALL has been designed to be easy to use, robust, open, and provide a broad functionality. It is as a tool for rapid software prototyping in molecular modeling and drug design. Its development started in 1996, initially as a tool box for protein-protein docking. It rapidly evolved into a large framework covering a broad range of applications. When designing BALL, we had four major design goals in mind. This document gives more details about these design goals.

Ease of use

Ease of use is crucial for the acceptance of a new tool, especially if this tool claims to be designed for Rapid Software Prototyping. First of all, the user should be able to use the software rather intuitively - as far as this is possible for a framework of this size. It should therefore employ a standardized and widely used programming language (we decided to use C++). Furthermore, it should provide an intuitive, well documented, and consistent interface. Here, consistency means that the user can generalize anything he learned to all parts of the framework. For example naming conventions should be globally applicable and functions with the same name should have the same or comparable effects.


Functionality is of obvious importance. We can only expect wide acceptance of our software, if it is able to save the potential user a major amount of time. Thus, it should provide most of the standard functionality and leave only the implementation of specialized or new techniques to the user. And even there the user should be able to take advantage of existing data structures to speed up the development.


Since we cannot provide all functionality and we also do not want to re-implement existing algorithms, it was also an important aim to provide a sufficient openness, meaning compatibility with other class libraries but also compatibility with the Standard Template Library. Furthermore, openness implies extendibility and modularity, i.e. it should be simple to add new functionality and data structures without changing the existing code.


The term robustness describes the code's ability to cope with unexpected or faulty data. A good example of such faulty data is the PDB file format. While PDB is the most common format for structural data of proteins and is well standardized, only very few files circulating among scientists adhere to this standard for historical as well as for practical reasons. Strange as it may seem, but the implementation of a robust code for reading these files is a very demanding task. Implementing a file reader accepting standard compliant files is simple enough, but is not sufficient as only very few files could be read. Reliable reading of non-compliant files requires quite some biochemical knowledge and non-trivial heuristics to extract as much of the data as possible.

Web Design MymensinghPremium WordPress ThemesWeb Development

Moved to GitHub

October 19, 2015October 19, 2015
Source code, bugtracker, and wiki moved to GitHub!

Developer Retreat 2015.1

February 22, 2015February 22, 2015
BALL_Dev_Retreat_2015 We met in Saarbrücken to plan the further development of BALL. In the near future you will find more information on our new website. Code and bugtracker will move to GitHub!

ballaxy Tools Released

August 7, 2014August 7, 2014

A new release of BALL and BALLView containing our new ballaxy tools is availably.

This new release offers, besides bugfixes, our new ballaxy workflow framework for structure based computational biology. The framework consists of command line tools, a ballaxy workflow server, based on the popular Galaxy workflow engine, offering those tools and a ballaxy plugin for BALLView which allows interaction with a ballaxy server instance. More information, e.g. a list of current tools, our live ballaxy server or instructions on how to set up your own ballaxy instance using docker can be found here. Enjoy!

BALL 1.4 Released

January 28, 2013January 28, 2013

A new stable release for BALL is now available.

This new release mainly focuses on compile and bug fixes. The most user visible changes are probably the rework of the Pubchem Downloader in BALLView, which now uses the new REST interface provided by Pubchem.