主要内容

可观测的

对象,包含用于后模拟计算的表达式

描述

可观察对象是一个数学表达式,可以让您执行后模拟计算。例如,您可以定义一个可观察表达式来计算在每个时间步骤中与受体结合的配体的比例,或者计算一些统计数据,如药物浓度剖面的曲线下面积(AUC)。您还可以在模拟、数据拟合和全局灵敏度分析中使用可观察对象作为响应。

SimBiology中每个可观察对象的名称®模型必须是唯一的,这意味着模型中没有一个可观察对象可以与另一个可观察对象、物种、隔间、参数、反应、变体或剂量具有相同的名称。一个可观察对象可以引用任何被记录的模型数量StatesToLog).只要表达式不包含代数循环,它也可以引用其他活动的可观察对象。对象表达式可以使用变量引用仿真时间时间。按照推荐的的指导方针为评估表达式。例如,如果数量名称不是有效的MATLAB®变量名,用括号括起来[]当在一个表达中提到它时。

SimBiology使用任何引用状态或可观察对象的整个时间过程来评估对象表达式。可观察表达式的结果必须是数值标量或向量。如果它是一个矢量,它必须与仿真时间矢量的长度相同。结果存储在返回的数据中SimData对象。具体来说,如果可观察表达式是标量值的,则结果存储在SimData。ScalarObservables财产。否则,它被存储在SimData。VectorObservables

