Engineering Success

We encountered many issues throughout our project, so it was only right that we solved them! Here you can find out about our engineering successes

Media Optimisation Engineering Success

Introduction

We demonstrated engineering success while optimising our media for V. natriegens. A fast V. natriegens growth rate is important for our project as our modelling has shown that a faster growth rate should lead to a lower fixation time, which would make our evolutions more efficient. Since we are optimising our media for growth rate, it is important for our project that we do so in an efficient and sensible way. The engineering cycle provides a way to do this. For a deeper dive into our Design of Experiments guided media optimisation, see our dedicated page.

Design (in silico)

When we first chose ingredients to include in our test media recipes, we focused on individual ingredients that looked beneficial for growing V. natriegens, but we did not consider how they would react. The purpose of this design was to efficiently screen through potentially beneficial V. natriegens growth media ingredients, using a statistical model whose output would be a linear model with the estimated effect sizes and p-values (significance) of the ingredients on growth rate. At this stage, we had not seen statistical design of experiments used to systematically find an optimal growth media for V. natriegens in the literature. We have seen similar methods used to optimise media for other microorganisms.

Build

We then started making media as planned, a few at a time through the \(25\) selected media recipes. We quickly found that some recipes (media \(5\) and \(8\) in particular) were making insoluble precipitate. When we encountered the problem, we stopped to perform diagnostic tests, to identify the problem.

Test

We then tested mixing pairs of ingredients together to isolate ingredients that were reacting. We were suspicious of the salts because the media with precipitate had many of the salts in them. We added pairs of salts to a beaker of distilled water and stirred. We were testing to see qualitatively if there was any solid precipitate.

Learn

We found that \(\ce{MgCl2}\) and \(\ce{Na2HPO4}\) were reacting, which was not anticipated. We have also learned here that it could be worth doing some preliminary tests before even going into the screening experiment. To move past this problem we replaced \(\ce{MgCl2}\) with \(\ce{MgSO4}\) and \(\ce{Na2HPO4}\) with \(\ce{CaCl2}\). To avoid making the same mistakes again, we repeated the test of mixing pairs of ingredients in beakers of distilled water and found that now none of our media were reacting to form precipitate.

Application

Learning from this, we decided to do a scoping experiment between the screening and main experiments to both avoid wasting time and to maximise the information gained in the main experiment. Following the screening experiment, we saw that we should use more yeast, tryptone and \(\ce{MgSO4}\). We wanted to know (design) how much more we could use without saturating our media by putting too much in. We were wary about this because of our previous problems with precipitate. To estimate where the boundary of saturation was, we selected (build) a ‘high’ concentration media (H) and a ‘very high’ concentration media (VH). We found (test) that VH media was too high and left undissolved residue at the bottom of the duran bottle, but media H was fine. Consequently (learn), we then used ingredient levels in media H as our ‘high’ ingredient levels in our main experiment.

Conclusion

In the end, this led to us finding optimal levels of yeast, tryptone, \(\ce{MgSO4}\), and NaCl in our final media, giving a doubling time of \(15.6\) minutes, without doing an excessive number of experiments. The engineering cycle helped by providing an effective way to identify and move past unforseen problems we encountered along the way.

Bioreactor Design Engineering Success

Throughout the process of constructing our bioreactor, we had to move through many iterations of the engineering DBTL cycle. For more information on how we designed and built our toroidal bioreactor, see our dedicated page.

Main Vessel Design

The main vessel we designed and then built is a square-sectioned toroid. The walls are made from two perspex cylinders of differing diameters and with 3mm thick walls. Both cylinders are cut down to 45mm, and the smaller one is placed inside the larger one. A 5mm thick bottom plate is then used to secure the two cylinders in place to ensure a constant distance between the outer and inner walls. The initial bottom plate was an annulus cut with a laser cutter. It had enough width to allow the inner cylinder to sit on the inner edge, and the outer cylinder to sit on the outer edge. Then the cylinders and annulus plate would be bonded with acrylic cement. However, due to the frankly low-tech means of construction this resulted in the cut cylinder sections not sitting perfectly flat on the plate. This meant that acrylic cement could not bond all of the cylinders to the bottom plate, leading to areas where the vessel would leak. Multiple applications of cement were applied to “shore up” these holes, but this resulted in a varied topography on the bottom of the plate. Moreover, there was no lip in the middle of the toroid to place the servo stage on. This also inadvertently resulted in the inner and outer cylinders not being parallel, which caused magnetic balls to get caught between the walls occasionally.

