| システム生物学マークアップ言語 (SBML) | |
|---|---|
| ファイル名拡張子 | .xml、.sbml |
| インターネットメディアタイプ | application/sbml+xml |
| 初回リリース | 2001年3月2日 (2001年3月2日) |
| 最新リリース | SBMLレベル3バージョン2コア、リリース2 2019年4月26日 ( 2019-04-26 ) |
| フォーマットの種類 | マークアップ言語 |
| 拡張 | XML |
| オープンフォーマット? | はい |
| ウェブサイト | sbml.org |
システム生物学マークアップ言語(SBML )は、XMLに基づいた、生物学的プロセスの計算モデルの通信と保存のための表現形式です。[ 1 ] SBMLは、広範なソフトウェアサポートとユーザーおよび開発者のコミュニティを持つ、無料のオープンスタンダードです。SBMLは、代謝ネットワーク、細胞シグナル伝達経路、制御ネットワーク、感染症など、多くの異なるクラスの生物学的現象を表現できます。[ 2 ] [ 3 ] [ 4 ] SBMLは、今日のシステム生物学における計算モデルを表現するための標準として提案されています。[ 4 ]
1999 年後半から 2000 年初頭にかけて、科学技術振興事業団 (JST) の資金提供を受けて、北野宏明とJohn C. Doyle は小規模な研究者チームを結成し、システム生物学の計算モデリングのためのより優れたソフトウェア インフラストラクチャの開発に取り組みました。Hamid Bolouri が開発チームのリーダーを務め、メンバーは Andrew Finney、Herbert Sauro、Michael Hucka でした。[ 5 ] Bolouri は、1990 年代後半に存在していたさまざまな生物学シミュレーション ソフトウェア システム間での相互運用性と共有を可能にするフレームワークの必要性を認識し、1999 年 12 月にカリフォルニア工科大学でその件について議論する非公式のワークショップを開催しました。このワークショップには、DBSolve、E-Cell、Gepasi、Jarnac、StochSim、The Virtual Cell の開発を担当したグループが出席しました。これとは別に、1999 年の初めには、これらのグループのメンバーの一部が BioThermoKinetics (BTK) グループの代謝ネットワーク モデル用のポータブル ファイル形式の作成についても議論していました。[ 6 ] [ 7 ]最初の Caltech ワークショップに出席した同じグループが、2000 年 4 月 28 ~ 29 日に、新たに作成された「システム生物学用ソフトウェア プラットフォームのワークショップ」と呼ばれる一連の会議の最初の会議で再び会合しました。[ 8 ] 2 回目のワークショップでは、機能する相互運用性フレームワークの一部としてソフトウェア ツール間でモデルを交換できるようにするには共通のモデル表現形式が必要であることが明らかになり、ワークショップの参加者は形式をXMLでエンコードすべきであると決定しました。
Caltech ERATOチームは、このXMLベースのフォーマットの提案を作成し、2000年8月に開催された第2回システム生物学ソフトウェアプラットフォームワークショップの参加者に定義案を配布しました。この定義案は、メーリングリストや、 2000年11月に東京で開催されたICSB 2000会議のサテライトワークショップである第2回システム生物学ソフトウェアプラットフォームワークショップ[ 9 ]において、活発な議論が行われました。その後の改訂、議論、ソフトウェア実装を経て、Caltechチームは2001年3月にSBMLレベル1、バージョン1の仕様を発表しました。
SBMLレベル2は、2002年7月に英国ハートフォードシャー大学で開催された第5回システム生物学用ソフトウェアプラットフォームに関するワークショップで考案されました。 [ 10 ]この時までに、最初のSBML協力者グループよりもはるかに多くの人々が関与し、SBMLの継続的な進化は、多くの新しいツールがSBMLをサポートするように拡張され、より大きなコミュニティの取り組みとなりました。2002年のワークショップの参加者は共同で、レベル2でSBMLの形式を改訂することを決定しました。レベル2バージョン1仕様の最初のドラフトは2002年8月にリリースされ、最終的な機能セットは、フロリダ州フォートローダーデールで開催された第7回システム生物学用ソフトウェアプラットフォームに関するワークショップで2003年5月に完成しました。
SBML の次のイテレーションには 2 年かかりました。その理由の 1 つは、ソフトウェア開発者が、より大規模で複雑な SBML レベル 2 を吸収して理解するための時間を要求したためです。制限とエラーが必然的に発見されたことで、2006 年 9 月に SBML レベル 2 バージョン 2 が開発されました。このときまでに、SBML エディター チーム (変更の提案を調整し、一貫性のある最終仕様書を作成する) は変更され、Andrew Finney、Michael Hucka、および Nicolas Le Novère で構成されていました。
SBML レベル 2 バージョン 3 は、SBML コミュニティによる数え切れないほどの貢献と議論を経て、2007 年に公開されました。2007 年には、SBML 開発プロセスの文脈における最新の SBML エディター組織の導入の一環として、さらに 2 人の SBML エディターが選出されました。
SBMLレベル2バージョン4は、レベル2にいくつかの変更が一般からの要望により求められた後、2008年に公開されました。(例えば、2007年後半に行われたSBMLコミュニティによる電子投票では、SBMLモデルが有効であると判断される前に厳密な単位の一貫性を要求しないことを大多数が望んだことが示されました。)バージョン4は、2008年秋にICSB 2008のサテライトワークショップとしてスウェーデンのヨーテボリで開催されたSBMLフォーラム会議後に完成しました。 [ 11 ]
SBMLレベル3バージョン1コアは、SBMLエディターとSBMLコミュニティによる長期にわたる議論と改訂を経て、2010年に最終版として公開されました。レベル2バージョン4から構文と構成に多くの重要な変更が加えられているだけでなく、将来に向けてSBMLの機能と可能性を継続的に拡張するための新たなモジュールベースも提供しています。
SBMLレベル2バージョン5は2015年に公開されました。この改訂版には、ユーザーからのフィードバックに応えて、テキスト(構造上の変更は含みません)の変更がいくつか含まれており、これにより、長年にわたりSBMLレベル2バージョン4仕様に対して収集されてきた正誤表のリストが修正されました。さらに、バージョン5では、SBMLのアノテーション形式(RDFのサブセットに基づくアノテーション形式)内でネストされたアノテーションを使用する機能が導入されました。
SBMLは、初期の出版物やソフトウェアが生化学ネットワークモデルに特化していたため、その適用範囲が生化学ネットワークモデルに限定されていると誤解されることがあります。しかし実際には、SBMLの中核機能は実体に作用する化学反応のようなプロセスを表現することに重点が置かれていますが、この形式論は他の多くの種類のプロセスにも同様に当てはまります。さらに、SBMLは数式や反応プロセスとは別の不連続なイベントを直接表現できる言語機能を備えているため、生化学反応だけでなく、はるかに多くのものを表現できます。SBMLが生化学の記述以外にも活用できることの証拠は、BioModels Databaseで利用可能な多様なモデルに見ることができます。
SBMLには3つの主な目的があります。
SBMLは、定量モデルのための普遍的な言語を定義しようとするものではありません。SBMLの目的は、リンガフランカ、つまり、計算モデルの本質的な側面を伝えるために、様々な今日のソフトウェアツールで使用される交換フォーマットとして機能することです。[ 12 ]
SBMLは、プロセス(反応)によって作用される実体(SBMLでは種と呼ばれる)で構成されるモデルをエンコードできます。重要な原則は、モデルが明示的にラベル付けされた構成要素に分解されることです。構成要素の集合は、化学反応方程式(モデルが反応を使用する場合)の冗長な表現と、オプションの明示的な方程式(これもモデルがこれらを使用する場合)に似ています。SBML表現は、意図的にモデルを微分方程式の集合やその他の特定のモデルの解釈に直接変換しません。この明示的でモデリングフレームワークに依存しない分解により、ソフトウェアツールがモデルを解釈し、SBML形式をツールが実際に使用する内部形式に変換することが容易になります
ソフトウェアパッケージは、SBMLモデル記述を読み取り、それを独自の内部形式に変換してモデル解析を行うことができます。例えば、微分方程式を構築し、その方程式の数値時間積分を実行してモデルの動的挙動を調査する機能を提供するパッケージもあります。あるいは、モデルの離散確率的表現を構築し、 Gillespieアルゴリズムなどのモンテカルロシミュレーション手法を使用するパッケージもあります。
SBMLは、任意の複雑さのモデルを表現できます。モデル内の各コンポーネントは、関連情報を整理する特定のデータ構造を用いて記述されます。これらのデータ構造によって、結果として得られるモデルがXMLでどのようにエンコードされるかが決まります。
上記の要素に加えて、SBMLのもう一つの重要な特徴は、すべてのエンティティに機械可読な注釈を付けることができることです。これらの注釈は、特定のモデル内のエンティティとデータベースなどの外部リソース内のエンティティとの関係を表現するために使用できます。この利点の良い例として、BioModelsデータベースが挙げられます。このデータベースでは、すべてのモデルに注釈が付けられ、出版物、化合物およびパスウェイのデータベース、統制語彙などの関連データリソースにリンクされています。注釈によって、モデルは単なる数学的構成の表現ではなく、知識を伝達するための意味的に豊かなフレームワークになります。[ 13 ] [ 14 ]
SBMLは、機能と表現力を追加する上位互換性のある仕様であるレベルで定義されています。上位レベルの複雑さを必要としない、またはサポートできないソフトウェアツールは、下位レベルを使い続けることができます。上位レベルを読み取ることができるツールは、下位レベルで定義されたモデルも解釈できることが保証されています。したがって、新しいレベルは以前のレベルに取って代わることはありません。ただし、各レベルには複数のバージョンを含めることができ、あるレベルの新しいバージョンは同じレベルの古いバージョンに取っ て代わります
現在、SBMLには3つのレベルが定義されています。各レベルにおける現在のバージョンは次のとおりです。
libSBMLやJSBMLなどのオープンソース ソフトウェアインフラストラクチャにより、開発者は最小限の労力でソフトウェアで SBML のすべてのレベルをサポートできます。
SBMLチームは、読者がSBML仕様書のエラーやその他の問題を報告できる公開問題追跡システムを維持しています。報告された問題は、最終的に各仕様リリースに関連する公式エラッタリストに掲載されます。エラッタリストは、SBML.orgの仕様ページに掲載されています。
SBMLレベル3の開発はモジュール方式で進められてきました。[ 15 ] コア仕様は単独で使用できる完全なフォーマットです。追加のレベル3パッケージをこのコアの上に重ねることで、追加のオプション機能を提供できます
階層的モデル構成パッケージ(「comp」)は、2012年11月にリリースされました。このパッケージは、モデルを別のモデル内にサブモデルとして組み込む機能を提供します。その目的は、モデラーとソフトウェアツールが、(1) 複雑性を管理する方法として、大きなモデルを小さなモデルに分解する、(2) 特定のモデルの複数のインスタンスを1つ以上の包含モデルに組み込むことで、繰り返し要素の文字どおりの重複を回避する、(3) ソフトウェア開発やその他のエンジニアリング分野で行われているように、再利用可能でテスト済みのモデルのライブラリを作成する、といった機能をサポートすることです。この仕様は、長年にわたる多くの人々による議論の集大成です。
フラックスバランス制約パッケージ(愛称「fbc」)は、2013年2月に初めてリリースされました。インポートリビジョンは、2015年9月にリリースされたバージョン2 [ 16 ]の一部として導入されました。「fbc」パッケージは、制約ベースモデリング[ 17 ]のサポートを提供します。これは、小規模および大規模の両方で生物学的ネットワークの分析と研究に頻繁に使用されます[ 18 ] 。このSBMLパッケージは、種や反応を含むSBMLレベル3コア仕様の標準コンポーネントを使用し、追加の属性と構造で拡張することで、モデラーがフラックス境界や最適化関数などを定義できるようにします
SBMLレベル3の定性モデル、または「qual」パッケージは、2013年5月にリリースされました。このパッケージは、生化学反応とその速度論に関する詳細な知識が欠如しており、定性的なアプローチを使用しなければならないモデルの表現をサポートします。この方法でモデル化された現象の例としては、遺伝子制御ネットワーク[ 19 ] やシグナル伝達経路[ 20 ]などが挙げられ、モデル構造は制御グラフまたは影響グラフの定義に基づいています。このクラスのモデルの一部のコンポーネントの定義と使用法は、コアSBMLモデルにおける種や反応の定義および使用方法とは異なります。例えば、定性モデルは通常、個別の活動レベルをエンティティプールに関連付けます。したがって、それらを含むプロセスは、それ自体が反応として記述することはできず、状態間の遷移として記述されます。これらのシステムは、そのダイナミクスが状態遷移グラフ(またはその他のクリプキ構造[ 21 ])によって表現される反応システムと見なすことができます。状態遷移グラフでは、ノードは到達可能な状態であり、エッジは状態遷移です
SBMLレイアウトパッケージは、SBMLレベル2で使用可能な注釈規約のセットとして誕生しました。2004年にセントルイスで開催されたSBMLフォーラムで発表されました[ 22 ]。Ralph Gauges氏が仕様を策定し[ 23 ]、広く利用される実装を提供しました。このオリジナルの定義はSBMLレベル3パッケージとして再定式化され、2013年8月に正式に仕様が公開されました。
SBMLレベル3レイアウトパッケージは、反応ネットワークをグラフィカルな形式で表現するための仕様を提供します。したがって、任意の図やグラフを使用するよりも、タスクに適しています。SBMLレベル3パッケージは、グラフのレイアウトの位置やその他の側面を定義するために必要な情報のみを扱います。グラフを完成させるために必要な追加の詳細、すなわち視覚的な側面をどのようにレンダリングするかは、独立したSBMLレベル3パッケージ「レンダリング」(通称「レンダリング」)の管轄です。2015年11月現在、「レンダリング」パッケージのドラフト仕様は入手可能ですが、まだ正式には最終決定されていません。[ 24 ]
ルールベースモデリングは、分子成分間の相互作用ルール(分子内ドメイン、状態、結合状態、さらには空間コンパートメントを含む)を指定することにより、複雑な反応ネットワークの作成を容易にします。ワイルドカードなどの機能を使用することで、パターンは特定の特性を共有する分子複合体のファミリー全体を表現することができ、複数の成分、状態、コンパートメントを含むモデルを効率化します。SBMLレベル3マルチパッケージ(マルチステート、マルチコンポーネント、マルチコンパートメント種)バージョン1リリース2 [ 25 ]は、 SBMLレベル3コアを拡張し、種とコンパートメントを「タイプ」で定義できるようにすることで、複数の場所にまたがるルールベースパターンを可能にします。これは、SimmuneやBioNetGenなどのソフトウェアでサポートされている、ルールベースモデルの標準化された交換フォーマットです。
SBMLレベル3パッケージの開発は、開発プロセス中に仕様のレビューと実装の試行が行われています。仕様が安定し、それをサポートする実装が2つ存在すると、パッケージは承認されたとみなされます。上記のパッケージはすべて承認段階に達しています。以下の表は、現在開発段階にあるパッケージの概要を示しています
| パッケージ名 | ラベル | 説明 |
|---|---|---|
| 配列 | 配列 | コンポーネントの配列表現のサポート |
| 分布 | 分布 | 統計分布から値をサンプリングしたり、数値に関連付けられた統計を指定したりするモデルのエンコードをサポート |
| ダイナミクス | ダイナミック | シミュレーション中のエンティティの作成と破棄のサポート |
| グループ | グループ | 要素をグループ化する手段 |
| レンダリング | レンダリング | モデルの図表で使用されるグラフィカルシンボルとグリフの定義をサポートします。レイアウトパッケージの補助として使用できます |
| 必須要素 | 必須 | 別のパッケージの存在によって変更されたSBML要素のきめ細かな表示のサポート |
| 空間プロセス | 空間 | 空間コンポーネントを含むプロセスの記述と、関連する形状の記述をサポート |
SBMLレベル2および3のモデル定義は、以下の1つ以上のコンポーネントのリストから構成されます
SBMLは、主にソフトウェアモデリングツール間でシステム生物学モデルを交換したり、BiGG、BioModels、JWS Onlineなどのリポジトリにモデルをアーカイブしたりするための形式です。SBMLはXMLでエンコードされ、特に数学の表現にはMathMLを使用しているため、人間が読める形式ではありません。そのため、他のグループがSBMLとの間で変換可能な、人間が読める形式を開発しました
SBMLショートハンドは、SBMLとショートハンド記法を相互変換するための仕様と関連するPythonツールです。このフォーマットは、2006年より前に英国ニューカッスルのシステム生物学グループによって開発されました。[ 26 ]その目的は、モデル作成者が生のXMLを記述したりGUIツールを使用したりすることなく、より迅速にモデルを作成できるようにすることでした。mod2sbml.pyとsbml2mod.pyという2つのPythonツールが提供されています。変換を支援するには、Python用のlibSBMLパッケージが必要です。現在、SBMLショートハンドはSBMLレベル3バージョン1をサポートしています
次のコードは、単純な酵素-基質メカニズムを記述するために使用される SBML 略語の例です。
@コンパートメント セル=1 @種 セル:基質=10 セル:酵素=5 セル:複合体=0 セル:生成物=0 @パラメータ k1=1 k1r=2 @反応@rr=結合 基質+酵素 -> 複合体 k1*基質*酵素-k1r*複合体 @r=変換 複合体 -> 生成物 + 酵素 kcat*Complex : kcat=3
アンチモンは、Jarnacモデリングアプリケーションに実装された以前のDSLに基づいています。[ 27 ] Jarnacは、SCAMPモデリングアプリケーションに基づいています。[ 28 ] SCAMPは、最終的にDavid GarfinkelがBIOSIMシミュレータ用に開発したDSL言語からインスピレーションを得ました。[ 29 ]
SBML 省略形と同様に、Antimony は SBML の簡略化されたテキスト表現を提供します。句読点の使用を最小限に抑えることで、テキストの読みやすさと理解しやすさを向上させます。また、ユーザーがコメントを追加することもできます。Antimony は、C/C++ [ 30 ]と文法パーサーとしてBison を使用して実装されています。ただし、ディストリビューションには Python バインディングも含まれており、pip を使用してインストールすると Python から簡単に使用できます。また、Tellurium パッケージ経由でも入手できます。[ 31 ]最近では、JavaScript/WASM バージョン[ 32 ]が生成され、Antimony 言語をウェブ上で使用できるようになりました。ウェブサイト ツールmakesbml はJavaScript バージョンを使用します。[ 33 ] Antimony は SBML レベル 3、バージョン 2 をサポートしています。Antimony は、階層的モデル構成、フラックス バランス制約、およびディストリビューションなどの SBML パッケージもサポートしています。
次の例は、アンチモンを使用して単純な酵素反応速度論モデルを記述する方法を示しています。
結合: 基質 + 酵素 -> 複合体; k1*基質*酵素 - k1r*複合体; 変換: 複合体 -> 生成物 + 酵素; kcat*複合体; // 種の初期化 基質 = 10; 酵素 = 5; 複合体 = 0; 製品 = 0; // 変数の初期化 k1 = 1; k1r = 2; kcat = 3;
2020年2月現在、約300のソフトウェアシステムがSBMLのサポートを宣伝しています。最新のリストは、SBMLソフトウェアガイドの形で入手できます。[ 34 ]
SBMLは、システム生物学のためのソフトウェアプラットフォームを開発する人々のコミュニティによって、活発なメールディスカッションリストや年2回のワークショップを通じて開発され続けています。会議は、国際システム生物学会議(ICSB)をはじめとする他の生物学会議と併せて開催されることがよくあります。コミュニティの活動は、5名で構成される選出された編集委員会によって調整されています。各編集者は3年間の任期で選出され、再任は認められません。
オンラインモデル検証ツールや、C、C++、Java、Python、Mathematica、MATLABなどの言語でプログラムされたソフトウェアにSBMLを組み込むためのオープンソースライブラリなどのツールは、SBMLチームとSBMLコミュニティ全体によって開発されています。[ 35 ]
SBMLはRFC 3823で規定された公式のIETF MIMEタイプである。 [ 36 ]
{{cite journal}}: CS1 maint: DOIは2025年7月時点で非アクティブです(リンク){{cite conference}}: CS1 maint: 複数の名前: 著者リスト (リンク){{cite conference}}: CS1 maint: 複数の名前: 著者リスト (リンク)