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[1] - [2] - [3]. c'est le standard de facto pour la représentation des modèles informatiques en biologie des systèmes aujourd'hui[3].
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)[4] - [5]. Vers la fin de l'année 1999 et début 2000, Hiroaki Kitano et John C. Doyle[6] 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"[7]. 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 . l'équipe du Caltech a émis une spécification SBML niveau 1, Version 1 en .
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 . À 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 .
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[8].
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 1 Core, pour laquelle la spécification de version 1 finale fut émise le
- 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 Ca2+, 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:
<?xml version="1.0" encoding="UTF-8"?>
<sbml xmlns="http://www.sbml.org/sbml/level2/version4" level="2" version="4">
<model id="My_Model">
<listOfUnitDefinitions>
...
</listOfUnitDefinitions>
<listOfCompartments>
...
</listOfCompartments>
<listOfSpecies>
...
</listOfSpecies>
<listOfParameters>
...
</listOfParameters>
<listOfReactions>
...
</listOfReactions>
</model>
</sbml>
Voici un zoom sur un exemple de liste de réactions avec annotation:
<?xml version="1.0" encoding="UTF-8"?>
<sbml xmlns="http://www.sbml.org/sbml/level2/version4" level="2" version="4">
<model id="My_Model">
...
<listOfReactions>
<reaction id="Reaction1" reversible="false">
<listOfReactants>
<speciesReference species="A"/>
<speciesReference species="B"/>
</listOfReactants>
<listOfProducts>
<speciesReference species="C"/>
</listOfProducts>
<kineticLaw>
<math xmlns="http://www.w3.org/1998/Math/MathML">
<apply>
<times/>
<ci>ka</ci>
<ci>A</ci>
<ci>B</ci>
</apply>
</math>
</kineticLaw>
<annotation>
</annotation>
</reaction>
<reaction id="Reaction2" reversible="false">
<listOfReactants>
<speciesReference species="C"/>
</listOfReactants>
<listOfProducts>
<speciesReference species="A"/>
<speciesReference species="B"/>
</listOfProducts>
<kineticLaw>
<math xmlns="http://www.w3.org/1998/Math/MathML">
<apply>
<times/>
<ci>kd</ci>
<ci>C</ci>
</apply>
</math>
</kineticLaw>
</reaction>
</listOfReactions>
</model>
</sbml>
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.
<?xml version='1.0' encoding='UTF-8'?>
<!ELEMENT sbml (model)*>
<!ELEMENT model (listOfUnitDefinitions|listOfCompartments|listOfSpecies|listOfReactions)*>
<!ATTLIST model
id CDATA #IMPLIED
>
<!ELEMENT listOfUnitDefinitions (unitDefinition)*>
<!ELEMENT unitDefinition (listOfUnits)*>
<!ATTLIST unitDefinition
id CDATA #IMPLIED
>
<!ELEMENT listOfUnits (unit)*>
<!ELEMENT unit EMPTY>
<!ATTLIST unit
kind CDATA #IMPLIED
exponent CDATA #IMPLIED
scale CDATA #IMPLIED
multiplier CDATA #IMPLIED
>
<!ELEMENT listOfCompartments (compartment)*>
<!ELEMENT compartment EMPTY>
<!ATTLIST compartment
id CDATA #IMPLIED
name CDATA #IMPLIED
spatialDimensions CDATA #IMPLIED
constant CDATA #IMPLIED
>
<!ELEMENT listOfSpecies (species)*>
<!ELEMENT species (notes)*>
<!ATTLIST species
id CDATA #IMPLIED
name CDATA #IMPLIED
compartment CDATA #IMPLIED
hasOnlySubstanceUnits CDATA #IMPLIED
boundaryCondition CDATA #IMPLIED
constant CDATA #IMPLIED
>
<!ELEMENT notes (body)*>
<!ELEMENT listOfReactions (reaction)*>
<!ELEMENT reaction (notes|listOfReactants|listOfProducts|kineticLaw)*>
<!ATTLIST reaction
id CDATA #IMPLIED
name CDATA #IMPLIED
reversible CDATA #IMPLIED
>
<!ELEMENT listOfReactants (speciesReference)*>
<!ELEMENT speciesReference EMPTY>
<!ATTLIST speciesReference
species CDATA #IMPLIED
stoichiometry CDATA #IMPLIED
>
<!ELEMENT listOfProducts (speciesReference)*>
<!ELEMENT kineticLaw (math|listOfParameters)*>
<!ELEMENT math (ci)*>
<!ELEMENT listOfParameters (parameter)*>
<!ELEMENT parameter EMPTY>
<!ATTLIST parameter
id CDATA #IMPLIED
value CDATA #IMPLIED
units CDATA #IMPLIED
constant CDATA #IMPLIED
>
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 . 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 . Une version 2 est sorti en . Le package « CFB » prend en charge la modélisation fondée sur des contraintes[9], qui est fréquemment utilisée pour analyser et étudier les réseaux biologiques sur une petite et grande échelle[10]. 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 . 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[11] et la signalisation des voies (pathway signaling)[12], 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[13]) 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[14]. Ralph Gauges a écrit la spécification[15] 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 .
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 , mais il n'a pas encore été officiellement annoncé[16].
Communauté SBML.org
En , 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[17].
Voir aussi
Références
- (en) M. Hucka, A. Finney, H. M. Sauro, H. Bolouri, J. C. Doyle, H. Kitano, A. P. Arkin, B. J. Bornstein, D. Bray, A. Cornish-Bowden et al., « The systems biology markup language (SBML): a medium for representation and exchange of biochemical network models », Bioinformatics, vol. 19, no 4, , p. 524-531 (PMID 12611808, DOI 10.1093/bioinformatics/btg015, lire en ligne [PDF], consulté le ).
- (en) A. Finney et M. Hucka, « Systems biology markup language: Level 2 and beyond », Biochemical Society Transactions, vol. 31, no 6, , p. 1472-1473 (PMID 14641091, DOI 10.1042/BST0311472, lire en ligne [PDF], consulté le ).
- (en) M. Hucka, A. Finney, B.J. Bornstein, S.M. Keating, B.E. Shapiro, J. Matthews, B.L. Kovitz, M.J. Schilstra, A. Funahashi, J.C. Doyle et H. Kitano, « Evolving a lingua franca and associated software infrastructure for computational systems biology: the Systems Biology Markup Language (SBML) project », Systems Biology, IEE Proceedings, vol. 1, no 1, , p. 41-53 (ISSN 1741-2471, PMID 17052114, DOI 10.1049/sb:20045008).
- Herbert M. Sauro (bionet.metabolic-reg), « Announcement: Portable métabolique binaire Standard », (consulté le ).
- (en) Douglas B. Kella et Pedro Mendes, « The markup is the model : Reasoning about systems biology models in the Semantic Web era », Journal of Theoretical Biology, vol. 252, no 3, , p. 538-543 (PMID 18054049, DOI 10.1016/j.jtbi.2007.10.023).
- (en) « History of SBML », sur SBML.org (consulté le ).
- (en) « The 1st Workshop on Software Platforms for Systems Biology », sur SBML.org (consulté le ).
- (en) Andrew Finney, Michael Hucka, Benjamin J. Bornstein, Sarah M. Keating, Bruce E. Shapiro, Joanne Matthews, Ben L. Kovitz, Maria J. Schilstra, Akira Funahashi, John Doyle et Hiroaki Kitano, « Software Infrastructure for Effective Communication and Reuse of Computational Models », dans Zoltan Szallasi, Jorg Stelling et Vipul Periwal, System Modeling in Cellular Biology : From Concepts to Nuts and Bolts, Cambridge, MIT Press, , 448 p. (ISBN 9780262195485, DOI 10.7551/mitpress/9780262195485.003.0017, lire en ligne).
- Jeffrey D Orth, Ines Thiele et Bernhard O Palsson, « What is flux balance analysis? », Nature Biotechnology, vol. 28, no 3, , p. 245–248 (PMID 20212490, PMCID 3108565, DOI 10.1038/nbt.1614).
- Matthew A Oberhardt, Bernhard O Palsson et Jason A Papin, « Applications of genome-scale metabolic reconstructions », Molecular Systems Biology, vol. 5, no 1, , article no 320 (DOI 10.1038/msb.2009.77)
- Gregory Batt, Delphine Ropers, Hidde de Jong, Johannes Geiselmann, Radu Mateescu, Michel Page et Dominique Schneider, « Validation of qualitative models of genetic regulatory networks by model checking: Analysis of the nutritional stress response in Escherichia coli », Bioinformatics, vol. 21, , i19–i28 (PMID 15961457, DOI 10.1093/bioinformatics/bti1048).
- Tomas Helikar, John Konvalina, Jack Heidel et Jim A Rogers, « Emergent decision-making in biological signal transduction networks », Proceedings of the National Academy of Sciences, vol. 105, no 6, , p. 1913 (DOI 10.1073/pnas.0705088105).
- Clarke, E.M., Grumberg, O., Peled, DA, Modal Checking, Cambridge, MIT Press, .
- SBML Team, « The 8th SBML Forum » (consulté le ).
- Ralph Gauges, Ursula Rost, Sven Sahle et Katja Wegner, « A model diagram layout extension for SBML », Bioinformatics, vol. 22, no 15, , p. 1879–85 (PMID 16709586, DOI 10.1093/bioinformatics/btl195).
- Ralph Gauges, Sven Sahle, Katjia Wengler, Frank T. Bergmann, and Sarah M. Keating, « SBML Level 3 Package: Rendering (‘render’) » (consulté le ).
- (en) Benjamin Kovitz, « MIME Media Type for the Systems Biology Markup Language (SBML) », Request for comments no 3823, .
Liens externes
- page d'accueil de sbml.org
- SBML présentations et posters de Nature Precedings
- CO.MBINE modélisation computationnelle en biologie réseau