Error-prone growth calculation

Hi developers,
Ever since update to the latest version (25.2.20), growth rate calculation becomes erroneous. As shown in the figure, it seems that the filter made a mistake in generating current/initial OD which resulted a jump in grwoth rate.

Any suggestion in how to tune the parameters?

Indeed, instead of processing the noisy OD readings and having hard time extracting growth rate herein, calculating growth rate from volume turnover, provided dosing is on, is a more reliable and simpler. Is it possible to implement this new way of growt rate calculation?

Hi @xykb86,

We’ll try to determine what might be happening tomorrow. Did you happen to restart the growth-rate job around that point? Is this constantly happening, or just a problem for this experiment / pioreactor?


Indeed, instead of processing the noisy OD readings and having hard time extracting growth rate herein, calculating growth rate from volume turnover, provided dosing is on, is a more reliable and simpler. Is it possible to implement this new way of growt rate calculation?

It’s a neat idea, but I don’t think we’ll implement this natively - not everyone uses dosing for their growth curves.

Hi Cam,
Did you happen to restart the growth-rate job around that point?
——no, the whole run is continuous without stops.

Is this constantly happening, or just a problem for this experiment / pioreactor?
——This problem is across the board with multiple devices. The following is another example.

Yuck! Something is very wrong if you’re seeing negative Normalized ODs.

Can you send us the

  1. OD readings,
  2. normalized OD Readings,
  3. logs

exported data for either of these experiments? Send to cam@pioreactor.com please.

I’ll try to replicate it locally today. My best guess after looking at the data is some numerical instability in the Kalman Filter inference.

Hi @xykb86,

So I “replayed” the GR and nOD inference using your od readings - and I successfully replicated the bug!

We have an update and improvement to the algorithm for the next release, but here’s what you can do now. Change the ekf_outlier_std_threshold config parameter from 3.0 to something like 10.0.

Thanks a lot! Already implemented!