You can’t tell me it isn’t beautiful 🤩 For very process oriented tasks i build MVC format, but with a twist. It’s NESTED MVC. Controllers call nested sub controllers Those controllers can eventually call a model or view function, but the rule is those functions need to be terminal (they don’t call other functions) a sub controller might coordinate many model tasks or many view tasks, but if you need both, you need two sub controllers for that.
Petri dish analysis has always been a mess of fragmented tools. Researchers end up juggling ImageJ for measurements, Excel for data organization, JMP for statistics - managing hundreds of files across multiple platforms while developing custom pipelines for each project. QuantaColony fixes this by integrating the entire workflow into one platform, from image analysis to statistical results.
The platform organizes experiments around two key variables: ordinal (like time points, drug concentrations) and nominal (like strain types, treatment groups). You assign different sections of your petri dishes to these variable combinations, and each unique pairing creates what we call a "colony set" - basically all the colonies under those specific experimental conditions.
Colony Detection uses "User Supervised Automation" to measure these colony sets. You get 5 tunable parameters that update in real-time as you adjust them: brightness threshold, max area, sensitivity, and min/max radius. You can flip between circular detection (MATLAB's imfindcircles) and irregular detection (regionprops) depending on your organism. No two photos use the same parameters since lighting and imaging artifacts vary.
Those colony sets and their measurements become the foundation for statistical analysis. Population stability scoring, decline rate analysis, density distribution shifts, subpopulation tracking - all building on the quantitative data extracted during detection. The whole workflow maintains the connection between your experimental variables and the biological insights, something that's impossible when your analysis is scattered across multiple tools.