Clarification on Pump Calibration

The pump_cal.txt found in the experiment/template folder of the DPU repo contains three lines of 16 numbers.

1 1.025 1 0.95 0.925 1.1 0.975 1.05 0.95 1.025 1.025 0.925 1 1.025 1 1
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0

I can intuit that each line would correspond to a set of pumps, and each of the sixteen columns corresponds to a single fluidics line/perisaltic pump.

For some background for those not familiar, this is called in the eVOLVER.py script by the get_flow_rate function

def get_flow_rate(self):
file_path = os.path.join(SAVE_PATH, PUMP_CAL_FILE)
flow_calibration = np.loadtxt(file_path, delimiter="\t")
if len(flow_calibration) == 16:
flow_rate = flow_calibration
# Currently just implementing influx flow rate
flow_rate = flow_calibration[0,:]
return flow_rate

Which itself is called in the turbidostat and chemostat custom_script functions via:

flow_rate = eVOLVER.get_flow_rate()

In the turbidostat function:

time_in = - (np.log(lower_thresh[x]/average_OD)*VOLUME)/flow_rate[x]

In the chemostat function:

bolus_in_s[x] = bolus/flow_rate[x]

I recently did a pump comparison of different cap connector types and the values were around 0.6 mL/second, lower than the pump calibration template values (which are all around 1). And these equations would seem to indicate that the units are not arbitrary.

With all that said, I have yet to do a full pump calibration, but our initial turbidostat trials have been diluting to the lower OD successfully — I would anticipate this is simply through serial dilutions until past the lower OD threshold, and an initial review of the pump logs from those runs seems to confirm this.

So, if the logic of the turbidostat dilutions is such that it is robust to erroneous pump calibrations, which appears to be the case, is there any need to do a in-lab pump calibration for turbidostat runs? And would this have greater relevance for chemostat runs, custom functions, and tracking media consumption? Also, I have not seen anything that calls in the latter lines and the code in eVOLVER.py indicates only influx flow rate is currently factored in, but is the idea to eventually/potentially have lines 2 and 3 correspond to additional fluidics arrays?

I have put together a protocol and spreadsheet for a pump calibration (and will be happy to share if I do attempt and all goes well), but before proceeding I am wanting to verify that my current understanding is accurate and gain a better conceptualization of the degree and nature of the pump calibration’s signficance.

You are correct that the turbidostat logic is robust to pump calibration, while the chemostat function is not. Efflux pump calibrations are generally not used since we include a safety factor and run those pumps longer anyways. That being said, there’s a few reasons that we like to do calibrations even for turbidostat and for efflux pumps.

  1. If the pumps are significantly off from the calibration value, your turbidostat function is less accurate and possibly less robust. If the actual flow rates are lower than the calibration file rates, then you’ll add more pump events to the queue, which could become an issue for fast growing cells that require frequent dilution. If the actual flow rates are higher than the calibration file, you may overdilute and have a different tstat lower threshold for each vial. These may not make a difference for most experiments but it is a potential source of vial-to-vial differences.

  2. The process of calibration will alert you to any pumps that have poor function, which could prevent overflows if the malfunctioning pump is an efflux pump.

If you aren’t concerned about small vial to vial differences, you could compromise by entering the average flow rate. You could have each influx and efflux pump run for the same time pumping water into different vials, then eyeball to see if there are any clear issues. You could then measure the volume and calculate flow rate for like 3 pumps and set that value for all pumps in the calibration file.

Just to add to what Chris said here, you could also look at pump_log.txt to see whether your dilutions are actually successful in reaching the lower OD limit or if they are requiring multiple dilution events.

Thank you for this explanation! We will be keeping this all in mind; I think for right now we may just put in an average, but I will be doing a full calibration at some point.

Yes, my previous review had shown that for at least one of our trials (but there was an efflux pump issue for some of the vials) and looking through the other pump logs, this seems to regularly be the case.

Hi all! Just to add a bit, in my personal experience running turbidostats experiments, using a good pump calibration was essential to notice any issue with dilutions, biofilm formation, or overflows. That means when one vial has been diluting correctly with one dilution event and it starts to use two or three events, something may be wrong. For instance, it can be due to the efflux line not working correctly which will make the culture volume increase and the OD will not go down to the lower threshold.

tldr: weird dilution events may be a sign of a problem, so a good calibration helped a lot in my experiments.


Completely agree! I’ve always thought it would be nice to have some algorithm learn what is normal behavior and what isn’t for error checking. Never got around to look into it though!