Systems Biology Markup Language

Un article de Wikipédia, l'encyclopédie libre.
Aller à : navigation, rechercher
Extensible Markup Language
Image illustrative de l'article Systems Biology Markup Language

Extension .xml, .sbml
Type MIME application/sbml + xml
Type de format Langage de balisage
Standard(s) sbml.org
Spécification Format ouvert

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[modifier | modifier le code]

Vers la fin de l'année 1999 et début 2000, grâce à un financement de la Japan Science and Technology Corporation (JST), 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. Hamid Bolouri a été le leader de l'équipe de développement, qui se composait de Andrew Finney, Herbert Sauro et Michael Hucka[4]. Bolouri a identifié la nécessité d'un cadre permettre l'interopérabilité et le partage entre les systèmes de logiciels de simulation en biologie à la fin des années 1990, et il a organisé un atelier informel en décembre 1999 à la California Institute of Technology pour discuter de la question. Étaient présents à cet atelier les groupes responsables du développement de DBSolve, E-Cell, Gepasi, Jarnac, StochSim et The Virtual Cell. Séparément, plus tôt en 1999, certains membres de ces groupes également 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)[5],[6]. les mêmes groupes qui ont participé au premier atelier de Caltech, se sont réunis à nouveau les 28 et 29 avril 2000, lors de la première d'une série de réunions, appelée atelier sur logiciel plateformes pour Systems Biology[7]. Il est devenu évident au cours du deuxième atelier qu'un format de représentation de modèle était nécessaire pour permettre l'échange de modèles entre les outils logiciels, et les participants de l'atelier a décidé que le format devrait être encodé dans XML.

Niveau 1[modifier | modifier le code]

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. Ce projet a subi une discussion approfondie sur les listes de diffusion et pendant le 2e atelier sur les plates-formes logicielles pour la biologie des systèmes[8], qui s'est tenue à Tokyo, au Japon, en novembre 2000 dans un atelier satellite de la Conférence de 2000 de l'ICSB. Après d'autres révisions, des discussions et des implémentations logicielles, l'équipe du Caltech a émis une spécification SBML niveau 1, Version 1 en mars 2001.

Niveau 2[modifier | modifier le code]

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, à l'Université du Hertfordshire (Royaume-Uni)[9]. À cette époque, un nombre beaucoup plus important de personnes ont participé qu'initialement et l'évolution continue 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és et de nouvelles demandes se sont exprimées. Les participants à l'atelier en 2002 ont alors décidés collectivement de faire évoluer SBML vers un niveau 2. La première version de la spécification de la Version 1 de niveau 2 est sortie en août 2002, et le jeu final de fonctionnalités a été finalisé en mai 2003 lors de l'atelier 7 sur les plates-formes logicielles pour la biologie des systèmes à ft. Lauderdale, en Floride.

Cependant le passage effectif à l'itération suivante de SBML pris plusieurs années, en partie parce que les développeurs de logiciels ont demandés du temps pour absorber et comprendre SBML niveau 2 qui était bien plus complexe que le niveau 1. SBML niveau 2 Version 2 fut publié finalement en septembre 2006. À cette époque, l'équipe de rédacteurs de SBML (qui compile les propositions de modification et rédige le document de spécification final) avait évoluée et se composait alors de Andrew Finney, Michael Hucka et Nicolas Le Novère.

Niveau 2, version 3[modifier | modifier le code]

SBML Niveau 2 Version 3 a été publiée en 2007, après d'innombrables contributions et discussions avec la communauté SBML. 2007 a également vu l'élection de deux éditeurs de SBML dans le cadre de la mise en place de l'organisation moderne de SBML.

Niveau 2, version 4[modifier | modifier le code]

SBML Niveau 2 Version 4 a été publié en 2008, après que certaines modifications de Niveau 2 est été demandées. Par exemple, un vote électronique par la communauté SBML fin 2007 indiquait qu'une majorité préférait ne pas exiger une cohérence stricte pour qu'un modèle SBML est considéré comme valide. La Version 4 a été finalisée après la réunion du Forum de SBML tenu à Göteborg, en Suède, un atelier satellite du CIPE 2008 à l'automne 2008[10].

Niveau 3[modifier | modifier le code]

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évision 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[modifier | modifier le code]

