Projects

Final projects:

Subsections of Projects

Group Final Project

cover image cover image

Individual Final Project: Organoid-lab-on-a-chip (BSL-1)


Organoid-lab-on-a-chip for BSL-1 Labs

Closed-loop biochemical reinforcement learning for brains-on-chips via mRNA-mediated dopaminergic differentiation of PC12 cells with Nurr1 and FoxA2

Jenn Leung | LifeFabs Institute | London

HTGAA 2026: Individual Final Project Documentation

Presentation Slide Presentation Slide Presentation Slide Presentation Slide Presentation Slide Presentation Slide

Section 1: Abstract

This project is an attempt at prototyping a minimal brain-on-chip platform designed to facilitate closed-loop biochemical communication between synthetic neural substrates and automated software systems. Inspired by Cortical Labs’ CL-1, and following up from my previous collaboration with the start-up on developing closed-loop reinforcement learning games or creative technology experiments with biocomputers.

The brain-on-chip generally is composed of human-derived cortical neurons, high-density microelectrode arrays, microfluidics, and a software system that analyzes the electrical activity of the neurons. For my final project, I am looking to build a minimal version of that with a focus on biochemical delivery.

The stack looks to integrate three major components: Wetware: Synthetic mRNA-Mediated Dopaminergic Differentiation of PC12 Cells with Nurr1 and FoxA2 mRNA; Software: Automated chemical delivery via Opentrons OT-2 with Python and chemical/electrical activity readout; and Hardware: 3D-printed microfluidics custom labware with Multi-Electrode Array to create biochemical I/O between neural substrates and liquid handling systems.

While various labs are already working towards organoid intelligence, treating living neurons as the computational substrate, for LifeFabs I have adapted my protocol to adhere to BSL-1 safety standards, using PC12 cells (rattus norvegicus) derived from rat pheochromocytoma as a basis for modeling neuronal differentiation for synaptic transmission (See PMC12696136). I am interested in studying dopamine synthesis in PC12 cells as a measurable signal for reinforcement learning, which is why I have looked into Nurr1 and FoxA2 as transcription factors that can drive neuron differentiation (10.1002/stem.294).

For the protocol for the synthetic biology component there are two general directions depending on costs and ease of delivery: 1) Twist synthetic DNA sequences to activate Nurr1 and FoxA2 transcription factors and promote gene expression

  1. Direct mRNA synthesis for ready-to-transfect mRNA

With this, I can then transfect the mRNA into PC12 cells, using Opentrons OT-2 robot for lab automation and to facilitate synergistic dopaminergic differentiation. Dopamine synthesis will be measured.

Significance

Current platforms such as Cortical Labs’ CL-1 rely on human-derived cortical neurons requiring BSL-2 containment, which limits accessibility for independent researchers and creative technologists. There is a need for minimal, accessible brain-on-chip prototypes that maintain biological relevance while operating within BSL-1 safety constraints. The minimal set-up already provides useful contexts for the development of other hardware and physical systems such as microfluidics, custom labware, and microelectrode arrays (MEA).

Broad Objective

This project aims to prototype a minimal brain-on-chip platform integrating synthetic dopaminergic neural substrates, automated biochemical delivery, and multi-electrode array readout into a closed-loop biochemical I/O system, with the goal to start a foundation for reinforcement learning experiments with living neural tissue at BSL-1.

Hypothesis

Synthetic mRNA-mediated co-expression of Nurr1 and FoxA2 transcription factors in PC12 cells wis likely to drive measurable dopaminergic differentiation, producing quantifiable dopamine synthesis that can serve as a biochemical state signal in reinforcement learning experiments automated via liquid handling robotics.

Specific Aims

Common approaches to brains-on-chips use electrical stimulation or chemical stimulation as reinforcement learning methods. While studying genetically modified PC12 cells I am hoping to study dopamine synthesis with activated Nurr1 and FoxA2 transcription factors that will help facilitate neuron differentiation.

Methods

The wetware component employs PC12 cells derived from rat pheochromocytoma as a BSL-1 compatible model for dopaminergic neuronal differentiation. Cells are differentiated with NGF prior to transfection with synthetic Nurr1 and FoxA2 mRNA using Lipofectamine MessengerMAX.

Two synthesis routes are under consideration depending on cost and accessibility: Twist Bioscience DNA synthesis with subsequent in vitro transcription, or direct ready-to-transfect mRNA from a commercial synthesis service. Dopamine synthesis is quantified by high-sensitivity ELISA as the primary biochemical readout and reinforcement learning state signal. The software component uses Python on the Opentrons OT-2 platform to automate stimulus delivery and implement a closed-loop reward logic based on dopamine concentration thresholds. The hardware component integrates custom 3D-printed microfluidic labware with a multi-electrode array to enable simultaneous biochemical delivery and electrophysiological recording, creating bidirectional I/O between the neural substrate and the automated software system.

Section 2: Project Aims

Aim 1: Experimental Aim

My aim 1 is to define and test a synthetic biology approach to designing better dopaminergic reinforcement learning signals for brains-on-chips. The experimental aim is to generate dopaminergically differentiated PC12 cells through synthetic Nurr1 and FoxA2 mRNA transfection as the computational substrate for minimal brains-on-chips, following established protocols for mRNA-based dopaminergic neuron generation from PC12 cells, methods and protocols include:

Designing DNA sequences to promote Nurr1 and FoxA2 via Benchling

Developing synthetic Nurr1, FoxA2 and GFP mRNA (commercial synthesis or Twist DNA + IVT)

Lipofectamine MessengerMAX transfection protocol (Kim et al. 2017, PMC5589083)

NGF differentiation protocol for PC12 cells

Dopamine ELISA readout (Eagle Biosciences)

Aim 2: Development Aim

Measure and respond to biochemical signals from the substrate real-time so that this could help support reinforcement learning experiments

This will be developed alongside the Opentrons OT-2 with custom Python Reinforcement Learning script

Designing custom labware for OT2 to facilitate chemical delivery and signal readout (inspired by OrganRX)

Aim 3: Visionary Aim

Develop open, accessible, and low-cost framework for biological reinforcement learning in DIY brains-on-chips at BSL-1 labs.

This may include:

  • Using commercially available immortalised cell lines such as PC12

  • Developing open-source repositories and libraries for liquid handling automation for lab robotics

  • Designing custom labware ‘organoid-lab-on-a-chip’ and allowing open access to its Opentrons JSON

  • Using the organoid-lab-on-a-chip as a platform for developing and testing for cheaper microelectrode arrays for electrical interfacing

Section 3: Background

Background and Literature Context

Provide background research that explains the current state of knowledge and identifies the gap in knowledge or capability that your project addresses.

Briefly summarize two peer-reviewed research citations relevant to your research:

Foxa2 and Nurr1 Synergistically Yield A9 Nigral Dopamine Neurons

Lee et al. 2010

This paper establishes why it is critical to use both Nurr1 and FoxA2 together for improved differentiation from neural precursor cells (NPCs) such as PC12. FOXA2 (Forkhead Box A2)is a transcription factor critical for embryonic development, while Nurr1 is a transcription factor essential for the development, survival, and maintenance of midbrain dopaminergic neurons.

The authors showed that Nurr1 alone cannot generate fully mature midbrain dopamine neurons as it produces cells with only partial dopaminergic identity and fails entirely in mouse and human-derived precursors. FoxA2, a forkhead transcription factor expressed early in midbrain development, was identified as the critical co-factor.

Efficient Generation of Dopamine Neurons by Synthetic Transcription Factor mRNAs

Kim et al. 2017 (PMC5589083)

Kim et al. asked whether Nurr1 and FoxA2 could be delivered via synthetic mRNA rather than viral vectors. They designed a custom vector (pcDNA/UTR120A) with optimised 5’ and 3’UTRs and produced mRNA by in vitro transcription, then transfected it into rat neural precursor cells. mRNA transfection alone was sufficient to drive full dopaminergic differentiation — cells became electrophysiologically active, released measurable dopamine, and expressed the full synthesis machinery

Fluidic Programmable Gravi-maze Array for High Throughput Multiorgan Drug Testing

Wong et al. 2025 (bioRxiv 2025.06.18.660241)

Biopico Systems presents OrganRX™, a modular, gravity-driven multiorgan-on-a-plate (MOAP) system integrating gut, liver, kidney, brain and endothelium within a single microfluidic architecture.

OrganRX is compatible with the Opentrons OT-2 for automated liquid dispensing, which is exactly what I want to adapt for my project. Second, it references gravity-driven, pump-free design principles that I may be able to model after for the 3D-printed microfluidic labware that can help support the development of accessible, minimal brain-on-chip hardware.

PC12 Cell Line: Cell Types, Coating of Culture Vessels, Differentiation and Other Culture Conditions

Wiatrak et al. 2020 (Cells 9(4):958)

The paper systematically compared the two ATCC PC12 variants across coating types, NGF concentrations, and incubation times, and made several findings that directly affect my protocol design and choices. The authors concluded that only traditional PC12 (CRL-1721) should be used for neurobiological studies, as these immortalized cell lines, when combined with NGF (nerve growth factor), can stop dividing, develop neurites, and adopt a neuronal phenotype. The adherent variant (PC12 Adh, CRL-1721.1) behaves fundamentally differently and does not differentiate effectively with NGF. The protocol follows 100 ng/mL rat NGF for 14 days with 48-hour media changes.

Innovation

Typically, at BSL-2 level, brains-on-chips use human iPSC-derived neurons, which become extremely expensive to reproduce. While these typical brains-on-chips have demonstrated learning capabilities due to their rich electrical computation, they are not yet capable of producing dopamine as an alternative mode for reinforcement learning.

The project is novel in that it not only proposes a BSL-1 accessible method to learn and prototype minimal brains-on-chips, but it also offers a cheaper alternative to differentiating neuron-like cells from PC12 immortalized cell lines. This allows the project to be more democratizable without human-derived cells.

Secondly, the project takes on a unique synthetic biology approach to understanding brains-on-chips. As there is little research in using PC-12 cells for brains-on-chips right now, learning has not been demonstrated. Although PC-12 cells show only limited electrical activity, through an mRNA approach to differentiating PC-12 cells with two complementary transcription factors (FoxA2 and Nurr1) can help generate dopaminergic neurons, so that these cells can become electrically excitable and dopaminergically functional, which now makes biochemical and electrical reinforcement learning a possibility for these BSL-1 brains-on-chips.

Significance

Synthetic biological intelligence provides us with alternative frameworks to review our current silicon-based computational infrastructure. We look into the possibility of living neurons as the computational substrate for information processing when interfaced with MEA for electrical stimulation and recording, as a new framework for helping us reposition the current silicon based computational infrastructure.

As biology is neuroplastic and difficult to scale, they are currently underutilized in helping us study their potential in changing silicon-based computing infrastructure. Future synthetic biological intelligence comes in different cultures, assemblies, sizes, shapes, and forms, and also its dimensions will change based on MEAs - this means there isn’t a one-size fits all solution for us to actually understand these cognitive assemblies nor a good method. In order to develop meaningful communication across these intelligences, we must understand them through higher order behavioral traits, where intelligence should be interfaced with ‘at their scale’. This means we don’t try to understand biological intelligence through mechanistic interpretability but through communicating meaningfully.

The project also aims to address the privatization of brains-on-chips research. Since 2022, leading brains-on-chips research has been concentrated among a few start-ups and university institutions, such as Harvard’s Arlotta Lab, Swiss start-up FinalSpark, and Australian/Singaporean start-up Cortical Labs. Current biotechnology start ups are primarily concerned with serving biocomputing at scale, and needing to build a product quickly. But this era of biocomputing deserves research on more diverse methods of making meaningful communication. This project is instead more interested in democratizing the building, development, and networking of new biocomputers.

Bioethical Considerations

As we speculate these brains-on-chips systems to become democratized and decentralized, there will spawn many different configurations of physical/ neural assemblies with advances in MEA designs, bioprinting technologies, and microfluidic platforms. 1) benchmarking integrity and reproducibility, for example, how do we measure spiking activity across different systems? How do we make sure experiments are scientifically meaningful? How do we translate and deliver virtual environments to channels on different MEA geometries? 2) ensuring accessibility to independent researchers, for example, writing software environments not only for proprietary technologies such as Cortical Lab’s CL1 or FinalSpark’s Neuroplatform. Governance here means committing to abstraction layers that treat CL1 as one implementation among many 3) responsible scalability across new substrates, for example, new substrates includes increasingly complex organoids or assembloids that should go through rigorous bioethical frameworks. 4) Support sustainability & longevity of the substrates, there should be rate limitations so that cells aren’t overly stimulated and at risk of quick death.