请注意

  • 确保正确地向表达式向量化。例如,使用一个。/ (一个+B而不是一个/(一个+B如果一个B矩阵。

  • 避免硬编码期望任何特定数量的点或时间的表达式。例如,不要用时间(1:1000),使用时间(1:min(1000年,元素个数(时间)))

创建

创建一个可观察对象使用addobservable

属性

全部展开

可观察对象的数学表达式,指定为字符向量。

例子:“x ^ 2》。

数据类型:字符

可观察表达式结果的单位,指定为字符向量。

例子:“克”

数据类型:字符

指示在模型仿真后是否对可观察表达式求值的标志,指定为真正的

例子:

数据类型:逻辑

对象名称,指定为字符向量。

例子:“AUC”

数据类型:字符

此属性是只读的。

可观察对象的父对象,指定为模型对象。

对象的描述,指定为字符向量。

例子:“药物AUC”

数据类型:字符

对象标号,指定为字符向量。

例子:“曲线下面积”

数据类型:字符

此属性是只读的。

对象类型,指定为“可见”

数据类型:字符

与对象关联的数据,指定为任何受支持的MATLAB数据类型。金宝app

对象的功能

copyobj 复制SimBiology对象及其子对象
findUsages 找出可观察对象是如何在SimBiology模型中使用的
得到 获取SimBiology对象属性
设置SimBiology对象属性
删除 删除SimBiology对象
显示 显示SimBiology对象的摘要
重命名 重命名对象和更新表达式

例子

全部折叠

加载靶介导药物处置(TMDD)模型

sbioloadprojecttmdd_with_TO.sbproj

设定目标占用率()作为回应。

c = getconfigset (m1);cs.RuntimeOptions.StatesToLog =”到“

获取剂量信息。

d = getdose (m1,“每天”);

扫描不同剂量使用SimBiology。场景对象。为此,首先参数化剂量的性质。的方法改变相应的参数值场景对象。

amountParam = addparameter (m1,“AmountParam”“单位”, d.AmountUnits);d.Amount =“AmountParam”;d.Active = 1;doseSamples = SimBiology。场景(“AmountParam”linspace(0300、31));

创建一个SimFunction来模拟模型。集为仿真输出。

%禁止模拟期间发出的信息警告。警告(“关闭”“SimBiology: SimFunction: DOSES_NOT_EMPTY”);f = createSimFunction (m1, doseSamples”到“d)
f = SimFunction参数:值类型单位名称  _______________ _____ _____________ ____________ {' AmountParam '} 1{“参数”}{‘nanomole}可见:单位名称类型  ______ _____________ _________________ {' “}{“参数”}{的无量纲}给:TargetName TargetDimension数量AmountValue AmountUnits  _______________ ___________________________________ _______________ ___________ ____________ {' 等离子体。Drug'} {'Amount(例如,摩尔或分子)'}{'AmountParam'} 1 {'nanomole'} TimeUnits: day
警告(“上”“SimBiology: SimFunction: DOSES_NOT_EMPTY”);

使用产生的剂量量模拟模型场景对象。在这种情况下,对象产生31种不同的剂量;因此,对该模型进行了31次仿真,得到aSimData数组中。

doseTable =可以获得的(d);sd = f (doseSamples cs.StopTime doseTable)
SimBiology模拟数据阵列:31-by-1 ModelName: TMDD Logged Data: Species: 0 Compartment: 0 Parameter: 1 Sensitivity: 0 Observable: 0

绘制仿真结果。此外,还需添加两条代表安全性和有效性阈值的参考线。在本例中,假设任意值大于0.85是不安全的,任何值低于0.15无效。

h = sbioplot (sd);时间= sd (1) .Time;h.NextPlot =“添加”;safetyThreshold = plot(h,[min(time), max(time)],[0.85, 0.85],“DisplayName的”“安全阈值”);efficacyThreshold = plot(h,[min(time), max(time)],[0.15, 0.15],“DisplayName的”“功效阈值”);

图中包含一个轴对象。标题为States versus Time的axes对象包含33个类型为line的对象。这些对象代表运行1 - 2 -运行,运行3 -,4 -运行,运行5 - 6至运行,运行7 - 8 -运行,运行9 - 10 -运行,运行11 - 12 -运行,运行13到14 -运行,运行15 - 16 -运行,运行17 - 18 -运行,运行19 - 20到运行,运行21 - 22 -运行,23——运行,运行24 - 25到运行,运行26 - TO,运行27 - TO,运行28 - TO,运行29 - TO,运行30 - TO,运行31 - TO,安全阈值,功效阈值。

对仿真结果进行后处理。找出哪些剂量是有效的,对应的在安全性和有效性阈值内的反应。为此,向模拟数据添加一个可观察表达式。

%禁止模拟期间发出的信息警告。警告(“关闭”“SimBiology: sbservices: SB_DIMANALYSISNOTDONE_MATLABFCN_UCON”);newSD = addobservable (sd,“stat1”'max(TO) < 0.85 & min(TO) > 0.15'“单位”无量纲的
SimBiology模拟数据阵列:31-by-1 ModelName: TMDD Logged Data: Species: 0 Compartment: 0 Parameter: 1 Sensitivity: 0 Observable: 1

addoobservable函数计算每个可观察对象的新表达式SimDatasd并以new的形式返回计算结果SimData数组,newSD,它现在已经添加了可观察对象(stat1).

SimBiology将可观察结果存储在两个不同的属性中SimData对象。如果结果是标量值的,则将其存储在SimData。ScalarObservables。否则,它们将存储在SimData。VectorObservables。在这个例子中stat1可观察表达式是标量值的。

提取标量可观测值,并根据剂量绘制它们。

scalarObs = vertcat (newSD.ScalarObservables);doseAmounts =生成(doseSamples);图绘制(doseAmounts.AmountParam scalarObs.stat1,“o”“MarkerFaceColor”“b”

图中包含一个轴对象。axis对象包含一个类型为line的对象。

图中显示了50到180纳米摩尔的剂量在目标疗效和安全阈值内的反应。

您可以使用不同的阈值数量来更新可观察表达式。函数重新计算表达式并返回结果SimData对象数组。

newSD2 = updateobservable (newSD,“stat1”'max(TO) < 0.75 & min(TO) > 0.30');

重命名可观察表达式。函数重命名可观察对象,更新引用重命名可观察对象的表达式(如果适用),并以new返回结果SimData对象数组。

newSD3 = renameobservable (newSD2,“stat1”“EffectiveDose”);

恢复警告设置。

警告(“上”“SimBiology: sbservices: SB_DIMANALYSISNOTDONE_MATLABFCN_UCON”);
介绍了R2020a