CellML是什么 生物模型的XML语言

3次阅读

cellml 是基于 xml 的开放标准语言,专用于精准表达生物数学模型的结构与数学关系,核心为组件(component)和连接(connection),支持任意微分代数方程组,适用于电生理等多物理场跨尺度建模。

CellML是什么 生物模型的XML语言

CellML 是一种专为描述生物数学模型设计的、基于 XML 的开放标准语言,不是通用建模工具,也不是仿真引擎——它只负责「精准表达模型结构和数学关系」,把“谁依赖谁、变量怎么算、单位怎么定”用机器可读、人可审阅的方式写清楚。

它和 SBML 经常被一起提到,但定位不同:SBML 更聚焦生化反应网络(如酶促动力学、质量作用定律),而 CellML 更通用,支持任意微分代数方程组(DAEs),特别适合电生理(如离子通道门控)、机械形变、信号通路耦合等跨尺度、多物理场模型。


CellML 的核心是组件(component)和连接(connection

CellML 把模型拆成逻辑单元:component 可以代表一个离子通道、一个细胞器、一段通路,甚至一个物理参数集。每个 component 包含:

connection 不是画线,而是显式声明两个 variable 在数值上相等(例如膜电位 V_m 在「膜」组件和「钠通道」组件中必须一致),这使得模型可分解、可复用、可验证。

常见错误现象:

  • 导入 OpenCOR 或 libCellML 时报错 "No valid connections found" → 忘记在 connection 中配对 map_variables,或变量名大小写/命名空间不一致
  • 数学块里写了 sin(x) 却没声明 xmlns:math="<a href="https://www.php.cn/link/53abec67fb016be5f431dda0e1fe7473">https://www.php.cn/link/53abec67fb016be5f431dda0e1fe7473</a>"MathML 命名空间缺失,解析器直接拒识
  • 单位写成 unit="mV" 但未在 units 节定义 → CellML 规范强制要求所有单位显式声明,哪怕只是 <units name="mV" units="millivolt"></units>

导出/导入 CellML 时最常掉进的兼容性坑

不是所有“能存成 .cellml 文件”的工具都真正符合 CellML 1.1 规范。尤其注意:

  • SBML → CellML 转换(如通过 sbml2cellml)通常只生成骨架,丢失原始模型中的物理单位、注释和组件封装结构
  • Python 生态中,libCellML(C++ 实现,Py binding)是当前最可靠解析器;老项目用的 PyCellML 已停止维护,不支持 imports 和 metadata
  • excel 用户容易误以为“另存为 XML”就能当 CellML 用 → 完全不行。Excel XML 是扁平表格映射,没有 componentmathconnection 这三层语义

实际建议:

  • 验证文件是否合规:用官方在线校验器 https://www.php.cn/link/3b05af2c48dbaf6656fdf2d2f905b3b6 或本地跑
    libcellml-validator your_model.cellml
  • 想重用别人模型?优先去 Physiome Model Repository (PMR) 下载带 exposure 的版本,这类模型已通过完整测试,且附带 Generated Code(MATLAB/Python 可直接调用的数值求解器)
  • 若需从 Simulink 或 NEURON 导出,别信一键导出插件;先手写最小 component 验证连接逻辑,再逐步叠加

为什么现在还要用 CellML?它没被 SBML 吞并,也没死

因为模块化不可替代。比如 Hund-Rudy 2004 心室细胞模型在 PMR 中被拆成 22 个独立 component:每个离子通道(INa, IKr)都是可单独下载、测试、替换的子模型。你完全可以拿别人的 IKs 通道,接进自己的钙循环模型里——只要 connection 接口匹配(比如都暴露 Vtemperature 变量)。

而 SBML 天然倾向“一整个反应系统”,imports 支持弱,组件复用难。这也是为什么多尺度仿真平台(如 OpenCOR、Chaste)仍把 CellML 当作跨模型组装的“胶水语言”。

不过得认清现实:

  • 没有主流深度学习框架原生支持 CellML 输入
  • 所有仿真仍需转成数值代码(C/MATLAB/Python)再运行,CellML 本身不执行
  • 如果你只做单一代谢通路建模,SBML + BioModels database 更省事;一旦涉及膜电位-收缩耦合、组织尺度传导,CellML 的组件粒度就立刻体现出价值

真正容易被忽略的一点:CellML 的 metadata 不是摆设。一个带完整 RDF 注解的模型,能被自动关联到 FMA 解剖结构、GO 功能、ChEBI 代谢物——这对构建可计算的数字孪生体(digital twin)是底层支撑,不是锦上添花。

text=ZqhQzanResources