This will mean that the project has to go through bioethical standards compliance, research ethics committee approvals, and wet-laboratory licensing requirements must be ensured through partner wet-lab facilities.

First, to develop a general-use minimal brain-on-a-chip model at BSL-1 labs, we will need to first benchmark across different currently commercially available platforms.

For example, there are multiple proprietary brain-on-a-chip platforms such as Cortical Labs’ CL1 and FinalSpark’s Neuroplatform, but there are no standardizations or comparisons metadata of these systems. I am proposing to create a metadata of existing platforms/ systems and develop an open access metadata standard that documents different MEA geometries, channel count, neural substrates, culture medium, experimental protocols.

This will involve mapping out a group of academic researchers who have been working on organoid intelligence/ synthetic bioengineered intelligence standardization, and manufacturers such as MaxWell Biosystems, Cortical Labs, etc., join community labs or open-source groups on open-source research. This action assumes that all parties are happy to share their manual or manufacturing details, however, some of this data might be protected under NDA. There are also some risks of failure and success through this approach as there’s a high chance the open-source projects will grow exponentially, making this metadata impossible to manage at scale.

Section 4: Experimental Design, Techniques, Tools, and Technology

Use Claude AI skills to refine your HTGAA final project experimental design here. All HTGAA projects must include some DNA design! Make sure this form is submitted.

The Stack

Neural Substrate (PC12 Cells)

DNA Construct Design

Two IVT template plasmids are designed on Benchling and ordered from Twist Bioscience in pTwist Amp High Copy:

FoxA2_T7_EGFP_Kozak_3UTR

Nurr1_T7_Kozak_RFP_3UTR

Construct 1: Nurr1-GFP IVT Template

Architecture:

5' buffer — T7 promoter — 5'UTR — Kozak — Nurr1 CDS — GGGSGGGGS linker — EGFP — stop codon — 3'UTR — 3' buffer

Element sources:

  • 5’ buffer: AAAACCCAAA — IVT initiation efficiency

  • T7 promoter: TAATACGACTCACTATA — T7 RNA polymerase recognition (Studier & Moffatt 1986)

  • 5’UTR: Xenopus beta-globin derived — from Kim et al. (2017)

  • Kozak: GCCACCATG — optimal translation initiation (Kozak 1987)

  • Nurr1 CDS: rat NM_019328, positions 112–1908 (1797 nt), stop codon removed

  • Linker: GGCGGCGGCTCCGGCGGCGGCTCC → GGGSGGGGS (flexible fusion linker)

  • EGFP: AAB02572.1 (Cormack et al. 1996)

  • Stop codon: TAA

  • 3’UTR: double beta-globin from Kim et al. (2017)

  • 3’ buffer: GCGGCCGC (NotI site)

LOCUS       Nurr1_GFP_IVT_template       4156 bp    DNA     linear
DEFINITION  Nurr1-GFP fusion IVT template in pTwist Amp High Copy
ACCESSION   .
VERSION     .
KEYWORDS    Nurr1; GFP; IVT; mRNA; dopaminergic; PC12
SOURCE      synthetic construct
ORGANISM  synthetic construct
FEATURES             Location/Qualifiers
misc_feature    1..10
/label="5prime_buffer"
/note="AAAACCCAAA"
promoter        11..27
/label="T7_promoter"
/note="TAATACGACTCACTATA"
5'UTR           28..71
/label="5prime_UTR"
/note="Xenopus beta-globin derived, Kim et al. 2017"
regulatory      72..80
/label="Kozak"
/note="GCCACCATG"
CDS             78..1874
/label="Nurr1_CDS"
/note="rat NM_019328, stop codon removed"
/codon_start=1
misc_feature    1875..1898
/label="GGGSGGGGS_linker"
/note="GGCGGCGGCTCCGGCGGCGGCTCC"
CDS             1899..2618
/label="EGFP"
/note="AAB02572.1, Cormack et al. 1996"
misc_feature    2619..2621
/label="stop_codon"
/note="TAA"
3'UTR           2622..2715
/label="3prime_UTR"
/note="double beta-globin, Kim et al. 2017"
misc_feature    2716..2723
/label="3prime_buffer"
/note="GCGGCCGC NotI site"
ORIGIN
1 aaaacccaaa taatacgact cactataggg aaataagaga gaaaagaaga gtaagaagaa
61 atataagagc cgccaccatg cactcggctt ccagtatgct gggagccgtg aagatggaag
121 ggcacgagcc atccgactgg agcagctact acgcggagcc tgagggctac tcttccgtga
181 gcaacatgaa cgccagcctg gggatgaatg gcatgaacac ttacatgagc atgtccgcgg
241 ctgcaatggg cagtggttcc ggcaacatga gcgcaggctc catgaacatg tcatcctatg
301 tgggcgctgg aatgagcccg tcgctggctg gcatgtcccc gggcgcgggc gccatggcgg
361 gcatgagcgg ctcagctggg gcggccggcg tggcgggcat gggaccgcac ctgagtccga
421 gtctgagccc actcgggggc aggcggccgg ggctatgggt ggccttgctc cctacgccat
481 atgaactcca tgagtcctat gtacgggcag gcgggcctga gccgcgctcg ggaccccaag
541 acgtaccggc gcagctacac tcacgccaag cctccctact cgtacatctc gctcatcacc
601 atggccatcc agcagagccc caacaagatg ctgacgctga gcgagatcta tcagtggatc
661 atggacctct tccctttcta ccggcagaac cagcagcgct ggcagaactc catccgtcat
721 tctctctcct tcaacgactg ctttctcaag gtgccccgct cgccagacaa gcctggcaag
781 ggctccttct ggaccctgca ccctgactct ggcaacatgt tcgagaacgg ttgctacctg
841 cgccgccaga agcgcttcaa gtgtgagaag caactggcgt tgaaggaagc agcgggtgcg
901 ggcagtggcg gaggcaagaa gaccgctcct gggacacagg cttctcaggt tcagctcggg
961 gaggccgcag gctcggcctc tgagactccg gcgggcaccg agtcccccat tccagcgctt
1021 ctccgtgtca ggagcacaag cgaggtggcc tgagcgagct gaagggaaca cctgcctctg
1081 cgctgagtcc tccggagccg gcgccctcgc ctgggcagca gcagcaggct gcagcccacc
1141 tgctggtccc acctcaccat cctggcctgc caccagaggc ccacctgaag cccgagcacc
1201 attacgcctt caaccacccc ttctctatca acaacctcat gtcctccgag cagcaacatc
1261 atcacagcca ccaccaccat cagccccaca aaatggacct caagacctac gaacaggtca
1321 tgcactaccc tgggggctac ggttcccccatgccaggcag cttggccatg ggcccagtca
1381 cgaacaaagc cggcctggat gcctcgcccc tggctgcaga cacttcctac taccagggag
1441 tgtactccag gcctattatg aactcgtcct aaggcggcgg ctccggcggc ggctccatgg
1501 tctccaaagg tgaagaattg tttactggag ttgttccgat tctcgtggaa ctcgatggag
1561 atgtgaatgg gcataaattt tccgtcagcg gggaaggaga aggagacgca acatatggga
1621 aactcactct taaatttata tgtacaacag ggaaactccc ggttccgtgg ccaactcttg
1681 tcactactct cacatatggt gtccaatgtt ttagcaggta tcctgatcat atgaaacaac
1741 atgatttctt taaatcagca atgcctgagg gatatgtgca ggaaagaacc attttcttta
1801 aagacgatgg taattataaaacaagagctg aagtcaaatt tgagggagat acactcgtca
1861 atcggattga actcaaaggg attgacttta aagaagatgg gaatattctg ggccataaac
1921 ttgaatacaa ttataattca cataatgtgt acataatggc ggataagcaa aagaacggaa
1981 taaaagtcaa ctttaaaatt aggcataata tagaagatgg gagtgtacaa ctggcagatc
2041 attatcaaca aaatactcca attggcgatg ggccagtcct tttgcctgat aatcattatc
2101 tctcaactca aagcgctctt tcaaaggatc caaatgagaa acgagaccat atggtgttgc
2161 tcgaatttgt tactgctgct ggcattaccc ttgggatgga tgaattgtat aaataatgcc
2221 ttctgcgggg cttgccttct ggccatgccc ttcttctctc ccttgcacct gtacctcttg
2281 gtctttgaat aaagcctgag taggaagtga gggtgaagag cctgcacctc ggcgcggccgc
//
Construct 2: FoxA2-RFP IVT Template

Architecture:

5' buffer — T7 promoter — 5'UTR — Kozak — FoxA2 CDS — GGGSGGGGS linker — mCherry — stop codon — 3'UTR — 3' buffer

Element sources:

  • FoxA2 CDS: rat NM_012743, positions 190–1569 (1380 nt), stop codon removed

  • mCherry: Shaner et al. (2004)

  • All other elements identical to Construct 1

LOCUS       FoxA2_RFP_IVT_template       3739 bp    DNA     linear
DEFINITION  FoxA2-mCherry fusion IVT template in pTwist Amp High Copy
ACCESSION   .
VERSION     .
KEYWORDS    FoxA2; mCherry; RFP; IVT; mRNA; dopaminergic; PC12
SOURCE      synthetic construct
ORGANISM  synthetic construct
FEATURES             Location/Qualifiers
misc_feature    1..10
/label="5prime_buffer"
promoter        11..27
/label="T7_promoter"
5'UTR           28..71
/label="5prime_UTR"
regulatory      72..80
/label="Kozak"
CDS             78..1457
/label="FoxA2_CDS"
/note="rat NM_012743, stop codon removed"
misc_feature    1458..1481
/label="GGGSGGGGS_linker"
CDS             1482..2198
/label="mCherry"
/note="Shaner et al. 2004"
misc_feature    2199..2201
/label="stop_codon"
/note="TAA"
3'UTR           2202..2295
/label="3prime_UTR"
misc_feature    2296..2303
/label="3prime_buffer"
/note="GCGGCCGC"
ORIGIN
1 aaaacccaaa taatacgact cactataggg aaataagaga gaaaagaaga gtaagaagaa
61 atataagagc cgccaccatg ctgggagcag tgaagatgga agggcacgag ccatccgact
121 ggttcagctc tggggaggcc gcaggctcgg cctctgagac tccggcgggc accgagtccc
181 cccattccag cgcttctccg tgtcaggagc acaagcgagg tggcctgagc gagctgaagg
241 gaacacctgc ctctgcgctg agtcctccgg agccggcgcc ctcgcctggg cagcagcagc
301 aggctgcagc ccacctgctg gtcccacctc accatcctgg cctgccacca gaggcccacc
361 tgaagcccga gcaccattac gccttcaacc accccttctc tatcaacaac ctcatgtcct
421 ccgagcagca acatcatcac agccaccacc accatcagcc ccacaaaatg gacctcaaga
481 cctacgaaca ggtcatgcac taccctgggg gctacggttc ccccatgcca ggcagcttgg
541 ccatgggccc agtcacgaac aaagccggcc tggatgcctc gcccctggct gcagacactt
601 cctactacca gggagtgtac tccaggccta ttatgaactc gtcctaaggc ggcggctccg
661 gcggcggctc catggtgagc aagggcgagg aggataacat ggccatcatc aaggagttca
721 tgcgcttcaa ggtgcacatg gagggctccg tgaacggcca cgagttcgag atcgagggcg
781 agggcgaggg ccgcccctac gagggcaccc agaccgccaa gctgaaggtg accaagggcg
841 gcccgctgcc cttcgcctgg gacatcctgt cccctcagtt catgtacggc tccaaggcct
901 acgtgaagca ccccgccgac atccccgact acttgaagct gtccttcccc gagggcttca
961 agtgggagcg cgtgatgaac ttcgaggacg gcggcgtggt gaccgtgacc caggactcct
1021 ccctgcagga cggcgagttc atctacaagg tgaagctgcg cggcaccaac ttcccctccg
1081 acggccccgt aatgcagaag aagaccatgg gctgggaggc ctccaccgag cggatgtacc
1141 ccgaggacgg cgccctgaag ggcgagatca agcagaggct gaagctgaag gacggcggcc
1201 actacgacgc cgaggtcaag accacctaca aggccaagaa gcccgtgcag ctgcccggcg
1261 cctacaacgt caacatcaag ctggacatca cctcccacaa cgaggactac accatcgtgg
1321 agcagtacga gcgcgccgag ggccgccact ccaccggcgg catggacgag ctgtacaagt
1381 aatgccttct gcggggcttg ccttctggcc atgcccttct tctctccctt gcacctgtac
1441 ctcttggtct ttgaataaag cctgagtagg aagtgagggt gaagagcctg cacctcggcg
1501 cggccgc
//

