人体葡萄糖水平的调节
导言
在这个例子中,考虑了葡萄糖水平调节的系统。 当血浆葡萄糖水平升高时,胰岛素分泌受到刺激。 这增加了血液中的胰岛素水平,这增加了组织对葡萄糖的吸收。 葡萄糖从血液和间质液流出的增加导致葡萄糖浓度的降低,这反过来导致胰岛素分泌的降低。
附加功能
来计算平衡方程的解求解_glucose_equation。
function solve_glucose_equation(v, lambda, beta, alpha, phi, Ql, mu, theta, interval_min, interval_max)
# 我们检查没有胰岛素反应的病例(x≤φ)
x_low = Ql / lambda
if interval_min < x_low <= phi && x_low > 0
return x_low, 0.0
end
# 有胰岛素反应但无肾排出的病例(φ<x≤θ)
a1 = v * beta / alpha
b1 = lambda - (v * beta * phi) / alpha
c1 = -Ql
discriminant_1 = b1^2 - 4*a1*c1
roots1 = []
if discriminant_1 >= 0
x1 = (-b1 + sqrt(discriminant_1)) / (2*a1)
x2 = (-b1 - sqrt(discriminant_1)) / (2*a1)
roots1 = filter(x -> phi < x <= theta && x > 0, [x1, x2])
end
# 胰岛素反应和肾排出的情况(x>θ)
a2 = v * beta / alpha
b2 = lambda + mu - (v * beta * phi) / alpha
c2 = -Ql - mu*theta
discriminant_2 = b2^2 - 4*a2*c2
roots2 = []
if discriminant_2 >= 0
x3 = (-b2 + sqrt(discriminant_2)) / (2*a2)
x4 = (-b2 - sqrt(discriminant_2)) / (2*a2)
roots2 = filter(x -> x > theta && x > 0, [x3, x4])
end
# 选择最小的根
all_roots = vcat(roots1, roots2)
valid_roots = filter(x -> interval_min < x <= interval_max, all_roots)
x_sol = minimum(valid_roots) # 选择最小的点
y_sol = (beta / alpha) * max(x_sol - phi, 0)
return x_sol, y_sol
end;
要计算调节曲线,请使用calculate_curves函数。:
function calculate_curves(x_range, v, lambda, beta, alpha, phi, mu, theta, Ql)
# 胰岛素和葡萄糖曲线的计算
y_insulin = (beta / alpha) * max.(x_range .- phi, 0)
y_glucose = zeros(length(x_range))
for (i, x) in enumerate(x_range)
if x <= theta
y_glucose[i] = (Ql - lambda*x) / (v*x)
else
y_glucose[i] = (Ql - lambda*x - mu*(x - theta)) / (v*x)
end
end
# Y值在[0,0.5]范围内的限制
y_insulin[y_insulin .< 0] .= NaN
y_insulin[y_insulin .> 0.5] .= NaN
y_glucose[y_glucose .< 0] .= NaN
y_glucose[y_glucose .> 0.5] .= NaN
return y_insulin, y_glucose
end;
理论信息
在该模型中,血液和间质液的总体积由单个大隔室(成人中的V~15升)表示,并且该隔室中的稳态葡萄糖浓度为 (mg/ml)。 为了保持该x水平恒定,流入隔室的总葡萄糖必须等于从中流出的总葡萄糖。 在正常条件下,葡萄糖通过从胃肠道吸收或通过肝脏产生进入血液。 在本例中,输出流量表示为 (mg/hr)。 从血液中去除葡萄糖的方法主要有三种:
*何时 超过某个阈值 葡萄糖由肾脏以与之间的梯度成比例的速率排泄。 和 :
葡萄糖离开血液并通过促进扩散进入大多数细胞。 在一些组织中,葡萄糖利用率仅取决于细胞外/细胞内浓度梯度。 在大多数情况下,细胞内浓度可以忽略。:
在某些类型的细胞中,如肌肉和脂肪,胰岛素有助于刺激促进扩散的过程。 因此,这些细胞摄取葡萄糖的速率成比例 ,以及血液中胰岛素的浓度 :
在上述等式中 , 和 它们是恒定的比例系数。 通过将流入量等同于三个流出量的总和,我们得到了以下血糖的质量平衡方程:
\text{胰岛素由胰腺以取决于血浆葡萄糖水平的速率产生。} \text{但是,如果} \text{低于某个阈值} \text{,胰岛素的产生停止。} \text{因此,我们有}:
\text{胰岛素在涉及胰岛素酶的反应中以与其在血液中的浓度成比例的速率被破坏}:
\text{结合先前获得的方程,我们推导出连接静止水平的方程。} c :
葡萄糖调节模型
此计算中使用的参数值对应于成人的范数。
# 模型参数(正常条件)
theta = 2.5 # 肾葡萄糖排泄阈值(mg/mL)
mu = 7200 # 肾排泄率(mL/h)
lambda_val = 2470 # 胰岛素独立利用率(mL/h)
v_val = 139000 # 胰岛素依赖性利用系数(mU⁻1h-1)
phi_val = 0.51 # 胰岛素分泌阈值(mg/mL)
beta_val = 1390 # 胰岛素反应的敏感性(mL。U mL mg-1h-1)
alpha_val = 7600 # 胰岛素分解率(mL/h)
Ql_val = 8400; # 葡萄糖摄取率(mg/h)
让我们计算三种情况:
*正常流程,
*1型糖尿病,
*2型糖尿病。
# 正常流程
x_normal, y_normal = solve_glucose_equation(v_val, lambda_val, beta_val, alpha_val, phi_val, Ql_val, mu, theta, 0.0, 10.0)
# 1型糖尿病:胰岛素反应敏感性降低
beta_d1 = 0.2 * beta_val
x_d1, y_d1 = solve_glucose_equation(v_val, lambda_val, beta_d1, alpha_val, phi_val, Ql_val, mu, theta, 0.0, 10.0)
# 2型糖尿病:胰岛素依赖性利用率降低
v_d2 = 0.2 * v_val
x_d2, y_d2 = solve_glucose_equation(v_d2, lambda_val, beta_val, alpha_val, phi_val, Ql_val, mu, theta, 0.0, 10.0);
静止葡萄糖调节点的计算的分析结果。
# 结果输出
println("固定葡萄糖调节点:")
println("------------------------------------")
println("正常情况(N):")
println(" 葡萄糖= ", round(x_normal, digits=4), " mg/mL")
println(" 胰岛素= ", round(y_normal, digits=4), " mU/mL")
println("1型糖尿病(D1):")
println(" 葡萄糖= ", round(x_d1, digits=4), " mg/mL")
println(" 胰岛素= ", round(y_d1, digits=4), " mU/mL")
println("2型糖尿病(D2):")
println(" 葡萄糖= ", round(x_d2, digits=4), " mg/mL")
println(" 胰岛素= ", round(y_d2, digits=4), " mU/mL")
三种情况的图表计算。
x_range = 0.0:0.01:2.0 # 葡萄糖浓度范围
# 三种情况的计算
y_ins_norm, y_gluc_norm = calculate_curves(x_range, v_val, lambda_val, beta_val, alpha_val, phi_val, mu, theta, Ql_val)
y_ins_d1, y_gluc_d1 = calculate_curves(x_range, v_val, lambda_val, beta_d1, alpha_val, phi_val, mu, theta, Ql_val)
y_ins_d2, y_gluc_d2 = calculate_curves(x_range, v_d2, lambda_val, beta_val, alpha_val, phi_val, mu, theta, Ql_val);
仿真结果的可视化。
p1 = plot(x_range, [y_ins_norm, y_gluc_norm],
label=["胰岛素反应" "葡萄糖平衡"],
title="正常情况",
xlabel="葡萄糖浓度(mg/mL)",
ylabel="胰岛素浓度(mU/mL)",
linewidth=2,
linestyle=[:solid :dash],
color=[:blue :red],
xlims=(0.0, 2.0),
ylims=(0, 0.4),
legend=:topright)
scatter!([x_normal], [y_normal], label="第N点", color=:green, markersize=6)
p2 = plot(x_range, [y_ins_d1, y_gluc_d1],
label=["胰岛素反应1型糖尿病" "葡萄糖平衡"],
title="1型糖尿病",
xlabel="葡萄糖浓度(mg/mL)",
ylabel="胰岛素浓度(mU/mL)",
linewidth=2,
linestyle=[:solid :dash],
color=[:blue :red],
xlims=(0.0, 2.0),
ylims=(0, 0.4),
legend=:topright)
scatter!([x_d1], [y_d1], label="点D1", color=:green, markersize=6)
p3 = plot(x_range, [y_ins_d2, y_gluc_d2],
label=["胰岛素反应" "葡萄糖平衡2型糖尿病"],
title="2型糖尿病",
xlabel="葡萄糖浓度(mg/mL)",
ylabel="胰岛素浓度(mU/mL)",
linewidth=2,
linestyle=[:solid :dash],
color=[:blue :red],
xlims=(0.0, 2.0),
ylims=(0, 0.4),
legend=:topright)
scatter!([x_d2], [y_d2], label="点D2", color=:green, markersize=6)
plot(p1, p2, p3,
layout=(3,1),
size=(1000, 1200),
margin=40*Plots.px)
结论
血糖调节是一种负反馈系统。 葡萄糖的增加刺激胰岛素的分泌,从而促进其被组织吸收,降低浓度。 该模型描述了葡萄糖流入和流出的平衡,包括非线性。 1型糖尿病通过胰岛素产生减少来建模(),这导致高葡萄糖和低胰岛素水平。 2型糖尿病通过对胰岛素的组织敏感性降低来建模(),这导致葡萄糖和胰岛素两者的高水平。
使用的来源列表
1-Stolwijk,J.A.J.和J.D.Hardy。 "血糖水平的生理调节的模型。" 1974.