Software Engineering Home
Abstract

We are developing a library of C++ algorithms and data structures which are commonly used within the fields of bioinformatics and molecular modelling. The design of this library closely follows that of the Standard Template Library (STL) which is part of ISO/ANSI standard C++. The STL implements generic programming theory through the use of templates. Templates allow the development of efficient generic programming modules using compile-time mechanisms.

The BTL and the STL both enable the flexible combination of algorithms and containers in an orthogonal manner. These components can be thought of as building blocks for the construction of custom built or client designed classes. In the case of the STL, the components are widely used in all types of software applications. Examples of STL components are linked lists, sets, queues, sort algorithms, and search methods. The BTL will contain components not in the STL which are commonly used within bioinformatics such as graphs, matrices, sequence alignment methods, a FFT algorithm, and a least squares fit method.

Our original aim within this project was to use mainstream object-oriented design principles to develop a class library which would provide a reusable set of abstract data models for molecules and atoms. Comments from users of a prototype class library and from other developers of similar libraries heightened our awareness of the limitations of this approach. An explanation of why we are restructuring our prototype class library into the BTL will be presented.

Although C/C++ is becoming increasing popular within the scientific community, many researchers use other programming languages. To widen the potential number of BTL users, we aim to produce CORBA compliant, language (and platform) independent interfaces to our library. We also intend to experiment with the provision of CORBA based server processes so that clients can use our library remotely, over the Internet. CORBA also provides the means by which components from our library can used together with pre-existing programs seamlessly.

The BTL will be free but will be covered by the GNU Library General Public License to prevent the exploitation of its contents. We hope that the CCP11 will provide user support and training for this library when this project finishes. See our web site (http://www.cryst.bbk.ac.uk/classlib/) for more details.

Funding provided by the BBSRC/EPSRC within the Bioinformatics Initiative is gratefully acknowledged.


Back Back