These constructs are ordered, validated, and codon optimized via Twist Bioscience. Below are some evidences of the validation:

image image

Custom labware for Opentrons OT-2

3D-printed custom labware microfluidic plate with inlets and outlets for OT2.

The design was first prototyped via Flui3D: Flui3D Flui3D Flui3D2 Flui3D2

They were tested and designed to fit within a single-well plate in its first iteration.

The following are then prototyped and modeled in Blender, 3D-printed, and then converted into Opentrons JSON using Labware Creator. Custom labware Custom labware Custom labware 2 Custom labware 2

Opentrons OT-2 Deck Layout Design

Experimental Protocol and Automated Workflows

Here is a simplified version of the experimental protocol - more detailed version in appendix.

Step 1 — Sequence design and SecureDNA screening

Method: Sequences designed in Benchling. All sequences submitted to SecureDNA for screening prior to ordering.

Automation: Manual — Benchling platform

Plate: N/A

Expected result: Sequences cleared — no sequences of concern identified

Timeline: Day 1 — 2 hours


Step 2 — Twist Bioscience DNA order

###eSer

Method: Insert sequences submitted to Twist Bioscience as clonal gene orders in pTwist Amp High Copy. Two constructs ordered: Nurr1-GFP IVT template and FoxA2-RFP IVT template.

Automation: Twist online ordering portal

Plate: N/A (Twist ships as glycerol stock or resuspended plasmid)

Expected result: Plasmid delivery in 7-10 business days

Timeline: Day 1 — 30 minutes submission


Diagram Diagram

Step 3 — Cell-free mRNA expression validation

Method: Upon receipt of Twist plasmids, validate construct expression using cell-free protein synthesis (CFPS) before committing to full IVT and PC12 transfection. Plasmid transcribed in vitro using HiScribe T7 kit. Resulting mRNA added to cell-free expression system. GFP and mCherry fluorescence measured to confirm both fusion proteins are produced.

Automation: Echo525 — acoustic liquid transfer of CFPS reagents to 384 Greiner black-well clear-bottom plate; PHERAstar FSX — fluorescence detection (GFP: ex 488/em 520; mCherry: ex 555/em 610)

Plate: 384 Greiner black-well clear-bottom

Expected result: Fluorescence signal above background in construct wells; no signal in no-template controls

Timeline: Day 10-11 (upon Twist delivery)


Step 4 — Bacterial transformation and plasmid amplification

Method: Both Twist plasmids transformed into NEB 10-beta competent E. coli. Overnight culture on LB + ampicillin (100 µg/ml) plates. 3-6 colonies picked per construct for overnight liquid culture.

Automation: Manual transformation; Cytomat shaking incubator for overnight bacterial growth

Plate: N/A (standard Petri dishes)

Expected result: 10-100 colonies per construct

Timeline: Day 10-11


Step 5 — Miniprep and sequencing verification

Method: GeneJET Miniprep Kit. Elute in 50 µl elution buffer. Quantify by Nanodrop. Send one sample per construct for Sanger sequencing. Verify T7 promoter, 5’UTR, Kozak, CDS, linker junction, fluorescent protein, stop codon, and 3’UTR all intact.

Automation: HiG Centrifuge for miniprep spins

Plate: N/A

Expected result: >50 ng/µl, A260/280 ratio 1.8-2.0. Sequencing confirms all junctions correct.

Timeline: Day 12-13


Step 6 — Template linearisation and IVT

Method: Plasmid linearised by KpnI digestion (1 hour, 37°C). Linearisation verified on 1% agarose gel. Purified by GeneJET PCR purification. IVT performed using HiScribe T7 High Yield RNA Synthesis Kit (2 hours, 37°C). TURBO DNase added to remove template (15 min). Poly-A tail added enzymatically using E. coli Poly-A Polymerase (NEB M0276, 45 min). mRNA purified by RNeasy Mini Kit. Quantified by Nanodrop. Quality verified on agarose gel.

Automation: Inheco Plate Incubator for IVT reaction; HiG Centrifuge for RNeasy spins

Plate: N/A (microcentrifuge tubes — RNase-free)

Expected result: Single clean mRNA band on gel. Yield 50-100 µg per reaction. A260/280 ~2.0.

Timeline: Day 14 — full day


Step 7 — PC12 cell thawing and expansion

Method: PC12 CRL-1721 (suspension variant) thawed from liquid nitrogen into warm growth medium (DMEM + 10% horse serum + 5% FBS + 1% P/S). Expanded in T25 flask. Passage 15-25 cells used throughout.

Automation: Manual — laminar flow hood and CO2 incubator

Plate: T25 flask

Expected result: Cells attach as clusters; healthy morphology by Day 2

Timeline: Day 1 (parallel with DNA work)


Step 8 — Plate coating (PDL + Collagen Type I)

Method: 6-well plates coated sequentially. PDL (50 µg/ml) applied for 1 hour at RT, aspirated, dried. Collagen Type I (10 µg/ml in PBS) applied overnight at 4°C. Residual collagen left on surface — not washed.

Automation: Opentrons OT-2 with P300 single channel — PDL and collagen dispense steps

Plate: Corning 6-well flat bottom plate

Expected result: Uniform coating visible; cells will adhere and extend neurites

Timeline: Day 7-8


Step 9 — PC12 cell plating and NGF differentiation

Method: Cells broken up using syringe (18G x2, 22G x3, 25G x3). Counted by haemocytometer. Plated at 50,000 cells/well in growth medium. After 24h, switched to differentiation medium (DMEM + 1% horse serum + 1% P/S + 100 ng/ml rat NGF). Media changed every 48h with fresh NGF for 14 days.

Automation: Opentrons OT-2 — media change steps (aspirate 1ml, dispense 1ml fresh NGF medium per well, 6 wells per run, every 48h)

Plate: Corning 6-well flat bottom plate

Expected result: Neurites visible by Day 10-11; mature network by Day 14

Timeline: Days 8-22


Step 10 — Daily mRNA transfection (Days 15-21)

Method: Per well: Tube A — 25 µl Opti-MEM + 500 ng mRNA total (250 ng Nurr1-GFP + 250 ng FoxA2-RFP for experimental wells). Tube B — 25 µl Opti-MEM + 1.5 µl MessengerMAX. Combine, incubate 5 min. Remove half media from well. Add complex dropwise. Rock plate. Incubate 4 hours. Replace with fresh NGF differentiation medium. Repeat daily for 7 days.

Automation: Opentrons OT-2 — complex addition, half-media removal, fresh medium addition

Plate: Corning 6-well flat bottom

Expected result: GFP and RFP nuclear fluorescence visible from Day 16. Yellow overlap cells (both TFs) appear by Day 17-18.

Timeline: Days 15-21 daily


Step 11 — Live fluorescence imaging

Method: Cells imaged at 10x and 20x on fluorescence microscope. GFP channel (ex 488/em 520) for Nurr1-GFP. RFP channel (ex 555/em 610) for FoxA2-RFP. Merged image assessed for yellow double-positive cells. GFP and RFP signal in nucleus confirms correct transcription factor localisation.

Automation: Spark Plate Reader — fluorescence quantification in plate format (if 96-well plate format used); manual fluorescence microscope for imaging

Plate: 96-round-axygen-pdw11cs-halfdeep for Spark quantification of conditioned media samples

Expected result: 20-40% cells GFP+, 20-40% RFP+, 10-20% yellow double-positive

Timeline: Days 16, 18, 20


Step 12 — TH immunostaining (Day 20)

Method: Cells fixed with 4% PFA (15 min RT). Washed 3x PBS. Permeabilised with 0.25% Triton X-100 (10 min). Blocked with 3% BSA (1 hour). Anti-TH primary antibody (1:500, overnight 4°C). Secondary antibody Alexa Fluor 647 (1:500, 1 hour RT). DAPI (1:1000, 5 min). Imaged on fluorescence microscope. Far-red channel (Alexa 647) does not overlap with GFP or mCherry.

Automation: Manual immunostaining

Plate: Corning 6-well

Expected result: Nurr1-GFP + FoxA2-RFP co-transfected wells show 3-5x higher TH fluorescence than single-TF or negative controls

Timeline: Day 20-21


Step 13 — Dopamine ELISA (Days 18 and 21)

Method: Replace medium with serum-free DMEM 2 hours before collection. Add 56 mM KCl to stimulate dopamine release (15 min). Collect 200 µl conditioned medium per well into pre-chilled tubes. Centrifuge 300 x g for 5 min. Transfer supernatant. Run high-sensitivity dopamine ELISA (Eagle Biosciences) following kit protocol. Read absorbance at 450 nm.

Automation: Opentrons OT-2 — media collection and transfer to 96-well ELISA plate; Spark Plate Reader — absorbance at 450 nm; Plateloc — seal ELISA plate during incubation steps

Plate: 96-round-axygen-pdw11cs-halfdeep (sample collection); 96-Armadillo-PCR-AB2396X (ELISA)

Expected result: Nurr1-GFP + FoxA2-RFP wells show 3-5x dopamine above baseline. Target: 5-50 nM.

Timeline: Days 18 and 21


Step 14 — Closed-loop Opentrons RL experiment (Day 21)

Method: Python script on Opentrons OT-2. Baseline ELISA read → deliver dopamine stimulus (1 µM start) → 15 min incubation → collect media sample → ELISA read → Python threshold decision → escalate to 5 µM if above threshold or maintain. Repeat 3-5 cycles.

Automation: Opentrons OT-2 — all liquid handling; Spark Plate Reader — ELISA absorbance reads between cycles

Plate: Corning 6-well (cells); 96-Armadillo-PCR-AB2396X (ELISA reads)

Expected result: Measurable dopamine concentration change with each stimulus cycle. Loop runs without error. State signal varies with stimulus.

Timeline: Day 21 — 6-8 hour session

Example code for automated RL chemical delivery and signal readout

The example code aims to deliver:

  • Baseline media sampling for ELISA
  • Dopamine stimulus delivery
  • Post-stimulus media sampling
  • Fresh media replenishment between cycles

The python RL agent will attempt to read ELISA dopamine concentration values (either entered manually between cycles, or via plate reader API if available) and decides the next stimulus concentration based on threshold logic (Aim 1) or Q-learning (extending Aim 2)

This may be adapted to be used with custom labware in the future, currently it uses the following commercially available well plates and tip racks:

Slot 1: NEST 12-well reservoir — reagents A1 = Dopamine 1 µM (in DMEM + 0.1 mg/ml ascorbic acid) A2 = Dopamine 5 µM (in DMEM + 0.1 mg/ml ascorbic acid) A3 = Dopamine 10 µM (in DMEM + 0.1 mg/ml ascorbic acid) A4 = PBS wash buffer A5 = Fresh differentiation medium + NGF (100 ng/ml) A6 = Waste

Slot 2: Corning 6-well plate — PC12 cells Wells A1-A3: experimental wells (Nurr1-GFP + FoxA2-RFP) Wells B1-B3: control wells (NGF only / GFP only / RFP only)

Slot 3: 96-well flat bottom plate — ELISA sample collection Row A: Cycle 0 baseline samples (wells A1-A6 from cell plate) Row B: Cycle 1 post-stimulus samples Row C: Cycle 2 post-stimulus samples Row D: Cycle 3 post-stimulus samples Row E: Cycle 4 post-stimulus samples Row F: Cycle 5 post-stimulus samples

Slot 4: Opentrons 96 tip rack (300 µl) Slot 5: Opentrons 96 tip rack (300 µl) — second rack for long sessions

from opentrons import protocol_api
import time

# ============================================================
# METADATA
# ============================================================

metadata = {
    'apiLevel': '2.13',
    'protocolName': 'Organoid-lab-on-a-chip:RL-Loop',
    'author': 'Jenn Leung',
    'description': (
        'Closed-loop dopamine reinforcement learning in NGF-differentiated '
        'PC12 cells transfected with Nurr1-GFP and FoxA2-RFP mRNA. '
        'Opentrons delivers dopamine stimuli and collects media samples. '
        'ELISA reads dopamine concentration as the RL state signal.'
    )
}

