📖
eVOLVER
  • eVOLVER Documentation Wiki
  • General
    • About Us
    • eVOLVER Community
      • Code of Conduct
  • Getting Started
    • Buying eVOLVER
    • Part Sourcing
    • Unboxing and Setting Up
    • Software Installation
      • DPU Installation
      • Electron App (GUI) Installation
    • Configuring Computer and Networking
      • Router Setup
    • Calibrations
      • Temperature Calibration
      • Optical Density Calibration
      • Pump Calibration
      • Manual Calibration - calibrate.py
  • Upgrade Base eVOLVER Hardware
  • Experiments
    • Starting an Experiment
      • Carboy Media Prep
      • Preparing Vials
      • Setup Waste Carboy
      • Sterilizing Lines
      • Loading Vials and Setting Initial Conditions
      • OD Blank
      • GUI Start Guide
      • Command Line Start Guide
      • Cleaning Up After Experiment
    • Growth Curve
    • Chemostat
    • Turbidostat
    • FAQs
    • Tips and Tricks
  • Guides
    • Use the GUI to Control Parameters
    • Building a Smart Sleeve
    • Making media bottles and splitters
    • Emergency Efflux
    • View the Server Log and Restart Server
    • Updating the eVOLVER Server
    • Change Your conf.yml File
    • Arduino Software Installation
    • Raspberry Pi Configuration
    • Command Line Usage
    • Millifluidics Guides
      • Designing Millifluidics Using Eagle
      • Constructing Laser Cut Millifluidics
      • Constructing Millifluidics via SLA Printing
      • Calibrating IPPs
      • Operating Millifluidics
  • Troubleshooting
    • Troubleshooting Overview
    • Experiment Troubleshooting
      • Contamination
      • Vial Overflow, Pump Failure, and Spills
      • Tubing and Connector Blockage and Bursting
    • Optical Density (OD) Readings
    • Vial Troubleshooting
      • Replacing Photodiodes and LEDs
      • Heating Element
      • Stirring
    • Server Troubleshooting
    • Vial Platform Troubleshooting
      • Motherboard Troubleshooting/Replacement
      • 12V Power Supply Troubleshooting/Replacement
    • GUI Troubleshooting
    • eVOLVER Maintenance
  • Hardware
    • Overview of Hardware Architecture
    • Overview of Fluidics
      • Tubing and connectors
      • Peristaltic Pumps
      • Fluidics box
    • Overview of Millifluidics
      • IPPs (Integrated Peristaltic Pumps)
      • Pressure Regulator
    • Vial Caps
      • Universal Vial Cap Construction Guide (Luer Connectors Only)
      • 5 and 7 Port Nylon Tubing Caps Construction Protocol
    • Smart Sleeve
      • Vial Board
      • 🌪️Stirring
      • Temperature
      • Optical Density
        • OD90 vs OD135
    • Motherboard Layout and Circuitry
      • 🌡️Arduino
      • Sensor/Actuator Board Slots
      • Pulse Width Modulation (PWM) Boards
      • Analog-to-Digital Converter (ADC) Boards
    • Raspberry Pi
    • Chassis
    • Light Blocker / Splash Guard
    • Known Issues
  • Software
    • Overview of Software Architecture
    • DPU
      • Calibration
      • custom_script.py
      • Experiment Data Files
      • eVOLVER.py
    • Arduino
    • Server (Raspberry Pi)
      • Calibration Files
      • Configuration Files (conf.yml)
    • Known Issues
  • Extensions
    • Adding A New Experimental Parameter
      • Power Supply
      • Specific Applications
      • Custom Calibration Code
    • Custom Experiments
      • ePACE
        • ATTiny1634 Writing
        • LUX Board Troubleshooting
      • Morbidostat
      • Extractor Column
        • Extractor Volume Maintenance
        • Experiment Start
          • Sterilizing Extractor Fluidics
          • Setting up your experiment
          • Using the extractor script
        • Extractor Analysis
        • Troubleshooting
        • Example protocols
      • Phototroph Growth
        • Setup Phototroph eVOLVER
        • Photo-eVOLVER Smart Sleeves
          • Photo-eVOLVER Smart Sleeve Construction Guide
        • Experiment Guide
    • Custom Fluidics
      • Adding a Third Pump Rack
      • Bubblers / In-Vial Aeration
        • Bubbler Construction Protocol
        • Bubbler Cleaning Protocol
      • Running the slow pumps
    • min-eVOLVER
      • About
      • min-eVOLVER Construction
        • Parts
        • Construction Protocol
      • Fluidics Setup
      • Software Installation and Startup
      • send_command.py
      • Calibrations
      • Starting an Experiment
      • ePACE with min-eVOLVER
        • [v1.1] ePACE with min-eVOLVER
      • Troubleshooting
    • Interfacing with Other Systems
  • Contributing
    • Guidelines for Contribution
    • Reporting a Bug / Hardware Failure
    • Documentation
      • Making a Forum Post
      • How to Edit the Wiki
    • Software Development
    • Hardware Development
Powered by GitBook
On this page
  • Why is running the growth curve algorithm a good first experiment?
  • What parts of the setup does the algorithm test?
  • Code Setup and Introduction
  • eVOLVER Setup
  • FAQ

Was this helpful?

Edit on GitHub
Export as PDF
  1. Experiments

Growth Curve

Process and considerations for running a growth curve.

PreviousCleaning Up After ExperimentNextChemostat

Last updated 1 year ago

Was this helpful?

Why is running the growth curve algorithm a good first experiment?

