# Systems Biology Markup Language

Le Systems Biology Markup Language (SBML) est un format de représentation, basé sur XML, de communication et de stockage de modèles de processus biologiques. C'est un standard libre et ouvert avec une prise en charge par de nombreux logiciels et développeurs. Un modèle SBML peut représenter différentes classes de phénomènes biologiques, y compris les réseaux métaboliques, les chemins de signalisation métaboliques, les réseaux de régulation génétiques, les maladies infectieuses et bien d'autres processus biologiques$^,$$^,$. c'est le standard de facto pour la représentation des modèles informatiques en biologie des systèmes aujourd'hui.

## Histoire

En 1999 certains éditeurs de logiciels bioinformatiques avaient discuté de la création d'un format de fichier portable pour les modèles de réseau métabolique dans le groupe BioThermoKinetics (BTK)$^,$. Vers la fin de l'année 1999 et début 2000, Hiroaki Kitano et John C. Doyle réunissent une petite équipe de chercheurs travaillant sur le développement des meilleures infrastructures logiciel pour modélisation en biologie des systèmes. Il est alors identifié la nécessité de définir un cadre permettre l'interopérabilité et le partage entre les systèmes de logiciels de simulation en biologie. Les groupes participent à différentes réunions très vite appelées "Workshop for Software Plateforms for Systems Biology". Il est devenu évident au cours du deuxième atelier qu'un format de représentation de modèle permettant l'échange de modèles entre les outils logiciels devrait être encodé au format XML.
L'équipe du Caltech ERATO a alors préparé une proposition pour ce format basé sur XML et distribué la définition du projet aux participants du 2e atelier sur les plates-formes logicielles pour la biologie des systèmes en août 2000. l'équipe du Caltech a émis une spécification SBML niveau 1, Version 1 en mars 2001.
SBML niveau 2 a été conçu au 5e atelier sur les plates-formes logicielles pour la biologie des systèmes, qui s'est tenue en juillet 2002. À cette époque, l'évolution de SBML a été permise par un effort plus large de la communauté en biologie système. De nombreux outils ont pris en charge SBML. De nouveaux besoins ont émergé et de nouvelles demandes se sont exprimées. La version finale de la spécification de niveau 2 version 1 est sortie en mai 2003 .
Cependant le passage effectif aux itérations suivantes de SBML a pris pour chacune plusieurs années, en partie parce que les développeurs de logiciels ont demandé du temps pour absorber et comprendre SBML niveau 2 qui était bien plus complexe que le niveau 1.
La dernière spécification de niveau 2 (SBML Niveau 2 Version 4) a été publié en 2008.
SBML niveau 3 Version 1 a été publié sous sa forme définitive en 2010, après une discussion prolongée et de multiples révisions par les éditeurs de SBML et la communauté SBML. Il contient de nombreux changements importants par rapport à SBML Niveau 2 Version 4, mais représente également une excellente base modulaire pour assurer l'expansion future de SBML.

## Le langage

SBML est parfois faussement supposé, être limité uniquement aux modèles biochimiques ceci parce que les publications originales et les premiers logiciels étaient uniquement axés sur ce domaine. En réalité, bien que les aspects centraux de SBML soient en effet axés sur les processus chimiques qui agissent sur les entités, ce même formalisme sert par analogie pour de nombreux autres types de processus ; en outre, SBML a soutenu l'expression directe des formules mathématiques et des événements discontinus distincts du processus de réaction, des fonctionnalités de langage permettant à SBML de représenter beaucoup plus de réactions que les seules réactions biochimiques. La preuve de la capacité de SBML à utiliser plus qu'une simple description de réaction biochimique peut être vu dans la variété des modèles disponibles dans la base de données BioModels (en).

### Objectifs

SBML a trois objectifs principaux :
* Permettre l'utilisation de différents outils logiciels sans avoir à réécrire des modèles afin d'être conforme au format de fichier idiosyncrasique de chaque outil ;
* Permettre aux modèles d'être partagés et publiés sous une forme que les autres chercheurs peuvent utiliser même lorsqu'ils travaillent avec des environnements logiciels différents;
* Assurer la survie des modèles au-delà de la durée de vie du logiciel utilisé pour les créer.
SBML n'est pas une tentative de définition d'un langage universel pour les modèles quantitatifs. SBML vise à servir de lingua franca — un format d'échange utilisé par différents outils de logiciel actuel pour communiquer les aspects essentiels d'un modèle de calcul.

