Section: New Software and Platforms
The Structural Bioinformatics Library
The SBL : overview
For Biologists, the key advantages are:
For Developers, the striking facts are:
The SBL : rationale and design
Software development generally faces a dichotomy, with on the one hand generic libraries providing methods of ubiquitous interest, and on the other hand application driven libraries targeting specific application areas. Libraries in the former category typically provide state-of-the art low level algorithms carefully specified, at the detriment of high level applications. Libraries in the latter category are generally high level and user-friendly, but the lack of formalism often makes it difficult to couple them to low level algorithms with formal specifications. The SBL ambitions to reconcile both software development philosophies, based on an advanced design suited for all classes of users and developers.
In terms of high-level operations, the SBL provides various applications revolving around the problem of understanding the relationship between the structure and the function of macro-molecules and their complexes (see below). In terms of low-level operations, the design of the SBL is meant to accommodate both the variety of models coding the physical and chemical properties of macro-molecular systems (models based on unions of balls such as van der Walls models or solvent accessible models, or models based on conformations and conformational ensembles), as well as the variety of operations (geometric, topological, and combinatorial) undertaken on these models.
More precisely, the SBL consists of the following software components, detailed below:
SBL-CORE: low-level generic C++ classes templated by traits classes specifying C++ concepts (The design has been guided by that used in the Computational Geometry Algorithm Library (CGAL), see http://www.cgal.org).
SBL-MODULES: C++ classes instantiating classes from the SBL-CORE with specific biophysical models from SBL-MODELS . A module may be seen as a black box transforming an input into an output. With modules, an application workflow consists of interconnected modules.
The SBL for end-users: SBL-APPLICATIONS
End users will find in the SBL portable applications running on all platforms (Linux, MacOS, Windows). These applications split into the following categories:
Data Management: applications to handle input data and results, using standard tools revolving around the XML file format (in particular the XPath query language). These tools allow automating data storage, parsing and retrieval, so that upon running calculations with applications, statistical analysis and plots are a handful of python lines away.
The SBL for developers: SBL-CORE , SBL-MODELS and SBL-MODULES
The SBL makes it easy to develop novel high-level applications, by providing high level ready to use C++ classes instantiating various biophysical models.
In particular, modules allow the development of applications without the burden of instantiating low level classes. In fact, once modules are available, designing an application merely consists of connecting modules.
The SBL for low-level developers and contributors: SBL-CORE , and SBL-MODELS
Low level developments may use classes from / contribute classes to SBL-CORE and SBL-MODELS . In fact, such developments are equivalent to those based upon C++ libraries such as CGAL (http://www.cgal.org/) or boost C++ libraries (http://www.boost.org/). It should be noticed that the SBL heavily relies on these libraries. The SBL-CORE is organized into four sub-sections:
It should also be stressed that these packages implement algorithms not available elsewhere, or available in a non-generic guise. Due to the modular structure of the library, should valuable implementations be made available outside the SBL (e.g. in CGAL or boost), a substitution may occur.
The SBL is interoperable with existing molecular modeling systems, at several levels:
At the library level, our state-of-the-art algorithms (e.g. the computation of molecular surfaces and volumes) can be integrated within existing software by instantiating the required classes from SBL-CORE , or using the adequate modules.
At the application level, our applications can easily be integrated within processing pipelines, since the format used for input and output are standard ones. (For input, the PDB format can always be used. For output, our applications generate XML files.)
Finally, for visualization purposes, our applications generate outputs for the two reference molecular modeling environments, namely Visual Molecular Dynamics (http://www.ks.uiuc.edu/Research/vmd/) and Pymol (http://www.pymol.org/).
Releases, distribution, and license
The SBL is released under a proprietary open source license, see http://sbl.inria.fr/license/.
The source code is distributed from http://sbl.inria.fr, using tarballs and a git repository. Bugzilla is used to handle user's feedback and bug tracking.