Введение

CellML — это язык разметки на основе XML для описания математических моделей. Хотя теоретически он может описывать любую математическую модель, он был изначально разработан с учетом проекта Physiome и поэтому в основном используется для описания моделей, относящихся к области биологии. Это отражено в его названии CellML, хотя это просто название, а не аббревиатура. CellML набирает популярность как переносимый формат описания вычислительных моделей, и группы по всему миру используют CellML для моделирования или разработки программных инструментов, основанных на CellML. CellML схож с языком разметки системной биологии SBML, но обеспечивает более широкие возможности для модульности и повторного использования моделей и не ограничивается описанием биохимии.

История

Язык CellML возник из необходимости обмена моделями динамики сердечных клеток между исследователями в различных научных центрах по всему миру. Первоначальная рабочая группа, сформированная в 1998 году, состояла из Дэвида Булливанта, Уоррена Хедли и Поула Нильсена; все трое в то время были сотрудниками кафедры инженерных наук Оклендского университета. Язык был разработан на основе спецификации XML, разработанной консорциумом World Wide Web Consortium – решение об использовании XML было принято на основании рекомендаций Уоррена Хедли и Андре (Дэвида) Никерсона в конце 1998 года. Для описания математических выражений (MathML), метаданных (RDF) и связей между ресурсами (XLink) использовались существующие языки, основанные на XML. Рабочая группа CellML впервые узнала о проекте SBML в конце 2000 года, когда Уоррен Хедли посетил 2-й семинар по программным платформам для системной биологии в Токио. Рабочая группа сотрудничала с рядом исследователей из компании Physiome Sciences Inc. (в частности, Мелани Нельсон, Скотт Летт, Марк Грелингер, Прасад Рамакришна, Джереми Райс, Адам Музикант и Кам Чуен Джим) для разработки первоначальной спецификации CellML 1.0, которая была опубликована 11 августа 2001 года. За этим первым проектом последовали спецификации для метаданных CellML и обновление CellML, позволяющее структурированно вкладывать модели с добавлением элемента <import>. Компания Physiome Sciences Inc. также разработала первое программное обеспечение, поддерживающее CellML. Национальный ресурс для анализа и моделирования клеток (NRCAM) при Центре здравоохранения Университета Коннектикута также разработал раннее программное обеспечение, поддерживающее CellML, под названием Virtual Cell. В 2002 году была разработана спецификация CellML 1.1, в которую были добавлены импорты. Импорты обеспечивают возможность включения внешних компонентов в модель, что позволяет создавать модульные модели. Эта спецификация была окончательно утверждена в начале 2006 года. Работа над метаданными и другими спецификациями продолжается. В июле 2009 года веб-сайт CellML был полностью обновлен, и была выпущена начальная версия нового программного обеспечения для репозитория CellML (PMR2).

Структура модели CellML

Модель CellML состоит из ряда компонентов, каждый из которых описан в своем собственном элементе component. Компонент может быть полностью концептуальной сущностью, созданной для удобства моделирования, или он может иметь некоторую реальную физическую интерпретацию (например, представлять клеточную мембрану). Каждый компонент содержит ряд переменных, которые должны быть объявлены путем размещения элемента variable внутри компонента. Например, компонент, представляющий клеточную мембрану, может содержать переменную V, представляющую разность потенциалов (напряжение) на клеточной мембране. Математические соотношения между переменными выражаются внутри компонентов с использованием MathML. MathML используется для создания декларативных выражений (в отличие от процедурных инструкций, как в языке программирования). Однако большинство программного обеспечения для обработки CellML принимает лишь ограниченный набор математических выражений (например, некоторые средства обработки требуют уравнений с одной переменной в одной части равенства). Использование MathML делает CellML особенно подходящим для описания моделей, содержащих дифференциальные уравнения. Механизма для выражения стохастических моделей или любой другой формы случайности не предусмотрено. Компоненты могут быть соединены друг с другом с помощью элемента connection, который описывает имена двух соединяемых компонентов и переменные в первом компоненте, соответствующие переменным во втором компоненте. Такие соединения означают, что переменная в одном компоненте эквивалентна другой переменной в другом компоненте. Модели CellML также позволяют выражать отношения между компонентами. Спецификация CellML определяет два типа отношений: инкапсуляцию и включение, однако пользователь может определить и другие. Отношение включения используется для указания того, что один компонент физически находится внутри другого. Отношение инкапсуляции особенно важно, поскольку это единственное отношение, влияющее на интерпретацию остальной части модели. Эффект инкапсуляции заключается в том, что компоненты, инкапсулированные под другими компонентами, являются приватными и доступны только компоненту, расположенному непосредственно выше в дереве инкапсуляции. Моделист может использовать инкапсуляцию как концептуальный инструмент, и она не обязательно должна иметь физическую интерпретацию.

Технические характеристики

CellML определяется основными спецификациями, а также дополнительными спецификациями для метаданных, которые используются для аннотирования моделей и задания параметров моделирования.

CellML 1.0 (клетка с изменением)

CellML 1.0 была первой завершенной спецификацией и используется для описания многих моделей в Репозитории моделей CellML. CellML 1.0 содержит специальные элементы, предназначенные для биохимии, для описания роли переменных в моделях реакций.

КлеткаML 1.1

В CellML 1.1 была добавлена возможность импорта компонентов и единиц измерения. Для полной поддержки этой функции переменные в CellML 1.1 могут принимать имена переменных в качестве начальных значений.

Спецификации метаданных

CellML имеет несколько спецификаций метаданных, используемых для аннотирования моделей или предоставления информации для запуска и/или визуализации результатов моделирования. Спецификация метаданных версии 1.0 используется для аннотирования моделей разнообразной информацией, включая соответствующие ссылки, сведения об авторстве и виды, к которым применима модель, и многое другое. Метаданные моделирования содержат информацию, необходимую для воспроизведения конкретных симуляций с использованием модели CellML. Графические метаданные предоставляют информацию, необходимую для задания конкретных способов визуализации результатов моделирования, например, для воспроизведения определенного графика из научной публикации.

CellML.org (англ.) (недоступная ссылка)

CellML.org стремится стать центральным узлом для сообщества CellML. Участники могут предлагать, рецензировать и обновлять модели, а также получать отзывы и помощь от других участников. Список рассылки для обсуждения CellML можно найти по адресу CellML discussion mailing list. Область действия этого списка рассылки охватывает все аспекты разработки и использования CellML. Репозиторий, содержащий несколько сотен биологических моделей, закодированных в CellML, доступен на веб-сайте сообщества CellML по адресу CellML Model Repository. Эти модели активно проходят процесс курации, направленный на добавление аннотаций с использованием биологических онтологий, таких как Gene Ontology, и на проверку соответствия моделей стандартам баланса единиц измерения и биофизическим ограничениям, таким как сохранение массы, заряда и энергии.