# Systems Biology Markup Language

Die Systems Biology Markup Language (engl. für systembiologische Modellierungssprache), kurz SBML, ist ein maschinenlesbares auf XML basierendes Datenaustauschformat zur Repräsentation biochemischer Modelle. Biochemische Modelle, die dargestellt werden können, sind beispielsweise metabolische Netzwerke, Signaltransduktionspfade und genregulatorische Netzwerke.

## Hintergrund

Seit Beginn des 3. Jahrtausends erfahren die Biowissenschaften eine Verschiebung dessen, welcher Erkenntnis nachgegangen wird. Zusammenfassend lässt sich diese holistische Betrachtungsweise unter dem Begriff der Systembiologie, deren Entwicklung im Rahmen der -omiks maßgeblich auf der Akquise enormer Datenmengen mittels sog. Hochdurchsatz-Technologien aufbaut.
Wurden die Datenmengen noch zu Beginn in klassischen Datenbanken organisiert, so bekam parallel der Ruf nach einem Daten-Austauschformat Vorschub, um abgeschlossene Modelle software- und plattformübergreifend erstellen und verteilen zu können. Die SBML begegnet diesem Ruf im Bereich der Modellierung biochemischer Netzwerke.

## Entwicklung

Initiiert wurde das SBML-Projekt durch Hamid Bolouri auf dem „First Workshop on Software Platforms for Systems Biology“ im April 2000. Unter dem Vorsitz von John Doyle und Hiroaki Kitano vollzog sich das erste Entwicklungsstadium am Institut für Regelung und Dynamische Systeme (CDS) am California Institute of Technology (Caltech). Die Entwicklung wurde primär durch Michael Hucka, Herbert Sauro, Andrew Finney und Hamid Bolouri betrieben und fand ihren vorläufigen Abschluss im Juni 2007 in der Spezifikation Level 2 Version 3. Die finanzielle Grundlage der Entwicklungsarbeit wurde durch das Japan Science And Technology Corporation’s Exploratory Research for Advanced Technology program (JST ERATO) bereitgestellt.
Inzwischen ist der Fokus weiterer Entwicklungen ganz auf Erweiterungspakete im Standard SBML Level 3 gerichtet.

## Spezifikationen

Definiert wird SBML innerhalb eines XML-Schemas. Die verschiedenen Spezifikationen werden als Level bezeichnet, die durch die Version noch eine Abstufung erfahren. Die Spezifikation Level 3 Version 1 definiert den aktuellen Standard. Es gilt zu beachten, dass frühere Spezifikationen, z. B. l1v1, l2v1 oder l2v4 von den Entwicklern als deprecated (veraltet und nicht mehr unterstützt) eingestuft wurde.
Obwohl Level 3 weitestgehend eine Übermenge von Level 1 und 2 darstellt, legen die Entwickler Wert auf die Betonung, dass alle Spezifikationen koexistent sind. Level 2 ist dahingehend eine Erweiterung, dass einige strukturelle Inkonsistenzen aufgehoben wurden. Weiterhin wird nun durch die Integration des MathML-Namensraumes ein Standard genutzt, um nicht-lineare mathematische Zusammenhänge zu beschreiben.

## Implementierungen

Seit der ersten Definition steht mit der C-Bibliothek libSBML eine leistungsfähige Software-Lösung zur Verfügung, um SBML-Dateien lesen, deren Inhalt im Speicher verändern und wieder schreiben zu können. libSBML zeichnet sich dadurch aus, zahlreiche Wrapper für andere Programmiersprachen (C++, C-Sharp, Java, Matlab, Octave, Python, Perl und Ruby) bereitzustellen. Im Falle plattformübergreifender Programmiersprachen kann die Abhängigkeit von einer internen C-Bibliothek jedoch problematisch sein. Daher wird seit 2009 für die Unterstützung von SBML in Java die spezielle Bibliothek JSBML entwickelt, wovon inzwischen stabile Versionen verfügbar sind.