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
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.