# Clarification on Pump Calibration

**URL:** <https://www.evolver.bio/t/clarification-on-pump-calibration/241>\
**Category:** Data Processing Unit\
**Created:** [January 5, 2021, 8:49pm UTC](https://www.evolver.bio/t/clarification-on-pump-calibration/241 "2021-01-05T20:49:16Z")\
**Posts on this page:** 7\
**Page:** 1

<div class="post-metadata">

**Author:** ![maraxen](https://avatars.discourse-cdn.com/v4/letter/m/f08c70/32.png) [@maraxen](https://www.evolver.bio/u/maraxen)\
**Post date:** [January 5, 2021, 8:49pm UTC](https://www.evolver.bio/t/clarification-on-pump-calibration/241/1 "2021-01-05T20:49:16Z")

</div>

The [pump\_cal.txt](https://github.com/FYNCH-BIO/dpu/blob/master/experiment/template/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  
> else:  
> # 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/average\_OD)\*VOLUME)/flow\_rate

In the chemostat function:

> bolus\_in\_s = bolus/flow\_rate

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.

---

<div class="post-metadata">

**Author:** ![cmancuso](https://yyz1.discourse-cdn.com/flex035/user_avatar/www.evolver.bio/cmancuso/32/51_2.png) [@cmancuso](https://www.evolver.bio/u/cmancuso)\
**Post date:** [January 6, 2021, 4:54pm UTC](https://www.evolver.bio/t/clarification-on-pump-calibration/241/2 "2021-01-06T16:54:58Z")

</div>

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.

---

<div class="post-metadata">

**Author:** ![heinsz](https://yyz1.discourse-cdn.com/flex035/user_avatar/www.evolver.bio/heinsz/32/52_2.png) [@heinsz](https://www.evolver.bio/u/heinsz)\
**Post date:** [January 6, 2021, 8:31pm UTC](https://www.evolver.bio/t/clarification-on-pump-calibration/241/3 "2021-01-06T20:31:05Z")

</div>

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.

---

<div class="post-metadata">

**Author:** ![maraxen](https://avatars.discourse-cdn.com/v4/letter/m/f08c70/32.png) [@maraxen](https://www.evolver.bio/u/maraxen)\
**Post date:** [January 7, 2021, 3:06pm UTC](https://www.evolver.bio/t/clarification-on-pump-calibration/241/4 "2021-01-07T15:06:50Z")

</div>

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.

---

<div class="post-metadata">

**Author:** ![maraxen](https://avatars.discourse-cdn.com/v4/letter/m/f08c70/32.png) [@maraxen](https://www.evolver.bio/u/maraxen)\
**Post date:** [January 7, 2021, 3:08pm UTC](https://www.evolver.bio/t/clarification-on-pump-calibration/241/5 "2021-01-07T15:08:10Z")

</div>

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.

---

<div class="post-metadata">

**Author:** ![danigarcia](https://yyz1.discourse-cdn.com/flex035/user_avatar/www.evolver.bio/danigarcia/32/221_2.png) [@danigarcia](https://www.evolver.bio/u/danigarcia)\
**Post date:** [January 12, 2021, 10:21am UTC](https://www.evolver.bio/t/clarification-on-pump-calibration/241/6 "2021-01-12T10:21:21Z")

</div>

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.

---

<div class="post-metadata">

**Author:** ![bgwong](https://yyz1.discourse-cdn.com/flex035/user_avatar/www.evolver.bio/bgwong/32/262_2.png) [@bgwong](https://www.evolver.bio/u/bgwong)\
**Post date:** [January 12, 2021, 4:26pm UTC](https://www.evolver.bio/t/clarification-on-pump-calibration/241/7 "2021-01-12T16:26:12Z")

</div>

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!
