Python Script for Opentrons Artwork Exploring the Spiral of Ouro. Artistic Concept and Motivation For this week’s assignment, I developed a “Spiral of Ouro.” This design is based on phyllotaxis principles, using the Golden Angle to distribute points across a 96-well plate. This choice reflects the core philosophy of my project: using mathematical and computational frameworks to simplify biological design. By translating natural patterns into a functional robotic protocols.
Subsections of Homework
Week 1 HW: Principles and Practices
1. Project Description
Concept: I want to develop a small open-source, in-silico tool that explores synthetic biology “parts” (such as enzymes or simple pathways) with potential applications in environmental sustainability and circular economy.
Goal: The tool will collect and organize parts from open biological databases, classify them by environmental use case, and provide a simple interface to explore them. The goal is not to experimentally build organisms, but to support early-stage, responsible ideation and design in environmental synthetic biology.
2. Governance Goals
Main Goal: Ensure that this open, AI-assisted synthetic biology design tool contributes to a more equitable and inclusive future of biotechnology, particularly by lowering barriers to access for researchers and students in low- and middle-income countries.
Secondary Objectives:
Equitable Access: Reduce the gap in access to synthetic biology resources by making the tool fully open-source and low-cost.
Capacity Building: Support learning and innovation in contexts where access to wet-lab facilities is limited.
Responsible Use: Encourage users to consider local environmental and social contexts.
3. Governance Actions & Analysis
Action 1: Open-Source & Low-Resource Optimization
Purpose: Currently, many tools require paid licenses or high resources. I propose designing this tool to be runnable on basic laptops with minimal dependencies.
Risks: It could fail to reach users due to lack of visibility, or create frustration if users can design but not build (wet-lab gap).
Action 2: Targeted Incentives for Local Problems
Purpose: Funding often prioritizes global trends over local needs. I propose incentives/grants for projects using the tool to address local problems (e.g., agricultural waste).
Risks: Funding might favor projects that look good on paper but lack feasibility.
Action 3: Community-Led Learning Nodes
Purpose: SynBio training is concentrated in wealthy nations. I propose creating community-led “nodes” for peer mentorship and contextualized use of the tool.
Risks: Nodes may struggle to sustain activity without stable funding.
4. Evaluation Matrix
Does the option:
Action 1 (Open Source)
Action 2 (Incentives)
Action 3 (Nodes)
Enhance Biosecurity
• By preventing incidents
2
2
3
• By helping respond
1
2
n/a
Foster Lab Safety
• By preventing incidents
2
2
3
• By helping respond
n/a
2
n/a
Protect the Environment
• By preventing incidents
1
2
1
• By helping respond
3
2
3
Other Considerations
• Minimizing costs/burdens
1
2
2
• Feasibility
1
2
2
• Not impede research
1
1
2
• Promote constructive apps
1
1
1
(Scoring: 1 = Best, 3 = Least effective)
5. Conclusion & Recommendations
Priority: It is recommended to prioritize a combination of Action 1 and Action 3.
Why: Action 1 removes the technical barrier, while Action 3 ensures local human capital is trained to use the tools responsibly. Without mentorship, software access alone does not guarantee sovereign innovation.
Sustainability: Cloud-first software reduces infrastructure costs, and regional nodes act as knowledge multipliers.
6. Ethical Concerns & Proposed Governance
Emerging Issues:
Biopiracy Risk: Digitizing sequences from diverse biomes might allow high-resource institutions to commercialize products without benefiting source communities.
Info-Hazards: Democratizing design tools increases the risk of accidentally generating hazardous designs before physical synthesis.
Proposed Solutions:
Ethical Co-design: Funders should require local participation in agenda-setting, not just implementation.
Capacity as Governance: International initiatives must fund local training and safety culture, not just technical outputs.
Benefit-Sharing: Incorporate licenses that link tool access to the Nagoya Protocol, ensuring commercial derivatives contribute to a local sustainability fund.
Week 3 HW: Lab Automation
Python Script for Opentrons Artwork
Exploring the Spiral of Ouro.
Artistic Concept and Motivation
For this week’s assignment, I developed a “Spiral of Ouro.” This design is based on phyllotaxis principles, using the Golden Angle to distribute points across a 96-well plate. This choice reflects the core philosophy of my project: using mathematical and computational frameworks to simplify biological design. By translating natural patterns into a functional robotic protocols.
Technical Implementation
The implementation uses a Python script for the Opentrons liquid handling robot. Instead of manual plotting, I developed an algorithmic approach to calculate Cartesian coordinates for the ninety-six wells. The script utilizes the simulate module to ensure precise movement. This methodology aligns with my goal of creating high-fidelity digital blueprints that can be shared globally, reducing the need for expensive proprietary software and making advanced laboratory automation more accessible to researchers in low-resource settings.
Python Protocol Code
Below is the complete protocol used to generate the spiral. It includes the necessary metadata and the mathematical loop that defines the dispensing pattern.
importmathimportmatplotlib.pyplotaspltimportnumpyasnpfromopentronsimportsimulatemetadata={'protocolName':'Spiral of Ouro - Environmental SynBio Design','author':'Zaira Fabiola Guzman','description':'An algorithmic design for environmental ideation and accessible biotechnology.','apiLevel':'2.13'}# Initial setup of the simulator and canvasprotocol=simulate.get_protocol_api('2.13')plate=protocol.load_labware('corning_96_wellplate_360ul_flat','1')# Parameters for the Spiral of Ouron_points=96golden_angle=137.508*(math.pi/180)scale_factor=3.5x_coords=[]y_coords=[]# Coordinate generation and movement simulationforiinrange(n_points):r=scale_factor*math.sqrt(i)theta=i*golden_anglex=r*math.cos(theta)y=r*math.sin(theta)x_coords.append(x)y_coords.append(y)well=plate.wells()[i]protocol.comment(f"Moving to spiral coordinate {i}: ({x:.2f}, {y:.2f})")# Visualization block for Colabplt.figure(figsize=(7,7))forwellinplate.wells():plt.plot(well.geometry.position.x,well.geometry.position.y,'ko',fillstyle='none',alpha=0.1)plt.scatter(x_coords,y_coords,c=range(n_points),cmap='magma',s=100,edgecolors='white')plt.title("Artistic Visualization: Spiral of Ouro")plt.axis('equal')plt.show()
Post-Lab Questions
Lab Automation and Biological Design
Part 1: Published Paper on Automation Tool
The paper titled “A low-cost, open-source Turbidostat design for in-vivo control experiments in Synthetic Biology” by Guarino et al.(2019) describes the design and implementation of an open-source, highly flexible turbidostat built with 3D printed parts and controlled by an Arduino board. This automation tool continuously monitors the optical density of a bacterial culture using an LED and photodiode circuit, and it autonomously triggers custom 3D-printed syringe or peristaltic pumps to inject fresh media when required.
The authors propose using this automated, modular machine for multicellular control experiments. In this novel application, the automation hardware is extended to connect two different culture chambers separated by a nanoporous membrane. This setup allows two distinct bacterial populations to be physically separated while exchanging sensing molecules, automating the precise maintenance of specific population ratios for synthetic microbial consortia.
Part 2: Final Project Automation Plan
I will automate the translation of the conceptual biological design into an executable liquid-handling script. Currently, a researcher must manually translate a metabolic pathway design into a step-by-step pipetting protocol. I will program my Python tool so that, once the AI and database search finalize the parts for a cell-free system (e.g., specific enzymes for plastic degradation), the software automatically generates and outputs a ready-to-run Opentrons Python script or a JSON payload formatted for Ginkgo Nebula’s cloud laboratory.
Part 2: Final Project Automation Plan
I will automate the translation of the conceptual biological design into an executable liquid-handling script. Currently, a researcher must manually translate a metabolic pathway design into a step-by-step pipetting protocol. I will program my Python tool so that, once the AI and database search finalize the parts for a cell-free system (e.g., specific enzymes for plastic degradation), the software automatically generates and outputs a ready-to-run Opentrons Python script or a JSON payload formatted for Ginkgo Nebula’s cloud laboratory.
importjsonfromopentronsimportprotocol_api# AUTOMATICALLY GENERATED BY BIOCIRCULAR DESIGN TOOL# Target: Ginkgo Nebula / Opentrons OT-2 Cloud Lab# Design: Cell-free PET Degradation Pathwaymetadata={'protocolName':'Automated Cell-Free Assembly','author':'BioCircular Tool Compiler','description':'Automated liquid handling protocol for testing a computationally designed cell-free system.','apiLevel':'2.13'}defrun(protocol:protocol_api.ProtocolContext):# The tool automatically calculated these volumes based on the DB sequence sizereaction_setup={'cell_free_extract':15.0,'enzyme_A_DNA':3.5,'enzyme_B_DNA':4.2,'buffer_solution':7.3}# Labware setupplate=protocol.load_labware('corning_96_wellplate_360ul_flat','1')tuberack=protocol.load_labware('opentrons_24_tuberack','2')pipette=protocol.load_instrument('p300_single_gen2','left')# Automated dispensing steps compiled by the in-silico toolprotocol.comment("Initiating automated cell-free assembly based on digital design.")pipette.transfer(reaction_setup['cell_free_extract'],tuberack['A1'],plate['A1'])pipette.transfer(reaction_setup['enzyme_A_DNA'],tuberack['B1'],plate['A1'])pipette.transfer(reaction_setup['enzyme_B_DNA'],tuberack['C1'],plate['A1'])pipette.transfer(reaction_setup['buffer_solution'],tuberack['D1'],plate['A1'])pipette.mix(3,20,plate['A1'])protocol.comment("Assembly complete. Ready for incubation and reading.")