When setting up eVOLVER for the first time, we recommend performing a simple growth curve as a starting experiment. The growth curve algorithm functions similar to the turbidostat algorithm, except the feedback between any experimental parameters are turned OFF (or ). That way, you won't have to worry about any leaks or overflow issues from pumps misbehaving while testing the system.

What parts of the setup does the algorithm test?

The growth curve algorithm tests the following before running a more intensive experiment:

  • Continuous communication from the eVOLVER to the DPU (lab computer)

  • Power settings appropriately set on the lab computer (e.g. sleep settings)

  • OD calibration during an actively growing culture

  • Stirring stability

  • Detection of any noisy from ambient light

  • Temperature stability

What the growth curve experiment does NOT test:

  • Pump actuation and calibrations

  • Media line setup and sterility

Code Setup and Introduction

  1. eVOLVER.py generally contains most of the infrastructural code to communicate with eVOLVER and interpret raw data coming from the system. Basic users should not need to modify this file.

  2. custom_script.py includes several basic functions (growth curve, chemostat, and turbidostat) but is where the user should customize/ write their own scripts.

Importing libraries

For those familiar with coding and Python, the first few lines in the script is for importing libraries and logging files.

#!/usr/bin/env python3

import numpy as np
import logging
import os.path
import time

# logger setup
logger = logging.getLogger(__name__)

Initial settings

The next part of the code goes through inital settings one would want the eVOLVER to start at. These are sent at the start of the experiment when the script is initiated. Please refer to our API for examples on how to modulate the settings mid experiment.

There are initial three parameters in this eVOLVER script that defined: temperature, stir, and what mode this script will run.

##### USER DEFINED GENERAL SETTINGS #####

# If using the GUI for data visualization, do not change EXP_NAME!
# only change if you wish to have multiple data folders within a single
# directory for a set of scripts
EXP_NAME = 'data'

# Port for the eVOLVER connection. You should not need to change this unless you have multiple applications on a single RPi.
EVOLVER_PORT = 8081

##### Identify pump calibration files, define initial values for temperature, stirring, volume, power settings

TEMP_INITIAL = [30] * 16 #degrees C, makes 16-value list
#Alternatively enter 16-value list to set different values
#TEMP_INITIAL = [30,30,30,30,32,32,32,32,34,34,34,34,36,36,36,36]

STIR_INITIAL = [8] * 16 #try 8,10,12 etc; makes 16-value list
#Alternatively enter 16-value list to set different values
#STIR_INITIAL = [7,7,7,7,8,8,8,8,9,9,9,9,10,10,10,10]

VOLUME =  25 #mL, determined by vial cap straw length
OPERATION_MODE = 'growth_curve' #use to choose between 'turbidostat' and 'chemostat' functions
# if using a different mode, name your function as the OPERATION_MODE variable

##### END OF USER DEFINED GENERAL SETTINGS #####

Each position in the array corresponds to the vial it is updating (e.g. first position is typically called via an index of 0 in Python and thus is updating vial 0). For example, if one would want to set the temperature for Vials 0 - 3 to 37C but the rest to 30C, the array would look like the following:

TEMP_INITIAL = [37,37,37,37,30,30,30,30,30,30,30,30,30,30,30,30]

If one wanted to run a turbidostat script instead of the growth curve script, one would replace the OPERATION_MODE variable:

OPERATION_MODE = 'turbidostat'

If you wrote a custom modality named "new_super_cool_script", you would define it as a function and call it in a similar way. For example:

def new_super_cool_script():
    print('hello world')

You would define it as the following:

OPERATION_MODE = 'new_super_cool_script'

Making sure eVOLVER.py is run as main script

Let's skip the turbidostat and chemostat scripts for now (for another lesson) and jump straight till the end of the script. The following is just to indicate that the user should not be running this script from the command line

if __name__ == '__main__':
    print('Please run eVOLVER.py instead')
    logger.info('Please run eVOLVER.py instead')
    

That's all the code you need to run the growth curve!

eVOLVER Setup

For this experiment, we will need:

  • Autoclaved vials (with stir bar and caps)

  • Sterile growth media

Protocol:

  1. Fill autoclaved vials with 30 mL of sterile media and place in eVOLVER Smart Sleeves.

  2. Set the desired temperature for the eVOLVER (using the GUI) to preheat the vials

  3. Wait for ~30 minutes

  4. Start experiment using the Command Line Start Guide or GUI Start Guide

  5. Spike in cells (1 mL of saturated culture) and watch the OD spike on the traces.

  6. Let the cells grow until saturated.

FAQ

  • OD traces are noisy in bursts of ~10 - 12 hours:

    • This is most likely noise from light during the working hours of the day. Try placing a box over the system to block out ambient light. If works better, than try making a shield for the eVOLVER

  • OD readings are really noisy/ don't make much sense:

    • Verify that the stir vortex is not interferring with the OD sensors. This might happen if low volume is used (~20 mL) or stir settings are too high. A good way to debug this is to turn off stirring manually (via 12 V switch) and see if the measurement is better. NOTE: Toggling 12V switch will turn off STIR and TEMP.

    • Switch out the LED and or photodiode

  • All measurements stop after a few hours:

    • Check computer power saving settings. Make sure the system does not go to sleep.

There are just that you need to run eVOLVER (eVOLVER.py and custom_script.py).

For those of you familiar with Python, I highly encourage reading through the scripts (>1000 lines of code) after this tutorial. Let's quickly walk through before we talk about any of the experimental setup.

deleted in the code
two scripts
custom_script.py