Simbiology剂量的颂歌

6视图(30天)
本
2021年2月16日
评论道: 2021年2月16日
你好,
我有一个问题有关的使用simbiology adddose(或sbiodose)命令。我定义了一个隔间,四个物种(这将是我的状态变量模型)。我还定义了一堆参数和添加到模型中。这一步后,我已经明确定义四个微分方程描述我的模型。(我是这样,因为我没有适当的背景reactons等等)。我的目标是模拟系统指定剂量scheulde来自一个实验。当我创建我的剂量和想指定目标名称x3, matlab抛出一个错误:无效的剂量目标的x3”在剂量“d”。这个对象不能被任何规则的规则变量。我检查了文档和论坛,但我还没有发现任何与我有关的问题。感谢任何帮助,下面的代码补充。
[a1, b1, c1, ED501 k11, k21, n1, w1, x10] = getParams (1);%这得到一些准确的值
%的这部分代码的注射时间和大量的实验
负载(“measurements.mat”);
测量= {1};
mouseID = measurement.vMouseID {1};
tInjections = measurement.tMeasurement {1};
vMeasuredVolumes = measurement.vVolumePhysCon {1};
vInjectionDose = measurement.vDose {1};
doseIdx =找到(vInjectionDose ~ = 0);
m = sbiomodel (“米”);
comp = addcompartment (m,“薪酬”);
%状态变量、输入、输出
x1 = addspecies (m,x1的,“InitialAmount”x10);%的生活
x2 = addspecies (m,“x2”,“InitialAmount”,0);%死
x3 = addspecies (m,“x3”,“InitialAmount”,0);%浓缩的
x4 = addspecies (m,“x4”,“InitialAmount”,0);% Periph浓缩的
u = addspecies (m,“u”,“InitialAmount”,0);
y = addspecies (m,“y”,“InitialAmount”x10);
%模型参数
一个= addparameter (m,“一个”,“价值”,a1);
b = addparameter (m,“b”,“价值”,b1);
n = addparameter (m,“n”,“价值”、n1);
w = addparameter (m,' w ',“价值”w1);
ED50 = addparameter (m,“ED50”,“价值”,ED501);
c = addparameter (m,“c”,“价值”、c1);
k1 = addparameter (m,“k1”,“价值”k11);
k2 = addparameter (m,“k2”,“价值”k21,);
%微分方程
dxdt1 = addrule (m,“x1 = x1 - b(一)* * ((x1 * x3) / (ED50 + x3))”,“RuleType”,“速度”);
dxdt2 = addrule (m,“x2 = n * x1 + b * ((x1 * x3) / (ED50 + x3)) - w * x2”,“RuleType”,“速度”);
dxdt3 = addrule (m,“x3 = - (c + k1) * x3 + k2 * x4”,“RuleType”,“速度”);
dxdt4 = addrule (m,“x4 = k1 * x3 - k2 * x4”,“RuleType”,“速度”);
y = addrule (m,“y = x1 + x2”,“RuleType”,“repeatedAssignment”);
%添加剂量——这对我来说就是南方
d = sbiodose (' d ',“安排”);
d。数量= vInjectionDose (doseIdx);
d。时间= tInjections (doseIdx);
d。TargetName =“comp.x3”;
d。积极= 1;
[t, x,名称]= sbiosimulate (m, d);
情节(t) x (:, 1:4))
最好的问候,
Bence
编辑:我忘了说,我的目标是direcly注入药物种类的x3的冲动行为(丸),但ode求解器不允许这样的,因为“x3”是一个变量。我猜,这可以通过定义它作为某种反应,但dxdt3 dxdt4是结算我希望x3满足的方程。

接受的答案

杰里米Huard
杰里米Huard 2021年2月16日
嗨Bence,
你是对的,剂量不能应用于物种由利率规则定义。他们的动力必须定义反应相反。
在特定的情况下,将利率规则转化为反应非常快。你可以替换所有 dxdt 定义如下:
addreaction (m,“零- > x1”,“ReactionRate”,“* x1”);
addreaction (m,“x1 - > x2”,“ReactionRate”,“n * x1”);
addreaction (m,x1 + x3 - > x2 + x3的,“ReactionRate”," b * ((x1 * x3) / (ED50 + x3))”);
addreaction (m,“x2 - >空”,“ReactionRate”,“w * x2”);
addreaction (m,“x3 < - > x4”,“ReactionRate”,“k1 * x3 - k2 * x4”);
addreaction (m,“x3 - >空”,“ReactionRate”,“c * x3”);
如果你不使用单位,SimBiology英航默认假设所有物种浓度的维度。这意味着上述反应常微分方程来源于将有一个学期(1 / comp)右边的方程。为了避免这种情况,你可以告诉SimBiology考虑物种数量而不是浓度。
你可以插入下面的线在你的电话 sbiosimulate 。不需要其他任何改变。
c = getconfigset (m);
cs.CompileOptions。DefaultSpeciesDimension =“物质”;
最好的问候,
杰里米
4评论
本
2021年2月16日
谢谢你!

登录置评。

更多的答案(0)

社区

更多的答案SimBiology社区

类别

找到更多的在模拟反应生物多样性和剂量帮助中心文件交换

社区寻宝

找到宝藏在MATLAB中央,发现社区如何帮助你!

开始狩猎!