## 4 Results  
### Bacterial Counting  
To evaluate the quality of our simulation's counts, we ran our simulation on two sets of binarized frames: a \"noisy\" set and a \"clean\" set. We used both sets in order to demonstrate that our software is not impeded even by high amounts of noise as depicted at the top of Figure 2. Then, we compared the frame-by-frame bacterial counts produced by our simulation to frame-by-frame bacterial counts we conducted manually on the original video and to the counts produced by a variety of other cell counting and lineage tracking programs, including established programs like CellProfiler [12; 13] and more recent programs like SuperSegger [27]. Results are presented in Table 1 and depicted in Figure 4.  
\begin{table}
\begin{tabular}{l r r r r} \hline \hline
**Program** & **Err.** & **\%Err.** & **CPU (s)** & **Comment** \\ \hline SuperSegger [27] & 0.80 & 2.24 & \(\sim\)2400 & 10 min \(\times\)4 cores on 2.9 GHz Mac \\ CellProfiler [12; 13] & \(-\)2.20 & \(-\)6.17 & \(\sim\)3600 & 15 min \(\times\)4 cores on 3.2 GHz Lenovo G500s i5-3230M \\ Lineage Mapper [16] & 2.84 & 7.95 & \(\sim\)300 & Required _enormous_ effort (days) to tune its parameters \\ _Cell Universe_ [\"Clean\"] & 2.85 & 7.99 & 9900 & 20 min \(\times\)8 cores on CentOS 2.4 GHz Opteron 6378 \\ TLM-Tracker [28] & \(-\)3.55 & 5.41 & \(\sim\)300 & 5 min; very sensitive to noise; clean images only. \\ _Cell Universe_ [\"Noisy\"] & 5.85 & 16.40 & 17,000 & 35 min \(\times\)8 cores on CentOS 2.4 GHz Opteron 6378 \\ ImageJ Reg. Count. & \(-\)10.99 & \(-\)30.80 & \(\sim\)10,000 & 20 min \(\times\)8 cores on CentOS 2.4 GHz Opteron 6378 \\ CellCounter [11] & 14.56 & 40.82 & \(\sim\)1000 & \\ Outfi [29] & \(-\)29.08 & \(-\)89.50 & \(\sim\)1000 & \\ TrackMate/Fiji [30; 31] & 37.11 & 104.30 & \(\sim\)1000 & \\ TimeLapseAnal. [32] & — & — &? & \\ LEVER [33] & — & — &? & \\ \hline \hline \end{tabular}
\end{table}
Table 1: Absolute and relative bacteria count errors for each tested program compared to manual counts, sorted best to worst. A “—” indicates that we were unable to get the program to work on our video. **Note**: CPU times for all programs other than _Cell Universe_ are only approximate, because each program used its own specific environment (MacOS, Windows, Linux, Matlab, with or without a GUI, etc.). Thus, these tests were run on a highly heterogeneous set of machines with various amounts of RAM, cores, CPU clock speeds, etc.  
Our simulation was able to precisely count the number of cells in each frame at least until Frame 66. Between Frames 1-66, any deviations from the manual count were simply because our simulation counted cells as having split into two daughters one frame before they actually did, not because any cells were lost. However, starting in Frame 67 (see Figure 5), problems with the real video began to impact the quality of not only our simulation's count and the counts of the other techniques, but also our \"gold standard\" manual count. The real video became blurry as crowding at the center of the colony began to push certain individual bacteria off the camera's focal plane under the mass of the colony. As a result, neither our simple \"clean\" nor \"noisy\" binarizations were entirely able to capture all of the bacteria actually \"in\" the frame. The combination of blurring and crowding made it difficult for the cost function to measure the difference between reality and the synthetic images created from our simulated universes. However, it is _still_ true that our simulation \"knows\" some cells are hidden, since they still exist in the simulation even if they are difficult or impossible to discern in the image.