### Principales fonctionnalités

SBML peut encoder les modèles constitués d'entités (appelées espèce en SBML) commandées par des processus (appelés réactions ). Un principe important est que les modèles sont décomposés en éléments constitutifs explicitement marqué, cet ensemble ressemble à une description détaillée des équations de réaction chimique avec les équations explicites optionnelles; La représentation de SBML délibérément ne transcrit pas le modèle directement dans un ensemble d'équations différentielles ou dans une autre interprétation spécifique. Cette décomposition explicite, agnostique rend plus facile pour un outil logiciel d'interpréter le modèle et de traduire la forme SBML dans une forme interne arbitraire, que l'outil utilise réellement.
Un logiciel peut lire une description du modèle SBML et la traduire dans son propre format interne pour l'analyse du modèle. Par exemple, un logiciel peut simuler le modèle en construisant des équations différentielles et puis effectuer l'intégration numérique de temps sur les équations pour explorer le comportement dynamique du modèle. Alternativement, un logiciel peut construire une représentation discrète stochastique (c'est-à-dire basée sur un traitement statistique du modèle), et utiliser l'une des nombreuses méthodes statistiques qui permettent de créer une modélisation, comme les réseaux Bayésien, la méthode de Monte Carlo ou encore l'algorithme de Gillespie (en).
SBML permet aux modèles de complexité arbitraire d'être représentables. Chaque type de composant dans un modèle est décrit à l'aide d'un type spécifique de structure de données qui organise l'information pertinente. Les structures de données déterminent comment le modèle obtenu est encodé en XML.
Outre les éléments ci-dessus, une autre caractéristique importante de SBML est que chaque entité peut avoir des annotations. Ces annotations peuvent être utilisées pour exprimer les relations entre les entités dans un modèle donné et les entités en ressources externes telles que des bases de données. Un bon exemple en est la base de données BioModels, où chaque modèle est annoté et les données sont liées à des ressources telles que les publications d'articles scientifiques, les bases de données concernant les voies métaboliques et les vocabulaires contrôlés et plus encore. Avec des annotations, un modèle devient plus qu'une simple description et/ou mathématique, il devient un ensemble sémantiquement enrichi, permettant de partager des connaissances.

### Les niveaux et les versions

SBML est défini en niveaux : Ce sont des spécifications de compatibilité ascendante qui ajoutent des fonctionnalités et de la puissance expressive. Les outils logiciels qui n'en ont pas besoin ou ne peuvent pas soutenir la complexité des niveaux plus élevés peuvent continuer à utiliser les niveaux inférieurs ; les outils qui peuvent lire des niveaux plus élevés sont assurés d'être également en mesure d'interpréter les modèles définis aux niveaux inférieurs. Donc nouveaux niveaux ne remplacent pas les précédents. Cependant, chaque niveau peut avoir plusieurs Versions qu'il contient et les nouvelles Versions d'un niveau remplacent les anciennes versions de ce même niveau.
Actuellement, il y a trois niveaux de SBML défini. Les Versions actuelles au sein de ces niveaux sont les suivants :
* Niveau 3 Version 2 Core, pour laquelle la spécification de version 2 finale fut émise le 26 avril 2019
* Niveau 2 Version 4 Release 1
* Niveau 1 Version 2
Les infrastructures de logiciels tels que libSBML et JSBML permettent aux développeurs d'accéder à tous les niveaux de SBML, dans leurs logiciels, avec un minimum d'effort.
L'équipe de SBML maintient un système de déclaration d'incidents où les lecteurs peuvent signaler des erreurs ou autres problèmes dans les documents de spécification de SBML. Les problèmes signalés sont finalement mis sur la liste des errata officielle associée à chaque version de la spécification. (Un exemple est la liste des errata pour SBML niveau 2 Version 4.)

### Structuration

Une définition de modèle en SBML niveaux 2 et 3, se compose de listes d'un ou de plusieurs, des éléments suivants :
* Définition de la fonction : Un nom de fonction mathématique qui pourra être utilisé dans le modèle considéré.
* Définition de l'unité : une définition d'une nouvelle unité de mesure, ou une redéfinition d'une unité de valeur par défaut de SBML. Les unités nommées peuvent être utilisées dans l'expression des grandeurs d'un modèle.
* Type de compartiment (seulement en SBML niveau 2): un type de lieu où ont lieu des réactions entre entités telles que les substances chimiques.
* Type d'espèce (seulement en SBML niveau 2): un type d'entité qui peut participer aux réactions. Les entités peuvent être des espèces d'ions comme Ca$^{2+}$, des molécules comme le glucose ou l'ATP, les sites de fixation sur une protéine et plus encore.
* Compartiment : un conteneur d'un type particulier et de taille finie où les espèces peuvent se trouver. Un modèle peut contenir plusieurs compartiments du même type de compartiment. Toutes les espèces d'un modèle doivent être située dans un compartiment. C'est par exemple une cellule.
* Espèce : un pool d'entités du même type d'espèce situé dans un compartiment spécifique. Par exemple un type d'ions.
* Paramètre : une quantité avec un nom symbolique utilisé dans une réaction. Dans SBML, le terme paramètre est utilisé dans un sens générique pour désigner des quantités nommées qu'elles soient constantes ou variables dans un modèle.
* Affectation initiale : une expression mathématique utilisée pour déterminer les conditions initiales d'un modèle. Ce type de structure permet uniquement de définir comment la valeur d'une variable peut être calculée à partir des autres valeurs et des variables au début de la simulation.
* Règle : une expression mathématique utilisée en combinaison avec les équations différentielles qui décrivent l'ensemble des réactions d'un modèle. Elle peut être utilisée pour définir comment la valeur d'une variable peut être calculée à partir des autres variables, ou utilisé pour définir le taux de variation d'une variable. L'ensemble de règles dans un modèle peut être utilisé avec les équations de taux de réaction pour déterminer le comportement du modèle en fonction du temps. L'ensemble de règles s'impose au modèle pour toute la durée du temps simulé.
* Contrainte : une expression mathématique qui définit une contrainte sur les valeurs des variables de modèle. La contrainte s'applique de façon identique à chaque instant de temps simulé. L'ensemble des contraintes dans le modèle ne peut pas être utilisé pour déterminer le comportement du modèle en fonction du temps.
* Réaction : une déclaration décrivant une transformation, le transport ou le processus de liaison qui peut modifier la quantité d'une ou plusieurs espèces. Par exemple, une réaction peut décrire comment certaines entités (réactifs) sont transformés en certaines autres entités (produits). Les réactions sont associées à des taux d'expressions cinétiques décrivant la vitesse à laquelle elles ont lieu.
* Événement : une déclaration décrivant un changement instantané et discontinu dans un ensemble de variables de n'importe quel type (concentration de l'espèce, valeur de paramètre ou de la taille de compartiment) lorsque la condition déclenchante est satisfaite.

