主要内容

拟合多个体PK模型

使用双室模型估计多个个体的药代动力学参数。

假设您有来自三个个体的药物血浆浓度数据,您希望使用这些数据来估计相应的药代动力学参数,即中央和外周室的体积(中央外围),清除率(Cl_Central),以及间隔间清理(12个).假设药物浓度随时间曲线呈双指数下降 C t 一个 e 一个 t + B e b t ,在那里Ct药物浓度是否及时t,一个而且b为对应指数下降的斜率。

合成数据集包含在中心区和外周区测量的药物血浆浓度数据。数据是使用双室模型生成的,注射剂量和一阶消除。这些参数被用于每个个体。

中央 外围 12个 Cl_Central
个人1 1.90 0.68 0.24 0.57
2个人 2.10 6.05 0.36 0.95
个人3 1.70 4.21 0.46 0.95

数据存储为带有变量的表ID时间CentralConc,PeripheralConc.它表示在输注剂量后,在中央和外周室的八个不同时间点测量的血浆浓度的时间过程。

负载(“data10_32R.mat”

将数据集转换为agroupedData对象,该对象是拟合函数所需的数据格式sbiofit供以后使用。一个groupedData对象还允许您设置自变量和组变量名(如果存在的话)。的单位ID时间CentralConc,PeripheralConc变量。单元是可选的,并且仅对UnitConversion特性,自动将匹配的物理量转换为一致的单位系统。

gData = groupedData(data);gData.Properties.VariableUnits = {“小时”毫克/升的毫克/升的};gData。属性
ans = struct with fields: Description: " UserData: [] DimensionNames: {'Row' 'Variables'} VariableNames: {'ID' 'Time' 'CentralConc' 'PeripheralConc'} variabledescription: {} VariableUnits: {1x4 cell} variableccontinuity: [] RowNames: {} CustomProperties: [1x1 matlabl .tabular. tabular.]CustomProperties] GroupVariableName: 'ID'独立变量:'时间'

创建一个格子图,显示三个个体的PK配置文件。

sbiotrellis (gData“ID”“时间”, {“CentralConc”“PeripheralConc”},...“标记”“+”“线型”“没有”);

利用内置的PK库构建一个双室模型,该模型具有注射剂量和一级消除,其中消除率取决于中心室的间隙和体积。使用configset对象打开单位转换。

pkmd = PKModelDesign;pkc1 = add隔间(pkmd,“中央”);pkc1。DosingType =“注入”;pkc1。EliminationType =“linear-clearance”;pkc1。HasResponseVariable = true;pkc2 = add隔间(pkmd,“外围”);Model = construct(pkmd);Configset = getconfigset(模型);configset.CompileOptions.UnitConversion = true;

假设每个人在时间= 0时接受输注剂量,总输注量为100mg,速度为50mg /小时。有关设置不同剂量策略的详细信息,请参见SimBiology模型中的剂量

剂量= sbiodose(“剂量”“TargetName”“Drug_Central”);剂量。StartTime = 0;剂量。一个mount = 100; dose.Rate = 50; dose.AmountUnits =毫克的;剂量。时间Units =“小时”;剂量。RateUnits =“毫克/小时”

数据包含在中央和周围区室测量的血浆浓度。将这些变量映射到适当的模型物种Drug_Central而且Drug_Peripheral

responseMap = {'Drug_Central = CentralConc''Drug_Peripheral = PeripheralConc'};

在这个模型中要估计的参数是中心和外围隔室的体积(中央而且外围)、室间间隙12个,及清除率Cl_Central.在本例中,指定log-transform for中央而且外围因为它们被限制为正。的estimatedInfo对象使您可以指定参数转换、初始值和参数边界(可选)。

paramsToEstimate = {“日志(中央)”的日志(外围)“12”“Cl_Central”};estimatedParam = estimatedInfo(paramsToEstimate,“InitialValue”,[1 1 1 1]);

将模型拟合到所有汇集在一起的数据,也就是说,为所有个体估计一组参数。默认的估计方法为sbiofit用途将根据可用的工具箱而改变。看看是哪个估计函数sbiofit用于配件,检查EstimationFunction对应结果对象的属性。

pooledFit = sbiofit(模型,gData,responseMap,estimatedParam,剂量,“池”,真正的)
pooledFit = optimatedresults with properties: ExitFlag: 3 Output: [1x1 struct] GroupName: [] Beta: [4x3 table] ParameterEstimates: [4x3 table] J: [24x4x2 double] COVB: [4x4 double] CovarianceMatrix: [4x4 double] R: [24x2 double] MSE: 6.6220 SSE: 291.3688 Weights: [] LogLikelihood: -111.3904 AIC: 230.7808 BIC: 238.2656 DFE: 44 DependentFiles: {1x3 cell} EstimatedParameterNames: {'Central' 'Peripheral' 'Q12' 'Cl_Central'} ErrorModelInfo: [1x3 table] EstimationFunction: 'lsqnonlin'

将拟合结果与原始数据绘制成图。虽然生成了三个独立的图,但数据是用同一组参数拟合的(也就是说,所有三个个体都有相同的拟合线)。

情节(pooledFit);

为每个人估计一组参数,看看参数估计是否有任何改进。在这个例子中,因为有三个个体,所以估计了三组参数。

unpooledFit = sbiofit(模型,gData,responseMap,estimatedParam,剂量,“池”、假);

将拟合结果与原始数据绘制成图。每个个体都被以不同的方式拟合(也就是说,每条拟合的线对每个个体都是唯一的),而且每条线似乎都很适合个人数据。

情节(unpooledFit);

显示第一个个体的拟合结果。MSE低于合并拟合的MSE。另外两个人也是如此。

unpooledFit (1)
ans = optimatedresults with properties: ExitFlag: 3 Output: [1x1 struct] GroupName: 1 Beta: [4x3 table] ParameterEstimates: [4x3 table] J: [8x4x2 double] COVB: [4x4 double] CovarianceMatrix: [4x4 double] R: [8x2 double] MSE: 2.1380 SSE: 25.6559 Weights: [] LogLikelihood: -26.4805 AIC: 60.9610 BIC: 64.0514 DFE: 12 DependentFiles: {1x3 cell} EstimatedParameterNames: {'Central' 'Peripheral' 'Q12' 'Cl_Central'} ErrorModelInfo: [1x3 table] EstimationFunction: 'lsqnonlin'

生成随时间变化的残差图,以比较合并和未合并的拟合结果。该图表明未合并拟合的残差小于预期的合并拟合残差。除了比较残差之外,还可以使用其他严格的标准来比较拟合结果。

t = [gData.Time;gData.Time];res_pooled = vertcat(pooledFit.R);Res_pooled = Res_pooled (:);res_unpooled = vertcat(unpooledFit.R);Res_unpooled = Res_unpooled (:);情节(t, res_pooled“o”“MarkerFaceColor”' w '“markerEdgeColor”“b”)举行情节(t, res_unpooled“o”“MarkerFaceColor”“b”“markerEdgeColor”“b”) refl = refine (0,0);表示残差为零的参考线标题(“剩余与时间”);包含(“时间”);ylabel (“残差”);传奇({“池”未共享的});

这个例子展示了如何使用sbiofit.如上图所示,未合并拟合解释了由于研究中特定主题而产生的变化,在这种情况下,模型更适合数据。但是,合并拟合返回总体范围的参数。如果你想在考虑个体变化的同时估计种群范围的参数,请使用sbiofitmixed

另请参阅

相关的话题

Baidu
map