2

我正在使用 Simbiology 构建模型。我实际上是从 SBML 文件中读取模型。这是我加载模型后得到的

米1

SimBiology 模型 - 模型 1

模型组件: 隔间:1 事件:0 参数:200 反应:200 规则:0 物种:100

然而,

m1.Parameters 给出

答案=

空矩阵:0×1

我相信的原因是因为所有参数都有“反应”范围。如何通过命令行将它们全部设为“模型”范围?

此外,我无法通过反应对象访问参数(值或范围)。如何访问参数值和范围(如果其范围为反应)?

在这里的任何帮助将不胜感激。

谢谢!阿耶莎

PS - 我还在 Mathworks 新闻阅读器(用户论坛)上发布了相同的查询。希望有人从那里或这里回复。

4

2 回答 2

2

Pramod 还在用户论坛上发布了一个答案,但为了完整起见,我想在这里复制它。

-亚瑟


以下代码说明了如何将参数的范围从反应更改为模型。

% 加载lotka。m1 = sbmlimport('lotka')

% 模型级别没有参数 m1.Parameters

% 将参数从反应复制到模型 i = 1:numel(m1.Reactions) p = m1.Reactions(i).KineticLaw.Parameters; 复制obj(p,m1) 删除(p) 结束

m1.参数

请注意,如果有多个具有相同名称的参数,则会出现错误,因为模型需要参数的唯一名称。

如上面的代码所示,您可以通过以下方式访问反应范围参数

反应.KineticLaw.Parameters

于 2012-05-02T00:48:55.340 回答
1

您可能不想将参数的范围更改为 Model 只是为了查看它们 - 这会改变模型的结构并可能使其无法模拟。

您可以使用命令查看模型中的所有参数

sbioselect(m1, 'Type', 'parameter')

当参数的作用域是反应而不是模型时,它的父级是反应的 KineticLaw,而不是反应本身。因此,如果r您感兴趣的反应,您可以使用r.KineticLaw.Parameters.

希望有帮助!

于 2012-05-01T16:50:11.693 回答