#### Exemple

Voici un squelette de modèle SBML:
Voici un zoom sur un exemple de liste de réactions avec annotation:

#### DTD XML simplifiée d'un fichier SBML

Présentation de la DTD XML d'un fichier SBML. La DTD d'un fichier XML représente la structure arborescente du fichier.

### Nouvelles spécifications de niveau 3

Le développement de SBML niveau 3 a été organisé de façon modulaire. La spécification Core est autonome, elle peut être utilisé seule, sans qu'il n'y est besoin d'y ajouter d'autres spécification. Des spécification (ou paquets) supplémentaires peuvent être ajoutés à ce noyau pour fournir des fonctionnalités supplémentaires.

#### Composition de modèle hiérarchique

Le paquet de Composition de modèle hiérarchique, connu comme « comp », a été annoncé en novembre 2012. Ce paquet fournit la possibilité d'inclure des sous-modèles à l'intérieur d'un autre modèle. L'objectif est de (1) décomposer des modèles complexes en modèles plus simples, pour gérer leur complexité ; (2) incorporer plusieurs instances d'un modèle donné au sein d'un ou des modèles plus vastes, de façon à éviter la répétition d'éléments ; et (3) créer des bibliothèques de modèles réutilisables, testés, comme cela se fait dans d'autres domaines de l'ingénierie. La spécification a été l'aboutissement d'années de discussions entre un grand nombre de personnes.

