Расширение имени файла | .xml, .sbml |
---|---|
Тип интернет-СМИ | приложение/sbml+xml |
Первоначальный выпуск | 2 марта 2001 г ( 2001-03-02 ) |
Последний релиз | SBML Level 3 Version 2 Core, Release 2 26 апреля 2019 г ( 2019-04-26 ) |
Тип формата | Язык разметки |
Расширенный от | XML |
Открытый формат ? | Да |
Веб-сайт | sbml.org |
Язык разметки системной биологии ( SBML ) — это формат представления, основанный на XML , для передачи и хранения вычислительных моделей биологических процессов. [1] Это свободный и открытый стандарт с широкой поддержкой программного обеспечения и сообществом пользователей и разработчиков. SBML может представлять множество различных классов биологических явлений , включая метаболические сети , клеточные сигнальные пути, регуляторные сети , инфекционные заболевания и многие другие. [2] [3] [4] Он был предложен в качестве стандарта для представления вычислительных моделей в системной биологии сегодня. [4]
В конце 1999 года и начале 2000 года при финансировании со стороны Японской корпорации по науке и технологиям (JST) Хироаки Китано и Джон К. Дойл собрали небольшую группу исследователей для работы над разработкой лучшей программной инфраструктуры для вычислительного моделирования в системной биологии . Хамид Болури был лидером группы разработчиков, в которую входили Эндрю Финни, Герберт Сауро и Майкл Хака. [5] Болури определил необходимость в фреймворке для обеспечения взаимодействия и обмена между различными системами программного обеспечения для моделирования биологии, существовавшими в конце 1990-х годов, и организовал неформальный семинар в декабре 1999 года в Калифорнийском технологическом институте для обсуждения этого вопроса. На этом семинаре присутствовали группы, ответственные за разработку DBSolve, E-Cell, Gepasi, Jarnac, StochSim и The Virtual Cell. Отдельно, ранее в 1999 году, некоторые члены этих групп также обсуждали создание переносимого формата файла для моделей метаболических сетей в группе BioThermoKinetics (BTK). [6] [7] Те же группы, которые присутствовали на первом семинаре Caltech, снова встретились 28–29 апреля 2000 года на первом из недавно созданных циклов встреч под названием Workshop on Software Platforms for Systems Biology . [8] Во время второго семинара стало ясно, что необходим общий формат представления модели для обеспечения обмена моделями между программными инструментами в рамках любой функционирующей структуры взаимодействия, и участники семинара решили, что формат должен быть закодирован в XML .
Команда ERATO из Калтеха разработала предложение для этого формата на основе XML и распространила проект определения среди участников 2-го семинара по программным платформам для системной биологии в августе 2000 года. Этот проект подвергся широкому обсуждению в списках рассылки и во время 2-го семинара по программным платформам для системной биологии [9], состоявшегося в Токио , Япония, в ноябре 2000 года в качестве дополнительного семинара конференции ICSB 2000. После дальнейших доработок, обсуждений и программных реализаций команда Калтеха выпустила спецификацию для SBML уровня 1, версии 1 в марте 2001 года.
SBML Level 2 был задуман на 5-м семинаре по программным платформам для системной биологии, состоявшемся в июле 2002 года в Университете Хартфордшира , Великобритания. [10] К этому времени было вовлечено гораздо больше людей, чем первоначальная группа соавторов SBML, и продолжающаяся эволюция SBML стала более масштабным общественным усилием, при этом было улучшено множество новых инструментов для поддержки SBML. Участники семинара в 2002 году коллективно решили пересмотреть форму SBML в Level 2. Первый проект спецификации Level 2 Version 1 был выпущен в августе 2002 года, а окончательный набор функций был завершен в мае 2003 года на 7-м семинаре по программным платформам для системной биологии в Форт-Лодердейле , Флорида.
Следующая итерация SBML заняла два года отчасти потому, что разработчикам программного обеспечения требовалось время для освоения и понимания более крупного и сложного SBML Level 2. Неизбежное обнаружение ограничений и ошибок привело к разработке SBML Level 2 Version 2, выпущенной в сентябре 2006 года. К этому времени команда редакторов SBML (которые согласовывают предложения по изменениям и пишут согласованный окончательный документ спецификации) изменилась и теперь состояла из Эндрю Финни, Майкла Хака и Николя Ле Новера.
SBML Level 2 Version 3 был опубликован в 2007 году после многочисленных вкладов и обсуждений с сообществом SBML. В 2007 году также были избраны еще два редактора SBML в рамках введения современной организации редакторов SBML в контексте процесса разработки SBML.
SBML Level 2 Version 4 был опубликован в 2008 году после того, как определенные изменения в Level 2 были запрошены по многочисленным просьбам. (Например, электронное голосование сообщества SBML в конце 2007 года показало, что большинство предпочло не требовать строгой согласованности единиц, прежде чем модель SBML будет считаться действительной.) Версия 4 была завершена после встречи SBML Forum, состоявшейся в Гетеборге , Швеция, в качестве дополнительного семинара ICSB 2008 осенью 2008 года. [11]
SBML Level 3 Version 1 Core был опубликован в окончательном виде в 2010 году после продолжительного обсуждения и доработки редакторами SBML и сообществом SBML. Он содержит многочисленные существенные изменения в синтаксисе и конструкциях из Level 2 Version 4, но также представляет собой новую модульную базу для дальнейшего расширения функций и возможностей SBML в будущем.
SBML Level 2 Version 5 был опубликован в 2015 году. Эта редакция включала ряд текстовых (но не структурных) изменений в ответ на отзывы пользователей, тем самым обращаясь к списку опечаток, собранных за многие годы для спецификации SBML Level 2 Version 4. Кроме того, в версии 5 появилась возможность использовать вложенные аннотации в формате аннотаций SBML (формат аннотаций, основанный на подмножестве RDF ) .
Иногда ошибочно полагают, что SBML ограничен только моделями биохимических сетей, поскольку оригинальные публикации и раннее программное обеспечение были сосредоточены на этой области. В действительности, хотя центральные особенности SBML действительно ориентированы на представление химических реакций, которые действуют на сущности, этот же формализм служит аналогично для многих других типов процессов; более того, SBML имеет языковые особенности, поддерживающие прямое выражение математических формул и прерывистых событий отдельно от процессов реакции, что позволяет SBML представлять гораздо больше, чем только биохимические реакции. Доказательства возможности использования SBML для чего-то большего, чем просто описания биохимии, можно увидеть в разнообразии моделей, доступных в базе данных BioModels .
SBML имеет три основные цели:
SBML не является попыткой определить универсальный язык для количественных моделей. Цель SBML — служить lingua franca — форматом обмена, используемым различными современными программными инструментами для передачи существенных аспектов вычислительной модели. [12]
SBML может кодировать модели, состоящие из сущностей (называемых видами в SBML), на которые воздействуют процессы (называемые реакциями ). Важный принцип заключается в том, что модели разлагаются на явно обозначенные составные элементы, набор которых напоминает многословное представление уравнений химических реакций (если модель использует реакции) вместе с необязательными явными уравнениями (опять же, если модель использует их); представление SBML намеренно не приводит модель непосредственно к набору дифференциальных уравнений или другой конкретной интерпретации модели. Эта явная, не зависящая от фреймворка моделирования декомпозиция упрощает для программного инструмента интерпретацию модели и перевод формы SBML в любую внутреннюю форму, которую фактически использует инструмент.
Пакет программного обеспечения может считывать описание модели SBML и переводить его в свой внутренний формат для анализа модели. Например, пакет может предоставлять возможность моделировать модель, строя дифференциальные уравнения, а затем выполнять численное интегрирование по времени для уравнений, чтобы исследовать динамическое поведение модели. Или, в качестве альтернативы, пакет может строить дискретное стохастическое представление модели и использовать метод моделирования Монте-Карло , такой как алгоритм Джиллеспи .
SBML позволяет представлять модели произвольной сложности. Каждый тип компонента в модели описывается с использованием определенного типа структуры данных, которая организует соответствующую информацию. Структуры данных определяют, как полученная модель кодируется в XML.
В дополнение к элементам выше, еще одной важной особенностью SBML является то, что к каждой сущности могут быть прикреплены машиночитаемые аннотации. Эти аннотации могут использоваться для выражения отношений между сущностями в данной модели и сущностями во внешних ресурсах, таких как базы данных. Хорошим примером ценности этого является база данных BioModels, где каждая модель аннотируется и связывается с соответствующими ресурсами данных, такими как публикации, базы данных соединений и путей, контролируемые словари и многое другое. С аннотациями модель становится больше, чем просто представлением математической конструкции — она становится семантически обогащенной структурой для передачи знаний. [13] [14]
SBML определяется в Уровнях : совместимые снизу вверх спецификации, которые добавляют функции и выразительную силу. Программные инструменты, которые не нуждаются или не могут поддерживать сложность более высоких Уровней, могут продолжать использовать более низкие Уровни; инструменты, которые могут читать более высокие Уровни, гарантированно также смогут интерпретировать модели, определенные на более низких Уровнях. Таким образом, новые Уровни не заменяют предыдущие. Однако каждый Уровень может иметь несколько Версий внутри себя, и новые Версии Уровня заменяют старые Версии того же Уровня.
В настоящее время определены три уровня SBML. Текущие версии в пределах этих уровней следующие:
Инфраструктура программного обеспечения с открытым исходным кодом, такая как libSBML и JSBML, позволяет разработчикам поддерживать все уровни SBML в своем программном обеспечении с минимальными усилиями.
Команда SBML поддерживает публичный трекер проблем, где читатели могут сообщать об ошибках или других проблемах в документах спецификации SBML. Сообщенные проблемы в конечном итоге помещаются в список официальных исправлений, связанных с каждым выпуском спецификации. Списки исправлений документируются на странице спецификаций SBML.org.
Разработка SBML Level 3 ведется по модульному принципу. Спецификация Core представляет собой полный формат, который может использоваться отдельно. Дополнительные пакеты Level 3 могут быть наложены на это ядро для предоставления дополнительных, необязательных функций.
Пакет Hierarchical Model Composition, известный как « comp », был выпущен в ноябре 2012 года. Этот пакет предоставляет возможность включать модели в качестве подмоделей в другую модель. Цель состоит в том, чтобы поддержать способность разработчиков моделей и программных инструментов делать такие вещи, как (1) разбивать большие модели на более мелкие, как способ управления сложностью; (2) включать несколько экземпляров заданной модели в одну или несколько включающих моделей, чтобы избежать буквального дублирования повторяющихся элементов; и (3) создавать библиотеки повторно используемых, проверенных моделей, во многом как это делается в разработке программного обеспечения и других областях инженерии. Спецификация стала кульминацией многолетних обсуждений большого количества людей.
Пакет Flux Balance Constraints (под названием « fbc ») был впервые выпущен в феврале 2013 года. Изменения импорта были введены как часть версии 2, [15] выпущенной в сентябре 2015 года. Пакет « fbc » обеспечивает поддержку моделирования на основе ограничений, [16] часто используемого для анализа и изучения биологических сетей как в малых, так и в больших масштабах. [17] Этот пакет SBML использует стандартные компоненты из базовой спецификации SBML уровня 3, включая виды и реакции, и расширяет их дополнительными атрибутами и структурами, чтобы позволить разработчикам моделей определять такие вещи, как границы потоков и функции оптимизации.
Пакет Qualitative Models или " qual " для SBML Level 3 был выпущен в мае 2013 года. Этот пакет поддерживает представление моделей, в которых отсутствуют глубокие знания биохимических реакций и их кинетики и необходимо использовать качественный подход. Примерами явлений, которые были смоделированы таким образом, являются сети регуляции генов [18] и сигнальные пути [19] , основывающие структуру модели на определении регуляторных или влияющих графов. Определение и использование некоторых компонентов этого класса моделей отличаются от способа определения и использования видов и реакций в основных моделях SBML. Например, качественные модели обычно связывают дискретные уровни активности с пулами сущностей; следовательно, процессы, включающие их, не могут быть описаны как реакции per se, а скорее как переходы между состояниями. Эти системы можно рассматривать как реактивные системы, динамика которых представлена с помощью графов переходов состояний (или других структур Крипке [20] ), в которых узлы являются достижимыми состояниями, а ребра - переходами состояний.
Пакет макетов SBML возник как набор соглашений об аннотациях, используемых в SBML Level 2. Он был представлен на SBML Forum в Сент-Луисе в 2004 году. [21] Ральф Гейджес написал спецификацию [22] и предоставил реализацию, которая широко использовалась. Это первоначальное определение было переформулировано как пакет SBML Level 3, а спецификация была официально выпущена в августе 2013 года.
Пакет SBML Level 3 Layout предоставляет спецификацию того, как представлять сеть реакций в графической форме. Таким образом, он лучше приспособлен к задаче, чем использование произвольного рисунка или графика. Пакет SBML Level 3 имеет дело только с информацией, необходимой для определения положения и других аспектов макета графика; дополнительные детали, необходимые для завершения графика, а именно, как визуальные аспекты должны быть отображены, являются компетенцией отдельного пакета SBML Level 3, называемого Rendering (прозванного « render »). По состоянию на ноябрь 2015 года доступен проект спецификации для пакета « render », но он еще не был официально завершен. [23]
Разработка пакетов SBML уровня 3 осуществляется таким образом, что спецификации проверяются и реализации предпринимаются в процессе разработки. Как только спецификация становится стабильной и есть две реализации, которые ее поддерживают, пакет считается принятым. Все пакеты, описанные выше, достигли стадии принятия. В таблице ниже дается краткий обзор пакетов, которые в настоящее время находятся на стадии разработки.
Имя пакета | Этикетка | Описание |
---|---|---|
Массивы | массивы | Поддержка выражения массивов компонентов |
Распределения | дистриб | Поддержка моделей кодирования, которые выбирают значения из статистических распределений или определяют статистику, связанную с числовыми значениями. |
Динамика | дин | Поддержка создания и уничтожения сущностей во время симуляции |
Группы | группы | Средство группировки элементов |
Многосостоянные и многокомпонентные виды | много | Структуры объектов для представления пулов сущностей с несколькими состояниями, состоящих из нескольких компонентов, а также правила реакции с их участием |
Рендеринг | оказывать | Поддержка определения графических символов и глифов, используемых в диаграмме модели; дополнение к пакету макета |
Обязательные элементы | требование | Поддержка детальной индикации элементов SBML, которые были изменены из-за присутствия другого пакета |
Пространственные процессы | пространственный | Поддержка описания процессов, включающих пространственный компонент, и описания задействованных геометрий |
Определение модели в SBML уровней 2 и 3 состоит из списков одного или нескольких из следующих компонентов:
SBML — это в первую очередь формат для обмена моделями системной биологии между программными средствами моделирования или для архивирования моделей в репозиториях, таких как BiGG, BioModels или JWS Online. Поскольку SBML закодирован в XML и, в частности, использует MathML для представления математики, этот формат не является читаемым человеком. В результате другие группы разработали читаемые человеком форматы, которые можно преобразовывать в SBML и из него.
Сокращение SBML — это спецификация и связанный с ней инструментарий Python для взаимного преобразования SBML и сокращенной нотации. Формат был разработан группой системной биологии из Ньюкасла (Великобритания) где-то до 2006 года. [24] Его цель состояла в том, чтобы позволить разработчикам моделей быстрее создавать модели без необходимости писать необработанный XML или использовать инструменты GUI. Предоставляются два инструмента Python: mod2sbml.py и sbml2mod.py. Для помощи в преобразовании требуется пакет libSBML для Python. В настоящее время SBML-shorthand поддерживает SBML Level 3, версию 1.
Следующий код представляет собой пример использования SBML-сокращения для описания простого механизма фермент-субстрат.
@compartments cell = 1 @species cell : Substrate = 10 cell : Enzyme = 5 cell : Complex = 0 cell : Product = 0 @parameters k1 = 1 k1r = 2 @reactions @rr = Binding Substrate + Enzyme -> Complex k1 * Substrate * Enzyme - k1r * Complex @r = Conversion Complex -> Product + Enzyme kcat * Complex : kcat = 3
Antimony основан на более раннем DSL, реализованном в приложении моделирования Jarnac. [25] Оно, в свою очередь, было основано на приложении моделирования SCAMP [26], которое в конечном итоге черпало вдохновение из языка DSL, разработанного Дэвидом Гарфинкелем для симулятора BIOSIM. [27]
Как и SBML-сокращения, Antimony обеспечивает упрощенное текстовое представление SBML. Он использует минимум знаков препинания, что делает текст более легким для чтения и понимания. Он также позволяет пользователям добавлять комментарии. Antimony реализован с использованием C/C++ [28] и Bison в качестве грамматического анализатора. Однако дистрибутив также включает привязки Python, которые можно установить с помощью pip, чтобы упростить его использование из Python. Он также доступен через пакет Tellurium. [29] Совсем недавно была создана версия JavaScript/WASM [30] , которая позволяет использовать язык Antimony в Интернете. Инструмент веб-сайта makesbml использует версию Javascript. [31] Antimony поддерживает SBML Level 3, версию 2. Antimony также поддерживает следующие пакеты SBML: Hierarchical Model Composition, Flux Balance Constraints и Distributions.
Следующий пример иллюстрирует использование сурьмы для описания простой модели ферментативной кинетики:
связывание : Субстрат + Фермент -> Комплекс ; k1 * Субстрат * Фермент - k1r * Комплекс ; Преобразование : Комплекс -> Продукт + Фермент ; kcat * Комплекс ; // Инициализация видов Субстрат = 10 ; Фермент = 5 ; Комплекс = 0 ; Продукт = 0 ; // Инициализация переменных k1 = 1 ; k1r = 2 ; kcat = 3 ;
По состоянию на февраль 2020 года около 300 программных систем рекламируют поддержку SBML. Текущий список доступен в форме SBML Software Guide, размещенного на SBML.org.
SBML разрабатывался и продолжает разрабатываться сообществом людей, создающих программные платформы для системной биологии, посредством активных списков обсуждений по электронной почте и двухгодичных семинаров. Встречи часто проводятся совместно с другими биологическими конференциями, особенно с Международной конференцией по системной биологии (ICSB). Усилия сообщества координируются выборной редакционной коллегией, состоящей из пяти членов. Каждый редактор избирается на 3-летний невозобновляемый срок.
Такие инструменты, как онлайн-валидатор моделей, а также библиотеки с открытым исходным кодом для включения SBML в программное обеспечение, запрограммированное на языках C , C++ , Java , Python , Mathematica , MATLAB и других, разрабатываются частично командой SBML, а частично — более широким сообществом SBML. [32]
SBML — официальный тип MIME IETF , определенный в RFC 3823. [33]
{{cite conference}}
: CS1 maint: несколько имен: список авторов ( ссылка ){{cite conference}}
: CS1 maint: несколько имен: список авторов ( ссылка )