From cbc91bf6233a3a688a45426889ed650f13520467 Mon Sep 17 00:00:00 2001 From: "George L. F. Harris" Date: Sun, 25 Feb 2024 22:36:58 +0000 Subject: [PATCH] Account for different volumes Changed function one_second to account for the different volumes between each compartment. Now calculates mass of drug moving via pathway: (conc. * vol * rate constant - e.g. self.x2 * self.v2 * self.k21) Then divides by the volume of the target compartment to calculate the influence on concentration. --- PyTCI/models/base.py | 16 ++++++++-------- 1 file changed, 8 insertions(+), 8 deletions(-) diff --git a/PyTCI/models/base.py b/PyTCI/models/base.py index 51139fb..26934c2 100644 --- a/PyTCI/models/base.py +++ b/PyTCI/models/base.py @@ -54,18 +54,18 @@ def wait_time(self, time_seconds): def one_second(self): """ time steps must be one second for accurate modelling """ - x1k10 = self.x1 * self.k10 - x1k12 = self.x1 * self.k12 - x1k13 = self.x1 * self.k13 - x2k21 = self.x2 * self.k21 - x3k31 = self.x3 * self.k31 + dx1dt = ((self.k21*self.x2*self.v2 + self.k31*self.x3*self.v3) \ + - (self.k10*self.x1*self.v1 + self.k12*self.x1*self.v1 + self.k13*self.x1*self.v1)) \ + / self.v1 + dx2dt = (self.k12*self.x1*self.v1 - self.k21*self.x2*self.v2) / self.v2 + dx3dt = (self.k13*self.x1*self.v1 - self.k31*self.x3*self.v3) / self.v3 xk1e = self.x1 * self.keo xke1 = self.xeo * self.keo - self.x1 = self.x1 + (x2k21 - x1k12 + x3k31 - x1k13 - x1k10) - self.x2 = self.x2 + (x1k12 - x2k21) - self.x3 = self.x3 + (x1k13 - x3k31) + self.x1 += dx1dt + self.x2 += dx2dt + self.x3 += dx3dt self.xeo = self.xeo + (xk1e - xke1)