SBML est parfois incorrectement supposé être limité uniquement aux modèles biochimiques parce que les publications originales et les premiers logiciels étaient axés sur ce domaine. En réalité, bien que les aspects centraux de SBML sont en effet axées sur les processus comme réaction 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 de SBML représenter beaucoup plus de réactions que seulement les 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 chez dans la base de données BioModels (en).

Objectifs[modifier | modifier le code]

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é et publiée sous une forme que les autres chercheurs peuvent utiliser même lorsque qu'ils travaillent avec des environnements différents logiciels ;
  • 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[11].

Principales fonctionnalités[modifier | modifier le code]

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é, le jeu qui ressemble à une interprétation détaillée des équations de réaction chimique (si le modèle utilise les réactions) ainsi que les équations explicites en option (encore une fois, si le modèle utilise celles_ci) ; la représentation de SBML délibérément ne transcrit pas le modèle directement dans un ensemble d'équations différentielles ou autre interprétation spécifique du modèle. 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[modifier | modifier le code]

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 6 octobre 2010
  • Niveau 2 Version 4 Release 1
  • Niveau 1 Version 2

Les infrastructure 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[modifier | modifier le code]

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.
  • Espèce : un pool d'entités du même type d'espèce situé dans un compartiment spécifique.
  • Paramètre : une quantité avec un nom symbolique. 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[modifier | modifier le code]

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>
                   
                        <apply>
                            <times/>
                            <ci>ka</ci>
                            <ci>A</ci>
                            <ci>B</ci>
                        </apply>
                    
               </kineticLaw>
               <annotation>
               </annotation>
           </reaction>
           <reaction id="Reaction2" reversible="false">
               <listOfReactants>
                   <speciesReference species="C"/>
               </listOfReactants>
               <listOfProducts>
                   <speciesReference species="A"/>
                   <speciesReference species="B"/>
               </listOfProducts>
               <kineticLaw>
                   
                        <apply>
                            <times/>
                            <ci>kd</ci>
                            <ci>C</ci>
                        </apply>
                    
               </kineticLaw>
           </reaction>
           <listOfReactions>
   </model>

>

Communauté sbml.org[modifier | modifier le code]

À partir de décembre 2010, plus de 200 systèmes logiciels incorporent SBML. Une liste à jour est disponible sous forme de Guide des logiciels compatibles SBML, hébergé sur sbml.org.

SBML.org a été et continue d'être développé par la communauté des développeurs de plates-formes logicielles pour la biologie système, 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 pour intégrer SBML logiciel programmé en C, C++, Java, Python, Mathematica, MATLAB et d'autres langages informatiques, qui sont développés en partie par l'équipe de SBML et en partie par la collectivité SBML.

SBML est du type IETF MIME officiel, spécifié par RFC 3823[12].

Voir aussi[modifier | modifier le code]

Références[modifier | modifier le code]

  1. DOI:10.1093/bioinformatics/btg015
    Cette citation sera générée dans quelques minutes. Vous pouvez sauter la queue ou la compléter à la main
  2. DOI:10.1042 / BST0311472
    Cette citation sera générée dans quelques minutes. Vous pouvez sauter la queue ou la compléter à la main
  3. a et b DOI:10.1049 / sb:20045008
    Cette citation sera générée dans quelques minutes. Vous pouvez sauter la queue ou la compléter à la main
  4. « histoire de SBML » (consulté le 3 janvier 2010)
  5. bionet.metabolic-reg, « annonce : Portable métabolique binaire Standard » (consulté le 13 décembre 2010)
  6. DOI:10.1016/j.jtbi.2007.10.023
    Cette citation sera générée dans quelques minutes. Vous pouvez sauter la queue ou la compléter à la main
  7. SBML Team, « le 1er atelier de travail sur les plates-formes logicielles pour la biologie des systèmes » (consulté le 3 décembre 2010)
  8. SBML Team, « 2e atelier sur les plates-formes logicielles pour la biologie des systèmes » (consulté le 13 décembre 2010)
  9. SBML Team, « 5e atelier sur les plates-formes logicielles pour la biologie des systèmes » (consulté le 3 janvier 2010)
  10. SBML Team, « le 13ème Forum SBML » (consulté le 3 janvier 2010)
  11. Infrastructure logicielle pour une Communication efficace et de réutiliser des modèles de calcul, MIT Press, 2006
  12. « Type de média MIME pour le langage de balisage biologie (SBML) systèmes. »,‎ 2004 (consulté le 3 janvier 2010)

Liens externes[modifier | modifier le code]