carputils
Doxygen code documentation for the python framework controlling openCARP
|
Implementation from Klotz's paper 'A computational method of prediction of the end-diastolic pressure-volume relationship by single beat'. More...
Classes | |
class | KlotzRelation |
Represents the EDPVR determined by Klotz from a single volume, pressure measurement. More... | |
Functions | |
def | V0 (Vm, Pm) |
Determine the zero-pressure volume from the Klotz relation. More... | |
def | V30 (Vm, Pm) |
Determine the volume at 30 mmHg from the Klotz relation. More... | |
def | V15 (Vm, Pm) |
Determine the volume at 15 mmHg from the Klotz relation. More... | |
def | beta (Vm, Pm) |
Determine the beta parameter of the Klotz EDPVR. More... | |
def | alpha (Vm, Pm) |
Determine the alpha parameter of the Klotz EDPVR. More... | |
Variables | |
float | MMHG2KPA = 0.133322387415 |
float | KPA2MMHG = 1.0 / MMHG2KPA |
float | AN = 27.78 |
float | BN = 2.76 |
fig = pyplot.figure() | |
ax = fig.add_subplot(1,1,1) | |
Vm = float(sys.argv[1]) | |
Pm = float(sys.argv[2]) * MMHG2KPA | |
list | V = [] |
P = KlotzRelation(Vm, Pm) | |
vdat = np.linspace(0, 170, 200) | |
pdat = P(vdat) | |
c | |
label | |
marker | |
loc | |
color | |
Implementation from Klotz's paper 'A computational method of prediction of the end-diastolic pressure-volume relationship by single beat'.
From Klotz's 2007 Nature Protocols paper 'A computational method of prediction of the end-diastolic pressure-volume relationship by single beat', the following equations are taken.
Equations 2 and 5 seem to describe the end-diastolic pressure-volume relation (EDPVR) as:
.. math:
P = A_n V_n^{B_n}
where :math:P
is cavity pressure, :math:V_n
is normalised volume, and the constants :math:A_n
and :math:B_n
were determined emperically in their earlier study as 27.78 mmHg and 2.76 respectively.
Normalised volume :math:V_n
is determined as explained in equation 4 as:
.. math:
V_n = \frac{V - V_0}{V_30 - V_0}
where :math:V
is the cavity volume, :math:V_0
is the volume at zero pressure and :math:V_30
is the volume at a pressure of 30 mmHg.
The above can be arranged to equation 6, giving the :math:V_{30}
constant:
.. math:
V_{30} = V_0 + \frac{V - V_0}{\left(\frac{P_m}{A_n}\right)^{(1/B_n)}}
:math:V_0
is determined using the emperical relation:
.. math:
V_0 = V_m (0.6 - 0.006 P_m)
where :math:V_m
and :math:P_m
are a pressure-volume pair measured.
The equation :math:P = \alpha V^\beta
is then fitted to the above :math:(V_m, P_m)
point, giving the following relations for the constants :math:\alpha
and :math:\beta
:
.. math:
\beta = \frac{\log\left(\tfrac{P_m}{30}\right)} {\log\left(\tfrac{V_m}{V_{30}}\right)} \alpha = \frac{30}{V_{30}^\beta}
To avoid a singularity in the above equations when :math:P_m \rightarrow 30
, the above equations were reposed as:
.. math:
\beta = \frac{\log\left(\tfrac{P_m}{15}\right)} {\log\left(\tfrac{V_m}{V_{15}}\right)} \alpha = \frac{P_m}{V_m^\beta}
where :math:V_{15}
is determined analytically as:
.. math:
V_{15} = 0.8 (V_{30} - V_0) + V_0
The paper advises using the first form of the :math:\alpha
and :math:\beta
equations (utilising :math:V_{30}
) when using a :math:P_m
value up to 22 mmHg and the second form (utilising :math:V_{15}
) above 22 mmHg.
def carputils.fitting.klotz.alpha | ( | Vm, | |
Pm | |||
) |
Determine the alpha parameter of the Klotz EDPVR.
Vm float The volume of a measured state on the EDPVR (ml) Pm float The pressure of a measured state on the EDPVR (kPa)
float The alpha parameter
def carputils.fitting.klotz.beta | ( | Vm, | |
Pm | |||
) |
Determine the beta parameter of the Klotz EDPVR.
Vm float The volume of a measured state on the EDPVR (ml) Pm float The pressure of a measured state on the EDPVR (kPa)
float The beta parameter
def carputils.fitting.klotz.V0 | ( | Vm, | |
Pm | |||
) |
Determine the zero-pressure volume from the Klotz relation.
Vm float The volume of a measured state on the EDPVR (ml) Pm float The pressure of a measured state on the EDPVR (kPa)
float The zero-pressure volume (ml)
def carputils.fitting.klotz.V15 | ( | Vm, | |
Pm | |||
) |
Determine the volume at 15 mmHg from the Klotz relation.
Vm float The volume of a measured state on the EDPVR (ml) Pm float The pressure of a measured state on the EDPVR (kPa)
float The volume at 15 mmHg (ml)
def carputils.fitting.klotz.V30 | ( | Vm, | |
Pm | |||
) |
Determine the volume at 30 mmHg from the Klotz relation.
Vm float The volume of a measured state on the EDPVR (ml) Pm float The pressure of a measured state on the EDPVR (kPa)
float The volume at 30 mmHg (ml)
float carputils.fitting.klotz.AN = 27.78 |
carputils.fitting.klotz.ax = fig.add_subplot(1,1,1) |
float carputils.fitting.klotz.BN = 2.76 |
carputils.fitting.klotz.c |
carputils.fitting.klotz.color |
carputils.fitting.klotz.fig = pyplot.figure() |
float carputils.fitting.klotz.KPA2MMHG = 1.0 / MMHG2KPA |
carputils.fitting.klotz.label |
carputils.fitting.klotz.loc |
carputils.fitting.klotz.marker |
float carputils.fitting.klotz.MMHG2KPA = 0.133322387415 |
carputils.fitting.klotz.P = KlotzRelation(Vm, Pm) |
float carputils.fitting.klotz.Pm = float(sys.argv[2]) * MMHG2KPA |
carputils.fitting.klotz.V = [] |
carputils.fitting.klotz.vdat = np.linspace(0, 170, 200) |
carputils.fitting.klotz.Vm = float(sys.argv[1]) |