Week 3 HW: Lab Automation

0. Opentrons Art:

Code: https://colab.research.google.com/drive/1EMIMzVtB1k32tNOAKxGJH9ZDrxwvAGkC

JSON file: Download Opentrons art JSON

Acknowledgements: This format of coding (uploading a JSON file that contains the coordinates) was inspired from https://www.youtube.com/watch?v=K5nR0eYHLEk&t=4s. Huge thanks to Alireza Hekmati.

Coding, in its entirity, was handled by Gemini version 3.0 that was in-built in Collab.

Output:
Image Image

1. Find and describe a published paper that utilizes the Opentrons or an automation tool to achieve novel biological applications.

The paper: Slowpoke:An Automated Golden Gate Cloning Workflow for Opentrons OT‑2 and Flex

Keywords I would use to describe it: Opentrons OT-2, automation, standradization, synthetic biology.

Summary of the paper:
The authors developed an open-source software called ‘Slowpoke’ to automate the Golden Gate assembly process. Opentrons were used to carry out bacterial transformation, GG assembly, and plating. After a few manual steps in between, Opentrons were used once again to perform cPCR. It demonstrated the feasiblity of automating GG assembly. Opentrons were used to handle liquid transfers, reaction mixtures, and parameters. By integrating pipetting, transformataion, plating, and cPCR screening into a single pipleline. The validation was carried out manually using flow cytometry with transformed yeast cells. Using Slowpoke interface along with Opentrons, the authors achieved high assembly efficiencies, over 90% with Yeast Toolkit (YTK) and 60% with Subtilis Toolkit (STK), consistent with values reported for manual Golden Gate assemblies using these toolkits. To conclude, this paper designed a tool (Slowpoke) that generates Opentrons-ready protocols in the form of CSV files, mitigating the expertise needed in coding to a great extent. However, it must be noted that human input was still necessary to collect the DNA fragments for running cPCR.
Flowchart Flowchart

v

2. Write a description about what you intend to do with automation tools for your final project. You may include example pseudocode, Python scripts, 3D printed holders, a plan for how to use Ginkgo Nebula, and more. You may reference this week’s recitation slide deck for lab automation details.

I would like to automate the prototyping of a novel Bio In-situ Resource Utilization (Bio-ISRU) on Mars that comprises of two trophic levels. The producer level utilizes photoautotrophic organisms to convert Martian CO2 (and of course, sunlight) to produce the nutrients required for the primary consumer level. The latter would consist of a ‘biominer’- a bacteria that can precipitate, from the Martian regolith, metals- cheifly iron in the form of Fe3O4- for easier metallurgical applications.

The automation tools would be utilized in the following ways:

  1. 3D printing of a photobioreactor in gyroid shape to maximize the surface area for photosynthesis. This has to be validated in Martain gravity. Probably, can be carried out on a space station using a centrifuging apparatus to mimic the higher gravitational pull on Mars compared to Low Earth Orbit (LEO)
  2. Bioreactor management (i.e, addition of nutrient media etc.)
  3. Sensing if the maximum biomass has been achieved, and if yes, lysing the cells so that they may be utilized by the biominers
  4. Efficient mixing of the lysed biomass with the Martian Regolith at appropriate ratio to maximize the precipitation of Fe3O4 by Acidithiobacillus spp.
  5. Sensing the maximum quantity of Fe3O4 precipitaed, and removing it by operating a magnetic arm to separate the magnetite.
  6. Sterilization of equippment, as well as decontamination, using gamma radiation.

Pseudocode (The following was the output of Gemini 3 for the prompt: “Write a pseudocode for the following”, and the above block was pasted.):

import ginkgo_nebula_api as nebula

# Configuration Constants
MARS_GRAVITY_RPM = 24.5       # Calculated RPM for centrifuge to mimic 0.38g
BIOMASS_THRESHOLD = 0.85      # OD600 value for harvest
MINING_RATIO = 0.4            # Ratio of Lysate to Regolith
IRON_SATURATION_POINT = 0.92  # Signal from Magnetic Flux sensor

class BioISRU_System:
    def __init__(self):
        self.stage = "PRODUCER_GROWTH"
        self.centrifuge_active = True

    def run_lifecycle(self):
        # 1. GRAVITY VALIDATION
        # Maintain Mars-simulated gravity via centrifugation
        if self.centrifuge_active:
            mars.centrifuge.set_speed(MARS_GRAVITY_RPM)

        # 2. PRODUCER STAGE (Cyanobacteria)
        if self.stage == "PRODUCER_GROWTH":
            mars.pbr.inject_media(interval="6h")
            current_od = mars.pbr.read_sensor("OD600")
            
            # Check if gyroid surface area is maximized with biomass
            if current_od >= BIOMASS_THRESHOLD:
                print("Maximum biomass achieved. Initiating Lysing...")
                self.stage = "LYSING"

        # 3. LYSING & HANDOVER
        if self.stage == "LYSING":
            mars.pbr.activate_ultrasonic_lyser(duration="10m")
            # Transfer to the Miner Tank
            lysate_volume = mars.pbr.get_volume()
            mars.transfer_pump.move(to="MINER_TANK", volume=lysate_volume)
            self.stage = "BIO_MINING"

        # 4. CONSUMER STAGE (Biominers + Regolith)
        if self.stage == "BIO_MINING":
            # Automated mixing of lysed biomass and Martian Regolith
            regolith_amount = mars.transfer_pump.last_volume * MINING_RATIO
            mars.regolith_feeder.add(regolith_amount)
            
            # Efficient mixing to maximize Acidithiobacillus contact
            mars.miner_tank.start_agitation(pattern="vortex", speed="medium")
            
            # 5. SENSING & MAGNETITE HARVEST
            iron_yield = mars.miner_tank.read_sensor("MAGNETIC_FLUX")
            if iron_yield >= IRON_SATURATION_POINT:
                print("Magnetite precipitation peaked. Deploying Magnetic Arm.")
                mars.magnetic_arm.extend()
                mars.magnetic_arm.energize()
                mars.magnetic_arm.extract_to(bin="IRON_STORAGE")
                self.stage = "DECONTAMINATION"

        # 6. STERILIZATION & RESET
        if self.stage == "DECONTAMINATION":
            print("Initiating Gamma Radiation Sterilization cycle...")
            mars.gamma_source.expose(duration="30m", target="ALL_CHAMBERS")
            
            # Uplink yield data to Ginkgo Nebula for strain optimization
            nebula.upload_log(yield_data=iron_yield, efficiency=1.2)
            
            # Reset for next cycle
            self.stage = "PRODUCER_GROWTH"
            print("System Reset. Starting new ISRU cycle.")

# Initialize and Loop
isru_unit = BioISRU_System()
while True:
    isru_unit.run_lifecycle()```   

### Final Project Ideas:  
[Google Slides](https://docs.google.com/presentation/d/1FAFN4YYisOcso3CI5F3W3Z7hj6_n9D1vAhVUywQXKPU/edit?slide=id.g3ca9627a0a6_624_27#slide=id.g3ca9627a0a6_624_27)