Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
min-eVOLVERs may not be purchased as a product at this time. Instead min-eVOLVER parts must be acquired individually and assembled.
Soldering iron + solder - pumps will need to be soldered in place
Ability to through-hole solder
Can be self-taught quickly through YouTube videos
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
Ask questions on the forum here.
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.
You can find the gerber files to order the PCB here.
If you are making a min-eVOLVER Control Board PCB from scratch you have two options (as of 11/20/2024):
Order an assembled PCB from PCBWay or another manufacturer
You will need to also give them the centroid and bill of materials (BOM) files
Buy the parts needed from Digikey, order the PCB from PCBWay or another manufacturer, and solder the board yourself
NOT recommended for anyone not already familiar with surface mount soldering.
An interactive bill of materials (for part placement) can be found here. Download it and open it into your browser.
Should be ordered from PCBWay or another manufacturer. You can find the gerber files here.
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.
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.
May be purchased from Fynch Bio. If interested in making your own see the main parts sheet and follow this assembly guide. This is not recommended for its added complication (you will need to machine the aluminum tube for example), but will save money.
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 this 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 here.
More about pumps here.
More about tubing and connectors here.
If you are doing ePACE in the min-eVOLVER, check the experiment page 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
Feel free to modify any tubing colors, pump functions (requires some coding), or anything else, so that it makes sense to you
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
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)
Use clear blue 1/16" ID tubing
Can be relatively short because it connects just to the vial
Use red 1/16" ID tubing
Should reach from left port of bottom pumps into waste carboy
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
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.
If you have questions not answered by the wiki please ask in the relevant min-eVOLVER category on the forum.
It may be helpful to have the parts page open as well, so you can identify what you need for each step.
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
Place the connector in the center of the clamp (making sure it remains in the right location)
Tighten clamp until sides of connector are flush and it is full closed (figure above D)
You can also use pliers, but this is more annoying / prone to breaking the connectors
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)
Solder 2x8 ribbon cable connector into pump PCB, screw pumps into front of case, and solder pumps into pump PCB.
Use the below video:
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.
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.
Avoid adding too much solder so that it globs onto the small electronic components!
Start with the four corners to lock it flat in place on the header
Solder all pins
If you want to be extra careful, only solder half the pins on a side before switching to the other side (to avoid overheating the board)
Make sure that each pin is individual and no solder has reached the electronic components on the board surface
[Recommended] Strengthen SAMD21 Board USB
The micro-USB port on the SAMD21 easily pops off when you move the ribbon cable
You will have a useless board and it will be necessary to get a new one
Therefore, you should add epoxy to the perimeter of the connector in the (locations shown in the figure below C)
Follow directions on the epoxy label for use
Use gloves when working with epoxy!
A weigh boat and pipette tip work for mixing and application
Important - Avoid putting epoxy into the holes in the micro-USB connector
Otherwise, be generous with the epoxy, it's ok to get it on the electronics
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
Slide the shorting jumpers onto the right two pins for each vial (see figure above D)
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
You can also place the jumper across the left two pins for each vial, meaning you will register OD135.
You will need to make different OD calibrations for OD135 and OD90
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)
If your smart sleeves came disassembled:
See general smart sleeve construction guide here
Firmly push the OD LED and photodiodes in to the smart sleeve
Do not use the acrylic base plate (clear plastic below the computer fan)
If your smart sleeves came assembled:
Unscrew them enough to remove the acrylic base plate. Keep the fan spacer on (figure A below)
We will also not use the acrylic base plate and instead directly screw our smart sleeves to the case
Screw the smart sleeves into the min-eVOLVER (figure B below)
It can be easier to tighten each screw a little at a time to avoid misalignment
Do not over tighten screws, go until smart sleeves are firmly in place
Plug 3.5" ribbon cables into back of smart sleeves and to the min-eVOLVER (figure C below)
Place vial cover over vials (figure D below)
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.
We will use the virtual environment made here to run the experiment
Note: as of now, there is no GUI integration. Command line only.
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
source server-env/bin/activate
Windows PowerShell:
py -3.9 -m venv server-env
server-env\Scripts\Activate.ps1
Use poetry to install all necessary dependencies.
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.
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:
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
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
file for the server
On Mac OS for example: serial_port: /dev/cu.usbmodem1301
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 the server is not connected to the min-eVOLVER, commands will fail
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
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
Make sure you don't swap your min-eVOLVERs USB ports without meaning to!
Calibration files are for a specific min-eVOLVER
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
Plug in the micro-USB and then the 12V power supply
Start the server
In another terminal window, enter the dpu
virtual environment
Navigate to the /dpu/experiment/
folder
Send a pump command to all pumps to make sure they actuate
Send a command to start and stop stirring
Turn temperature off
Check the server log as commands go in, these should be received and become the new values in the server cycle
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)
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
Example start values: 'temp': ['35514', '35440']
Example end values: 'temp': ['30618', '31029']
Ask questions about this guide on the forum .
Download files from GitHub repositories for the (experiment code) and (communicator with min-eVOLVER).
Follow the dpu installation .
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
If you want to know more about the server code or how commands work click .
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.
The software architecture of the min-eVOLVER is similar to the original eVOLVER, 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 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.
Used to send arbitrary commands to a server outside of both the GUI and an experiment.
Useful for:
Controlling the min-eVOLVER
Sending custom commands if you have added an experimental parameter
Sending pump commands greater than 20 seconds if you are using the slow (~1mL/min) pumps or using IPPs
You must
Start the server before using send_command.py, otherwise commands will not go through.
In another terminal window, enter into the dpu
virtual environment and navigate to the folder send_command.py is in: /dpu/experiment/
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
When you send a command, you should see it come up in the window you're running the server in. See here for more information about the eVOLVER server and commands.
send_command.py
python3 send_command.py 5555 pump s,s,s,s,s,s
For example:
python3 send_command.py 5555 pump 0,0,0,0,5,5
python3 send_command.py <port> <parameter> <list_of_values>
For example:
python3 send_command.py 5555 temp 30000,31000
This page is for version 1.1 min-eVOLVERs ONLY! It does not apply if you have a sheet metal case
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 Huang, Heins et al. 2022 Nature Biotech.
For general PACE methods see Miller, Wang 2020 Nature Protocols.
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
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
The amount we dilute will therefore be incorrect (adding 5mL of media to 30mL decreases OD less than adding 5mL of media to 20mL)
We rely on host cells to get to a threshold cell density before we dilute
They may not reach this threshold before we remove more volume
This causes a feedback loop of little volume being added and more being taken out
Therefore our turbidostat will get lower and lower volume and eventually break
Solution: put in the amount of volume we take out of the cell reservoir
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
Chemostat for keeping volume constant
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.
Hook up pump lines in the configuration shown below
Copy the ePACE template under /dpu/experiment/epace-template/
Most likely you should not need to alter any settings in this section, other than EVOLVER_PORT
Use the "hybrid"
function
Collapse or ignore growth_curve
, turbidostat
, and chemostat
functions
hybrid
function=vial 0
is the host cell reservoir
It is a turbidostat and a chemostat. Read why here.
We are setting OD for vial 0
start_time
chemostats will not pump until this amount of hours has elapsed
rate_config
Default format: rate_config = [reservoir, lagoon]
In vial volumes per hour (V/h)
Reservoir
Set to greater than the volume you are taking out
Do not set too high or your cells will be unable to grow fast enough and wash out
Turbidostat controls will separately preventing reservoir from increasing in OD too much
Lagoon - set based off of phage replication rate
For example:
If you have a 30mL reservoir and 10mL lagoon
Setting to rate_config = [1, 1]
30mL into reservoir and 10mL into lagoon per hour
Setting to rate_config = [0.4, 1.2]
If we set lagoon rate to 1.2 V/h, we should not set reservoir rate to lower than 0.4 V/h to avoid draining the reservoir
1.2 V/h * 10mL = 12mL/h into lagoon
0.4 V/h * 30mL = 12mLh into reservoir
Set inducer_concentration
to X the final concentration in the lagoon
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
You should have completed both setup and calibrations before proceeding to an experiment.
Highly recommended:
Read the main Experiment 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
Ask about experiments in the relevant category on the forum.
Instead of the GUI, use send_command.py
The slow pumps (pink) will need to be run for >200 seconds to fully flush the lines
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)
2 experiment windows (dpu
environment)
1send_commands.py
window (dpu
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
Temperature affects OD readings and we need a good initial OD to act as a "blank"
Allow min-eVOLVER to come to temperature
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 here.
In a separate window from your server command line, follow the command line start guide.
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)
Start the experiment using the command:
python3 eVOLVER.py -i localhost:<your_min-eV_port>
python3 eVOLVER.py -i localhost:5555
Clean up the experiment
Data is in the data files
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
)
Ask about calibrations in the relevant category on the forum.
Complete the setup page
Gather materials (see below)
Start cells for OD calibration the night before
Calibrate temperature before OD
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)
Glass eVOLVER vials (6X)
eVOLVER vial caps (6X)
Temperature probe (we use a 2 Probe Fisherbrand Traceable Hi-Accuracy Refrigerator Thermometer)
20mL pipette or a small graduated cylinder
200mL cells at OD600 > 2
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
Make a copy of temperature_calibration.xlsx
and label with the date.
This can be found in /dpu/calibration/
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)
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
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.
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
Fill the pump lines by sending the following pump command to the min-eVOLVER using send_command.py
:
python3 send_command.py <port_number> pump 30,30,30,30,300,300
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
Send the command:
python3 send_command.py <port_number> pump 20,20,20,20,0,0
Measure the resulting water output (either using a 20mL autopipette or using a small graduated cylinder)
Input the values into the excel spreadsheet
If you see significant variability, make sure all inputs are in water and try again
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
Make sure that the tubing is still full (send another command if not)
Send the command:
python3 send_command.py <port_number> pump 0,0,0,0,40,40
Measure the resulting water output (using a 1mL pipette)
Input the values into the excel spreadsheet (in mL)
Copy and paste the values under "Copy + Paste" in evolver-min/evolver/calibrations.json
for the correct min-eVOLVER
Replace the values after "coefficients" (shown below)
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.
Make sure you have your vial cover 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
Copy and paste the command next to "Temperature command:" field. (Change to target your min-eVOLVER's port)
Follow the OD calibration tutorial for the main eVOLVER until it asks to begin calibration via GUI
We will use this to make 8 standards, rather than 16
This will be less vials to deal with
Heat OD standards to temperature
Ideally, the vials will be stirring and continuously at the correct temperature
Stirring because cells will settle otherwise
At temperature because it effects the OD sensor
However, the min-eVOLVER only has 2 vials, so we must find a way to make sure the vials are at temperature before reading the OD values
We can either do this by
Waiting for vials to come to temperature in the min-eVOLVER vials (slow)
Keeping vials in an incubator until ready for reading (faster)
Make sure cells are suspended before reading values either through keeping in a shaking incubator or through pipetting or swirling
While OD standards are heating
Make a copy of od_calibration.xlsx
with the date
Input the optical density of your standards into the Standard (OD600)
cells
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 3 server values for each OD standard
Cycle through the standards in an orderly fashion
For example:
Label the vials 1 - 8
Start with vial 1 in smart sleeve 1 and vial 2 in smart sleeve 2
Then rotate so that vial 8 is in sleeve 1 and vial 1 is in sleeve 2
Repeat for all standards
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
If you only have one min-eVOLVER you are calibrating, clear the rest of the rows of data to avoid confusion.
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
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 values after "coefficients" (shown below)
To avoid confusion, replace everything until the "raw"
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 Huang, Heins et al. 2022 Nature Biotech.
For general PACE methods see Miller, Wang 2020 Nature Protocols.
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
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
The amount we dilute will therefore be incorrect (adding 5mL of media to 30mL decreases OD less than adding 5mL of media to 20mL)
We rely on host cells to get to a threshold cell density before we dilute
They may not reach this threshold before we remove more volume
This causes a feedback loop of little volume being added and more being taken out
Therefore our turbidostat will get lower and lower volume and eventually break
Solution: put in the amount of volume we take out of the cell reservoir
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
Chemostat for keeping volume constant
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.
Hook up pump lines in the configuration shown below
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
Alter USER DEFINED VARIABLES
using the guide below:
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)
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
Do not set too high or your cells will be unable to grow fast enough and wash out
Set based off of phage replication rate
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
Setting to rate_config = [0.4, 1.2]
If we set lagoon rate to 1.2 V/h, we should not set reservoir rate to lower than 0.4 V/h to avoid draining the reservoir
1.2 V/h * 10mL = 12mL/h into lagoon
0.4 V/h * 30mL = 12mLh into reservoir
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]
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
If you are not using another inducer, inducer_concentration
= [100, 0]
You do not need to alter these settings
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 here.
lagoon_vial
Vial number of lagoon
Only a chemostat, can have up to two inducers
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
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.
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
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
As a last resort, the Arduino
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.
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.