# ============================================================
# EXPERIMENTAL PARAMETERS — edit these before each run
# ============================================================

# Number of RL cycles to run (each cycle = stimulus delivery + wait + sample)
N_CYCLES = 5

# Incubation time after each dopamine stimulus (minutes)
INCUBATION_MIN = 15

# Volume to sample for ELISA per well (µl)
SAMPLE_VOLUME_UL = 150

# Volume of dopamine stimulus to deliver per well (µl)
STIMULUS_VOLUME_UL = 100

# Volume of fresh media to add after each cycle (µl)
MEDIA_REPLENISH_UL = 500

# Dopamine concentration threshold for reward decision (nM)
# Set this based on your Day 18 baseline ELISA reading
REWARD_THRESHOLD_NM = 15.0

# Starting stimulus — 'low', 'medium', or 'high'
INITIAL_STIMULUS = 'low'

# Wells to treat as experimental (Nurr1-GFP + FoxA2-RFP)
EXPERIMENTAL_WELLS = ['A1', 'A2', 'A3']

# Wells to treat as controls
CONTROL_WELLS = ['B1', 'B2', 'B3']

# All wells combined
ALL_WELLS = EXPERIMENTAL_WELLS + CONTROL_WELLS

# ============================================================
# RL AGENT — Threshold Logic (Aim 1)
# ============================================================

class ThresholdRLAgent:
    """
    Simple threshold-based RL agent for Aim 1.

    Logic:
        - If dopamine above threshold → reward (escalate to next stimulus level)
        - If dopamine below threshold → withhold (maintain or reduce stimulus)

    State:  dopamine concentration (nM) from ELISA
    Action: stimulus concentration to deliver next cycle
    """

    def __init__(self, threshold_nm, initial_stimulus='low'):
        self.threshold_nm = threshold_nm
        self.stimulus_levels = {
            'none': 0,
            'low':  1,     # 1 µM dopamine
            'medium': 5,   # 5 µM dopamine
            'high': 10     # 10 µM dopamine
        }
        self.current_stimulus = initial_stimulus
        self.history = []

    def decide(self, dopamine_nm):
        """
        Given current dopamine reading, decide next stimulus.

        Args:
            dopamine_nm (float): dopamine concentration in nM from ELISA

        Returns:
            str: stimulus level for next cycle ('low', 'medium', 'high')
            float: reward value (+1, 0, or -1)
        """
        reward = 0.0

        if dopamine_nm >= self.threshold_nm:
            reward = 1.0
            # Escalate to next level if not already at max
            if self.current_stimulus == 'low':
                next_stimulus = 'medium'
            elif self.current_stimulus == 'medium':
                next_stimulus = 'high'
            else:
                next_stimulus = 'high'  # Already at max — maintain
        else:
            reward = -0.5
            # Reduce or maintain
            if self.current_stimulus == 'high':
                next_stimulus = 'medium'
            elif self.current_stimulus == 'medium':
                next_stimulus = 'low'
            else:
                next_stimulus = 'low'

        self.history.append({
            'dopamine_nm': dopamine_nm,
            'stimulus': self.current_stimulus,
            'reward': reward,
            'next_stimulus': next_stimulus
        })

        self.current_stimulus = next_stimulus
        return next_stimulus, reward

    def get_stimulus_reservoir(self, stimulus_level):
        """Return reservoir well for given stimulus level."""
        mapping = {
            'low':    'A1',   # 1 µM
            'medium': 'A2',   # 5 µM
            'high':   'A3'    # 10 µM
        }
        return mapping.get(stimulus_level, 'A1')

    def print_summary(self):
        """Print RL session summary."""
        print("\n" + "="*60)
        print("RL SESSION SUMMARY")
        print("="*60)
        print(f"Threshold: {self.threshold_nm} nM")
        print(f"Cycles completed: {len(self.history)}")
        print(f"\nCycle-by-cycle results:")
        print(f"{'Cycle':>6} {'Dopamine (nM)':>14} {'Stimulus':>10} {'Reward':>8} {'Next':>10}")
        print("-"*55)
        for i, h in enumerate(self.history):
            print(
                f"{i+1:>6} "
                f"{h['dopamine_nm']:>14.1f} "
                f"{h['stimulus']:>10} "
                f"{h['reward']:>8.1f} "
                f"{h['next_stimulus']:>10}"
            )
        total_reward = sum(h['reward'] for h in self.history)
        print(f"\nTotal reward: {total_reward:.1f}")
        print("="*60)


# ============================================================
# RL AGENT — Q-Learning (Aim 2 extension)
# ============================================================

class QLearningRLAgent:
    """
    Q-learning agent for Aim 2 — more sophisticated RL.

    State space:  dopamine concentration binned into discrete levels
    Action space: stimulus concentrations (none, low, medium, high)

    Q-table updated after each cycle using Bellman equation.
    Epsilon-greedy exploration allows agent to occasionally try
    non-optimal actions to discover better strategies.
    """

    def __init__(self, threshold_nm, alpha=0.1, gamma=0.9, epsilon=0.2):
        """
        Args:
            threshold_nm:  reward threshold in nM
            alpha:         learning rate (0-1) — how fast Q-values update
            gamma:         discount factor (0-1) — how much future rewards matter
            epsilon:       exploration rate (0-1) — random action probability
        """
        import numpy as np
        self.np = np
        self.threshold_nm = threshold_nm
        self.alpha = alpha
        self.gamma = gamma
        self.epsilon = epsilon

        # State bins — dopamine concentration ranges (nM)
        self.state_bins = [0, 5, 10, 20, 40, 80, float('inf')]
        self.n_states = len(self.state_bins) - 1

        # Actions
        self.actions = ['none', 'low', 'medium', 'high']
        self.n_actions = len(self.actions)

        # Q-table initialised to zero
        self.q_table = np.zeros((self.n_states, self.n_actions))

        self.history = []
        self.current_state = 0

    def get_state(self, dopamine_nm):
        """Bin continuous dopamine reading into discrete state."""
        for i in range(len(self.state_bins) - 1):
            if self.state_bins[i] <= dopamine_nm < self.state_bins[i + 1]:
                return i
        return self.n_states - 1

    def get_reward(self, dopamine_before, dopamine_after):
        """
        Reward based on change in dopamine release.

        Positive reward for increase above threshold.
        Negative reward for decrease.
        """
        delta = dopamine_after - dopamine_before
        if dopamine_after >= self.threshold_nm and delta > 0:
            return 1.0
        elif delta > 5:
            return 0.5
        elif delta < -5:
            return -0.5
        else:
            return 0.0

    def choose_action(self, state):
        """Epsilon-greedy action selection."""
        import random
        if random.random() < self.epsilon:
            return random.randint(0, self.n_actions - 1)
        return int(self.np.argmax(self.q_table[state]))

    def update(self, state, action_idx, reward, next_state):
        """Q-learning update rule (Bellman equation)."""
        current_q = self.q_table[state, action_idx]
        max_next_q = self.np.max(self.q_table[next_state])
        new_q = current_q + self.alpha * (
            reward + self.gamma * max_next_q - current_q
        )
        self.q_table[state, action_idx] = new_q

    def decide(self, dopamine_before, dopamine_after):
        """Full Q-learning update and next action decision."""
        state = self.get_state(dopamine_before)
        next_state = self.get_state(dopamine_after)
        reward = self.get_reward(dopamine_before, dopamine_after)

        # Get action that was taken (stored from previous cycle)
        action_idx = getattr(self, '_last_action_idx', 1)

        # Update Q-table
        self.update(state, action_idx, reward, next_state)

        # Choose next action
        next_action_idx = self.choose_action(next_state)
        self._last_action_idx = next_action_idx
        next_action = self.actions[next_action_idx]

        self.history.append({
            'dopamine_before': dopamine_before,
            'dopamine_after': dopamine_after,
            'state': state,
            'next_state': next_state,
            'reward': reward,
            'next_action': next_action
        })

        return next_action, reward

    def get_stimulus_reservoir(self, stimulus_level):
        mapping = {
            'none':   None,
            'low':    'A1',
            'medium': 'A2',
            'high':   'A3'
        }
        return mapping.get(stimulus_level)

    def print_q_table(self):
        """Print current Q-table values."""
        print("\nQ-TABLE (rows=states, cols=actions)")
        print(f"{'State (nM)':>15}", end="")
        for a in self.actions:
            print(f"{a:>10}", end="")
        print()
        state_labels = ['0-5', '5-10', '10-20', '20-40', '40-80', '80+']
        for i, label in enumerate(state_labels):
            print(f"{label:>15}", end="")
            for j in range(self.n_actions):
                print(f"{self.q_table[i,j]:>10.3f}", end="")
            print()


# ============================================================
# MAIN PROTOCOL
# ============================================================

