在命令行中改变simbiology反应中的参数范围 - MATLAB TOOLBOX SIMBIOLOGY

时间:2012-05-01 14:56:01

标签: matlab

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

M1

SimBiology模型 - Model1

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

然而,

m1.Parameters给出

ans =

空矩阵:0乘1

我相信的原因是因为所有参数都有“反应”范围。如何通过命令行使所有这些“模型”范围?

另外,我无法通过Reaction Object访问参数(值或范围)。如何访问参数值和范围(如果它的范围是反应)?

非常感谢任何帮助。

谢谢! 阿霞

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

2 个答案:

答案 0 :(得分:2)

Pramod还在用户论坛上发布了答案,但我想在此处复制以获得完整性。

-Arthur


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

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

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

%将参数从反应复制到模型 对于i = 1:numel(m1.Reactions)     p = m1.Reactions(i).KineticLaw.Parameters;     copyobj(P,M1)     删除(P) 端

m1.Parameters

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

如上面的代码所示,您可以通过

访问反应范围参数

reaction.KineticLaw.Parameters

答案 1 :(得分:1)

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

您可以使用命令

查看模型中的所有参数
sbioselect(m1, 'Type', 'parameter')

当参数的范围限定为Reaction而不是模型时,其父级是Reaction的KineticLaw,而不是Reaction本身。因此,如果r是您感兴趣的反应,则可以使用r.KineticLaw.Parameters获取其参数。

希望有所帮助!