It became very apparent that we needed a much more precise method of construction that was still intuitive and replicable. Our second bottom plate was still an annulus but with a reduced inner diameter and increased outer diameter. A laser cutter was used to create “grooves” for the cylinders to slot into for three main reasons. Firstly, to keep a constant distance between the vessel walls and prevent magnetic balls from getting stuck. Secondly the grooves would maximise how much of the bottom plate and the cylinder walls would be touching, so we would only have to use minimal amounts of cement for maximum adherence and ensure the vessel was completely watertight. Thirdly and finally, the vessel walls slotting into the bottom and being chemically bonded increased the structural integrity of the vessel overall.

The lid was designed with the same rough technique, but with two main differences. Firstly, the grooves engraved were wider in order to prevent a tight fit from occurring and allowing for moderate airflow. Secondly, small holes were cut into it to allow for insertion of a temperature probe and for the fluid input. This is because the original lid we had cut was just a flat plate we intended to place on top, but this had the same issues as the bottom plate: it left gaps between the walls and the lid, which could result in contamination.

Outflow of Spent Culture

Initially, we thought that a simple hole drilled into the side of the outer wall would be enough. The idea was that the bottom of the outflow hole should line up with where the top of the culture volume would be. Hence, any surplus volume would trickle out of the hole through a silicon tube and into a waste beaker or some other vessel. However, it quickly became apparent that the intended outflow hole was not large enough to allow for easy flow once 100ml was reached; surface tension was causing adhesion to the sides of the hole. With the hole along present as the drainage method, surface tension holds approximately 20ml more volume than intended before pressure from surplus culture builds enough to release 20+ml at once. Once a silicon tube was inserted to direct the flow into a vessel, the decreased diameter of the outflow caused even more water to build, and once pressure builds enough then as much as 40ml is released at once. This is extremely problematic, as it is poorly controlled and with seemingly inconsistent volume outflow episodes.

If we wanted to stick with the outlow hole idea we had two possible solutions, each with possible drawbacks. Firstly we could simply make the hole larger and larger until outflow occurred at the right volume, but this could impact upon heat retention of the vessel and present a possible method for contamination. Secondly, we could keep the hole diameter the same but change the shape to be square. The idea behind this is to minimise surface tension effects in the middle-most parts of the edges of the square. However, a square hole is harder to reproduce for anyone wanting to build our bioreactor. Moreover, square tubing is less commonly used and we wanted to design our bioreactor with common, off the shelf components.

Eventually we had the idea of inserting a rigid tube at an upwards angle, where the top of the tube would sit at precisely where 100ml volume would be (see below).

Figure 1: The improved outflow design of the bioreactor

This method proved to be much more reliable, as gravity alone is a strong enough force to overcome surface tension issues. The bioreactor drains at approximately 105-108ml instead of 140+ml like the old system, much more controllable and conducive to continuous culturing. Moreover the angle of the inserted tube is helpful in preventing airflow containing microbes into the bioreactor, which lessens the likelihood of contamination.

Peristaltic Pump for Influx of Media

A peristaltic pump was a given for our modular design, being relatively affordable and highly programmable. Initially, we chose a 6V pump, but it would overheat the MB-102 breadboard’s 5V power supply and the Raspberry Pi. Parts of the circuit were heated up to as much as 120°C, which was obviously unsustainable and potentially dangerous. Moreover, we were only reaching 12mL/min pumping rates with a microcontroller, and only 46.6mL/min when connected directly to the power supply. The advertised maximum pumping rate was 100mL/min so something was clearly wrong.

Our first attempt to rectify this was swapping out the Raspberry Pi Pico unit and double-checking that the circuit was correct. However, the heating problem still persisted. We then thought it could have been the MB-102 breadboard power supply and so instead powered 12V directly to the breadboard instead. This did not solve the heating issue either.

On our third attempt, we measured the voltage across the power and ground line separately and found that the breadboard was not actually separated in the middle. We switched to a 12V pump and altered the circuit slightly so as to pump it directly from the wall adapter via a separate miniature breadboard, instead of the breadboard supply as the breadboard’s linear regulators were turning all waste power into heat. This proved to be much more effective in achieving advertised pumping benchmarks, and it stopped the overheating problem as well.

Magnetic Stirring System

We had the idea of employing a magnetic stirring system using a bifurcated horn underneath the toroidal vessel that had magnets attached to each end. The inspiration behind this was simply the magnetic stirring systems commonly found in many laboratories. The middle of the horn was attached to an inverted servo to rotate 360°. These magnets would attract magnetic balls inside the culture, and as the horn rotated the magnetic balls inside the culture would be dragged along to agitate and mix the culture.

The first servo we purchased actually did not have 360° rotation and could only rotate 180° in either direction. Hence we purchased another. We initially found we could not control the direction and speed of the servo. To remedy this, we calculated the number of ticks for the PWM driving the servo (65535), the total time of one period (20ms), and the duty cycle on-times for clockwise (1ms) and anticlockwise (2ms) as well as the stop instruction (1.5ms). We composed the following formula to calculate the correct number of ticks to get the desired duty-cycle and rotation behaviour:

  • For motor to turn clockwise: \(\dfrac{1}{20} \times 65535\)
  • For motor to turn anticlockwise: \(\dfrac{2}{20} \times 65535\)
  • For motor to stop: \(\dfrac{1.5}{20} \times 65535\)

