Download the reservoir/excess pressure program

The latest version of our program to calculate the reservoir pressure from a measured pressure waveform can be downloaded here:

 

Links to scripts and sample data

Matlab script
     kreservoir_v13.m

R script
     kreservoir13.R

Batch processing script for radial pressure measurements
     fitres_v5.m

Manual for the Batch processing script
     manual

Test data
     aortic pressure waveform

 

The program for calculating reservoir pressure from measured pressure has undergone many changes over the years. It may be somewhat outdated now that sophisticated non-linear fitting routines are widely available (e.g. fminsearch.m in Matlab). However this program has been extensively tested and has been found to be robust and to give generally reasonable results. The program made available for download here, kreservoir_v13.m, is a slight variant on the program that has been used in most of our papers on reservoir pressure (see bibliography).

Without going into details, it does the fitting in 2 separate steps. First it determines the start of diastole and then fits the diastolic rate constant kd ( = 1/τ) and the asymptotic pressure P&infnty; to the measured pressure P during diastole. The systolic rate constant ks is fitted in a second step using the solution of the conservation equation given in the theory pages below. In a recent comparison of the results of this program and a simultaneous fitting of the 3 parameters using a nonlinear fitting routine we found no significant differences in the results. To date no one has compared the results of the pressure-only method to the calculation of the reservoir pressure from simultaneous measurements of pressure and velocity.

[NOTE: I have used our new notation for the rate constants in the reservoir pressure theory. In the program A = ks and B = kd.]

I am grateful to my long-term colleague Prof. Alun Hughes for permission to make his version of the reservoir pressure program available. He has also provided a program he developed to batch process reservoir pressure from tonometric pressure measurements in the radial artery using a Sphygmocor device. This program is specialised for this particular device but may be useful for others. He has also provided a Manual he wrote for the use of the batch processing program which is very readable and most informative.

I am also very grateful to Matthew Armstrong at the University of Tasmania, Australia for the R version of kreservoir.m and for the aortic pressure waveform test data. He has done a lot of work in the translation and testing of the program, including an extensive comparison of the results of the R and the Matlab versions of the program. I will be happy to answer any queries about the application of the Matlab version of the program. Unfortunately, I do not speak R and will have to redirect questions about the R version to [Matthew Armstrong <matthew.armstrong@utas.edu.au>].

 

The Matlab script is written as a function which must be called from another program (or from the command line) with the command

[Pr,A,B,Pinf,Tn,Pn] = kreservoir_v13(P,Tb);

The input and output variables are described in the header of the script. In our recent work we have defined the output parameters A = ks (the systolic rate constant) and B = kd (the diastolic rate constant). The time constant of the exponential diastolic pressure fall τ = 1/B (= 1/kd, in the new notation).

The program assumes that the first element of the pressure P corresponds to the diastolic point in the arterial pressure waveform; i.e. the time of minimum P just before the rapid rise in P during early systole. Ignoring this condition (e.g. by taking the first element of P to be the pressure at the time of the peak in the R-wave of the ECG) is probably the most common error in the use of this program. It would be possible to check for this error in the program at the cost of extra complexity and reduced clarity. In the current version of the program it is left to the user to ensure that this condition is met.