Software

Introduction


During our fermentation experiments, we identified a significant issue: frequently forgetting critical timing steps due to overlapping multiple experiments, particularly in long-duration processes like fermentation. To address this, we developed a solution—modularizing each step of the fermentation process and embedding the optimal timing conditions into an alarm clock application.


When multiple experimental timelines overlap, distinct alarms provide clear reminders for each specific task, effectively preventing experimental failures caused by forgotten or confused schedules. Users can launch the software multiple times, input different experiments and their required timelines, and the software will provide timely reminders when each experiment starts.


How the Software Works


Note: This code was written in Visual Studio 2019 using the WinForms framework and the C# programming language.



  1. This code module serves as the core startup procedure for the alarm clock. It begins by loading and playing a system sound prompt for auditory feedback, then updates the program status flag and switches visually from the startup interface to the main timing interface. Subsequently, it converts user-defined time parameters (in hours) into seconds for internal processing, establishing the foundation for precise timing. Finally, it initializes all display labels on the main interface to a visible state and resets the second counter to zero, ensuring timing starts from the initial state.

    Software Startup Procedure Interface

  2. This code segment primarily handles program initialization. First, it sets all interface controls—including various labels, buttons, and functional panels—to a hidden state. Next, it initializes the core timer component, setting its trigger interval to 1000 milliseconds (1 second) and enabling it immediately. Finally, it ensures the main display panel is hidden, guaranteeing a clean initial interface upon startup. This initialization process lays a solid foundation for the subsequent normal operation of the alarm clock functions. By uniformly managing the state of interface elements and initiating the timing mechanism, it ensures stability and reliability during program execution.

    Program Initialization Interface

  3. This code segment handles resetting the program to its initial state. It first halts program execution (started=false) and displays the start interface. It then resets all timing variables (sh1, sh2, tn, sn) to zero and restores the default text on operation buttons. Finally, it hides all functional controls (AIPTG, iptg, Do, NS, etc.) and main interface elements (mainP, up1, do1, etc.), completely restoring the program to its initial state.

    Program Reset Function Interface

User Experience Testing


User Feedback: Testing the One-Click Time Setting Feature


The core interaction of this software—allowing users to set reminders by directly inputting time points—received highly positive feedback in tests conducted within our team and across classroom settings. This design successfully addresses a critical pain point in our experimental workflow: ensuring that key operational steps are not missed due to forgetfulness or confusion.



Feedback from Team Members


Team member Yu Bingxuan, responsible for induction and sampling at specific time points while preparing an "E. coli protein expression experiment," reported: "This alarm clock software is incredibly convenient. I just open the software at the experiment start, sequentially input times like '30 minutes later:', '3 hours later', '5 hours later'. It reminds me promptly, so I never have to worry about missing a time point because I'm gaming or browsing on my phone. The entire setup takes less than a minute, which is very reassuring."



Application Feedback from a Class Project


In another course project on "Yeast Fermentation Kinetics" overseen by Zhang Bowen, which required overnight monitoring of the fermentation process, Zhang Bowen stated: "It functions like a logical lab assistant, automatically executing reminders in sequence, which helped us avoid confusion in time management and allowed us to take shifts resting at night, ensuring data continuity." He added: "The key is there's no learning curve; you can use it immediately upon opening, just input the times. This is extremely helpful for those of us doing experiments for the first time."



Overall Conclusion


In traditional fermentation experiments, researchers often rely on memory or simple calendar reminders, making them highly susceptible to missing optimal sampling, feeding, or induction timings due to human error, leading to poor experimental reproducibility and inaccurate data. Our software liberates experimenters from the burden of manual timing by predefining a complete set of reminder protocols encompassing multiple critical time points, ensuring punctuality and precision in experimental operations.


This directly enhances the reliability and reproducibility of team data—two cornerstones of scientific research. More importantly, it introduces a process automation mindset, teaching teams how to translate complex biological protocols into precisely executable digital instructions. This lays a solid conceptual foundation for future integration with fully automated bioreactors and the construction of integrated "digital-biological" experimental platforms. It is not merely a reminder tool but also a trainer that fosters rigorous and efficient scientific habits.


Future Development of the Alarm Clock


Looking ahead, this alarm clock will evolve from a passive reminder tool into an "Intelligent Fermentation Steward." It will no longer rely solely on preset time points but will be capable of interfacing with online sensors (such as pH, dissolved oxygen, biomass probes) to monitor the microenvironment within the fermenter in real time.


Upon detecting specific metabolic inflection points or anomalous data, the system will proactively issue warnings and provide operational suggestions (e.g., "Cells entering stationary phase, recommend immediate induction" or "pH anomaly, please check"). Going a step further, it could integrate machine learning algorithms to self-optimize reminder strategies based on accumulated historical experiment data, even predicting experiment progression and automatically generating or adjusting subsequent experimental schedules.


Ultimately, it will become a central control hub integrating real-time monitoring, intelligent alerts, and process optimization—an indispensable "digital assistant" in every iGEM team's laboratory, significantly advancing synthetic biology research towards standardization, intellectualization, and efficiency.