SimFunction对象

功能类似的接口来执行SimBiology模型

描述

SimFunction对象提供一个接口,使您可以执行SimBiology®模型等的函数,并且执行参数扫描(在平行如果并行计算工具箱™是可用的)的工作流,Monte Carlo模拟,和扫描与多个或矢量化剂量。由于SimFunction对象可以像函数句柄来执行,你可以自定义整合SimBiology车型与其他MATLAB®下载188bet金宝搏产品和其他定制分析(如视觉预测检查)。

使用createSimFunction法构造SimFunction对象。一旦创建,并在第一功能执行自动加速SimFunction对象是不可改变的。

句法

如果你指定的任何定量信息时,你打电话createSimFunction构建SimFunction目的F, 然后F具有以下语法。

SIMDATA= F(t_stopüt_output回报SIMDATA对象SIMDATA使用指定的初始条件或模拟场景模拟SimBiology模型后,仿真停止时间,t_stop,给药信息,ü和输出时间,t_output

SIMDATA= F(t_stopü运行使用输入参数模拟t_stopü

如果你没有指定任何定量信息时,你打电话createSimFunction, 然后F具有以下语法:

SIMDATA= F(t_stop回报SIMDATA对象SIMDATA使用指定的初始条件或模拟场景仿真模型后和仿真停止时间,t_stop

SIMDATA= F(t_stop,[]t_output使用输入参数t_stop空参数计量加入[]t_output。您必须指定ü中,给药信息,作为一个空数组[]这个签名。什么时候t_output是空的,t_stop被指定的模拟报告求解时间点,直到t_stop。什么时候t_output是指定的,t_stop是空的,只有在时间点t_output报告。当同时指定,报告的时间点是求解时间点的工会,并在时间点t_output。如果最后t_output比相应的大t_stop,然后模拟进行,直到在最后时间点t_output

SIMDATA= F(TBL使用输入参数TBL。使用这个签名只允许你指定输出倍的变量之一TBL。任何数据行TBL其中所有因变量列具有为NaN值被忽略。

[Ťÿ] = F(_)回报Ť,数值向量的单元阵列,和ÿ,2- d数字矩阵单元阵列,在前面的语法使用任何输入参数。

输入参数

以下情况之一:

  • 空数组[]或空的单元阵列{},这意味着使用基线的初始值来执行模拟,即,在列出的值参数财产SimFunction对象,而不改变它们。

  • 尺寸的矩阵小号-通过-P,其中小号是模拟执行的数量和P在被指定的参数的数量PARAMS当你打电话的说法createSimFunction构建F。每个模拟与相应行中所指定的参数进行

  • 小号-通过-V变对象的矩阵或长度的小区列向量小号,其中每个元件包括变体对象的行向量的。小号是模拟执行的数量,和V是变体对象的数目。这些变体只允许修改SimFunction输入参数,即,模型元素被指定为那PARAMS当你所谓的输入参数createSimFunction。换句话说,你必须作为输入参数当您创建指定变量参数SimFunction目的。任何SimFunction未在变体指定的输入参数使用其基准的初始值。

    如果,变体的行内,多个条目指向同一个模型元素,最后一次出现是用于模拟。

  • 纯量SimBiology.Scenarios包含对象小号场景数量。

什么时候被指定为一个1-通过-P要么1-通过-V矩阵(或一个方案仅具有一个脚本对象),则所有的模拟使用相同的参数,并从所确定的模拟次数t_stopü, 要么t_output参数的顺序。例如,如果t_stop有单排和ü是大小的矩阵ñ-通过-DoseTargets,模拟次数被确定为ñ

什么时候被指定为一个SimBiology.Scenarios对象,所有的场景模拟。设置从场景值之前应用的变种。

t_stop

  • 标量指定相同的停止时间为所有的模拟

  • 大小的向量N指定的停止时间为每个模拟所有N个模拟

ü

  • 空数组[]模拟过程中不应用剂量,除非您指定作为一个方案对象具有在其条目定义的剂量。

  • 与含有两个或三个变量给药信息的ScheduleDose数据(ScheduleDose表),即,剂量的时间,剂量,和剂量率(可选)。命名表变量如下。

    u.Properties.VariableNames = {'时间''量''率'};

    如果UnitConversion是,指定每个可变单元。例如,您可以按如下方式指定单位。

    u.Properties.VariableUnits = {'第二''分子'“分子/秒”};

    这个表可以有多个行,其中每行代表一个剂量施加到目标剂量在指定的剂量的时间与(如果可用)指定的量和速率。

  • 有一行五个变量含RepeatDose数据(RepeatDose表)。剂量率变量是可选的。名称,如下所示的变量。

    u.Properties.VariableNames = {'开始时间''量''率''间隔''RepeatCount'};

    如果UnitConversion是,指定每个可变单元。单位'RepeatCount'变量可以是空的“”要么“无量纲”。的单位'量'变量必须与目标物种的尺寸一致。例如,如果目标物种的单元处于单元(如摩尔或分子),则'量'可变单元必须具有相同的尺寸,即,它的单元必须是一个单元和不能是单元(如克或千克)。为单位'率'变量必须和尺寸上是一致的。

    u.Properties.VariableUnits = {'第二''分子'“分子/秒”'第二'“无量纲”};

    小费

    如果你已经有了一个剂量的对象(ScheduleDose要么RepeatDose),您可以通过使用得到这个剂量表getTable对象的方法。

  • 单元阵列尺寸1 * N,其中N是剂量目标的数量的表。如先前所描述的每个小区可以表示表。

  • 大小的表的单元阵列的S-通过-N,其中S是模拟的数量和N是剂量目标的数量。每个单元代表一个表。S等于行的数量

如果ü是表,然后的单元阵列:

  • 如果方案对象,将合并的剂量数的的方案对象和列的数量ü必须等于在元件的数量计量加入财产SimFunction目的。换句话说,计量信息,您在创作的过程中指定SimFunction对象必须是你的对象执行指定的剂量信息一致。为元素的总数目计量加入属性等于任何剂量从输入组合方案对象和剂量在输入计量加入争论createSimFunction

  • 如果不是一个方案对象,列数(ñ)在单元阵列中ü必须等于中的元素的数量计量加入财产SimFunction目的。剂量表的顺序也必须符合计量物种的顺序createSimFunction。也就是说,假定SimBiology的列之间的一对一对应ü并在指定的剂量目标计量加入财产SimFunction目的,在第一列意味着剂量(剂量表)ü被施加到第一剂量目标中计量加入物业等。

  • 一世个剂量的Ĵ如果第剂量目标被忽略∪{I,J} = []

  • 如果一世个剂量没有参数化,∪{I,J}[]或任一类型的表(该ScheduleDose要么RepeatDose表)。

  • 如果一世个剂量参数化,∪{I,J}一定是[]RepeatDose表与一个行和每个属性的列(开始时间间隔RepeatCount)未参数化。它不需要创建是参数化的剂量属性的列。如果所有属性都是参数,你可以在一个表中通过一个行没有列指定模拟过程参数化的剂量应用。要创建这样的表,请使用table.empty(1,0)

t_output

  • 那是适用于所有的模拟单调递增输出时间矢量

  • 含有被施加到所有的模拟单一时间向量单元阵列

  • 单元阵列表示输出时间向量。第i个电池元件提供的输出时间的第i个模拟。在单元阵列中元件的数量必须的行(模拟)的数量相匹配

TBL

要么数据集具有时间和剂量信息,例如组标签,自变量,因变量(多个),量(S),和(多个)速率。您必须命名表或数据集的变量'集团', '时间', 'DEPENDENTVAR1', 'DEPENDENTVAR2',..., 'AMOUNT1', 'RATE1', 'AMOUNT2', '率2',...。率变量是可选的每一剂量。

如果计量加入所述SimFunction对象的属性F为空,则amount-和率相关的变量不是必需的。组中的数TBL必须等于行数,或场景的数量,在。在合并用药信息如果SimBiology.Scenarios对象,和量和速率的列的数量TBL必须等于剂量在数量计量加入对象的属性F。如果TBL有额外的列,它们将被忽略。

如果UnitConversion是,对于每个变量指定的单元。单位'量'变量必须与目标物种的尺寸一致。看到输入参数的描述ü了解详情。

输出参数

SIMDATA

SIMDATA对象的数组,它包含执行该SimFunction结果F。中的元素的数量SIMDATA阵列是相同的行中的数。列中的每个元素的数量SIMDATA阵列,即,SIMDATA(ⅰ)。数据是等于元件的数量观察到的这是在创建时指定单元阵列F

Ť

含有尺寸的数值向量单元阵列小号X 1小号是模拟的数量。T的第i个元素包含从第i个模拟的时间点。

ÿ

单元阵列的2-d的数值矩阵。在我元素ÿ包含从第i数据模拟。行的数Ť{I}等于行的数量义}

构造方法摘要

createSimFunction(模型) 创建SimFunction对象

方法摘要

加速(SimFunction) 准备SimFunction对象加速模拟
isaccelerated(SimFunction) 确定是否SimFunction对象加速

物业摘要

参数

与命名变量:

  • '名称'

  • '值'

  • '类型'

  • '单位'(除非UnitConversion开启时)

该表包含有关模型的数量(种类,隔室,或参数)定义的输入信息SimFunction对象。例如,该表可以包含参数或物种,其值由正被扫描的SimFunction对象。此属性为只读。

观测

与命名变量:

  • '名称'

  • '类型'

  • '单位'(除非UnitConversion开启时)

该表包含关于模型的数量(种类,隔室,或参数)定义的输出信息SimFunction对象。此属性为只读。

计量加入

含命名变量定量信息:

  • '的TargetName'

  • 'TargetDimension'(除非UnitConversion开启时)

此外,该表还包含了被参数化每个属性变量。对于每一个参数化属性,两个变量被添加到该表。第一个变量具有相同的名称作为属性名和值是指定的参数的名称。第二个变量由后缀属性名PropertyNameValue),并且该值是该参数的默认值。如果UnitConversion上,单位列也被添加与名称PropertyNameUnits

假设重复的特性剂量瞄准药品物种将其设置为称为模型参数参数AmountParam与价值10毫克,和UnitConversion是。该计量加入表中包含以下变量:

的TargetName TargetDimension AmountValue AmountUnits
'药品' “质谱(例如,克)” 'AmountParam' 10 '毫克'
UseParallel

逻辑。如果真正和并行计算工具箱是可用的,SimFunction并行执行。此属性是只读的。

UnitConversion

逻辑。如果是真的:

  • 在的执行SimFunction目的,被假设为相同的单位为单位的对应于指定的模型数量PARAMS当用的是创建的对象参数createSimFunction方法。

  • 时间 (t_output要么t_stop)被假定为在相同的单元上,作为TimeUnits活动的性质configset对象该SimBiology模型的从中F已创建。

  • 剂量表的变量(ü)必须具有单位指定由设定u.Properties.VariableUnits到的适当的单位的单元阵列。如的量(分子,摩尔等)或质量(克,千克,等)的剂量目标的尺寸,被存储在计量加入财产F

  • 仿真结果是相同的单位上的相应数量的指定的那些在SimBiology模型从中F已创建。

此属性为只读。

AutoAccelerate

逻辑。如果为true,该模型是在加速的第一次评估SimFunction目的。

此属性为只读。

DependentFiles

单元阵列含有,该模型依赖于文件的名称的字符向量。此属性用于部署。此属性为只读。

例子

全部收缩

此示例示出了如何以模拟正常和糖尿病患者中的葡萄糖,胰岛素响应。

装载葡萄糖 - 胰岛素反应的模型。有关模型的详细信息,请参阅背景在第模拟葡萄糖 - 胰岛素反应

sbioloadproject('insulindemo''M1'

该模型包含存储在各种不同的变体的初始条件。

变体= getvariant(M1);

找的2型糖尿病患者的初始条件。

TYPE2 =变体(1)
TYPE2 = SimBiology变 -  2型糖尿病(非活动)ContentIndex:类型:名称:属性:值:1参数血浆容量...值1.49 2参数k1值为0.042 3用参数k2值0.071 4参数血浆容量...值0.04 5参数m1值0.379 6参数值平方米0.673 7参数值M4 0.269 8参数值M5 9 0.0526参数M6值0.8118 10参数肝EXTRACTION ...价值0.6 11参数值KMAX 0.0465 12参数值kmin个13 0.0076参数KABS值0.023 14参数kgri值0.0465 15参数F值0.9 16参数的值6E-05 17参数b值0.68 18参数C值0.00023 19参数d值0.09 20参数胃的Glu了Af ...值125 21参数值KP1 3.09 22参数值KP2 0.000723参数值KP3 0.005 24参数值KP4 25 0.0786参数Ki值为0.0066 26参数[宏工业谷氨酸ù...值1 27参数值VM0 4.65 28参数值VMX 0.034 29参数Km值466.21 30参数P2U Va的略0.084 31参数K值0.99 32参数α值0.013 33参数Beta值0.05 34参数伽马值0.5 35参数值KE1 0.0007 36参数值KE2 269 37参数基础血清G ...值164.18 38参数基础血浆我...值54.81

抑制在模拟过程中发出警告信息。

warnSettings =警告(“关”'SimBiology:提供DimAnalysisNotDone_MatlabFcn_Dimensionless');

创建对象SimFunction来模拟用于正常和糖尿病患者中的葡萄糖,胰岛素响应。

  • 指定一个空数组{}用于第二输入参数来表示,该模型将使用碱的参数值进行模拟(即,没有参数扫描将被执行)。

  • 指定血浆葡萄糖和胰岛素浓度的响应(函数的输出被绘制)。

  • 指定品种剂量随着剂量的物种。本种表示葡萄糖的在模拟开始时的初始浓度。

normSim = createSimFunction(M1,{},...{“[等离子体谷氨酸浓]”“[等离子体宏浓]”},'剂量'
normSim = SimFunction参数:观测量:名称类型单位_____________________ ___________ _______________________ { '[等离子体谷氨酸浓]'} { '物种'} { '毫克/分升'} { '[等离子体宏浓]'} { '物种'} {”picomole/liter' } Dosed: TargetName TargetDimension __________ _____________________ {'Dose'} {'Mass (e.g., gram)'}

对于糖尿病患者,使用所述变体指定初始条件TYPE2

diabSim = createSimFunction(M1,{},...{“[等离子体谷氨酸浓]”“[等离子体宏浓]”},'剂量',TYPE2)
diabSim = SimFunction参数:观测量:名称类型单位_____________________ ___________ _______________________ { '[等离子体谷氨酸浓]'} { '物种'} { '毫克/分升'} { '[等离子体宏浓]'} { '物种'} {”picomole/liter' } Dosed: TargetName TargetDimension __________ _____________________ {'Dose'} {'Mass (e.g., gram)'}

选择表示78克葡萄糖在模拟开始单次进食的剂量。

singleMeal = sbioselect(M1,'名称'“一餐”);

转换计量信息表格式。

mealTable = getTable(singleMeal);

模拟为24小时正常受试者中的葡萄糖胰岛素响应。

sbioplot(normSim([],24,mealTable));

模拟为24小时糖尿病受试者中的葡萄糖胰岛素响应。

sbioplot(diabSim([],24,mealTable));

执行使用变体扫描

假设要扫描使用包含用于不同的胰岛素障碍不同的初始条件的变体的阵列执行的参数。例如,模型M1变体具有对应于低胰岛素敏感性和高胰岛素敏感性。您可以通过给SimFunction对象的单个调用模拟这两种情况的模型。

选择变体进行扫描。

varToScan = sbioselect(M1,'名称'...{“低胰岛素敏感性”“高胰岛素敏感性”});

检查被存储在每个变体模型参数。

varToScan(1)
ANS = SimBiology变体 - 低胰岛素敏感性(不活动)ContentIndex:类型:名称:属性:值:1参数值VMX 0.0235 2参数值KP3 0.0045
varToScan(2)
ANS = SimBiology变体 - 高胰岛素敏感性(不活动)ContentIndex:类型:名称:属性:值:1个参数值VMX 0.094 2参数值KP3 0.018

这两种变型存储用于替代值VMXKP3参数。你需要指定它们作为输入参数当您创建SimFunction对象。

创建一个SimFunction物体扫描的变体。

variantScan = createSimFunction(M1,{'VMX''KP3'},...{“[等离子体谷氨酸浓]”“[等离子体宏浓]”},'剂量');

模拟模型得出结果。运行1包括模拟结果为低胰岛素敏感性和运行2用于高胰岛素敏感性。

sbioplot(variantScan(varToScan,24,mealTable));

低胰岛素敏感性导致增加和延长血浆葡萄糖浓度。

还原警告设置。

警告(warnSettings);

此示例示出了如何扫描初始量的物质从与一级反应放射性衰变模型 d ž d Ť = C X ,其中Xž是物种和C是远期利率不变。

加载包含radiodecay模型示例项目M1

sbioloadprojectradiodecay;

创建一个SimFunction目的F到扫描初始量物质的X

F = createSimFunction(M1,{'X'},{'X''Z'},[])
F = SimFunction参数:名称值类型单位_____ ___________ ____________ { 'X'} 1000 { '物种'} { '分子'}观测量:名称类型单位_____ ___________ ____________ { 'X'} { '物种'} {“分子'} {' Z '} {' 物种 '} {' 分子“}计量加入:无

限定用于扫描四个不同初始量的物种x的。的行数表示仿真的总数,并且每个仿真采用矢量的每一行中指定的参数值。

披= [200;400;600;800];

运行模拟,直到停止时间是20和绘制仿真结果。

sbioplot(F(PHI,20));

这个例子说明了如何模拟和扫描radiodecay模型的参数,同时被给予一个物种。

加载包含radiodecay模型示例项目M1

sbioloadprojectradiodecay;

创建一个SimFunction目的F指定参数Reaction1.c要扫描和物种X作为给药对象。

F = createSimFunction(M1,{'Reaction1.c'},{'X''Z'},{'X'});

限定量的标量剂量在三个时间点(5,10和15秒)给出200点的分子。

dosetime = [5 10 15];剂量= [200 200 200]。U =表(dosetime '剂量');u.Properties.VariableNames = {'时间''量'};u.Properties.VariableUnits = {'第二''分子'};

定义的参数值Reaction1.c扫描。

披= [0.1 0.2 0.5]';

模拟20秒的模型得出结果。

sbioplot(F(PHI,20,U));

您还可以指定在不同的时间不同的药剂量。

D1 =表(5100);d1.Properties.VariableNames = {'时间''量'};d1.Properties.VariableUnits = {'第二''分子'};D2 =表(10300);d2.Properties.VariableNames = {'时间''量'};d2.Properties.VariableUnits = {'第二''分子'};D3 =表(15600);d3.Properties.VariableNames = {'时间''量'};d3.Properties.VariableUnits = {'第二''分子'};

模拟使用这些剂量的模型得出结果。

sbioplot(F(PHI,20%,{D1; D2; D3}));

您还可以定义剂量表的单元阵列。

U =细胞(3,1);dosetime = [5 10 15];剂量= [200 200 200]。∪{1} =表(dosetime '剂量');∪{1} .Properties.VariableNames = {'时间''量'};∪{1} .Properties.VariableUnits = {'第二''分子'};dosetime2 = [2 6 12];dose2 = [500 500 500]。∪{2} =表(dosetime2' ,dose2' );∪{2} .Properties.VariableNames = {'时间''量'};∪{2} .Properties.VariableUnits = {'第二''分子'};dosetime3 = [3 8 18];剂量3 = [100 100 100]。∪{3} =表(dosetime3' ,剂量3' );∪{3} .Properties.VariableNames = {'时间''量'};∪{3} .Properties.VariableUnits = {'第二''分子'};

模拟使用剂量表和阴谋的结果模型。

sbioplot(F(PHI,20,U));

参考

[1]的Gillespie,D.T。(1977)。确切的耦合化学反应的随机模拟。物理化学杂志。81(25),2340年至2361年。

介绍了在R2014a