In this lab we had to program the robot Opentrons OT-2 to do a design on black agar plates by dispensing genetically modified E. coli. There are two strains of bacteria, which have been modified to include the reporter genes GFP and RFP, one in each.
For the design I chose to draw a happy face, where the outline is done with E. coli RFP strain and the features are done with E. coli GFP strain. The protocol to be able to execute this design was made in Google Colab with the help of Google’s AI Gemini.
For the different parts of the protocol I used some of the codes found in the different examples of the HTGAA25 Opentrons Colab. For the outline of the face I modified the code of the Example 2 with the assistance of Gemini; I made the circle bigger (by increasing radius) and made the dots of the same volume. For the lines that represent the eyes I based my code in the one found on Example 6, the one used to make the vertical lines of the letter ‘H’. I modified the code so that there is only a single line and they are located in the adecuate spot within the circle. The most challenging part was the smile in the happy face. I based the code on the Example 1, but I modified it with the help of Gemini so that the circle becomes a semicircle located in the lower part of the face. Once the code for the drawing was complete I looked for ways to optimize it. I asked Gemini to help me change the code so that the pipette fills itself with enough liquid so that it does not have to refill each time a dot is placed.
The Program for drawing the happy face can be found in the following link:
https://colab.research.google.com/drive/1dEI_nHl3TBiSs80IufppGch8sxzKrNMx?usp=sharing
**#Program for circle**
radius = 27
pipette_20ul.pick_up_tip()
pipette_20ul.aspirate(20, location_of_color('red')) #aspirate volume (gemini help)
for i in range(27):
if i == 18:
pipette_20ul.aspirate(8, location_of_color('red'))
radians = i*2*math.pi/27
adjusted_location = center_location.move(types.Point(x=radius*math.cos(radians), y=radius*math.sin(radians)))
dispense_and_jog(pipette_20ul, 1, adjusted_location)
# Don't forget to end with a drop_tip()
pipette_20ul.drop_tip()
#Program for eyes
#Left eye
cursor = center_location.move(types.Point(x=-10, y = 14))
pipette_20ul.pick_up_tip()
pipette_20ul.aspirate(5, location_of_color('Green'))
for i in range(5):
dispense_and_jog(pipette_20ul, 1, cursor)
#dispense_and_jog(pipette_20ul, 1, cursor.move(types.Point(x=2)))
cursor = cursor.move(types.Point(y =-3))
#Right eye
cursor = center_location.move(types.Point(x=10, y = 14))
pipette_20ul.aspirate(5, location_of_color('Green'))
for i in range(5):
dispense_and_jog(pipette_20ul, 1, cursor)
#dispense_and_jog(pipette_20ul, 1, cursor.move(types.Point(x=2)))
cursor = cursor.move(types.Point(y =-3))
pipette_20ul.drop_tip()
#Program for mouth
radius = 18
pipette_20ul.pick_up_tip()
pipette_20ul.aspirate(13, location_of_color('green'))
for i in range(13): # change range for a semi-circle (gemini help)
radians = i*2*math.pi/25 + math.pi #shifts the starting angle by 180 degrees (gemini help)
adjusted_location = center_location.move(types.Point(x=radius*math.cos(radians), y=radius*math.sin(radians)))
dispense_and_jog(pipette_20ul, 1, adjusted_location)
# Don't forget to end with a drop_tip()
pipette_20ul.drop_tip()

One of the great parts about having an automated robot is being able to precisely mix, deposit, and run reactions without much intervention. This year, a greater emphasis will be placed on utilizing the Opentrons to accelerate your final projects.
For this week, we’d like for you to do the following
Opentrons can be a useful tool for protocols that require a repetitive sequence of steps. I think that in for the final project I can use this automation tool to insert the DNA constructs into my bacteria of choice. The method of transformation would be heat shock, since the Opentron can add a Temperature module that can be programmed to make the reaction happen. Also the robot can add the exact quantities of the DNA construct to the bacterial culture. Finally, the machine can also inoculate the media for the culture of the transformed bacteria, maintaining it at the exact temperature of incubation.
The program to do the bacterial transformation needs to include the amount of construct that needs to be aspirated, the time and temperature for the heat shock and the amount that needs to be inoculated to fresh media.
The additional materials needed for this process, aside from the temperature module, could be a rack to hold the tubes where the bacteria is cultivated, a rack to hold the tubes with the constructs, and a stand to hold the petri dishes where the transformed bacteria are inoculated.
In the article published by Shibai & Furusawa (2024), it is discussed how automation can be used to study evolutionary dynamics. In order to study evolution experimentally, there needs to be dozens of cultures that run in parallel with a consistent stressor to provoke the evolution of the strains. This work is labor-intensive for researchers and can often result in errors due to the difficult to manage work load. In this article the authors mention how automation can be a solution to this problem.
The machine in an automated lab setting can be programmed to carry out the basic tasks needed to maintain a bacterial strain like providing fresh media and a constant stressor. Since the robot can work nonstop, the routine cultivation does not need to stop during breaks and holidays. Also, since the quantities are fixed in the program, there is less rate of error because there are changes in this variable.