|
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]) |
1.8.13