模型定义相关函数#
mas.model.theta()#
- theta(init_value=None, bounds=None, fixed=False) Theta #
创建固定效应参数 \(\theta\)。
参数:
init_value (
ValueType
, optional):参数初值。若为None
则视初值为 0。默认值为None
。bounds (
BoundsType
, optional):最小化过程中参数估计的上下边界值。若为None
则无边界约束。默认值为None
。fixed (
bool
, optional):是否固定参数值。默认值为False
。
返回值:
\(\theta\) 参数(固定效应)。
返回类型:
Theta
示例:
Class DemoModel(Module)
def __init__(self):
self.cl = theta(0.5, bounds=(0, 10))
self.v = theta(10, bounds=(0, None))
self.emax = theta(-20, bounds=(-100, 100))
self.ec50 = theta(5, fixed=True)
mas.model.omega()#
- omega(init_omega=None, fixed=False) Eta | list[Eta] #
创建个体间变异参数 \(\eta\)。
参数:
init_omega (
ValueType | Block | list[list[ValueType]] | NDArray[float64]
, optional):参数初值或参数初值矩阵。若为None
则视初值为 1。默认值为None
。可以下三角矩阵(Block
)或对称矩阵的形式(list[list[ValueType]] | NDArray[float64]
)传入。非对角线元素将被视为协方差。fixed (
bool
, optional):是否固定参数矩阵。默认值为False
。
返回值:
方差为 \(\Omega\) 的 \(\eta\) 参数(个体间变异)或者一组方差与协方差关系符合 \(\Omega\) 矩阵的 \(\eta\) 参数。
返回类型:
Eta | list[Eta]
示例:
Class DemoModel(Module)
def __init__(self):
self.cl = theta(0.5, bounds=(0, 10))
self.v = theta(10, bounds=(0, None))
self.emax = theta(-20, bounds=(-100, 100))
self.ec50 = theta(5, bounds=(0, None))
self.eta_cl = omega(0.09)
self.eta_v = omega(0, fixed=True)
self.eta_emax, self.eta_ec50 = omega(Block(tril=[0.05, 0, 0.08], dimension=2))
mas.model.sigma()#
- sigma(init_sigma=None, fixed=False) Eps | list[Eps] #
创建个体内变异(残差)参数 \(\epsilon\)。
参数:
init_sigma (
ValueType | Block | list[list[ValueType]] | NDArray[float64]
, optional):参数初值或参数初值矩阵。若为None
则视初值为 1。默认值为None
。可以下三角矩阵(Block
)或对称矩阵的形式(list[list[ValueType]] | NDArray[float64]
)传入。非对角线元素将被视为协方差。fixed (
bool
, optional):是否固定参数矩阵。默认值为False
。
返回值:
方差为 \(\Sigma\) 的 \(\epsilon\) 参数(个体内变异)或者一组方差与协方差关系符合 \(\Sigma\) 矩阵的 \(\epsilon\) 参数。
返回类型:
Eps | list[Eps]
示例:
Class DemoModel(Module)
def __init__(self):
self.cl = theta(0.5, bounds=(0, 10))
self.v = theta(10, bounds=(0, None))
self.emax = theta(-20, bounds=(-100, 100))
self.ec50 = theta(5, bounds=(0, None))
self.eta_cl = omega(0.09)
self.eta_v = omega(0, fixed=True)
self.eta_emax, self.eta_ec50 = omega(Block(tril=[0.05, 0, 0.08], dimension=2))
self.eps_prop = sigma(0.09)
self.eps_add = sigma(3, fixed=True)
mas.model.column()#
- column(col_name, dtype, *, is_categorical) NumericContinuousColVar | NumericCategoricalColVar | StrCategoricalColVar #
创建一个变量来代表数据集中的某一列。
参数:
col_name (
str
):列名。dtype (
ColumnDtype
, optional):列内数据的类型。可以为数值类型("numeric"
)或字符串类型("str"
)。默认值为"numeric"
。is_categorical (
bool
, optional):是否为分类变量。默认值为False
。
返回值:
一个代表数据集某一列的变量(常被视为协变量)。
返回类型:
NumericContinuousColVar | NumericCategoricalColVar | StrCategoricalColVar
示例:
Class DemoModel(Module)
def __init__(self):
self.cl = theta(0.5, bounds=(0, 10))
self.v = theta(10, bounds=(0, None))
self.eta_cl = omega(0.09)
self.eta_v = omega(0.16)
self.eps_prop = sigma(0.09)
self.age = column("AGE")
self.sex = column("SEX", is_categorical=True)
mas.model.multicolumn()#
- multicolumn(col_name, dtype, *, is_categorical) NumericContinuousColVarCollection | NumericCategoricalColVarCollection | StrCategoricalColVarCollection #
创建一个变量来代表数据集中的某些列(常用于协变量筛选)。
参数:
col_name (
list[str]
):列名列表。dtype (
ColumnDtype
, optional):列内数据的类型。可以为数值类型("numeric"
)或字符串类型("str"
)。默认值为"numeric"
。is_categorical (
bool
, optional):是否为分类变量。默认值为False
。
返回值:
一个代表数据集某些列的变量。
返回类型:
NumericContinuousColVarCollection | NumericCategoricalColVarCollection | StrCategoricalColVarCollection
示例:
Class DemoModel(Module)
def __init__(self):
self.cl = theta(0.5, bounds=(0, 10))
self.v = theta(10, bounds=(0, None))
self.eta_cl = omega(0.09)
self.eta_v = omega(0.16)
self.eps_prop = sigma(0.09)
self.con_cov = multicolumn(["AGE", "WT"], is_categorical=False)
mas.model.compartment()#
- compartment(init_value=0.0, alag=0.0, fraction=1.0, default_dose=False, default_obs=False) Compartment #
创建一个房室变量。
参数:
init_value (
ValueType
, optional):房室药量初值。默认值为0
。alag (
ValueType
, optional):房室吸收延迟时间。默认值为0
。fraction (
ValueType
, optional):房室吸收分数。默认值为1
。default_dose (
bool
, optional):是否为默认给药房室。默认值为False
。default_obs (
bool
, optional):是否为默认观测房室。默认值为False
。
返回值:
一个代表某一房室的变量。
返回类型:
Compartment
示例:
class TestModel(OdeModule):
def __init__(self):
super().__init__()
self.cmt_depot = compartment(init_value=0, default_dose=True, default_obs=False)
self.cmt_central = compartment(init_value=0, default_dose=False, default_obs=True)
...
房室结构与微分方程模型结合运用的示例可见 OdeModule。
mas.model.Module#
- class mas.model.Module#
构建各类 Masmod 模型的基础类。可以用构建自定义模型。
重要
所有 Masmod 模型都必需继承 Module
。
pred()#
- pred() Expression #
从模型参数构建关于因变量预测值的模型。
返回值:
因变量预测值的表达式。
返回类型:
Expression
示例:
使用 Module
构建药效学 Emax 模型:
class EmaxModel(Module):
def __init__(self, emax, et50, eta_emax, eta_et50, eps) -> None:
self.theta_emax = theta(emax, bounds=(-10*emax, 10*emax))
self.theta_et50 = theta(et50, bounds=(0, 10*et50))
self.eta_emax = omega(eta_emax)
self.eta_et50 = omega(eta_et50)
self.eps = sigma(eps)
self.t = column("TIME")
def pred(self):
emax = self.theta_emax * exp(self.eta_emax)
et50 = self.theta_et50 * exp(self.eta_et50)
eff = (emax * self.t) / (et50 + self.t)
ipred = eff
y = ipred + self.eps
return y
mas.model.IvOneCmtLinear#
- class mas.model.IvOneCmtLinear#
基类:Module
。
一室血管内给药线性消除模型。
mas.model.IvOneCmtLinear.pred_micro#
- class mas.model.IvOneCmtLinear.pred_micro(k, alag1=None, s1=None, f1=None, r1=None, d1=None)#
使用微观药动学参数预测因变量。
参数:
k (
Expression
):消除速率常数。alag1 (
Expression
, optional):中央室吸收延迟时间。默认值为None
。s1 (
Expression
, optional):中央室药量-浓度换算系数。默认值为None
。f1 (
Expression
, optional):中央室吸收分数。默认值为None
。r1 (
Expression
, optional):中央室给药速率。默认值为None
。d1 (
Expression
, optional):中央室给药持续时间。默认值为None
。
备注
换算系数即 Scale Parameters,用于转化房室药量为浓度且使它们的单位量纲保持一致。三者关系为
可详见:焦正. (2019). 基础群体药动学和药效学分析. 科学出版社.
- property F#
预测的观测室药物浓度。
类型:
SubroutineSolvedF[IvOneCmtLinearIndexType]
- property A#
各房室预测药量
类型:
SubroutineSolvedAIndexer[IvOneCmtLinearIndexType]
mas.model.IvOneCmtLinear.pred_physio#
- class mas.model.IvOneCmtLinear.pred_physio(cl, v, alag1=None, s1=None, f1=None, r1=None, d1=None)#
使用生理药动学参数预测因变量。
参数:
cl (
Expression
):清除率。v (
Expression
):表观分布容积。alag1 (
Expression
, optional):中央室吸收延迟时间。默认值为None
。s1 (
Expression
, optional):中央室药量-浓度换算系数。默认值为None
。f1 (
Expression
, optional):中央室吸收分数。默认值为None
。r1 (
Expression
, optional):中央室给药速率。默认值为None
。d1 (
Expression
, optional):中央室给药持续时间。默认值为None
。
- property F
预测的观测室药物浓度。
类型:
SubroutineSolvedF[IvOneCmtLinearIndexType]
- property A
各房室预测药量
类型:
SubroutineSolvedAIndexer[IvOneCmtLinearIndexType]
mas.model.EvOneCmtLinear#
- class mas.model.EvOneCmtLinear#
基类:Module
。
一室血管外给药线性消除模型。
mas.model.EvOneCmtLinear.pred_micro#
- class mas.model.EvOneCmtLinear.pred_micro(k, ka, alag=None, alag2=None, s1=None, s2=None, f1=None, f2=None, r1=None, r2=None, d1=None, d2=None)
使用微观药动学参数预测因变量。
参数:
k (
Expression
):消除速率常数。ka (
Expression
):吸收速率常数。alag1 (
Expression
, optional):贮藏室吸收延迟时间。默认值为None
。alag2 (
Expression
, optional):中央室吸收延迟时间。默认值为None
。s1 (
Expression
, optional):贮藏室药量-浓度换算系数。默认值为None
。s2 (
Expression
, optional):中央室药量-浓度换算系数。默认值为None
。f1 (
Expression
, optional):贮藏室吸收分数。默认值为None
。f2 (
Expression
, optional):中央室吸收分数。默认值为None
。r1 (
Expression
, optional):贮藏室给药速率。默认值为None
。r2 (
Expression
, optional):中央室给药速率。默认值为None
。d1 (
Expression
, optional):贮藏室给药持续时间。默认值为None
。d2 (
Expression
, optional):中央室给药持续时间。默认值为None
。
- property F
预测的观测室药物浓度。
类型:
SubroutineSolvedF[EvOneCmtLinearIndexType]
- property A
各房室预测药量
类型:
SubroutineSolvedAIndexer[EvOneCmtLinearIndexType]
mas.model.EvOneCmtLinear.pred_physio#
- class mas.model.EvOneCmtLinear.pred_physio(cl, v, ka, alag1=None, alag2=None, s1=None, s2=None, f1=None, f2=None, r1=None, r2=None, d1=None, d2=None)
使用生理药动学参数预测因变量。
参数:
cl (
Expression
):清除率。v (
Expression
):表观分布容积。ka (
Expression
):吸收速率常数。alag1 (
Expression
, optional):贮藏室吸收延迟时间。默认值为None
。alag2 (
Expression
, optional):中央室吸收延迟时间。默认值为None
。s1 (
Expression
, optional):贮藏室药量-浓度换算系数。默认值为None
。s2 (
Expression
, optional):中央室药量-浓度换算系数。默认值为None
。f1 (
Expression
, optional):贮藏室吸收分数。默认值为None
。f2 (
Expression
, optional):中央室吸收分数。默认值为None
。r1 (
Expression
, optional):贮藏室给药速率。默认值为None
。r2 (
Expression
, optional):中央室给药速率。默认值为None
。d1 (
Expression
, optional):贮藏室给药持续时间。默认值为None
。d2 (
Expression
, optional):中央室给药持续时间。默认值为None
。
- property F
预测的观测室药物浓度。
类型:
SubroutineSolvedF[EvOneCmtLinearIndexType]
- property A
各房室预测药量
类型:
SubroutineSolvedAIndexer[EvOneCmtLinearIndexType]
示例:
华法林一室口服 PK 模型:
class WarfarinPk(EvOneCmtLinear):
def __init__(self) -> None:
super().__init__()
self.tv_cl = theta(0.134, bounds=(0, None))
self.tv_v = theta(7.81, bounds=(0, None))
self.tv_ka = theta(0.571, bounds=(0, None))
self.tv_alag = theta(0.823, bounds=(0, None))
self.eta_cl = omega(0.049)
self.eta_v = omega(0.0802)
self.eta_ka = omega(0.047)
self.eta_alag = omega(0.156)
self.eps_prop = sigma(0.0104)
self.eps_add = sigma(0.554)
def pred(self) -> Expression:
cl = self.tv_cl * exp(self.eta_cl)
v = self.tv_v * exp(self.eta_v)
ka = self.tv_ka * exp(self.eta_ka)
alag = self.tv_alag * exp(self.eta_alag)
pred_res = self.pred_physio(cl=cl, v=v, ka=ka, alag1=alag, s2=v)
ipred = pred_res.F
y = ipred * (1 + self.eps_prop) + self.eps_add
return y
mas.model.IvTwoCmtLinear#
- class mas.model.IvTwoCmtLinear#
基类:Module
。
二室血管内给药线性消除模型。
mas.model.IvTwoCmtLinear.pred_micro#
- class mas.model.IvTwoCmtLinear.pred_micro(k, k12, k21, alag1=None, alag2=None, s1=None, s2=None, f1=None, f2=None, r1=None, r2=None, d1=None, d2=None)
使用微观药动学参数预测因变量。
参数:
k (
Expression
):消除速率常数。k12 (
Expression
):中央室向周边室的转运速率参数。k21 (
Expression
):周边室向中央室的转运速率参数。alag1 (
Expression
, optional):中央室吸收延迟时间。默认值为None
。alag2 (
Expression
, optional):周边室吸收延迟时间。默认值为None
。s1 (
Expression
, optional):中央室药量-浓度换算系数。默认值为None
。s2 (
Expression
, optional):周边室药量-浓度换算系数。默认值为None
。f1 (
Expression
, optional):中央室吸收分数。默认值为None
。f2 (
Expression
, optional):周边室吸收分数。默认值为None
。r1 (
Expression
, optional):中央室给药速率。默认值为None
。r2 (
Expression
, optional):周边室给药速率。默认值为None
。d1 (
Expression
, optional):中央室给药持续时间。默认值为None
。d2 (
Expression
, optional):周边室给药持续时间。默认值为None
。
- property F
预测的观测室药物浓度。
类型:
SubroutineSolvedF[IvTwoCmtLinearIndexType]
- property A
各房室预测药量
类型:
SubroutineSolvedAIndexer[IvTwoCmtLinearIndexType]
mas.model.IvTwoCmtLinear.pred_physio_vss#
- class mas.model.IvTwoCmtLinear.pred_physio_vss(cl, v, q, vss, alag1=None, alag2=None, s1=None, s2=None, f1=None, f2=None, r1=None, r2=None, d1=None, d2=None)#
使用生理药动学参数与稳态表观分布容积(vss)预测因变量。
参数:
cl (
Expression
):清除率。v (
Expression
):中央室表观分布容积。q (
Expression
):房室间清除率。vss (
Expression
):稳态表观分布容积。alag1 (
Expression
, optional):中央室吸收延迟时间。默认值为None
。alag2 (
Expression
, optional):周边室吸收延迟时间。默认值为None
。s1 (
Expression
, optional):中央室药量-浓度换算系数。默认值为None
。s2 (
Expression
, optional):周边室药量-浓度换算系数。默认值为None
。f1 (
Expression
, optional):中央室吸收分数。默认值为None
。f2 (
Expression
, optional):周边室吸收分数。默认值为None
。r1 (
Expression
, optional):中央室给药速率。默认值为None
。r2 (
Expression
, optional):周边室给药速率。默认值为None
。d1 (
Expression
, optional):中央室给药持续时间。默认值为None
。d2 (
Expression
, optional):周边室给药持续时间。默认值为None
。
- property F
预测的观测室药物浓度。
类型:
SubroutineSolvedF[IvTwoCmtLinearIndexType]
- property A
各房室预测药量
类型:
SubroutineSolvedAIndexer[IvTwoCmtLinearIndexType]
mas.model.IvTwoCmtLinear.pred_physio#
- class mas.model.IvTwoCmtLinear.pred_physio(cl, v1, q, v2, alag1=None, alag2=None, s1=None, s2=None, f1=None, f2=None, r1=None, r2=None, d1=None, d2=None)
使用生理药动学参数预测因变量。
参数:
cl (
Expression
):清除率。v1 (
Expression
):中央室表观分布容积。q (
Expression
):房室间清除率。v2 (
Expression
):周边室表观分布容积。alag1 (
Expression
, optional):中央室吸收延迟时间。默认值为None
。alag2 (
Expression
, optional):周边室吸收延迟时间。默认值为None
。s1 (
Expression
, optional):中央室药量-浓度换算系数。默认值为None
。s2 (
Expression
, optional):周边室药量-浓度换算系数。默认值为None
。f1 (
Expression
, optional):中央室吸收分数。默认值为None
。f2 (
Expression
, optional):周边室吸收分数。默认值为None
。r1 (
Expression
, optional):中央室给药速率。默认值为None
。r2 (
Expression
, optional):周边室给药速率。默认值为None
。d1 (
Expression
, optional):中央室给药持续时间。默认值为None
。d2 (
Expression
, optional):周边室给药持续时间。默认值为None
。
- property F
预测的观测室药物浓度。
类型:
SubroutineSolvedF[IvTwoCmtLinearIndexType]
- property A
各房室预测药量
类型:
SubroutineSolvedAIndexer[IvTwoCmtLinearIndexType]
mas.model.IvTwoCmtLinear.pred_macro_aob#
- class mas.model.IvTwoCmtLinear.pred_macro_aob(alpha, beta, aob, alag1=None, alag2=None, s1=None, s2=None, f1=None, f2=None, r1=None, r2=None, d1=None, d2=None)#
使用宏观药动学参数预测因变量。
参数:
alpha (
Expression
):二室模型药代动力学方程中的指数 \(\alpha\)。beta (
Expression
):二室模型药代动力学方程中的指数 \(\beta\)。aob (
Expression
):\(A/B\)。其中 \(A\) 与 \(B\) 为二室模型药代动力学方程中的系数。alag1 (
Expression
, optional):中央室吸收延迟时间。默认值为None
。alag2 (
Expression
, optional):周边室吸收延迟时间。默认值为None
。s1 (
Expression
, optional):中央室药量-浓度换算系数。默认值为None
。s2 (
Expression
, optional):周边室药量-浓度换算系数。默认值为None
。f1 (
Expression
, optional):中央室吸收分数。默认值为None
。f2 (
Expression
, optional):周边室吸收分数。默认值为None
。r1 (
Expression
, optional):中央室给药速率。默认值为None
。r2 (
Expression
, optional):周边室给药速率。默认值为None
。d1 (
Expression
, optional):中央室给药持续时间。默认值为None
。d2 (
Expression
, optional):周边室给药持续时间。默认值为None
。
备注
二室模型药代动力学方程指:
其中 \(C(t)\) 为 \(t\) 时刻的中央室药物浓度,\(Dose\) 为给药剂量。
- property F
预测的观测室药物浓度。
类型:
SubroutineSolvedF[IvTwoCmtLinearIndexType]
- property A
各房室预测药量
类型:
SubroutineSolvedAIndexer[IvTwoCmtLinearIndexType]
mas.model.IvTwoCmtLinear.pred_macro_micro#
- class mas.model.IvTwoCmtLinear.pred_macro_micro(alpha, beta, k21, alag1=None, alag2=None, s1=None, s2=None, f1=None, f2=None, r1=None, r2=None, d1=None, d2=None)#
使用宏观药动学参数与微观药动学参数(k21)预测因变量。
参数:
alpha (
Expression
):二室模型药代动力学方程中的指数 \(\alpha\)。beta (
Expression
):二室模型药代动力学方程中的指数 \(\beta\)。k21 (
Expression
):周边室向中央室的转运速率参数。alag1 (
Expression
, optional):中央室吸收延迟时间。默认值为None
。alag2 (
Expression
, optional):周边室吸收延迟时间。默认值为None
。s1 (
Expression
, optional):中央室药量-浓度换算系数。默认值为None
。s2 (
Expression
, optional):周边室药量-浓度换算系数。默认值为None
。f1 (
Expression
, optional):中央室吸收分数。默认值为None
。f2 (
Expression
, optional):周边室吸收分数。默认值为None
。r1 (
Expression
, optional):中央室给药速率。默认值为None
。r2 (
Expression
, optional):周边室给药速率。默认值为None
。d1 (
Expression
, optional):中央室给药持续时间。默认值为None
。d2 (
Expression
, optional):周边室给药持续时间。默认值为None
。
- property F
预测的观测室药物浓度。
类型:
SubroutineSolvedF[IvTwoCmtLinearIndexType]
- property A
各房室预测药量
类型:
SubroutineSolvedAIndexer[IvTwoCmtLinearIndexType]
mas.model.EvTwoCmtLinear#
- class mas.model.EvTwoCmtLinear#
基类:Module
。
二室血管外给药线性消除模型。
mas.model.EvTwoCmtLinear.pred_micro#
- class mas.model.EvTwoCmtLinear.pred_micro(k, k23, k32, ka, alag1=None, alag2=None, alag3=None, s1=None, s2=None, s3=None, f1=None, f2=None, f3=None, r1=None, r2=None, r3=None, d1=None, d2=None, d3=None)
使用微观药动学参数预测因变量。
参数:
k (
Expression
):消除速率常数。k23 (
Expression
):中央室向周边室的转运速率参数。k32 (
Expression
):周边室向中央室的转运速率参数。ka (
Expression
):吸收速率参数。alag1 (
Expression
, optional):贮藏室吸收延迟时间。默认值为None
。alag2 (
Expression
, optional):中央室吸收延迟时间。默认值为None
。alag3 (
Expression
, optional):周边室吸收延迟时间。默认值为None
。s1 (
Expression
, optional):贮藏室药量-浓度换算系数。默认值为None
。s2 (
Expression
, optional):中央室药量-浓度换算系数。默认值为None
。s3 (
Expression
, optional):周边室药量-浓度换算系数。默认值为None
。f1 (
Expression
, optional):贮藏室吸收分数。默认值为None
。f2 (
Expression
, optional):中央室吸收分数。默认值为None
。f3 (
Expression
, optional):周边室吸收分数。默认值为None
。r1 (
Expression
, optional):贮藏室给药速率。默认值为None
。r2 (
Expression
, optional):中央室给药速率。默认值为None
。r3 (
Expression
, optional):周边室给药速率。默认值为None
。d1 (
Expression
, optional):贮藏室给药持续时间。默认值为None
。d2 (
Expression
, optional):中央室给药持续时间。默认值为None
。d3 (
Expression
, optional):周边室给药持续时间。默认值为None
。
- property F
预测的观测室药物浓度。
类型:
SubroutineSolvedF[EvTwoCmtLinearIndexType]
- property A
各房室预测药量
类型:
SubroutineSolvedAIndexer[EvTwoCmtLinearIndexType]
mas.model.EvTwoCmtLinear.pred_physio_vss#
- class mas.model.EvTwoCmtLinear.pred_physio_vss(cl, v, q, vss, ka, alag1=None, alag2=None, alag3=None, s1=None, s2=None, s3=None, f1=None, f2=None, f3=None, r1=None, r2=None, r3=None, d1=None, d2=None, d3=None)
使用生理药动学参数与稳态表观分布容积(vss)预测因变量。
参数:
cl (
Expression
):清除率。v (
Expression
):中央室表观分布容积。q (
Expression
):房室间清除率。vss (
Expression
):稳态表观分布容积。ka (
Expression
):吸收速率参数。alag1 (
Expression
, optional):贮藏室吸收延迟时间。默认值为None
。alag2 (
Expression
, optional):中央室吸收延迟时间。默认值为None
。alag3 (
Expression
, optional):周边室吸收延迟时间。默认值为None
。s1 (
Expression
, optional):贮藏室药量-浓度换算系数。默认值为None
。s2 (
Expression
, optional):中央室药量-浓度换算系数。默认值为None
。s3 (
Expression
, optional):周边室药量-浓度换算系数。默认值为None
。f1 (
Expression
, optional):贮藏室吸收分数。默认值为None
。f2 (
Expression
, optional):中央室吸收分数。默认值为None
。f3 (
Expression
, optional):周边室吸收分数。默认值为None
。r1 (
Expression
, optional):贮藏室给药速率。默认值为None
。r2 (
Expression
, optional):中央室给药速率。默认值为None
。r3 (
Expression
, optional):周边室给药速率。默认值为None
。d1 (
Expression
, optional):贮藏室给药持续时间。默认值为None
。d2 (
Expression
, optional):中央室给药持续时间。默认值为None
。d3 (
Expression
, optional):周边室给药持续时间。默认值为None
。
- property F
预测的观测室药物浓度。
类型:
SubroutineSolvedF[EvTwoCmtLinearIndexType]
- property A
各房室预测药量
类型:
SubroutineSolvedAIndexer[EvTwoCmtLinearIndexType]
mas.model.EvTwoCmtLinear.pred_physio#
- class mas.model.EvTwoCmtLinear.pred_physio(cl, v2, q, v3, ka, alag1=None, alag2=None, alag3=None, s1=None, s2=None, s3=None, f1=None, f2=None, f3=None, r1=None, r2=None, r3=None, d1=None, d2=None, d3=None)
使用生理药动学参数预测因变量。
参数:
cl (
Expression
):清除率。v2 (
Expression
):中央室表观分布容积。q (
Expression
):房室间清除率。v3 (
Expression
):周边室表观分布容积。ka (
Expression
):吸收速率参数。alag1 (
Expression
, optional):贮藏室吸收延迟时间。默认值为None
。alag2 (
Expression
, optional):中央室吸收延迟时间。默认值为None
。alag3 (
Expression
, optional):周边室吸收延迟时间。默认值为None
。s1 (
Expression
, optional):贮藏室药量-浓度换算系数。默认值为None
。s2 (
Expression
, optional):中央室药量-浓度换算系数。默认值为None
。s3 (
Expression
, optional):周边室药量-浓度换算系数。默认值为None
。f1 (
Expression
, optional):贮藏室吸收分数。默认值为None
。f2 (
Expression
, optional):中央室吸收分数。默认值为None
。f3 (
Expression
, optional):周边室吸收分数。默认值为None
。r1 (
Expression
, optional):贮藏室给药速率。默认值为None
。r2 (
Expression
, optional):中央室给药速率。默认值为None
。r3 (
Expression
, optional):周边室给药速率。默认值为None
。d1 (
Expression
, optional):贮藏室给药持续时间。默认值为None
。d2 (
Expression
, optional):中央室给药持续时间。默认值为None
。d3 (
Expression
, optional):周边室给药持续时间。默认值为None
。
- property F
预测的观测室药物浓度。
类型:
SubroutineSolvedF[EvTwoCmtLinearIndexType]
- property A
各房室预测药量
类型:
SubroutineSolvedAIndexer[EvTwoCmtLinearIndexType]
mas.model.EvTwoCmtLinear.pred_macro_aob#
- class mas.model.EvTwoCmtLinear.pred_macro_aob(alpha, beta, aob, ka, alag1=None, alag2=None, alag3=None, s1=None, s2=None, s3=None, f1=None, f2=None, f3=None, r1=None, r2=None, r3=None, d1=None, d2=None, d3=None)
使用宏观药动学参数预测因变量。
参数:
alpha (
Expression
):二室模型药代动力学方程中的指数 \(\alpha\)。beta (
Expression
):二室模型药代动力学方程中的指数 \(\beta\)。aob (
Expression
):\(A/B\)。其中 \(A\) 与 \(B\) 为二室模型药代动力学方程中的系数。ka (
Expression
):吸收速率参数。alag1 (
Expression
, optional):贮藏室吸收延迟时间。默认值为None
。alag2 (
Expression
, optional):中央室吸收延迟时间。默认值为None
。alag3 (
Expression
, optional):周边室吸收延迟时间。默认值为None
。s1 (
Expression
, optional):贮藏室药量-浓度换算系数。默认值为None
。s2 (
Expression
, optional):中央室药量-浓度换算系数。默认值为None
。s3 (
Expression
, optional):周边室药量-浓度换算系数。默认值为None
。f1 (
Expression
, optional):贮藏室吸收分数。默认值为None
。f2 (
Expression
, optional):中央室吸收分数。默认值为None
。f3 (
Expression
, optional):周边室吸收分数。默认值为None
。r1 (
Expression
, optional):贮藏室给药速率。默认值为None
。r2 (
Expression
, optional):中央室给药速率。默认值为None
。r3 (
Expression
, optional):周边室给药速率。默认值为None
。d1 (
Expression
, optional):贮藏室给药持续时间。默认值为None
。d2 (
Expression
, optional):中央室给药持续时间。默认值为None
。d3 (
Expression
, optional):周边室给药持续时间。默认值为None
。
- property F
预测的观测室药物浓度。
类型:
SubroutineSolvedF[EvTwoCmtLinearIndexType]
- property A
各房室预测药量
类型:
SubroutineSolvedAIndexer[EvTwoCmtLinearIndexType]
mas.model.EvTwoCmtLinear.pred_macro_micro#
- class mas.model.EvTwoCmtLinear.pred_macro_micro(alpha, beta, k32, ka, alag1=None, alag2=None, alag3=None, s1=None, s2=None, s3=None, f1=None, f2=None, f3=None, r1=None, r2=None, r3=None, d1=None, d2=None, d3=None)
使用宏观药动学参数与微观药动学参数(k32)预测因变量。
参数:
alpha (
Expression
):二室模型药代动力学方程中的指数 \(\alpha\)。beta (
Expression
):二室模型药代动力学方程中的指数 \(\beta\)。k32 (
Expression
):周边室向中央室的转运速率参数。ka (
Expression
):吸收速率参数。alag1 (
Expression
, optional):贮藏室吸收延迟时间。默认值为None
。alag2 (
Expression
, optional):中央室吸收延迟时间。默认值为None
。alag3 (
Expression
, optional):周边室吸收延迟时间。默认值为None
。s1 (
Expression
, optional):贮藏室药量-浓度换算系数。默认值为None
。s2 (
Expression
, optional):中央室药量-浓度换算系数。默认值为None
。s3 (
Expression
, optional):周边室药量-浓度换算系数。默认值为None
。f1 (
Expression
, optional):贮藏室吸收分数。默认值为None
。f2 (
Expression
, optional):中央室吸收分数。默认值为None
。f3 (
Expression
, optional):周边室吸收分数。默认值为None
。r1 (
Expression
, optional):贮藏室给药速率。默认值为None
。r2 (
Expression
, optional):中央室给药速率。默认值为None
。r3 (
Expression
, optional):周边室给药速率。默认值为None
。d1 (
Expression
, optional):贮藏室给药持续时间。默认值为None
。d2 (
Expression
, optional):中央室给药持续时间。默认值为None
。d3 (
Expression
, optional):周边室给药持续时间。默认值为None
。
- property F
预测的观测室药物浓度。
类型:
SubroutineSolvedF[EvTwoCmtLinearIndexType]
- property A
各房室预测药量
类型:
SubroutineSolvedAIndexer[EvTwoCmtLinearIndexType]
mas.model.IvOneCmtMichaelisMenten#
- class mas.model.IvOneCmtMichaelisMenten#
基类:Module
。
一室血管外给药非线性消除(Michaelis-Menten 消除)模型。
mas.model.IvOneCmtMichaelisMenten.pred_micro#
- class mas.model.IvOneCmtMichaelisMenten.pred_micro(km, vm, alag1=None, s1=None, f1=None, r1=None, d1=None)
使用微观药动学参数预测因变量。
参数:
km (
Expression
):米氏常数。vm (
Expression
):最大速率。alag1 (
Expression
, optional):中央室吸收延迟时间。默认值为None
。s1 (
Expression
, optional):中央室药量-浓度换算系数。默认值为None
。f1 (
Expression
, optional):中央室吸收分数。默认值为None
。r1 (
Expression
, optional):中央室给药速率。默认值为None
。d1 (
Expression
, optional):中央室给药持续时间。默认值为None
。
- property F
预测的观测室药物浓度。
类型:
SubroutineSolvedF[IvOneCmtMichaelisMentenIndexType]
- property A
各房室预测药量
类型:
SubroutineSolvedAIndexer[IvOneCmtMichaelisMentenIndexType]
mas.model.OdeModule#
- class mas.model.OdeModule(solver: AnyOdeSolverConfiguration = odeint.DVERK)#
基类:Module
。
常微分方程模型。
- property t#
符号 “t”,代表常微分方程中的时间。
类型:
IntegralT
示例:
华法林 PK-PD 模型示例:
class WarfarinPkPd(OdeModule):
def __init__(self) -> None:
super().__init__()
self.dose_cmt = compartment(default_dose=True)
self.central_cmt = compartment(default_obs=True)
self.effect_cmt = compartment()
self.tv_v = theta(7.81, bounds=(0, None))
self.tv_cl = theta(0.134, bounds=(0, None))
self.tv_ka = theta(0.571, bounds=(0, None))
self.tv_e0 = theta(96.7216, bounds=(0.01, 200))
self.tv_emax = theta(-254.891, bounds=(-500, 0))
self.tv_ec50 = theta(11.0351, bounds=(0.01, 20))
self.tv_ke0 = theta(0.176, bounds=(0.001, 3))
self.eta_v = omega(0.049)
self.eta_cl = omega(0.0802)
self.eta_ka = omega(0.047)
self.eta_emax = omega(0, fixed=True)
self.eta_e0 = omega(0.003)
self.eta_ec50 = omega(0.452)
self.eta_ke0 = omega(0.303)
self.eps_prop_pk = sigma(0.0104)
self.eps_add_pk = sigma(0.554)
self.eps_add_pd = sigma(14.4)
self.dvid = column("DVID")
def pred(self) -> Expression:
# PK parameters
cl = self.tv_cl * exp(self.eta_cl)
v = self.tv_v * exp(self.eta_v)
ka = self.tv_ka * exp(self.eta_ka)
k = cl / v
s2 = v
# PD parameters
e0 = self.tv_e0 * exp(self.eta_e0)
emax = self.tv_emax * exp(self.eta_emax)
ec50 = self.tv_ec50 * exp(self.eta_ec50)
ke0 = self.tv_ke0 * exp(self.eta_ke0)
cp = self.central_cmt.A / s2
ce = self.effect_cmt.A
self.dose_cmt.dAdt = -ka * self.dose_cmt.A
self.central_cmt.dAdt = ka * self.dose_cmt.A - k * self.central_cmt.A
self.effect_cmt.dAdt = ke0 * (cp - ce)
eff = e0 + (emax * ce) / (ec50 + ce)
if self.dvid == 1:
# PK observations
y = cp * (1 + self.eps_prop_pk) + self.eps_add_pk
else:
# PD observations
y = eff + self.eps_add_pd
return y
mas.model.odeint#
- class mas.model.odeint#
常微分方程求解器。
DVERK()#
- static DVERK(tol=1e-06, err_typ='combined', floor=1e-05, max_fun_calls=100000) DVERKSettings #
Verner 五阶和六阶 Runge-Kutta 方法,用于求解非刚性一阶常微分方程。
参数:
tol (
float
, optional):收敛界值。默认值为1e-06
。err_typ (
Literal["absolute", "relative", "combined"]
, optional):误差形式。若为"absolute"
则使用绝对误差,即误差权重为 1。若为"relative"
则使用相对误差,误差权重为 \(\frac{1}{\mid y(k) \mid}\)。若为"combined"
则使用结合性误差,此时如果 \(\mid y(k) \mid < \mid floor \mid \),误差权重为 \(\frac{1}{max(\mid floor \mid)}\);否则为 \(\frac{1}{max(\mid y(k) \mid)}\)。默认值为"combined"
。floor (
float
, optional):容差。默认值为1e-05
。max_fun_calls (
int
, optional):最大函数调用次数。默认值为100000
。
返回值:
DVERK 设置。
返回类型:
DVERKSettings
参考文献
Hull, T. & Enright, W.H. & Jackson, Kenneth. (1976). User's guide for DVERK-a subroutine for solving non-stiff ODEs.
LSODA()#
- static LSODA(rel_tol=1e-12, abs_tol=1e-12) LSODASettings #
由 Linda Petzold 和 Alan Hindmarsh 提出的 LSODA 算法,用于求解刚性或非刚性的一阶常微分方程。
参数:
rel_tol (
float
, optional):相对收敛界值。默认值为1e-12
。abs_tol (
float
, optional):绝对收敛界值。默认值为1e-12
。
返回值:
LSODA 设置。
返回类型:
LSODASettings
参考文献
Petzold, L. . (1983). Automatic selection of methods for solving stiff and nonstiff systems of ordinary differential equations. Siam J.sci.stat.comput, 4(1), 136-148.