#### Contraintes d'équilibre de flux

Le paquet de Contraintes d'équilibre de flux (surnommé "CFB") est disponible depuis février 2013. Une version 2 est sorti en septembre 2015. Le package « CFB » prend en charge la modélisation fondée sur des contraintes, qui est fréquemment utilisée pour analyser et étudier les réseaux biologiques sur une petite et grande échelle. Ce paquet SBML utilise les composants standard de la spécification de base SBML niveau 3, y compris les espèces et les réactions et les étend avec des attributs supplémentaires et des structures pour permettre aux modeleurs de définir des limites de flux et des fonctions d'optimisation.

#### Modèles qualitatifs

Le package de modèles qualitatifs ou « qual » pour SBML niveau 3 a été publié en mai 2013. Ce package prend en charge la représentation des modèles où une connaissance approfondie des réactions biochimiques et de leur cinétique est manquante et où une approche qualitative doit être utilisée. On peut citer comme exemples de phénomènes ayant été modélisés de cette manière les réseaux de régulation génique et la signalisation des voies (pathway signaling), La définition et l'utilisation de certains éléments de cette classe de modèles est différente de la façon dont cette espèce et les réactions sont définies et utilisées dans les modèles SBML traditionnels. Par exemple, les modèles qualitatifs associent généralement des niveaux distincts d'activités avec des groupes d'entités, par conséquent, les processus les impliquant ne peuvent être qualifiés en soi de réactions, mais plutôt en tant que transitions entre états. Ces systèmes peuvent être considérés comme des systèmes réactifs dont les dynamiques sont représentés au moyen de graphes de transition d'état (ou des structures de Kripke) dans lequel les nœuds sont les états et les arcs sont les transitions entre états.

#### Mise en page

Le paquet de mise en page SBML était à l'origine un ensemble de conventions d'annotation utilisables dans SBML niveau 2. Il a été présenté lors du Forum de SBML à St. Louis en 2004. Ralph Gauges a écrit la spécification et fourni une implémentation qui a été largement utilisée. Cette définition originale a été reformulée comme un paquet de SBML niveau 3, et une specification a été officiellement annoncée en août 2013.
Le paquet de mise en page de SBML niveau 3 fournit une spécification pour la représentation d'un réseau de réaction sous une forme graphique normalisée. Le paquet de SBML niveau 3 ne traite que les informations nécessaires pour définir la position et les autres aspects de la mise en page d'un graphe ; les détails supplémentaires comme, comment les aspects visuels doivent être rendus, sont l'objet d'un paquet SBML niveau 3 distinct appelé « Rendering » (surnommé "render"). Un projet stable de spécification pour le package "render" est disponible depuis novembre 2015, mais il n'a pas encore été officiellement annoncé.

## Communauté SBML.org

En décembre 2010, plus de 200 systèmes logiciels incorporaient SBML. Une liste à jour des logiciels compatibles SBML, est hébergé sur sbml.org.
SBML.org est un point de rencontre pour la communauté des développeurs en biologie des systèmes, il y a des listes de discussion actives et des ateliers semestriels. Les réunions se déroulent souvent en conjonction avec d'autres conférences de biologie, en particulier la Conférence internationale sur la biologie des systèmes (CIPE). L'effort de la communauté est coordonné par un comité de rédaction élu, composé de cinq membres. Chaque éditeur est élu pour un mandat non renouvelable de trois ans. Il y a en ligne des outils, comme un validateur de modèle ainsi que les bibliothèques open source permettant d'intégrer SBML dans les logiciels tiers dont le code source est écrit en C, C++, Java, Python, Mathematica ou encore MATLAB.
SBML est un type IETF MIME officiel, spécifié par le RFC 3823.