Overall Objectives
Research Program
Highlights of the Year
New Software and Platforms
New Results
Partnerships and Cooperations
XML PDF e-pub
PDF e-Pub

Section: New Software and Platforms

The Structural Bioinformatics Library

Web site:

The SBL : Overview

The SBL is a generic C++/python library providing algorithms and applications to solve complex problems in computational structural biology (CSB).

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:


End users will find in the SBL portable applications running on all platforms (Linux, MacOS, Windows). These applications split into the following categories:


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.

SBL-CORE : the SBL for Low-level Developers and Contributors

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 ( ) or boost C++ libraries ( ). It should be noticed that the SBL heavily relies on these libraries. The SBL-CORE is organized into 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:

Releases, Distribution, and License

The SBL is released under a proprietary open source license, see .

The source code is distributed from , using tarballs and a git repository. Bugzilla is used to handle user's feedback and bug tracking.