From here we scaled them from -100 to +100 to make it easier to control. This was calculated by dividing the number of active ticks with 20 and multiplying by 65535 with the following code:

def servomove(power)
        pwm.duty – u16(int((power/100)*1638.75)+4915.125))

The values in the above code were derived in the following way:

  • \(\dfrac{1}{20} \times 65535 = 3276.75\)
  • \(\dfrac{1.5}{20} \times 65535 = 4915.125\)
  • \(\dfrac{2}{20} \times 65535 = 6553.5\)
  • Difference between each = 1638.375
  • Median value = 4915.125

Once the scaling from -100 to +100 is applied, the equation simplifies to:

\[\dfrac{P}{100} \times 1638.375 + 4915.125\]

Where P is the power in (-100,100). Hence, if power is -100, then the number of ticks input must be 3276.75 which corresponds to a clockwise turn.

Originally, we were stirring unidirectionally as this was the most obvious option for such a small volume. However, we began to suspect that this resulted in laminar flow in parts of the bioreactor which was not suitable for media mixing. Hence, we altered our code and instead adopted a bidirectional stirring approach. Opting for a bidirectional stirring system proved to be the right decision when we came to testing our bioreactor mixing system with blue dye (see our video on the Proof of Concept page for more). Whilst unidirectional stirring definitely agitated the entire cross-sectional area of the toroid, there was a noticeable concentration of dye in one area that was constantly being pushed in the same direction. Once the stirring system reversed direction, this concentration of dye was dispersed almost immediately, thereby proving the efficacy of our bidirectional stirring system.

Measuring Turbidity Through Optical Density

OD measurement is mandatory for proper turbidostat functionality. Our thoughts were to use an OD800 LED-phototransistor pair, shining it through both the bioreactor walls and the culture inside. We opted for OD800 over OD600 to minimise background radiation interference. Whilst using a laser initially seemed like a more obvious choice, especially as it would minimise diffraction possibilities, it quickly became apparent that there would be issues of self-reflection to contend with if we decided to amend the design to culture photosynthetic organisms.

The first problem we encountered was difficulty in securing the LED-transistor pair in place on the bioreactor, so the LED shines directly on the sensor constantly. Initially we attempted to use male-to-female jumper wires to connect the LED and phototransistor to the breadboard, but these were too loose to hold them in place securely. After this we laser cut a structure that was intended to slot on top of the lid and hold the LED and phototransistor in place on the sides. This proved much more promising but the wires of the LED and phototransistor both proved too short for the pairing to be placed at the correct height from the bottom. Hence, we soldered wires to increase their lengths which also allowed us to bend them at angles to each other that were much more suitable to attaining valid readings.

A second problem we ran into was how short the initial reading range would be. With the addition of potentiometers we were able to modulate LED intensity and phototransistor sensitivity, allowing us a greater range of valid settings to experiment with in our quest for a valid OD range. The best setup for a valid range is 34.4mA through the LED, and 6.4mA through the phototransistor.

Controlling Temperature

Our first attempts at controlling temperature via the Kanthal wire heating coil left a lot of room for improvement. The temperature would fluctuate a lot, would only reach up to approximately 31°C but did not reach stability around 37°C. This is a critical function of our bioreactor, as 37°C is the optimal temperature for bacterial growth for V. natriegens.

Our first attempt at solving this problem was changing the value of the target temperature in an effort to compensate for temperature fluctuations. However, simply lifting the benchmark did not prove adequate. So instead, we used a PID controller to alter heating power depending on the difference in temperature between the targeted and current temperature. This has given us much greater control over the heating coil output.

Another problem we encountered was the motor not turning itself off after reaching 37°C. We had the heating function in the code controlled by an if/else loop, so it T>37°C then the motor was supposed to turn itself off. Our first attempt to fix this utilised a while loop, with the hopes that it will keep looping through the code and the conditional statement. However, it turned out that as it looped, the motor would be turned on again. Our second attempt modified the if/else loop correctly, giving us greater control. If T<37°C then the motor is on and if T>37°C then the motor is off.

Finally, we decided to start thinking outside the box, so to speak. Instead of achieving the desired temperature solely through the heating coil, we should be focusing more on conserving existing heat output. So, we fashioned a simple perspex box to act as an insulative cover (10mm thick walls, and internal dimensions of L160mm × W160mm × H120mm. Perspex has a thermal conductivity of 0.17 – 0.19 W m/K, which is very low, and this proved to be sufficient in maintaining optimal temperature ranges for extended durations.