SimBiology。场景
模拟的场景
描述
SimBiology。场景
是一个对象,它允许您根据模型数量的不同抽样值生成不同的模拟场景。您可以将这些数量与不同剂量或变体结合起来,并模拟各种场景,以探索不同实验条件和给药方案下的模型行为。
创建
语法
描述
输入参数
的名字
- - - - - -条目名称
特征向量|字符串
条目名称,指定为字符向量或字符串。
您可以将条目名称设置为模型数量(种类、参数或隔间)的名称。或者,您可以为要包含在示例(场景)生成中的一组剂量或变体定义一个名称。
例子:“k1”
数据类型:字符
|字符串
内容
- - - - - -剂量或变量的模型量值或矢量
数值向量|向量的RepeatDose
或ScheduleDose
对象|变对象向量
模型量的值,或剂量或变量的向量,指定为数值向量,的向量RepeatDose
或ScheduleDose
对象,或者向量变体
对象。
类型的数量名称的名字
输入参数,set内容
到一个数值向量。
如果为一组剂量或变体指定名称,请设置内容
到一个剂量物体的矢量或变量物体的矢量。
例子:(0.5、1、1.5)
quantityNames
- - - - - -模型量名称
特征向量|字符串|字符串向量|字符向量的单元格数组
样本(场景)生成的模型量的名称,指定为字符向量、字符串、字符串向量或字符向量的单元格数组。
例子:[" k12”、“k21”)
数据类型:字符
|字符串
|细胞
的可选逗号分隔对名称,值
参数。的名字
参数名称和价值
对应的值。的名字
必须出现在引号内。您可以以任意顺序指定多个名称和值对参数Name1, Value1,…,的家
.
例子:“数量”,10
指定生成10个样本。
数量
- - - - - -样本数量
[]
(默认)|积极的标量
从概率分布中抽取的样本数,以逗号分隔的对组成“数量”
一个正标量。默认值[]
表示该函数从其他条目推断样本的数量。如果无法推断,则设置为2
.
例子:“数量”,5
RankCorrelation
- - - - - -秩相关矩阵
[]
(默认)|数字矩阵
联合概率分布的秩相关矩阵,指定为由逗号分隔的对组成“RankCorrelation”
和一个数字矩阵。默认的行为是“RankCorrelation”
而且协方差的
设置为[]
,SimBiology。场景
从联合概率分布中抽取不相关样本。
你不能指定“RankCorrelation”
如果协方差的
是集。矩阵中的列数必须与指定分布的列数匹配。矩阵必须是对角线值为1的对称矩阵。它所有的特征值也必须是正的。
例子:'RankCorrelation',[1 0.3;0.3 1]
的意思是
- - - - - -平均值
数值向量
数量的平均值,由逗号分隔的对组成“的意思是”
和一个数值向量。
只能为正态分布指定平均值。平均值的数目必须等于指定的概率分布的数目。
例子:“的意思是”,[0.5,1.5]
协方差
- - - - - -协方差矩阵
[]
(默认)|数字矩阵
联合概率分布的协方差矩阵,指定为由逗号分隔的对组成协方差的
和一个数字矩阵。默认的行为是两者都是“RankCorrelation”
而且协方差的
设置为[]
,SimBiology。场景
从联合概率分布中抽取不相关样本。你不能指定协方差的
如果你指定“RankCorrelation”
.
你只能为正态分布指定协方差矩阵。矩阵中的列数必须与指定分布的列数匹配。它的所有特征值也必须是非负的。
例子:'协方差',[0.25 0.15;0.15 0.25]
SamplingMethod
- - - - - -抽样方法
“随机”
(默认)|“韩”
|连系动词的
|“sobol”
|“荷”
抽样方法,指定为逗号分隔的对组成“SamplingMethod”
和字符向量或字符串。取决于概率分布是否“RankCorrelation”
或者正态分布协方差的
是指定的,采样技术不同。
如果一个条目包含一个(联合)正态分布协方差
指定的抽样方法为:
如果一个条目包含一个(联合)分布,没有协方差
指定的抽样方法为:
“随机”
-从指定的概率分布中抽取随机样本随机
(统计和机器学习工具箱).“韩”
-使用类似于的算法从指定的概率分布中绘制拉丁超立方样本lhsdesign
(统计和机器学习工具箱).这种方法是一种比随机抽样更系统的空间填充方法。详细信息请参见生成准随机数(统计和机器学习工具箱).连系动词的
-绘制随机样本使用连系动词(统计和机器学习工具箱).使用此选项可使用关联函数在样本之间施加相关性。“sobol”
-使用sobol序列(sobolset
(统计和机器学习工具箱)),由累积分布逆函数(icdf
(统计和机器学习工具箱))的指定概率分布。使用这种方法高度系统地填充空间。详细信息请参见生成准随机数(统计和机器学习工具箱).“荷”
-使用halton序列(haltonset
(统计和机器学习工具箱)),由累积分布逆函数(icdf
(统计和机器学习工具箱))的指定概率分布。详细信息请参见生成准随机数(统计和机器学习工具箱).
如果没有协方差
是指定的,SimBiology。场景
基本上执行两个步骤。第一步是使用上述采样方法之一生成样本。为韩
,sobol
,哈尔顿
方法:利用累积分布逆函数将生成的均匀样本转化为指定分布的样本icdf
(统计和机器学习工具箱).然后,作为第二步,使用Iman-Conover算法对样本进行关联RankCorrelation
都是确定的。为随机
,直接从指定的分布中抽取样本,然后使用Iman-Conover算法对样本进行关联。
例子:“SamplingMethod”、“韩”
SamplingOptions
- - - - - -抽样方法的选择
结构体
采样方法的选项,指定为标量结构体。根据采样方法的不同,选项有所不同:sobol
,哈尔顿
,或韩
.
为sobol
而且哈尔顿
类的每个名称-值参数指定结构的每个字段名和值sobolset
(统计和机器学习工具箱)或haltonset
(统计和机器学习工具箱)函数。SimBiology使用默认值1
为跳过
参数。对于所有其他名称-值参数,软件使用相同的默认值sobolset
或haltonset
.的结构飞跃
而且跳过
具有非默认值的选项,如下所示。
s1。Leap = 50;s1。Skip = 0;
为韩
,有三个采样器,支持不同的采样选项。万博1manbetx
例如,设置要使用的结构lhsdesign
与标准
而且迭代
选项。
s2。使用Lhsdesign = true; s2.Criterion =“相关”;s2。迭代= 10;
属性的采样选项随机
而且连系动词
方法。
数据类型:结构体
属性
表达式
- - - - - -组合表达式
特征向量
此属性是只读的。
组合表达式,概括对象中条目的组合,指定为字符向量。++
符号表示elementwise结合,和交叉x
符号表示笛卡儿组合。详细信息请参见在SimBiology中结合模拟场景.
例子:'(k1 + k2 + k3) x剂量'
数据类型:字符
NumberOfEntries
- - - - - -条目数
正整数
场景对象中的条目数,指定为正整数。
例子:4
数据类型:双
RandomSeed
- - - - - -用于随机数生成的种子或状态
[]
(默认)|小于的非负整数232
|返回的结构rng
种子用于随机数生成以获得可再现的场景,指定为小于的非负整数232
或返回的结构rng
它定义了随机状态。默认值[]
意味着每次生成的场景都会不同生成
函数会被调用,除非你在调用函数之前设置了随机种子,或者使用可重复的序列,如Sobol或Halton。
例子:10
数据类型:双
|结构体
对象的功能
添加 |
添加数量值、剂量或变体SimBiology。场景 对象 |
getEntry |
获取条目内容SimBiology。场景 对象 |
updateEntry |
更新条目内容SimBiology。场景 对象 |
重命名 |
重命名条目SimBiology。场景 对象 |
删除 |
删除条目SimBiology。场景 对象 |
验证 |
验证SimBiology。场景 对象 |
生成 |
从以下内容生成场景SimBiology。场景 对象和返回表 |
getNumberScenarios |
返回场景的个数SimBiology。场景 对象 |
例子
生成葡萄糖-胰岛素反应的不同模拟场景
加载葡萄糖-胰岛素反应模型。关于型号的详细信息,请参见背景部分模拟葡萄糖-胰岛素反应.
sbioloadproject (“insulindemo”,“m1”);
该模型包含不同的参数值和初始条件,代表不同的胰岛素损伤(如2型糖尿病、低胰岛素敏感性等),存储在五个变体中。
变量= getvariant(m1)
变体= SimBiology变体阵列索引:名称:活性:1 2型糖尿病假2低胰岛素硒…错误3高β细胞…低β细胞…高胰岛素…假
抑制在模拟过程中发出的信息警告。
warnSettings =警告(“关闭”,“SimBiology: DimAnalysisNotDone_MatlabFcn_Dimensionless”);
选择代表单餐78克葡萄糖的剂量。
singleMeal = sbioselect(m1,“名字”,“一餐”);
创建一个场景
对象来表示不同的初始条件与剂量的结合。即创建一个场景
对象,其中每个变量与剂量配对(或组合),共5个模拟场景。
sObj = simbiology . scenario;添加(sObj笛卡儿的,“变异”、变种);添加(sObj笛卡儿的,“剂量”singleMeal)
ans = scenario(5个scenario)名称内容编号________ ___________________ ______词条1变体SimBiology变体5 x词条2 dose SimBiology剂量1参见Expression property。
sObj
包含两项。使用生成
函数组合条目并生成五个场景。函数返回一个场景表,其中每行表示一个场景,每列表示的项场景
对象。
scenariosTbl = generate(sObj)
scenariosTbl =5×2表变异的剂量 ______________________ _________________________ 1 x1 SimBiology。变体1x1 SimBiology。RepeatDose1x1SimBiology。变体1x1 SimBiology。RepeatDose1x1SimBiology。变体1x1 SimBiology。RepeatDose1x1 SimBiology.Variant 1x1 SimBiology.RepeatDose 1x1 SimBiology.Variant 1x1 SimBiology.RepeatDose
更改第一个条目的条目名称。
重命名(sObj 1“胰岛素为行动”)
ans =场景(5个场景)名称内容编号____________________ ___________________ ______条目1胰岛素损伤SimBiology变体5 x条目2剂量SimBiology剂量1参见Expression property。
创建一个SimFunction
对象来模拟生成的场景。使用场景
对象作为输入,并指定血浆葡萄糖和胰岛素浓度作为响应(要绘制的函数的输出)。指定[]
的剂量输入参数场景
对象已经具有剂量信息。
f = createSimFunction(m1,sObj,{【Plasma Glu Conc】,《等离子体》},[])
f = SimFunction单位名称值类型 _________________________ ______ _____________ ___________________________________________ {' 等离子体体积1.88 (Glu)}{“参数”}{“分升”}{k1的}0.065{“参数”}{' 1 /分钟'}{“k2”}0.079{“参数”}{' 1 /分钟'}{的等离子体体积(Ins)} 0.05{“参数”}{“升”}{m1的}0.19{“参数”}{' 1 /分钟'}{“平方米”}0.484{“参数”}{' 1 /分钟'}{m4的}0.1936{“参数”}{' 1 /分钟'}{m5的}0.0304{“参数”}{‘分钟/皮摩尔’}{' m6 '}0.6469{'参数'}{'无量纲'}{'肝提取'}0.6{'参数'}{'无量纲'}{'kmax'} 0.0558{'参数'}{'1/分钟'}{'kmin'} 0.008{'参数'}{'1/分钟'}{'kgri'} 0{'参数'}{'1/分钟'}{'f'} 0.9{'参数'}{'无量纲'}{'a'} 0{'参数'}{'1/毫克'}{'c'} 0{'参数'}{'1/毫克'}{'d'} 0.01{'参数'}{'无量纲'}{'参数'}{'无量纲'}{'kp1'}2.7{'参数'}{'毫克/分钟'}{'kp2'} 0.0021{'参数'}{'1/分钟'}{'kp3'} 0.009{'参数'}{'(毫克/分钟)/(皮克摩尔/升)'}{'kp4'} 0.0618{'参数'}{'(毫克/分钟)/(皮克摩尔/升)'}{'kp4'} 0.0618{'参数'}{'1/分钟'}{' in Ind Glu Util '} 1{'参数'}{'毫克/分钟'}{'Vm0'} 2.5129{'参数'}{'毫克/分钟'}{'Vmx'} 0.047{'参数'}{'参数'}{'毫克/分钟'}{'毫克/升'}}{'Km'} 225.59{'参数'}{'毫克'}}{'毫克'}{'p2U'}0.0331{'参数'}{'1/分钟'}{'K'} 2.28{'参数'}{'picomole/(毫克/分升)'}{'alpha'} 0.05{'参数'}{'1/分钟'}{'beta'} 0.11{'参数'}}{'参数'}{'1/分钟'}{'ke1'} 0.0005{'参数'}{'参数'}{'毫克'}339{'参数'}{'参数'}{'毫克/分升'}'基础血浆Glu Conc'} 91.76{'参数'}{'参数'}{'毫克/分升'}{'参数'}{'参数'}{'picomole/升'}观测值:名字类型单位 _____________________ ___________ _______________________ {'[ 等离子体Glu浓缩的]}{“物种”}{毫克/分升的}{'[血浆Ins浓缩的]}{“物种”}{“皮摩尔/升”}给:TargetName TargetDimension __________ _____________________ {' 剂量的}{的质量(例如,克)}TimeUnits:小时
对模型进行24小时仿真,绘制仿真数据。数据包含五次运行,其中每次运行代表scenario对象中的一个场景。
sd = f(sObj,24);sbioplot (sd)
ans =轴(SbioPlot)与属性:XLim: [0 30] YLim: [0 450] XScale: '线性' YScale: '线性' GridLineStyle: '-'位置:[0.0956 0.1100 0.2509 0.8150]单位:'归一化'显示所有属性
如果您有统计和机器学习工具箱™,您还可以从各种概率分布中为模型量绘制样本值。例如,假设参数Vmx
而且kp3
以低胰岛素敏感性和高胰岛素敏感性而闻名的两种糖尿病,均服从对数正态分布。您可以从这样的分布为这些参数生成样例值,并执行扫描以探索模型行为。
定义的对数正态概率分布对象Vmx
.
pd_Vmx = makedist(对数正态的)
pd_Vmx = LognormalDistribution log正态分布mu = 0 sigma = 1
根据定义,参数μ
是对数值的平均值。若要围绕参数的基本(模型)值更改参数值,请设置μ
来日志(
model_value
)
.设定标准偏差(σ)至0.2。对于一个小的σ值时,对数正态分布的均值约等于日志(
model_value
)
.详细信息请参见对数正态分布(统计和机器学习工具箱).
Vmx = sbioselect(m1,“名字”,“Vmx”);pd_Vmx。μ= log(Vmx.Value); pd_Vmx.sigma = 0.2
pd_Vmx = LognormalDistribution对数正态分布mu = -3.05761 sigma = 0.2
类似地定义kp3的概率分布。
Pd_kp3 = makedist(对数正态的);Kp3 = sbioselect(m1,“名字”,“kp3”);pd_kp3。μ= log(kp3.Value); pd_kp3.sigma = 0.2
pd_kp3 =对数正态分布mu = -4.71053 sigma = 0.2
现在定义一个联合概率分布来为Vmx和kp3绘制样本值,并使用秩相关来指定这两个参数之间的某种相关性。请注意,这种相关性假设仅用于本例的说明目的,可能与生物学无关。
首先删除变量条目(条目1)sObj
.
删除(sObj, 1)
ans = scenario(1个scenario)名称内容编号____ _______________ ______条目1 dose SimBiology dose 1参见Expression property。
添加一个用秩相关矩阵定义联合概率分布的条目。
添加(sObj笛卡儿的,[“Vmx”,“kp3”]、[pd_Vmx, pd_kp3],“RankCorrelation”, 1, 0.5, 0.5, 1)
ans =场景(2个场景)____ ______________________ ___________条目1 dose SimBiology dose 1 *(条目2.1 Vmx对数正态分布2(默认)+条目2.2)kp3对数正态分布2(默认)参见表达式属性。
默认情况下,从联合分布中抽取的样本数量设置为2。增加样本数量。
updateEntry (sObj 2“数量”, 50)
ans =场景(50个场景)____ ______________________ ______条目1 dose SimBiology dose 1 *(条目2.1 Vmx对数正态分布50 +条目2.2)kp3对数正态分布50参见表达式属性。
验证场景
对象可以用模型进行模拟。的验证
函数在任何条目不能唯一解析到模型中的对象或条目内容的长度(样本大小)不一致时抛出错误。如果多个条目解析到模型中的同一对象,则该函数抛出警告。
验证(sObj m1)
生成模拟场景。绘制样本值plotmatrix
.你可以看到的价值Vmx
在模型值0.047和kp3
0.009左右。
sTbl =生成(sObj);[s,ax,bigax,h,hax] = plotmatrix([sTbl.Vmx,sTbl.kp3]);ax .YLabel(1,1)。字符串=“Vmx”;ax (2, 1) .YLabel。字符串=“kp3”;ax (2, 1) .XLabel。字符串=“Vmx”;ax (2, 2) .XLabel。字符串=“kp3”;
使用前面创建的SimFunction模拟场景。即使已经更新了scenario对象,您也不需要创建新的SimFunction对象。
sd2 = f(sObj,24);sbioplot (sd2);
SimBiology默认采用随机采样方式。您可以将其更改为拉丁超立方体采样(或sobol或halton),以获得更系统的空间填充方法。
entry2struct = getEntry(sObj,2)
entry2struct =带有字段的结构:名称:{'Vmx' 'kp3'}内容:[2x1问题。LognormalDistribution] Number: 50 RankCorrelation: [2x2 double] Covariance: [] SamplingMethod: 'random' SamplingOptions: [0x0 struct]
entry2struct。SamplingMethod =“韩”
entry2struct =带有字段的结构:名称:{'Vmx' 'kp3'}内容:[2x1问题。LognormalDistribution] Number: 50 RankCorrelation: [2x2 double] Covariance: [] SamplingMethod: 'lhs' SamplingOptions: [0x0 struct]
现在可以使用更新后的结构来修改条目2。
updateEntry (sObj 2 entry2struct)
ans =场景(50个场景)____ ______________________ ______条目1 dose SimBiology dose 1 *(条目2.1 Vmx对数正态分布50 +条目2.2)kp3对数正态分布50参见表达式属性。
可视化示例值。
sTbl2 = generate(sObj);[s,ax,bigax,h,hax] = plotmatrix([sTbl2.Vmx,sTbl2.kp3]);ax .YLabel(1,1)。字符串=“Vmx”;ax (2, 1) .YLabel。字符串=“kp3”;ax (2, 1) .XLabel。字符串=“Vmx”;ax (2, 2) .XLabel。字符串=“kp3”;
模拟场景。
sd3 = f(sObj,24);sbioplot (sd3);
恢复警告设置。
警告(warnSettings);
更多关于
SimBiology。场景
术语
属性的命令行显示SimBiology。场景
对象,并解释输出中显示的术语。具体来说,它解释了这些术语:场景
,条目
,分项
,的名字
,内容
,数量
,表达式
,不一致的
而且诊断
.
一个一致的场景
对象具有具有正确数量的样本的条目,因此可以正确地组合条目。一个一致的例子场景
对象如下所示。
一个不一致的场景对象具有一个或多个样本数量不正确的条目。在使用该对象进行模拟之前,需要更正这些条目。下面是一个不一致对象的例子。
的诊断
列建议修复哪些条目以获得正确的样本数量。使用updateEntry
,重命名
,删除
编辑条目。
参考文献
[1]伊曼,R.和W.J.科诺弗,1982年。一种无分布的方法来诱导输入变量之间的秩相关。统计通讯-模拟与计算.11(3): 311 - 334。
版本历史
MATLAB命令
你点击了一个对应于这个MATLAB命令的链接:
在MATLAB命令窗口中输入该命令来运行该命令。Web浏览器不支持MATLAB命令。万博1manbetx
您也可以从以下列表中选择一个网站:
如何获得最佳的网站性能
选择中国站点(中文或英文)以获得最佳站点性能。其他MathWorks国家站点没有针对您所在位置的访问进行优化。