def run(protocol: protocol_api.ProtocolContext):

    # ----------------------------------------------------------
    # LABWARE SETUP
    # ----------------------------------------------------------

    # Tip racks
    tiprack_1 = protocol.load_labware(
        'opentrons_96_tiprack_300ul', 4,
        label='Tip Rack 1'
    )
    tiprack_2 = protocol.load_labware(
        'opentrons_96_tiprack_300ul', 5,
        label='Tip Rack 2'
    )

    # Reagent reservoir (NEST 12-well)
    reservoir = protocol.load_labware(
        'nest_12_reservoir_15ml', 1,
        label='Reagent Reservoir'
    )

    # PC12 cell plate (6-well)
    cell_plate = protocol.load_labware(
        'corning_6_wellplate_16.8ml_flat', 2,
        label='PC12 Cell Plate'
    )

    # ELISA sample collection plate (96-well flat)
    elisa_plate = protocol.load_labware(
        'corning_96_well_plate_360ul_flat', 3,
        label='ELISA Sample Plate'
    )

    # ----------------------------------------------------------
    # REAGENT POSITIONS
    # ----------------------------------------------------------

    dopamine_1uM  = reservoir['A1']   # Low stimulus
    dopamine_5uM  = reservoir['A2']   # Medium stimulus
    dopamine_10uM = reservoir['A3']   # High stimulus
    pbs_wash      = reservoir['A4']   # PBS wash
    fresh_medium  = reservoir['A5']   # Fresh NGF differentiation medium
    waste         = reservoir['A6']   # Liquid waste

    stimulus_wells = {
        'low':    dopamine_1uM,
        'medium': dopamine_5uM,
        'high':   dopamine_10uM
    }

    # ----------------------------------------------------------
    # PIPETTE SETUP
    # ----------------------------------------------------------

    p300 = protocol.load_instrument(
        'p300_single_gen2',
        mount='right',
        tip_racks=[tiprack_1, tiprack_2]
    )

    # ----------------------------------------------------------
    # ELISA PLATE MAP
    # Row A = baseline (cycle 0)
    # Row B = cycle 1
    # Row C = cycle 2 ... etc.
    # Columns 1-3 = experimental wells A1,A2,A3
    # Columns 4-6 = control wells B1,B2,B3
    # ----------------------------------------------------------

    elisa_row_letters = ['A', 'B', 'C', 'D', 'E', 'F', 'G', 'H']

    def get_elisa_well(cycle, well_index):
        """
        Get ELISA plate well for a given cycle and cell plate well.
        cycle 0 = baseline, cycle 1-5 = post-stimulus
        well_index 0-5 corresponds to A1,A2,A3,B1,B2,B3
        """
        row = elisa_row_letters[cycle]
        col = well_index + 1
        return elisa_plate[f'{row}{col}']

    # ----------------------------------------------------------
    # RL AGENT INITIALISATION
    # Change QLearningRLAgent to ThresholdRLAgent for Aim 1
    # ----------------------------------------------------------

    agent = ThresholdRLAgent(
        threshold_nm=REWARD_THRESHOLD_NM,
        initial_stimulus=INITIAL_STIMULUS
    )

    # ----------------------------------------------------------
    # HELPER FUNCTIONS
    # ----------------------------------------------------------

    def collect_sample(cell_well, elisa_well, volume_ul):
        """
        Collect conditioned medium sample from cell well
        and transfer to ELISA plate.
        Always uses a fresh tip.
        """
        p300.pick_up_tip()
        p300.aspirate(volume_ul, cell_plate[cell_well].bottom(z=2))
        p300.dispense(volume_ul, elisa_well)
        p300.blow_out(elisa_well)
        p300.drop_tip()

    def deliver_stimulus(cell_well, stimulus_level, volume_ul):
        """
        Deliver dopamine stimulus to cell well.
        Always uses a fresh tip.
        """
        if stimulus_level == 'none':
            protocol.comment(f'  Withholding stimulus for {cell_well}')
            return

        source = stimulus_wells[stimulus_level]
        p300.pick_up_tip()
        p300.aspirate(volume_ul, source)
        p300.dispense(volume_ul, cell_plate[cell_well].bottom(z=3))
        # Gentle mix — 3 times at 80 µl to avoid disturbing cells
        p300.mix(3, 80, cell_plate[cell_well].bottom(z=3))
        p300.blow_out(cell_plate[cell_well].top(z=-5))
        p300.drop_tip()

    def replenish_medium(cell_well, volume_ul):
        """
        Add fresh differentiation medium + NGF to well.
        Always uses a fresh tip.
        """
        p300.pick_up_tip()
        # Aspirate from side to avoid disturbing cells/neurites
        p300.aspirate(volume_ul, fresh_medium)
        # Dispense gently to side of well, not directly onto cells
        p300.dispense(volume_ul, cell_plate[cell_well].bottom(z=5))
        p300.drop_tip()

    def get_dopamine_reading():
        """
        Pause protocol and prompt user to enter ELISA reading.
        In Aim 2, this would be replaced by a direct plate reader API call.

        Returns:
            float: dopamine concentration in nM
        """
        protocol.pause(
            'ELISA READING REQUIRED\n'
            'Run ELISA on collected samples now.\n'
            'Note dopamine concentration (nM) for experimental wells.\n'
            'Resume protocol when ready.'
        )
        # In a real run, you would either:
        # (a) manually note the reading and resume
        # (b) integrate with Spark Plate Reader API to read automatically
        # Returning a placeholder here — replace with actual reading logic
        # For automated integration:
        # from spark_api import SparkReader
        # reader = SparkReader()
        # reading = reader.read_absorbance(plate=elisa_plate, wavelength=450)
        # dopamine_nm = calculate_from_standard_curve(reading)
        # return dopamine_nm
        return 0.0  # Replace with actual reading

    # ----------------------------------------------------------
    # PROTOCOL EXECUTION
    # ----------------------------------------------------------

    protocol.comment("="*60)
    protocol.comment("ASSEMBLOID AGENCY — BIOCHEMICAL RL LOOP")
    protocol.comment(f"Cycles: {N_CYCLES}")
    protocol.comment(f"Incubation per cycle: {INCUBATION_MIN} min")
    protocol.comment(f"Reward threshold: {REWARD_THRESHOLD_NM} nM")
    protocol.comment(f"Initial stimulus: {INITIAL_STIMULUS}")
    protocol.comment("="*60)

    # ----------------------------------------------------------
    # STEP 1: COLLECT BASELINE SAMPLES (Cycle 0)
    # ----------------------------------------------------------

    protocol.comment("\n--- BASELINE SAMPLING (Cycle 0) ---")

    all_wells = EXPERIMENTAL_WELLS + CONTROL_WELLS

    for well_idx, well in enumerate(all_wells):
        elisa_dest = get_elisa_well(cycle=0, well_index=well_idx)
        protocol.comment(f'  Collecting baseline from {well} → ELISA {elisa_dest}')
        collect_sample(well, elisa_dest, SAMPLE_VOLUME_UL)

    # Prompt for baseline ELISA reading
    protocol.pause(
        'BASELINE ELISA\n'
        'Run ELISA on Row A of sample plate.\n'
        'Record baseline dopamine (nM) for each well.\n'
        'This sets your reference point for RL decisions.\n'
        'Resume when ready.'
    )

    # ----------------------------------------------------------
    # STEP 2: DELIVER INITIAL STIMULUS
    # ----------------------------------------------------------

    protocol.comment(f"\n--- INITIAL STIMULUS DELIVERY ({INITIAL_STIMULUS}) ---")

    current_stimulus = INITIAL_STIMULUS

    for well in EXPERIMENTAL_WELLS:
        protocol.comment(f'  Delivering {current_stimulus} dopamine to {well}')
        deliver_stimulus(well, current_stimulus, STIMULUS_VOLUME_UL)

    # Controls receive PBS instead of dopamine
    for well in CONTROL_WELLS:
        protocol.comment(f'  PBS to control well {well}')
        p300.pick_up_tip()
        p300.aspirate(STIMULUS_VOLUME_UL, pbs_wash)
        p300.dispense(STIMULUS_VOLUME_UL, cell_plate[well].bottom(z=3))
        p300.drop_tip()

    # ----------------------------------------------------------
    # STEP 3: RL CYCLES
    # ----------------------------------------------------------

    dopamine_before = REWARD_THRESHOLD_NM  # Starting estimate — updated by ELISA

    for cycle in range(1, N_CYCLES + 1):

        protocol.comment(f"\n{'='*60}")
        protocol.comment(f"RL CYCLE {cycle} of {N_CYCLES}")
        protocol.comment(f"Current stimulus: {current_stimulus}")
        protocol.comment(f"{'='*60}")

        # ---- INCUBATION ----
        protocol.comment(f"  Incubating {INCUBATION_MIN} minutes...")
        protocol.delay(
            minutes=INCUBATION_MIN,
            msg=f'RL Cycle {cycle} — stimulus incubation. '
                f'Keep cells on deck. Resume automatically.'
        )

        # ---- COLLECT POST-STIMULUS SAMPLES ----
        protocol.comment(f"  Collecting post-stimulus samples (Cycle {cycle})...")

        for well_idx, well in enumerate(all_wells):
            elisa_dest = get_elisa_well(cycle=cycle, well_index=well_idx)
            protocol.comment(f'    {well} → ELISA {elisa_dest}')
            collect_sample(well, elisa_dest, SAMPLE_VOLUME_UL)

        # ---- GET ELISA READING ----
        # In Aim 1: manual ELISA run, user enters reading, resumes
        # In Aim 2: automated plate reader API call
        dopamine_after = get_dopamine_reading()

        # ---- RL DECISION ----
        protocol.comment(f"\n  RL DECISION:")
        protocol.comment(f"  Dopamine before: {dopamine_before:.1f} nM")
        protocol.comment(f"  Dopamine after:  {dopamine_after:.1f} nM")

        next_stimulus, reward = agent.decide(dopamine_after)

        protocol.comment(f"  Reward:          {reward:.1f}")
        protocol.comment(f"  Next stimulus:   {next_stimulus}")

        # ---- REPLENISH MEDIUM ----
        protocol.comment("  Replenishing medium...")
        for well in all_wells:
            replenish_medium(well, MEDIA_REPLENISH_UL)

        # ---- DELIVER NEXT STIMULUS ----
        if cycle < N_CYCLES:
            protocol.comment(f"  Delivering {next_stimulus} stimulus...")
            for well in EXPERIMENTAL_WELLS:
                deliver_stimulus(well, next_stimulus, STIMULUS_VOLUME_UL)
            for well in CONTROL_WELLS:
                p300.pick_up_tip()
                p300.aspirate(STIMULUS_VOLUME_UL, pbs_wash)
                p300.dispense(STIMULUS_VOLUME_UL, cell_plate[well].bottom(z=3))
                p300.drop_tip()

        # Update tracking variables
        dopamine_before = dopamine_after
        current_stimulus = next_stimulus

    # ----------------------------------------------------------
    # STEP 4: FINAL SUMMARY
    # ----------------------------------------------------------

    agent.print_summary()

    protocol.comment("\n" + "="*60)
    protocol.comment("RL SESSION COMPLETE")
    protocol.comment(f"Total cycles completed: {N_CYCLES}")
    protocol.comment("ELISA sample plate is ready for final analysis.")
    protocol.comment("Return cells to incubator if further culture needed.")
    protocol.comment("="*60)

    protocol.pause(
        'SESSION COMPLETE\n'
        'Collect ELISA sample plate for final analysis.\n'
        'Return PC12 cell plate to incubator.\n'
        'Check RL summary printed to console.'
    )


# ============================================================
# STANDALONE SIMULATION MODE
# Run this file directly (not via Opentrons App) to simulate
# the RL agent logic without hardware
# ============================================================

if __name__ == '__main__':
    """
    Simulate the RL agent logic offline.
    Useful for testing threshold and Q-learning parameters
    before running on the actual OT-2.

    Usage:
        python assembloid_rl_protocol.py
    """

    print("ASSEMBLOID AGENCY — RL Agent Simulation (no hardware)")
    print("="*60)

    # Simulated dopamine readings (nM) — replace with real ELISA values
    simulated_readings = [8.2, 12.4, 18.6, 24.3, 38.7, 41.2]

    # Test threshold agent
    print("\n--- THRESHOLD AGENT SIMULATION ---")
    threshold_agent = ThresholdRLAgent(
        threshold_nm=15.0,
        initial_stimulus='low'
    )

    for i, reading in enumerate(simulated_readings[1:], 1):
        stimulus, reward = threshold_agent.decide(reading)
        print(
            f"Cycle {i}: "
            f"dopamine={reading:.1f} nM | "
            f"reward={reward:.1f} | "
            f"next stimulus={stimulus}"
        )

    threshold_agent.print_summary()

    # Test Q-learning agent
    print("\n--- Q-LEARNING AGENT SIMULATION ---")
    try:
        import numpy as np
        q_agent = QLearningRLAgent(
            threshold_nm=15.0,
            alpha=0.1,
            gamma=0.9,
            epsilon=0.2
        )
        q_agent._last_action_idx = 1  # Start with 'low'

        readings_before = simulated_readings[:-1]
        readings_after = simulated_readings[1:]

        for i, (before, after) in enumerate(
            zip(readings_before, readings_after), 1
        ):
            action, reward = q_agent.decide(before, after)
            print(
                f"Cycle {i}: "
                f"before={before:.1f} nM | "
                f"after={after:.1f} nM | "
                f"reward={reward:.1f} | "
                f"next={action}"
            )

        q_agent.print_q_table()

    except ImportError:
        print("numpy not available — skipping Q-learning simulation")
        print("Install with: pip install numpy")
        

Step 15 — Data analysis and RL loop evaluation

Method: Dopamine concentration values from each ELISA cycle plotted against cycle number. Q-values assessed for threshold convergence. Fluorescence data quantified for transfection efficiency. TH immunostaining quantified by mean fluorescence intensity per condition.

Automation: Python (pandas, matplotlib, numpy) for data processing and visualisation

Plate: N/A

Expected result: Positive correlation between dual-TF transfection and dopamine release. RL loop demonstrates state-dependent stimulus delivery.

Timeline: Day 22-23


Example ELISA Plate Layout (96-well, Day 21)

1 2 3 4 5 6 7 8 9 10 11 12 A [STD1] [STD1] [STD2] [STD2] [STD3] [STD3] [STD4] [STD4] [STD5] [STD5] [STD6] [STD6] B [STD7] [STD7] [STD8] [STD8] [BLK] [BLK] [NC1] [NC1] [NC2] [NC2] [NC3] [NC3] C [GFP] [GFP] [RFP] [RFP] [N+F1] [N+F1] [N+F2] [N+F2] [RL-0] [RL-0] [RL-1] [RL-1] D [RL-2] [RL-2] [RL-3] [RL-3] [RL-4] [RL-4] [RL-5] [RL-5] [SPARE][SPARE][SPARE][SPARE] LEGEND: STD1-8 = Dopamine standard curve (0, 0.5, 1, 2, 5, 10, 25, 50 nM) BLK = Blank (media only, no cells) NC1-3 = Negative controls (no mRNA transfection — NGF only wells) GFP = Nurr1-GFP only transfected RFP = FoxA2-RFP only transfected N+F1/2 = Nurr1-GFP + FoxA2-RFP co-transfected (technical replicates) RL-0 = Pre-RL baseline sample RL-1..5 = Successive RL cycle post-stimulus samples SPARE = Reserve wells

SECTION 5: TECHNIQUES, TOOLS, AND TECHNOLOGY

Technique Checklist

  • Pipetting

  • Lab Safety

  • Bioethical Considerations

  • DNA sequence design (Benchling)

  • Gene synthesis (Twist Bioscience)

  • Databases (e.g., GenBank, NCBI, Ensembl, and UCSC Genome Browser)

  • Bacterial transformation

  • Plasmid miniprep

  • Sanger sequencing verification

  • Restriction enzyme digestion

  • In vitro transcription (IVT)

  • RNA purification

  • Cell-free protein expression (validation)

  • Mammalian cell culture

  • Lipid nanoparticle transfection (MessengerMAX)

  • Fluorescence microscopy

  • Immunostaining

  • ELISA

  • Automated liquid handling (Opentrons OT-2)

  • Python scripting and reinforcement learning


