The min-eVOLVER was originally conceived of as a minimal apparatus to conduct phage-assisted continuous evolution (PACE). Thus it has two bioreactors (eVOLVER Smart Sleeves): one for a "host cell reservoir" and one for a "lagoon". It also has six pumps: four for bulk media in and out of the two Smart Sleeves and two for fine control over inducers into the lagoon.
However, base min-eVOLVER can be used for most continuous culture scenarios, such as turbidostat and chemostat. It can also be readily adapted to new experiments.
Differences from Main eVOLVER
Software-Hardware Architecture
The software architecture of the min-eVOLVER is similar to the , with the exceptions that:
The Raspberry Pi server has been replaced with a server run on the connected laptop
A single Arduino SAMD21 actuates all functions and collects vial data through the min-eVOLVER board
Maximum Power Draw
Maximum current draw* = 2 Amps
Power supply voltage = 12V
Maximum power draw = 24W
*Maximum current draw was measured from a bench-top power supply with the heaters fully on, all pumps running, and stirring on. Instantaneous spikes in current could be higher when pumps and stirring start up
Especially if you plan to run multiple (>4) min-eVOLVERs off of one power strip, make sure you have a power strip that is rated for more than enough current. Most power strips are rated for 15A, but you should check.
Calibrations are important for the eVOLVER to match its sensor inputs with its actuator outputs
The min-eVOLVER is not yet compatible with the normal eVOLVER GUI
Therefore, calibrations must be done manually (ie via recording of values and fitting of lines in excel)
Each min-eVOLVER needs its own calibration files. These are kept inside of the server folder for each min-eVOLVER (ie in evolver-min/evolver/calibrations.json)
Questions?
Ask about calibrations in the relevant category on the .
Before Calibration
Complete the page
Gather materials (see below)
Start cells for OD calibration the night before
Temperature calibration should be done before OD calibration because the OD sensors are effected by temperature. Calibrate OD at the temperature that you intend to run experiments. (For example 37C for bacteria and 30C for yeast)
Materials
Glass eVOLVER vials (6X)
eVOLVER vial caps (6X)
Temperature probe (we use a )
Temperature Calibration
About
During temperature calibrations we will be setting the min-eVOLVER temperature to various 'raw' (uncalibrated) values
We will then measure the actual temperatures that the min-eVOLVER vials reach using a temperature probe
We then fit a line correlating the raw values to temperatures in degrees Celsius
Procedure
Make a copy of temperature_calibration.xlsx and label with the date.
This can be found in /dpu/calibration/
While waiting for equilibrations you can start calibrating pumps.
Record the equilibrated temperature (in Celsius) in the space in the spread sheet for the correct vial
Repeat steps 3 - 6 for the other three values
Ideally the resulting plot will be linear, with little variation of the points from the line
Pump Calibration
Make a copy of pump_calibration.xlsx and label with the date.
This can be found in /dpu/calibration/
Fill a large beaker with water and submerge all pump input and outputs in the water
If you need the pumps to stop before the time is up, send the command:
python3 send_command.py <port_number> pump 0
Wait for the pump lines to fill
Calibrate the fast (grey) pumps
Leave fluidic inputs in water and put the outputs in eVOLVER vials
Calibrate the slow (pink) pumps
Leave the inputs in water and put the outputs in 1.5mL Eppendorf tubes
It may be helpful to remove the plastic Luer lock on the tube end
OD Calibration [Not for ePACE]
For running ePACE, OD calibration is required because S2060 cells have significantly different scattering properties while growing vs during stationary phase.
About
OD calibration allows for the min-eVOLVER to accurately read ODs of the cells growing inside.
While not completely essential with running chemostats, good OD calibrations are essential for turbidostats to give accurate results.
For ePACE in the min-eVOLVER, consider running calibration of the lagoon vial with 10mL volume for more accurate readings.
Procedure
Make sure you have your on! This will drastically alter calibrations if you leave it off.
Set the min-eVOLVER to the temperature your experiment will be at
Open your temperature calibration file
Change the temperature in the "Set to ( C )" field for each vial
After changing which standards are being read, wait for the server to cycle a couple of times before recording values. Values are averaged and the values from the previous two OD standards could still be in the mix.
Copy and paste the Standard (OD600) and Median Values for each vial into od_data.xlsx
Do not include empty cells or change the formatting of od_data.xlsx
Copy and paste the values output from sigmoid_fit.py in evolver-min/evolver/calibrations.json for the correct vial and correct min-eVOLVER
Replace the valuesafter "coefficients" (shown below)
To avoid confusion, replace everything until the "raw"
Calibrate temperature before OD
20mL pipette or a small graduated cylinder
200mL cells at OD600 > 2
Fill eVOLVER vials with 15-20mL of water, put in stir bars, and place in aluminum sleeves.
Turn on the min-eVOLVER and start the server as in setup.
In the dpu virtual environment, send the following temperature command to the min-eVOLVER using send_command.py:
python3 send_command.py <port_number> temp 31000
Wait for the temperature to equilibrate (using a digital temperate probe)
Copy and paste the values under "Copy + Paste" in evolver-min/evolver/calibrations.json for the correct min-eVOLVER
Replace the values and comma after "coefficients" (shown below)
WARNING: do not alter the format of the calibrations.json file. Doing this, (accidentally adding an extra square bracket or comma for example) could easily give errors during experiments.
Fill the pump lines by sending the following pump command to the min-eVOLVER using send_command.py:
Highlighted are the OD sensor values for the first and second vials respectively on a min-eVOLVER.
Fitting curves to OD calibration data for two min-eVOLVERs. While there is some noise, standards generally follow the sigmoid function.
OD Calibration via Growth Curve
You need to have finished before doing this step.
Overview
Make sure cells are suspended before reading values either through keeping in a shaking incubator or through pipetting or swirling
For running ePACE, this calibration is required because S2060 cells have significantly different scattering properties while growing vs during stationary phase.
This alternative method of calibrating OD is to be used if experimental raw OD values repeatably follow a different function than calibration OD values. This means that the OD calibration cannot be fixed despite recalibration and attempting to get better OD blanks.
Similarity to Experimental Conditions
Using this protocol, we can get significantly closer to actual experimental conditions in our OD calibration compared to the normal calibration where we use cells in stationary phase resuspended in 1X PBS.
We also turn off stirring for OD to get more stable OD readings. This is especially important in ePACE where the lagoon is only 10mL and thus the liquid line is very close to the OD sensor level.
Consider reusing the same vial assembly between experiments to have the OD calibration conditions line up perfectly with the experimental conditions.
Protocol
Prepare actively growing cells of the type you want to calibrate
If cells are in stationary phase when you start this protocol, dilute at least 1:100 and grow for several hours before using for inoculation
This way your cells will be as close as possible to experimental physiology during calibration
Load up the stir off for OD read conf.yml file
If the server is running, stop it via Ctrl+C
Overwrite the conf.yml file in the folder /evolver/evolver/ with the stir stop for OD conf.yml
Start the
Check that the min-eVOLVER is stirring and turning off during OD readings
Set temperature to experimental temperature using and your
A calibrated temperature command is in your calibration file temperature_calibration.xlsx
Change the temperature in the "Set to ( C )" field for each vial
Assemble two vials and place them inside of the Smart Sleeves
Vials should mimic the experiment as closely as possible
Use stir bars, caps, septa and needles if you will use them in your experiment
[Optional] Hook up influx and efflux lines to vials for easy volume control
Using ,
Fill lines with bleach
Fill vials with the media you will use for experimentation to the fluid levels you will use during experimentation
For ePACE:
Reservoir (left) vial = 30 mL
Allow vials to come to temperature (wait at least 20 minutes)
Temperature affects OD readings
While vials are heating
Make a copy of od_calibration_growth_curve.xlsx
Rename with the date and type of calibration
Make sure the od_led is set to 4095
Either check the server cycling log or send the command:
python3 send_command.py <port_number> od_led 4095
Record a 'blank' value for media without cells using your external OD reader
Record next to the cell MEDIA BLANK: in the upper left of the spreadsheet
If using a 96-well plate reader, always use 300uL of sample in the wells to best mimic the optical path length of a cuvette reader.
After temperature equilibrates, record 3 server values for the media without cells
Highlighted are the OD sensor values for the first and second vials respectively on a min-eVOLVER.
Inoculate with growing cells to a low OD - aim for OD < 0.05
As cells grow, in 30 minute intervals:
Record sets of 3 raw OD values from the min-eVOLVER server
Simultaneously, sample the OD in vial using your external OD reader and record in the External OD column
For plate readers, 300uL of sample should be used
Samples above OD600 about 0.6 should be diluted before reading
Alter dilution factor in the spreadsheet to account for any dilutions you did
Collect OD values to at least OD600 of 1.0
Copy and paste the Standard (OD600) and Median Values for each vial into od_data.xlsx
Do not include empty cells or change the formatting of od_data.xlsx
In a terminal in the dpu environment, install pandas using the command
pip install pandas
Run the following script for fitting a sigmoid function to the curve:
python3 sigmoid_fit.py
Evaluate the resulting curve fit in the window that pops up
Fitting curves to OD calibration data for two min-eVOLVERs. While there is some noise, standards generally follow the sigmoid function.
Copy and paste the values output from sigmoid_fit.py in evolver-min/evolver/calibrations.json for the correct vial and correct min-eVOLVER
Replace the valuesafter "coefficients" (shown below)
To avoid confusion, replace everything until the "raw"
The min-eVOLVER is a minimal, mini version of the main eVOLVER. It runs in the same software ecosystem with minimal changes to the code. However, the min-eVOLVER controls two eVOLVER Smart Sleeves and six pumps, making it simpler, smaller, and less costly.
Currently the min-eVOLVER does not use the eVOLVER GUI. All experiments must be started with the command line. Sending commands without an experiment is done through send_command.py.
Questions or Comments?
If you have questions not answered by the wiki please ask in the relevant min-eVOLVER category on the forum.
min-eVOLVER set up for a basic turbidostat on both vials.
Hook up lines to vial cap - for ePACE guide see here
Lagoon (right) vial = 10 mL
Other experiments: most likely 25 mL in both vials
For example: od_calibration_growth_curve_250101.xlsx
Input the optical density of your standards into the Standard (OD600) cells
Replace any volume you remove via sampling, either through pumping or manually pipetting back in. This is especially important for the 10mL lagoon used in ePACE.
If you only have one min-eVOLVER you are calibrating, clear the rest of the rows of data to avoid confusion.
min-eVOLVERs may not be purchased as a product at this time. Instead min-eVOLVER parts must be acquired individually and assembled.
min-eVOLVER parts laid out
Requirements for Construction
Soldering iron + solder - pumps will need to be soldered in place
Ability to through-hole solder
Can be self-taught quickly through YouTube videos
Questions About min-eVOLVER Construction or Hardware?
Ask questions on the forum .
Parts
Parts Spreadsheet
Below is a spreadsheet containing all parts required to make a min-eVOLVER.
Read the notes below the spreadsheet as well.
Don't miss the "Consumables / General" tab. These items also need to be acquired before running experiments.
min-eVOLVER PCB
If you are making a min-eVOLVER Control Board PCB from scratch you have two options (as of 11/20/2024):
[Recommended] Order an assembled PCB from (guide below) or another manufacturer
Buy the parts needed from Digikey, order the from or another manufacturer, and solder the board yourself
NOT recommended for anyone not already familiar with surface mount soldering.
Ordering an Assembled min-eVOLVER PCB from PCBway
Make an account on .
On the homepage, scroll down and click on PCB assembly
Choose the following:
Turnkey, Single pieces, Both sides, fill out the quantity you want, select No "Select PCBway's PCB Order #", uncheck PCB Specifications, and click the green 'Calculate' button.
Download the following files from folder, upload to PCBway, and click "Submit the File Now":
Gerber files:
Parts List (BOM):
Wait for PCBway to review your order (1-2 business days) before paying
Pump PCB
Should be ordered from or another manufacturer. You can find the .zip of the gerber files . Assembly is not needed.
min-eVOLVER Case
Options:
We use to manufacture the cases
Request a quote for the number of cases you require by emailing Jenn Hurd (jhurd@protocase.com)
Mention you want to order the previously ordered name and number below:
12V Power Supply
Several 12V power supplies were tested and were selected for reliability and low noise. While most 12V power supplies should work well in the short term, long term usage may vary. Use a different power supply at your own risk.
Vial Cover
NOT AN OPTIONAL COMPONENT - Protects OD photodiodes from environmental light, which will completely change your OD calibrations. Also protects smart sleeves from spills and splashes.
3D print the latest vial cover to allow for more consistent OD readings. Choose the cheapest black FDM printing on hubs.com, shapeways.com, or a local 3D printing shop and give them the .stl file in the github repository.
eVOLVER Smart Sleeves
May be purchased from Fynch Bio. If interested in making your own see the main and follow assembly guide. This is not recommended for its added complication (you will need to machine the aluminum tube for example), but will save money.
Consumables / General
Listed in the "Consumables / General" sheet of the above spreadsheet
Anything not listed as (Optional) is required for a full experiment.
You need a thermometer for calibrating temperature - we suggest one.
If you plan to run multiple min-eVOLVERs from a computer, you will need to have a USB port available for each one. You can use a USB splitter dongle to accomplish this. Example .
As with the main eVOLVER, you should have a dedicated computer to run min-eVOLVER. We recommend Macs for their stability and ease software of installation.
Software Installation
Download files from GitHub repositories for the (experiment code) and (communicator with min-eVOLVER).
Follow the dpu installation .
We will use the virtual environment made here to run the experiment
Note: as of now, there is no GUI integration. Command line only.
If you are setting up more than one min-eVOLVER, simply make an additional folder and label it something like evolver-min2. No need to make an additional virtual environment. Any time you need to start a server just use the one you made in the first server folder.
Server Startup
Optional: for more information about the eVOLVER server you can check .
If using more than one min-eVOLVER, check the at the bottom of this page
Plug the min-eVOLVER in to your computer using micro-USB and THEN plug it in to the 12V DC power supply.
Plugging in the 12V first may make the server not able to connect properly.
Whenever possible, avoid plugging / unplugging the min-eVOLVER micro-USB, which is fragile. Instead, leave the micro-USB plugged in and plug / unplug the regular USB to your computer.
Make sure that you are in the server virtual environment
This means navigating to the server folder in a command line window and inputting commands:
Mac OS:
Hereafter, only the Mac OS command will be given. Windows users, swap python3 with py.
This will tell you the list of min-eVOLVERs plugged in to the computer
Exit from the server log using control + C
Copy the full port address into the serial_port variable in the conf.yml
Be careful to not alter the conf.yml file structure, only the variables (after the ":"). Changing the file structure in the wrong way will result in the server failing to run.
Start the server using python3 evolver.py
Observe the server for expected behavior
The server cycles once every 20 seconds
If you want to know more about the server code or how commands work click .
Multiple min-eVOLVERs
You can connect multiple min-eVOLVERs to one computer, as long as you have enough USB ports!
Make a duplicate min-eVOLVER server code file with a new number ie evolver-min2
Plug in the new min-eVOLVER and follow the Server Startup guide
The new min-eVOLVER will have a different serial_port
Make sure you don't swap your min-eVOLVERs USB ports without meaning to!
Calibration files are for a specific min-eVOLVER
Test min-eV Hardware
Startup
Plug in the micro-USB and then the 12V power supply
Start the server
In another terminal window, enter the dpu virtual environment
Familiarize yourself with and make sure you can:
Send a pump command to all pumps to make sure they actuate
Send a command to start and stop stirring
Turn temperature off
test_hardware.py
Run a full hardware test using test_hardware.py
Use the command: python3 test_hardware.py
Check that all pumps actuate individually
Check that stirring turns off and on
Check that OD sensing works as expected (values decrease with OD LED on)
Construction Protocol
It may be helpful to have the parts page open as well, so you can identify what you need for each step.
Make Ribbon Cables
(A) Ribbon cable connector placed at 5" with both knobs on the same side (arrows). (B) Align the ribbon cable connector with the end of the cable. (C) Connector is placed in center of clamp. (D) Completed ribbon cable after connector is crimped on.
Measure ribbon cables and mark length (figure above A)
5" ribbon cable for pump board to min-eVOLVER PCB connection
Two 4" ribbon cables for smart sleeve PCB to min-eVOLVER PCB connection
Cut ribbon cables to size using scissors or razor.
Open the connector and align to the end of the ribbon cable (figure above B)
The connectors should both have the knob on the same side (figure above A, red arrows)
You can apply pressure to the connector so that it stays in place as you work with it
Crimp on ribbon cable connectors (one on each side of cable)
Be careful not to break the connectors, they're fragile!
The easiest way crimp these connectors is to use a clamp or vice (figure above C), unless you have a specialized tool
Prepare case
Unscrew the 3 screws on the top of the case (figure below, left)
Unscrew the 2 screws on the bottom (figure below, right) and unscrew the right middle rubber foot (yellow arrow)
Construct Pump Board
Solder 2x8 ribbon cable connector into pump PCB, screw pumps into front of case, and solder pumps into pump PCB.
Use the below video:
Construct min-eVOLVER PCB
Surface mount soldering of the min-eVOLVER PCB is outside of the scope of this guide. It is assumed that you have an already assembled min-eVOLVER PCB.
Solder SAMD21 Arduino
Place the 2x12-pin header on a workbench with the flat (non conical) side of the pins up (figure below A). Place the SAMD21 board on top of it
You can also carefully plug the SAMD21 into a breadboard if you want to avoid it moving
Carefully solder the SAMD21 board pins.
Assemble min-eVOLVER PCB
Press the SAMD21 board into the min-eVOLVER PCB until you feel a click and the SAMD21 sits mostly flush
Micro-USB port should be on edge of board
Carefully align the pins with the sockets
OD 90 vs OD 135
OD90 = OD LED and photodiode at 90 degrees from eachother
OD135 = OD LED and photodiode at 135 degrees from eachother
By default, we choose to use OD90 for our vials, which is typically better at measuring higher ODs > 0.4 and is what most people want
Assemble min-eVOLVER PCB and pumps with the case
Place min-eVOLVER PCB on standoffs. Screw 1/4" screws into the front left and back right corners (figure A below)
Plug the 5" ribbon cable in to the pumps and to the ribbon cable port to the left of the SAMD21 (figure B below)
Close the case and replace the 5 screws and rubber foot that you had removed previously (figure C below)
Construct eVOLVER smart sleeves and screw in to case
If your smart sleeves came disassembled:
See general smart sleeve construction guide
Firmly push the OD LED and photodiodes in to the smart sleeve
Flash the min-eVOLVER with Arduino code
Plug the min-eVOLVER into your computer via the micro-USB cable
Do not plug in the 12V power supply
Download the min-eVOLVER Arduino
Screw drivers
Phillips #1 (short handle)
Flat head #1.5 or smaller
Ideally, some kind of clamp, vice grip, etc.
For making ribbon cables to connect the electronics
If nothing else, a hammer or pair of pliers will suffice
The parts necessary for the min-eVOLVER main unit. Use the spreadsheet above to discern what each item is.
Create a server virtual environment
In the command line still, open a new tab or window
If necessary, deactivate the dpu virtual environment with the command below.
deactivate
Navigate to the server directory evolver-min
Make a server virtual environment
To avoid confusion with the dpu environment, call your server virtual environment server-env
Mac:
python3.9 -m venv server-env
Use poetry to install all necessary dependencies.
source server-env/bin/activate
On Windows PowerShell:
server-env\Scripts\Activate.ps1
Navigate to the /evolver/ folder inside the evolver-min server code
Attempt to run the server using the following command:
Mac OS: python3 evolver.py
Windows Powershell: py evolver.py
file for the server
On Mac OS for example: serial_port: /dev/cu.usbmodem1301
If the server is not connected to the min-eVOLVER, commands will fail
because it is plugged in to a different USB port
You need to define a different port number (try 5556) in the conf.yml file
Make sure you're in the right server code folder when starting the new server
Use a different command line window for each min-eVOLVER server
serial_port numbers on your computer are linked to a specific USB port, NOT to a specific min-eVOLVER
So for example:
min-eVOLVER 1 with serial_port: /dev/cu.usbmodem1201
min-eVOLVER 2 with serial_port: /dev/cu.usbmodem1301
Plugging min-eVOLVER 2 into /dev/cu.usbmodem1201 will mean that running the min-eVOLVER 1 server will load calibrations for the wrong min-eVOLVER and vice versa
Navigate to the /dpu/experiment/ folder
Check the server log as commands go in, these should be received and become the new values in the server cycle
Look at the "Data from min-eVOLVER" for the below values
Example values with OD LED OFF: 'od_90': ['65208', '65190']
Example values with OD LED ON: 'od_90': ['62515', '59678']
Check to see that the temperature values decreased towards [25000,25000] over time as the script is running
(Left) Remove 3 screws from the top of the case. (Right) Unscrew the 2 screws on the bottom and twist off the right middle rubber foot (yellow arrow).
(A) The SAMD21 board and the 2x12-pin header with flat side of the 24-pins up. (B) SAMD21 board partially soldered, starting from the pins in the corners. (C) Locations for epoxy (cyan) avoiding openings in the micro-USB connector. (D) Placing the jumpers on the right two selector pins for each vial. (E) The assembled min-eVOLVER PCB.
(A) min-eVOLVER on standoffs inside case and screwed down with 1/4" screws. (B) Demonstrating how the ribbon cable connecting pumps and min-eVOLVER PCB should be plugged in. (C) Assembled min-eVOLVER PCB, pumps, and case.
(A) Screws unscrewed enough to remove the base plate, which is sitting next to the vial. Fan spacer on the bottom is left on. (B) Smart sleeves are screwed in to the case. (C) Smart sleeves are connected to the case via 3.5" ribbon cables. (D) Vial cover is placed over vials.
Troubleshooting
Server Troubleshooting
My min-eVOLVER is plugged in but I can't connect to it via the server code
If the server code says that the expected min-eVOLVER port is plugged in, check that the conf.yml file has the correct port address in it (as detailed in the ).
As a last resort, the Arduino
The server is cycling (every ~20 seconds there are new values) but all commands are erroring
This happens when the micro-USB is unplugged and replugged in, but the power supply is not
Quit the server (ctrl+C), unplug the min-eVOLVER from power and micro-USB, plug the micro-USB back in, then the power supply, and restart the server
As a last resort, the Arduino
Correct 'serial_port' but Server is Not Starting
I have found this happens when the Arduino IDE program (used for putting min-eVOLVER code on the control board) Serial Monitor is open and connected to the SAMD21. Close the Serial Monitor and you will be able to start the server.
Re-Upload the Arduino Code
Rarely, the Arduino that runs the min-eVOLVER needs to be uploaded with its software again. Follow the Arduino Software Installation and upload the min-eVOLVER Arduino onto the device.
Experiment Troubleshooting
Disconnecting During an Experiment
The most common reason for this is the computer is falling asleep. Make sure your computer is set to not fall asleep.
If your computer is managed by an IT department, they will sometimes control these settings remotely. Therefore, you will set your computer to never sleep, but will come back with the setting changed. In this case, contact your IT department.
On Mac: Alternatively, you can type the command caffeinate into a terminal window and your computer will never sleep
Parameters
OD
OD is one of the most useful and most challenging aspects of eVOLVER. However the min-eVOLVER OD system is nearly the same as the main eVOLVER. Check the main OD troubleshooting for potential causes and fixes.
ePACE with min-eVOLVER
Overview
This page only details differences from the general min-eVOLVER experimental protocol. You are also expected to have an understanding of PACE and how it is normally run before doing ePACE.
ePACE described initially in.
For general PACE methods see .
For running ePACE, OD calibration via is required because S2060 cells have significantly different scattering properties while growing vs during stationary phase.
Implementing Controlled Host Cell Density in Reservoirs
This section constitutes changes from .
Problem: PACE host cells overgrow
In previous PACE experiments, host cells would increase growth rate as the experiment wore on
This caused problems with phage replication in the lagoon and the selection plasmid breaking
Solution: controlling host cell density in cell reservoirs
Implementing Controlled Host Cell Density in Reservoirs
We control cell density in eVOLVER by running a turbidostat, which checks cell density and dilutes the culture if it is over a threshold.
In PACE we remove volume from the cell reservoir and transfer it to the lagoon
This changes our turbidostat's volume
Chemostat and Turbidostat on the Same Vial
We implement a "hybrid" function
The "hybrid" function uses both a turbidostat and a chemostat on the host cell reservoir
Turbidostat for keeping the cells from overgrowing
Experiment Setup
Vial Setup
Levels of liquid in the vials are set by the height of the efflux needle.
Needles used were all 16ga
Reservoir volume = 30 mL
Efflux needle = 3" needle in the tallest vial cap port
Media in = 2" needle in the shortest port
Vial to Vial = 3" needle in the second tallest port
Lagoon volume = 10 mL
Efflux needle = 4" needle in the second tallest vial cap port
Vial to Vial = 3" needle in the lowest port
Inducer = 4" needle in the tallest port or 2" needle in the second lowest
To have high accuracy when using the low volume pumps it is important to avoid individual drops. Therefore we want needles to abut inside of the vials to get a constant stream of fluid when pumping.
Fluidic Lines
Hook up pump lines in the configuration shown below
Alter Settings in custom_script.py
Copy the whole ePACE template folder (/dpu/experiment/epace-template/)
Rename the copied folder to your experiment name
Change the EVOLVER_PORT to your eVOLVER's port
lower_thresh and upper thresh
The lower and upper OD threshold of the turbidostat that is running on the reservoir vial
Format: [vial 0, vial 1]
start_time
chemostats will not pump until this amount of hours has elapsed
Useful to allow cells in reservoir to grow up before starting experiment
rate_config
Format: rate_config = [reservoir, lagoon]
In vial volumes per hour (V/h)
For the Reservoir
Replaces volume in turbidostat that is removed via vial to vial
Must be greater than the volume you are taking out
Turbidostat controls will separately preventing reservoir from increasing in OD too much
For the Lagoon
Set based off of phage replication rate
Example Settings:
If you have a 30mL reservoir and 10mL lagoon
Setting to rate_config = [1, 1]
30mL media into reservoir and 10mL from reservoir into lagoon per hour
Inducer
inducer_on
Turn inducer off to start (inducer_on = False)
Wait for host cells to grow up before starting induction (inducer_on = True) and inoculating with phage
inducer_concentration
Times greater (X) the concentration of your inducer in its bottle compared to its final concentration in the lagoon
Format [pump 5, pump 6]
For example:
Your arabinose stock is 1 M
The final lagoon concentration you want is 10 mM
Therefore 1000 mM / 10 mM = 100 X your final concentration
Optional Settings
You do not need to alter these settings
Swapping Lagoon and Reservoir Vials
If you do want to alter these variables, you also need to swap the vial locations in the turbidostat and chemostat settings of:
lower_thresh and upper thresh
rate_config
reservoir_vial
Vial number of host cell reservoir
It is a turbidostat and a chemostat. Read why .
lagoon_vial
Vial number of lagoon
Only a chemostat, can have up to two inducers
Starting an Experiment
You should have completed both setup and calibrations before proceeding to an experiment.
Highly recommended:
Read the main pages for helpful information not listed here and an example experimental workflow.
Run an experiment with water before doing so with cells, especially if you change the code
Questions?
Ask about experiments in the relevant category on the .
Setup
You will have one command line window for each server and each experiment running. It can also be helpful to have a separate window for send_commands.py
For example for two min-eVOLVER experiments:
2 server windows (server environment)
Use send_command.py to fill the vials to appropriate volumes
Do not inoculate cells until after starting the experiment if you want accurate readings. There is innate variability in the OD of the vials (among other things) and we will blank to your vials during experiment start.
Use send_command.py to set to correct temperature
A calibrated temperature command is in your calibration file temperature_calibration.xlsx
Running the Experiment
Make sure that your eVOLVER computer is set to never sleep. If your computer falls asleep while you're running an experiment, you will not be collecting data during that time. See more info .
In a separate window from your server command line, follow the command line start .
If running more than one min-eVOLVER at a time: you need a separate experiment folder and command line window for each min-eVOLVER (and different port number)
Used to send arbitrary commands to a server outside of both the GUI and an experiment.
Useful for:
Controlling the
Sending custom commands if you have
Sending pump commands greater than 20 seconds if you are using the slow (~1mL/min) pumps or using
Usage
You must
Start the before using send_command.py, otherwise commands will not go through.
Send a Command
The <port> variable tells the program which eVOLVER to connect to
This is designated in the conf.yml file of the eVOLVER under 'port'
It is arbitrary, but we can choose something like 5555
Commands in the Server Log
When you send a command, you should see it come up in the window you're running the server in. See for more information about the eVOLVER server and commands.
Annotated Server Log as a Command Comes in
Examples
To set a parameter on all vials to one value: python3 send_command.py
To run specific pumps (where s is a number of seconds):
If you are doing ePACE in the min-eVOLVER, check the experiment for fluidic routing
Make sure it's easy to get both tube ends into a beaker for sterilization
Alternatively you can connect an additional line to short tubing for easy sterilization
To-Vial Tubing Method (Right Port of All Pumps)
Start with tubing that is longer than you think you will need - you can trim it later easily
Put eVOLVER vials with caps in the smart sleeves
Estimate the tubing lengths for the to-vial pump tubing
Efflux (Pumps 1 + 2 Right Port)
Use clear blue 1/16" ID tubing
Can be relatively short because it connects just to the vial
Waste (Pumps 1 + 2 Left Port)
Use red 1/16" ID tubing
Should reach from left port of bottom pumps into waste carboy
Media influx + Inducers (Pumps 3 - 6)
Use clear 1/16" ID tubing
Left pump port should be long enough to reach media / inducers easily
Right pump port can be relatively short because it connects just to the vial
Reusing vial assembly between experiments
Overview
Advantages:
Saves time from assembling, autoclaving, and setting up new vials
Avoids vial to vial variation
Using the same vial in your OD calibration and all experiments makes OD more accurate
Questions
Do you sterilize the septa before each needle insertion?
Materials
Vials set up for ePACE
Including septa
20% bleach in an eVOLVER bottle
Sterile DI water (or Milli Q water) in an eVOLVER bottle
4 inch needle
50mL syringe
Protocol
Considerations
Be cautious about over filling
Stir should be on to properly mix liquids
Stir pausing is fine
Number of seconds pumped in pump commands are for a 30mL reservoir and 10mL lagoon. If you change these volumes, make sure to define your own number of seconds pumped.
As always, any spills on the min-eVOLVER should be immediately cleaned
If you think something got on an electronic part, unplug the min-eVOLVER, wipe, and allow to dry
Sterilization
20% bleach is used because otherwise it would require a lot more volume to be pumped before bleach concentration was high enough
Hook up 20% bleach bottle to influx
Dilute cultures with bleach - run fast pumps for 80 seconds and slow pumps for 300 seconds
An example fluidics layout for basic chemostat or turbidostat. If necessary, inducer can be programmed to be controlled via the low flow-rate pumps (not shown).
Vials set up for a basic chemostat or turbidostat.
Feel free to modify any tubing colors, pump functions (requires some coding), or anything else, so that it makes sense to you
Plug in 1/16" male connector to luer lock on vial cap (or end of needle if you are using those style caps)
Put tubing onto the connector barb
Estimate tubing length so that it is comfortable to move the vial in and out of the smart sleeves with the tube attached to the cap (right figure below)
(Left) Numbered pumps with the tubing required for a basic turbidostat. (Right) Tubing is short, but still has enough length to take out the vial while still connected.
source server-env/bin/activate
Windows PowerShell:
py -3.9 -m venv server-env
server-env\Scripts\Activate.ps1
In another terminal window, enter into the dpu virtual environment and navigate to the folder send_command.py is in: /dpu/experiment/
Connected dpu as server # Connection to the send_command.py script
Received COMMAND # Command received the send_command.py script
stiri,0,0,_! # Stir command, each vial is turned off
Disconnected dpu as Server
stire,0,0,end # Response from the min-eVOLVER board. It got the command
stira,,,_! # The server tells the min-eV board it can run the command
For example, to turn stirring ON:
python3 send_command.py 5555 stir 11
Stirring OFF:
python3 send_command.py 5555 stir 0
Temperature OFF:
python3 send_command.py 5555 temp 64000