Industry Partner Connections

PartnerRelevance
Twist BioscienceDirect — ordering both IVT template constructs
OpentronsDirect — OT-2 as primary automation platform for RL loop, media changes, ELISA
New England BiolabsDirect — HiScribe T7 IVT kit, Poly-A Polymerase, KpnI, competent cells
Thermo Fisher ScientificDirect — MessengerMAX, Opti-MEM, DMEM, RNeasy, TURBO DNase, PFA
Millipore SigmaDirect — PDL, dopamine HCl, LB broth
SecureDNADirect — sequence screening prior to Twist order
Asimov (Kernel Platform)Potential — genetic circuit design and construct optimisation for Aim 2 GRAB-DA sensor construct
Helix NanoPotential — lipid nanoparticle delivery optimisation for more efficient mRNA transfection in Aim 2 microfluidic format

Technique Expansion

onon

1. In Vitro Transcription (IVT)

In vitro transcription is a cell-free method for producing RNA from a DNA template using a bacteriophage RNA polymerase — in this project, T7 RNA polymerase from the HiScribe T7 High Yield RNA Synthesis Kit (New England Biolabs). The linearised plasmid template is incubated with T7 polymerase, nucleotide triphosphates (ATP, CTP, GTP, UTP), and reaction buffer, and the polymerase reads the DNA strand from the T7 promoter sequence and synthesises a complementary RNA strand with high processivity, producing up to 100 µg of mRNA from a single 20 µl reaction. Following transcription, the DNA template is removed by TURBO DNase treatment, and a poly-A tail of approximately 150-200 adenosine residues is added enzymatically using E. coli Poly-A Polymerase, which stabilises the mRNA and enhances translation efficiency in mammalian cells. The mRNA is purified using the RNeasy Mini Kit and quality-checked by Nanodrop spectrophotometry (A260/280 ratio ~2.0 indicates pure RNA) and agarose gel electrophoresis (single clean band indicates intact, non-degraded product). IVT is the core production step that converts the Twist-synthesised DNA template into transfectable mRNA, and its success is entirely dependent on maintaining RNase-free conditions throughout — any contamination with RNases, which are ubiquitous on surfaces and skin, will degrade the mRNA and result in failed transfection with no fluorescence and no dopaminergic differentiation.

2. Lipid Nanoparticle mRNA Transfection (MessengerMAX)

Lipofectamine MessengerMAX is an ionisable lipid transfection reagent specifically engineered for mRNA delivery into mammalian cells, addressing the fundamental challenge that mRNA — being large, negatively charged, and membrane-impermeant — cannot cross the cell membrane unaided. When mixed with mRNA in Opti-MEM at low pH, the ionisable lipids spontaneously self-assemble around the mRNA cargo, forming lipid nanoparticles approximately 100-200 nm in diameter whose positively charged outer surface is electrostatically attracted to the negatively charged cell membrane. The cell internalises the nanoparticle through endocytosis, forming an endosome, and the acidic endosomal environment (pH ~5-6) causes the MessengerMAX lipids to become more charged and destabilise the endosomal membrane — this endosomal escape step releases the mRNA into the cytoplasm where ribosomes can access it for translation. MessengerMAX is specifically preferred over DNA-optimised reagents such as Lipofectamine 2000 because mRNA is significantly more fragile than DNA and degrades rapidly in acidic endosomes if escape is delayed — MessengerMAX’s ionisable lipid formulation is optimised for rapid endosomal escape and designed for repeat daily transfection over 7 consecutive days, which is required by the Kim et al. (2017) protocol because the mRNA degrades within 24-48 hours in the cytoplasm and must be continuously replenished to maintain Nurr1 and FoxA2 protein levels sufficient for sustained dopaminergic differentiation.


SECTION 6: PROJECT VALIDATION

6a — Validation Choice

Cell-free mRNA expression (CFPS) is selected as the primary validation experiment because it tests the core functional assumption of the entire project — that the Twist-synthesised DNA constructs produce correctly folded, fluorescent Nurr1-GFP and FoxA2-RFP fusion proteins when transcribed and translated — before any PC12 cells are involved. This is the most efficient validation gate: if the constructs fail to produce fluorescent protein in a cell-free system, there is no point proceeding to the more complex and time-consuming PC12 transfection experiment, and the result unambiguously points to a construct-level problem rather than a cell biology problem.

6b — Validation Protocol

  1. Receive Twist plasmid delivery — resuspend both constructs to 100 ng/µl in TE buffer
  2. Linearise 1 µg of each plasmid with KpnI (1 hour, 37°C) in CutSmart Buffer
  3. Heat inactivate at 65°C for 20 minutes
  4. Purify linearised template with GeneJET PCR Purification Kit, elute in RNase-free water
  5. Set up IVT reaction (HiScribe T7 kit): 1 µg linearised template, NTPs, T7 polymerase, buffer — 20 µl total, 2 hours at 37°C
  6. Add 2 µl TURBO DNase, incubate 15 minutes at 37°C
  7. Purify mRNA with RNeasy Mini Kit, elute in 30 µl RNase-free water
  8. Quantify mRNA by Nanodrop — record concentration and A260/280
  9. Run 1 µl on 1% agarose gel — confirm single clean band
  10. Prepare cell-free expression reactions in 384 Greiner black-well clear-bottom plate:
    • Well A1-A4: Nurr1-GFP mRNA (500 ng) + CFPS master mix (10 µl total)
    • Well B1-B4: FoxA2-RFP mRNA (500 ng) + CFPS master mix
    • Well C1-C4: No template control (RNase-free water + CFPS master mix)
    • Well D1-D4: Positive control (commercial GFP mRNA + CFPS master mix)
  11. Seal plate with A4s breathable seal using Plateloc
  12. Incubate 2-4 hours at 37°C in Inheco Plate Incubator
  13. Read fluorescence on PHERAstar FSX: GFP channel (ex 488/em 520), mCherry channel (ex 555/em 610)
  14. Compare signal-to-background ratio — target >3:1 for positive validation

6c — Techniques Used

Cell-free protein synthesis (CFPS) is an in vitro reconstitution of the transcription and translation machinery that allows gene expression to be measured outside of living cells, using a concentrated lysate of E. coli or wheat germ ribosomes, tRNA, amino acids, energy regeneration system, and cofactors. In this validation, the mRNA produced by IVT is directly added to the CFPS master mix, bypassing the need for any transfection and allowing the construct’s coding capacity to be assessed in a controlled, cell-free environment within 2-4 hours rather than the 16-24 hours required for mammalian cell expression. The PHERAstar FSX plate reader is used to detect GFP and mCherry fluorescence in the 384-well plate format, providing quantitative fluorescence readout that distinguishes between correctly folded fluorescent fusion proteins and non-fluorescent or misfolded products — a positive result (GFP signal from Nurr1-GFP mRNA, mCherry signal from FoxA2-RFP mRNA, above the no-template control) confirms that both the IVT reaction and the fusion protein coding sequences are functional before any PC12 cells are used. This CFPS validation step is particularly critical for detecting linker junction frameshifts that would result in Nurr1 or FoxA2 protein being made but GFP or mCherry being absent — a scenario that would produce no fluorescence despite successful transfection, making it impossible to distinguish from a failed transfection without this prior validation.

6d — Hypothetical Data

Hypothetical CFPS validation fluorescence results:

ConditionGFP signal (RFU)mCherry signal (RFU)
Nurr1-GFP mRNA4850 ± 320180 ± 45
FoxA2-RFP mRNA210 ± 386240 ± 415
No template control195 ± 28165 ± 32
GFP positive control5120 ± 280190 ± 40

Hypothetical dopamine ELISA results (Day 21):

ConditionDopamine released (nM)
Negative control (NGF only)3.2 ± 0.8
GFP mRNA only3.8 ± 0.9
Nurr1-GFP only7.4 ± 1.2
FoxA2-RFP only6.9 ± 1.4
Nurr1-GFP + FoxA2-RFP18.6 ± 2.3

Hypothetical RL loop dopamine readings across 5 cycles (Day 21):

RL CycleStimulus delivered (µM)Dopamine measured (nM)Reward decision
0 (baseline)18.6
11.024.3Threshold met → escalate
25.038.7Threshold met → maintain
35.041.2Threshold met → maintain
45.035.8Threshold met → maintain
55.039.4Threshold met → maintain

Troubleshooting

The most critical failure point in this experiment is mRNA degradation by RNase contamination — a single moment of carelessness with non-sterile tips or unwashed bench surfaces can destroy the entire mRNA preparation silently, with no visible indication until the experiment fails. If no fluorescence is observed in PC12 cells after transfection, the first diagnostic step should always be to run the remaining mRNA on an agarose gel — smearing rather than a clean band indicates degradation, and a fresh IVT batch should be prepared before attempting transfection again. A second significant risk is the linker junction frameshift — if the stop codon was not correctly removed from the Nurr1 or FoxA2 CDS before the linker, the ribosome will terminate at Nurr1 or FoxA2 and never produce the fluorescent protein, resulting in TH upregulation and dopamine production but no fluorescence, which would be invisible without TH staining as a parallel readout. If fluorescence is observed but dopamine ELISA shows no increase above baseline, the most likely explanations are that the fusion protein is expressed but misfolded and unable to bind DNA, that KCl stimulation failed (prepare fresh KCl solution), or that the ELISA kit sensitivity is insufficient — an alternative strategy is to extend the transfection period from 7 to 10 days and add 0.5 mM dibutyryl-cAMP to the differentiation medium as Kim et al. (2017) showed this approximately doubles expression efficiency in rat cells.


SECTION 7: ADDITIONAL INFORMATION

References

  • Kim S et al. (2017) Efficient Generation of Dopamine Neurons by Synthetic Transcription Factor mRNAs. Molecular Therapy. PMC5589083.
  • Lee HS et al. (2010) Foxa2 and Nurr1 Synergistically Yield A9 Nigral Dopamine Neurons Exhibiting Improved Differentiation, Function, and Cell Survival. Stem Cells. DOI: 10.1002/stem.294.
  • Wiatrak B et al. (2020) PC12 Cell Line: Cell Types, Coating of Culture Vessels, Differentiation and Other Culture Conditions. Cells 9(4):958.
  • Wong HC et al. (2025) Fluidic Programmable Gravi-maze Array for High Throughput Multiorgan Drug Testing. bioRxiv 2025.06.18.660241.
  • Sari Y et al. (2024) Comprehensive evaluation of T7 promoter for enhanced yield and quality in mRNA production. Scientific Reports. PMC11053036.
  • Kozak M (1987) An analysis of 5’-noncoding sequences from 208 human messenger RNAs. Nucleic Acids Research 15(20):8125-8148.
  • Cormack BP et al. (1996) FACS-optimized mutants of the green fluorescent protein (GFP). Gene 173(1):33-38.
  • Shaner NC et al. (2004) Improved monomeric red, orange and yellow fluorescent proteins derived from Discosoma sp. red fluorescent protein. Nature Biotechnology 22(12):1567-1572.
  • Kagan BJ et al. (2022) In vitro neurons learn and exhibit sentience when embodied in a simulated game-world. Neuron 115(19):3414-3434. (DishBrain/Cortical Labs)
  • Studier FW and Moffatt BA (1986) Use of bacteriophage T7 RNA polymerase to direct selective high-level expression of cloned genes. Journal of Molecular Biology 189(1):113-130.
  • Prasher DC et al. (1992) Primary structure of the Aequorea victoria green-fluorescent protein. Gene 111(2):229-233.

Supplies and Budget

ItemSupplierEst. Cost (GBP)Link
Nurr1-GFP IVT template (pTwist Amp High Copy)Twist Bioscience£150-200twist.com
FoxA2-RFP IVT template (pTwist Amp High Copy)Twist Bioscience£150-200twist.com
HiScribe T7 High Yield RNA Synthesis KitNEB (E2040S)£150-180neb.com
E. coli Poly-A PolymeraseNEB (M0276S)£50-70neb.com
TURBO DNaseThermo Fisher (AM2238)£60-80thermofisher.com
RNeasy Mini Kit (50 preps)Qiagen (74104)£80-100qiagen.com
RNase-free water (500 ml)Thermo Fisher (AM9937)£25-35thermofisher.com
NEB 10-beta Competent E. coliNEB (C3019H)£50-70neb.com
GeneJET Miniprep Kit (50 preps)Thermo Fisher (K0503)£60-80thermofisher.com
KpnI restriction enzymeNEB (R0142S)£30-40neb.com
GeneJET PCR Purification KitThermo Fisher (K0701)£60-80thermofisher.com
PC12 cells (CRL-1721)ATCC£400-500atcc.org
DMEM high glucose + L-glutamineThermo Fisher (11965092)£30-45thermofisher.com
Horse serum heat inactivatedThermo Fisher (26050088)£80-120thermofisher.com
FBS heat inactivatedThermo Fisher (10500064)£60-100thermofisher.com
NGF 2.5S rat originAlomone Labs (N-100)£80-120alomone.com
Poly-D-LysineMillipore Sigma (P6407)£30-50sigmaaldrich.com
Collagen Type I rat tailCorning (354236)£60-90fishersci.co.uk
Lipofectamine MessengerMAXThermo Fisher (LMRNA003)£85-100thermofisher.com
Opti-MEM (500 ml)Thermo Fisher (31985062)£30-45thermofisher.com
Dopamine ELISA Kit (High Sensitivity)Eagle Biosciences (EA101RB)£300-400eaglebiosciences.com
Anti-TH antibodyAbcam (ab112)£80-110abcam.com
Secondary antibody Alexa Fluor 647Abcam (ab150083)£60-90abcam.com
4% ParaformaldehydeThermo Fisher (28908)£40-60thermofisher.com
Dopamine hydrochlorideMillipore Sigma (H8502)£30-50sigmaaldrich.com
Corning 6-well platesCorning (3516)£20-30fishersci.co.uk
96-well flat bottom plates (ELISA)Corning (3596)£15-20fishersci.co.uk
384 Greiner black-well clear-bottomGreiner Bio-One£30-50gbo.com
RNase-free tubes and tipsThermo Fisher (AM12450)£40-60thermofisher.com
LB Broth + Agar + AmpicillinMillipore Sigma£40-60sigmaaldrich.com
Miscellaneous consumablesVarious£80-120
TOTAL ESTIMATED£2,290-3,155

Proposal generated May 2026. All sequences designed in Benchling. SecureDNA screening to be completed prior to Twist order submission. IBC notification filed before transfection work commences.

Appendix

##### Experimental Protocol
###### 1. Overview and Scientific Rationale
This protocol describes a complete experime
ntal workflow for: (1) generating synthetic mRNA encoding the dopaminergic transcription factors Nurr1 and FoxA2; (2) transfecting NGF-differentiated PC12 rat pheochromocytoma cells; (3) verifying dopaminergic differentiation via dopamine ELISA and TH immunostaining; and (4) implementing a minimal closed-loop chemical reinforcement learning (RL) system using the Opentrons liquid handling robot.


The approach is based on Kim et al. (2017) who demonstrated that synthetic mRNA transfection of Nurr1 and FoxA2 into rat neural precursor cells generates functional dopaminergic neurons exhibiting electrophysiological and biochemical properties characteristic of midbrain dopamine neurons. This protocol adapts their methodology for PC12 cells as a BSL-1 compatible, immortalised dopaminergic model system.


###### 1.1 Scientific Background


PC12 cells are an immortalised rat adrenal pheochromocytoma cell line that synthesise and store catecholamines, predominantly dopamine. Upon NGF treatment they extend neurites and acquire a sympathetic neuron-like phenotype. The addition of Nurr1 and FoxA2 mRNA pushes these cells further toward authentic midbrain dopaminergic identity by activating the full dopamine synthesis machinery including tyrosine hydroxylase (TH), dopamine transporter (DAT), and vesicular monoamine transporter 2 (VMAT2).


###### 1.2 Chemical Reinforcement Learning Concept


The closed-loop RL system uses Opentrons to deliver dopamine pulses as reward signals to the differentiated PC12 cell culture. Dopamine release from cells is measured by ELISA as the state readout. If dopamine release exceeds a defined threshold following a stimulus, a reward pulse is delivered. This creates a minimal biological RL loop in which cellular dopaminergic activity is the state variable and exogenous dopamine delivery is the reward signal.


###### 2. Safety


###### 2.1 Biosafety Classification


All components of this protocol are BSL-1 safe:


###### 2.2 Personal Protective Equipment


Lab coat, nitrile gloves, and eye protection at all times


All cell work performed in laminar flow biosafety cabinet (Class II)


Dopamine: prepare in fume hood, avoid skin contact, protect from light


RNA work: always use RNase-free consumables, change gloves frequently


All liquid waste decontaminated with 10% bleach before disposal


###### 3. Materials and Equipment


###### 3.1 Cell Line


###### 3.2 Constructs (from Twist Bioscience)


NOTE: All constructs use Kim et al. (2017) UTR design: T7 promoter + Xenopus 5'UTR + Kozak + CDS + custom 3'UTR. Poly-A tail added enzymatically post-IVT.


###### 3.3 Reagents


###### 3.4 Equipment


Laminar flow biosafety cabinet (Class II)


CO2 incubator (37°C, 5% CO2)


Centrifuge


Plate reader (absorbance and fluorescence)


Opentrons OT-2 or Flex with P300 single channel pipette


Fluorescence microscope


Nanodrop spectrophotometer


Water bath (37°C)


Thermal cycler (for optional PCR verification)


Agarose gel electrophoresis system


###### 3.5 Consumables


6-well plates (PDL/laminin coated)


96-well plates (for ELISA)


T25 and T75 flasks


RNase-free tubes and tips (all RNA work)


Standard filtered pipette tips


15 ml and 50 ml centrifuge tubes


Cryovials (for cell stock preparation)


###### 4. Media and Reagent Preparation


###### 4.1 Growth Medium


DMEM high glucose


10% horse serum (heat inactivated)


5% FBS (heat inactivated)


1% Penicillin/Streptomycin


NOTE: Warm to 37°C before use. Store at 4°C for up to 4 weeks.


###### 4.2 Differentiation Medium


DMEM high glucose


1% horse serum (heat inactivated)


1% Penicillin/Streptomycin


50 ng/ml NGF 2.5S (add fresh at each media change)


NOTE: Prepare NGF working stock fresh from aliquots. Never refreeze thawed NGF.


######  4.3 NGF Stock Solution


Reconstitute NGF in sterile PBS + 0.1% BSA to 100 µg/ml


Aliquot into single-use volumes (typically 5-10 µl)


Store at -80°C


Dilute to working concentration (50-100 ng/ml) in differentiation medium immediately before use


######  4.4 Dopamine Working Solution


Dissolve dopamine hydrochloride in sterile PBS to 10 mM stock


Add ascorbic acid to 0.1 mg/ml final concentration


Prepare fresh on day of experiment


Keep on ice, protect from light, use within 4 hours


Prepare working dilutions: 1 µM, 5 µM, 10 µM in differentiation medium


NOTE: Dopamine oxidises rapidly. Yellow/brown discolouration indicates degradation — discard and prepare fresh.


######  5. Part 1 — Bacterial Transformation and Plasmid Preparation


Timeline: Days 1-4. Perform for all three constructs simultaneously.


###### 5.1 Transformation (Day 1)


Remove NEB 10-beta competent cells from -80°C, thaw on ice 10 minutes


Add 1-2 µl plasmid DNA (from Twist delivery) to competent cells


Flick gently to mix — do not vortex


Incubate on ice 30 minutes


Heat shock at 42°C for exactly 45 seconds


Return immediately to ice for 2 minutes


Add 250 µl LB broth (no ampicillin)


Incubate at 37°C for 1 hour shaking at 200 rpm


Spread onto LB agar + ampicillin (100 µg/ml) plates


Incubate overnight at 37°C


###### 5.2 Colony Picking and Overnight Culture (Day 2)


Check plates — expect 10-100 colonies per construct


Pick 3-6 individual well-separated colonies per construct


Inoculate each into 5 ml LB broth + ampicillin (100 µg/ml) in 15 ml tube


Grow overnight at 37°C shaking at 200 rpm


###### 5.3 Miniprep (Day 3)


Follow GeneJET Miniprep Kit protocol exactly


Elute in 50 µl elution buffer


Measure concentration by Nanodrop — aim for >50 ng/µl


Check A260/280 ratio — should be 1.8-2.0


Send one sample per construct for Sanger sequencing


Store at -20°C


###### 5.4 Sequencing Verification (Day 4)


Align sequencing results against Benchling sequences. Confirm:


T7 promoter intact: TAATACGACTCACTATA


5'UTR intact: AAATAAGAGAGAAAAGAAGAGTAAGAAGAAATATAAGAGCC


Kozak + ATG intact: GCCACCATG


CDS correct with no frameshifts or premature stop codons


3'UTR intact


NOTE: Do not proceed to IVT until sequencing confirms all three constructs are correct.


###### 6. Part 2 — In Vitro Transcription (IVT) and mRNA Preparation


Timeline: Day 5. Perform in RNase-free conditions throughout. Change gloves frequently.


######  6.1 Template Linearisation


Set up KpnI digestion for each construct:


2 µg plasmid DNA


2 µl CutSmart Buffer (10x)


1 µl KpnI enzyme


Make up to 20 µl with RNase-free water


Incubate 1 hour at 37°C


Heat inactivate 20 minutes at 65°C


Verify linearisation on 1% agarose gel — should show single linear band


Purify linearised template using GeneJET PCR Purification Kit


Elute in RNase-free water, quantify by Nanodrop


NOTE: Linearisation is critical — circular template produces run-on transcripts that reduce mRNA quality.


###### 6.2 IVT Reaction (HiScribe T7 Kit)


Following Kim et al. (2017) protocol with HiScribe T7 High Yield RNA Synthesis Kit:


Assemble on ice in RNase-free tube:


Mix gently by flicking — do not vortex


Incubate at 37°C for 2 hours


Add 2 µl TURBO DNase, mix gently, incubate 15 minutes at 37°C


NOTE: DNase step removes DNA template — essential to prevent DNA contamination of your mRNA product.


###### 6.3 Poly-A Tailing (E. coli Poly-A Polymerase)


Following Kim et al. (2017) — poly-A added enzymatically post-IVT:


To the 20 µl IVT product add:


4 µl 10x E. coli Poly-A Polymerase Reaction Buffer


2 µl ATP (10 mM)


2 µl E. coli Poly-A Polymerase


12 µl RNase-free water (total reaction 40 µl)


Incubate 45 minutes at 37°C


NOTE: This enzymatically adds ~150-200 A's — better than DNA-encoded poly-A for translation efficiency.


###### 6.4 mRNA Purification (RNeasy Kit)


Follow RNeasy Mini Kit protocol for RNA cleanup


Elute in 50 µl RNase-free water


Quantify by Nanodrop — note A260/280 and A260/230 ratios


Run 1 µl on agarose gel to verify mRNA integrity — should show single band


Aliquot into single-use volumes


Store at -80°C


NOTE: Expected yield: 50-100 µg mRNA per 20 µl IVT reaction. A260/280 should be ~2.0.


###### 7. Part 3 — PC12 Cell Culture and NGF Differentiation


Timeline: Days 1-14. Run in parallel with bacterial/IVT work.


###### 7.1 Thawing PC12 Cells (Day 1)


Warm growth medium to 37°C


Remove PC12 vial from liquid nitrogen, thaw quickly in 37°C water bath


Transfer dropwise into 9 ml warm growth medium in 15 ml tube — add medium slowly


Centrifuge 200 x g for 5 minutes


Aspirate supernatant carefully


Resuspend pellet in 5 ml warm growth medium


Transfer to T25 flask


Incubate at 37°C, 5% CO2


Check next day — cells should be attached


###### 7.2 Plate Coating (Day 7)


Prepare PDL solution: 50 µg/ml in sterile water


Add 1 ml per well of 6-well plate


Incubate 1 hour at room temperature


Aspirate PDL completely


Wash 3x with sterile water


Allow to dry completely in laminar flow hood


Prepare laminin solution: 10 µg/ml in PBS


Add 1 ml per well


Incubate overnight at 37°C


NOTE: PDL coating is essential for PC12 Adh adhesion. Laminin significantly improves neurite extension and process stability.


###### 7.3 Cell Plating and Differentiation (Day 8)


Aspirate laminin solution — do not wash, leave residual laminin


Trypsinise PC12 cells from flask


Count using haemocytometer


Plate at 50,000 cells/well in growth medium


Incubate overnight


Day 9: Replace with differentiation medium containing 50 ng/ml NGF


Days 9-15: Change half the medium every 2-3 days with fresh NGF


NOTE: Always add medium to the side of the well — never directly onto cells. Neurites are fragile.


###### 8. Part 4 — mRNA Transfection


Timeline: Day 15 onwards. Daily transfection for 5-7 days following Kim et al. (2017).


###### 8.1 Experimental Groups


###### 8.2 Daily Transfection Protocol (Kim et al. Method)


Perform daily for 5-7 consecutive days starting Day 15:


###### Prepare mRNA-MessengerMAX complex (per well):


Dilute mRNA in Opti-MEM: 500 ng total mRNA in 25 µl Opti-MEM


For Nurr1 + FoxA2 wells: 250 ng Nurr1 mRNA + 250 ng FoxA2 mRNA


For GFP wells: 500 ng GFP mRNA


Dilute MessengerMAX: 1.5 µl MessengerMAX in 25 µl Opti-MEM


Incubate separately 5 minutes at room temperature


Combine mRNA and MessengerMAX dilutions


Mix gently by pipetting 3-4 times — do not vortex


Incubate 5 minutes at room temperature


###### Transfect cells:


Aspirate half the medium from each well carefully


Add transfection complex dropwise to cells


Rock plate gently to distribute


Incubate 4 hours at 37°C, 5% CO2


Replace with fresh differentiation medium + NGF


NOTE: Following Kim et al. (2017): daily transfection is required because mRNA degrades within 24-48 hours. Adding db-cAMP (0.5 mM) alongside transfection significantly improves expression efficiency in rat cells — add to differentiation medium if available.


###### 8.3 Transfection Timeline


###### 9. Part 5 — Verification of Dopaminergic Differentiation


###### 9.1 TH Immunostaining


Tyrosine hydroxylase (TH) is the rate-limiting enzyme in dopamine synthesis. Increased TH expression confirms successful dopaminergic differentiation.


Aspirate medium and wash cells 2x with PBS


Fix with 4% paraformaldehyde for 15 minutes at room temperature


Wash 3x with PBS


Permeabilise with 0.25% Triton X-100 in PBS for 10 minutes


Wash 3x with PBS


Block with 3% BSA in PBS for 1 hour at room temperature


Add anti-TH primary antibody (1:500 in blocking buffer)


Incubate overnight at 4°C


Wash 3x with PBS


Add FITC-conjugated secondary antibody (1:500) for 1 hour at room temperature in dark


Wash 3x with PBS


Add DAPI (1:1000) for 5 minutes


Wash 2x with PBS


Image on fluorescence microscope


Positive result: increased TH+ green fluorescence in Nurr1 + FoxA2 wells compared to GFP control.


###### 9.2 Dopamine ELISA


Primary readout for both differentiation verification and chemical RL loop. Follows methodology used in the PC12 dopamine literature (Eagle Biosciences High Sensitivity Dopamine ELISA Kit).


At least 2 hours before ELISA: replace medium with 1 ml fresh DMEM without serum


Stimulate with 56 mM KCl for 15 minutes to trigger dopamine release


Collect conditioned medium into RNase-free tube


Centrifuge at 300 x g for 5 minutes to remove cell debris


Transfer supernatant — use immediately or store at -80°C


Follow Eagle Biosciences ELISA kit protocol exactly


Read plate at 450 nm on plate reader


Calculate dopamine concentration from standard curve


###### 10. Part 6 — Chemical Reinforcement Learning with Opentrons


Timeline: Day 21. Perform after dopamine ELISA confirms differentiation is successful.


###### 10.1 Opentrons Deck Setup


###### 10.2 RL Loop Logic


The Opentrons Python script implements the following logic:


Baseline read: collect 50 µl conditioned medium, transfer to ELISA plate


Define reward threshold: dopamine concentration above X nM (determined from Day 18 baseline ELISA)


Deliver stimulus: Opentrons dispenses 100 µl dopamine solution (start at 1 µM)


Incubation: 15 minutes


State read: collect medium sample for ELISA


Decision: if dopamine above threshold → escalate to 5 µM; if below → maintain or withhold


Repeat for 3-5 cycles per session


###### 10.3 Opentrons Python Protocol

###### 10.4 Data Recording


Record for every RL session:


Date and time of each dopamine delivery


Dopamine concentration dispensed (µM)


Volume delivered (µl)


ELISA dopamine reading (nM) before and after each pulse


Cell passage number


Days post transfection


Days post NGF differentiation


Any observations about cell morphology


###### 11. Troubleshooting


###### 12. Complete Experiment Timeline


###### 13. Key References


1. Kim S et al. (2017) Efficient Generation of Dopamine Neurons by Synthetic Transcription Factor mRNAs. Molecular Therapy. PMC5589083.


2. Sari Y, Sousa Rosa S et al. (2024) Comprehensive evaluation of T7 promoter for enhanced yield and quality in mRNA production. Scientific Reports. PMC11053036.


3. Lee HS et al. (2010) Foxa2 and Nurr1 Synergistically Yield A9 Nigral Dopamine Neurons Exhibiting Improved Differentiation, Function, and Cell Survival. Stem Cells. PMID:20049900.


4. Yang K et al. (2019) Synaptic dopamine release is positively regulated by SNAP-25 that involves in benzo[a]pyrene-induced neurotoxicity. Chemosphere 237:124378.


5. Homberg JR et al. (2016) The role of the dopamine D1 receptor in social cognition: studies using a novel genetic rat model. Disease Models & Mechanisms 9:1147-1158.


6. Wiatrak B et al. (2020) PC12 Cell Line: Cell Types, Coating of Culture Vessels, Differentiation and Other Culture Conditions. Cells 9(4):958.


7. Greene LA, Tischler AS (1976) Establishment of a noradrenergic clonal line of rat adrenal pheochromocytoma cells which respond to nerve growth factor. PNAS 73:2424-2428.


###### 14. Experimental Notes
###### Observations:
| RL Component | Biological Implementation |
| --- | --- |
| State | Dopamine concentration measured by ELISA from conditioned media |
| Action | Opentrons delivers dopamine pulse to culture well |
| Reward signal | Dopamine above threshold triggers further stimulation |
| Suppression signal | Below threshold — withhold stimulus |
| Learning readout | Shift in baseline dopamine release over multiple sessions |


| Component | BSL Classification | Notes |
| --- | --- | --- |
| PC12 cells (CRL-1721) | BSL-1 | Rat, non-human, non-primate |
| Nurr1 mRNA | BSL-1 | Synthetic mRNA, no pathogen sequences |
| FoxA2 mRNA | BSL-1 | Synthetic mRNA, no pathogen sequences |
| GFP mRNA | BSL-1 | Control, no pathogen sequences |
| Lipofectamine MessengerMAX | BSL-1 | Chemical transfection reagent |
| Dopamine HCl | BSL-1 | Standard laboratory chemical |
| E. coli (NEB 10-beta) | BSL-1 | Non-pathogenic laboratory strain |


| Item | Supplier | Catalogue Number |
| --- | --- | --- |
| PC12 (CRL-1721) | ATCC | CRL-1721 |
| Note: standard PC12 not Adh variant — responds to NGF |  |  |


| Construct | Vector | Purpose |
| --- | --- | --- |
| rNurr1_mRNA_template_FINAL | pTwist Amp High Copy | IVT template for Nurr1 mRNA |
| rFoxA2_mRNA_template_FINAL | pTwist Amp High Copy | IVT template for FoxA2 mRNA |
| GFP_mRNA_template_FINAL | pTwist Amp High Copy | IVT template for GFP control mRNA |


| Reagent | Supplier | Notes |
| --- | --- | --- |
| DMEM high glucose with L-glutamine | Thermo Fisher | Base medium |
| Horse serum, heat inactivated | Thermo Fisher | 10% for growth, 1% for differentiation |
| FBS, heat inactivated | Thermo Fisher | 5% for growth |
| Penicillin/Streptomycin | Thermo Fisher | 100 U/ml + 100 µg/ml |
| PBS | Thermo Fisher | Sterile, calcium/magnesium-free |
| NGF 2.5S | Alomone / Sigma | 50-100 ng/ml working; store -80°C in BSA |
| BSA | Sigma | 0.1% for NGF dilution and storage |
| Poly-D-Lysine (PDL) | Sigma | 50 µg/ml coating solution |
| Laminin | Sigma/Thermo | 10 µg/ml coating solution |
| LB Broth | Sigma | Bacterial culture |
| LB Agar | Sigma | Bacterial plating |
| Ampicillin | Sigma | 100 µg/ml for bacterial selection |
| Lipofectamine MessengerMAX | Thermo Fisher | mRNA-specific transfection reagent |
| Opti-MEM | Thermo Fisher | For transfection complex preparation |
| HiScribe T7 High Yield RNA Synthesis Kit | NEB | IVT reaction |
| E. coli Poly-A Polymerase | NEB M0276 | Post-IVT poly-A addition |
| RNeasy Mini Kit | Qiagen | mRNA purification |
| RNase-free water | Thermo Fisher | All RNA steps |
| RNase inhibitor | NEB / Thermo | mRNA protection |
| KpnI restriction enzyme | NEB | Template linearisation |
| CutSmart Buffer | NEB | KpnI digestion |
| GeneJET Miniprep Kit | Thermo Fisher | Plasmid extraction |
| Dopamine hydrochloride | Sigma | Prepare fresh; store -80°C |
| Ascorbic acid | Sigma | 0.1 mg/ml; prevents dopamine oxidation |
| Dopamine ELISA Kit (High Sensitivity) | Eagle Biosciences / Abcam | Quantitative dopamine readout |
| Anti-TH antibody | Abcam | For differentiation verification |
| Secondary antibody (FITC) | Abcam | Fluorescent detection |
| DAPI | Thermo Fisher | Nuclear counterstain |
| 4% Paraformaldehyde | Sigma | Cell fixation |
| Triton X-100 | Sigma | Cell permeabilisation |
| Competent E. coli NEB 10-beta | NEB | Transformation |


| Component | Volume |
| --- | --- |
| RNase-free water | To 20 µl total |
| 10x T7 RNA Polymerase Buffer | 2 µl |
| ATP (100 mM) | 2 µl |
| CTP (100 mM) | 2 µl |
| GTP (100 mM) | 2 µl |
| UTP (100 mM) | 2 µl |
| Linearised DNA template (1 µg/µl) | 1 µl |
| T7 RNA Polymerase Mix | 2 µl |


| Day | Expected Observation |
| --- | --- |
| 9 | Cells healthy, attached, no visible neurites |
| 10-11 | Short process initiation visible |
| 12-13 | Clear neurite extensions 1-2 cell lengths |
| 14-15 | Mature neurite network, differentiation established |


| Well | Condition | mRNA transfected | Purpose |
| --- | --- | --- | --- |
| A1 | Negative control | None | Baseline PC12 |
| A2 | Transfection control | GFP mRNA only | Confirms transfection efficiency |
| A3 | Experimental | Nurr1 + FoxA2 mRNA | Dopaminergic differentiation |
| A4 | Experimental replicate | Nurr1 + FoxA2 mRNA | Technical replicate |
| A5 | Single factor control | Nurr1 mRNA only | Shows FoxA2 requirement |
| A6 | Single factor control | FoxA2 mRNA only | Shows Nurr1 requirement |


| Day | Action |
| --- | --- |
| 15 | First transfection — all wells |
| 16 | Second transfection + first TH staining check (optional) |
| 17 | Third transfection |
| 18 | Fourth transfection + first dopamine ELISA |
| 19 | Fifth transfection |
| 20 | Final transfection + TH immunostaining |
| 21 | Chemical RL experiment |


| Condition | Expected dopamine (relative) |
| --- | --- |
| Negative control (no mRNA) | Baseline (low) |
| GFP control | Similar to negative control |
| Nurr1 only | Modest increase over baseline |
| FoxA2 only | Modest increase over baseline |
| Nurr1 + FoxA2 | Significantly elevated — 3-5x baseline (Kim et al.) |


| Deck Position | Labware | Contents |
| --- | --- | --- |
| 1 | NEST 12-well reservoir | Dopamine working solutions (1, 5, 10 µM) + PBS wash |
| 2 | Corning 96-well flat plate | PC12 cells (transferred from 6-well) |
| 3 | Opentrons 96 tip rack (300 µl) | Standard tips |
| 4 | NEST 12-well reservoir (waste) | Aspirate waste |