Subsections of Zoe's Page — HTGAA Spring 2026

Homework

Weekly homework submissions:

  • Week 1 HW: Principles and Practices

    Class assignment – designing policy frameworks around bioengineering tools ⭐⭐ Web app with policy homework content ⭐⭐ (external link) 🔗✏️ Proof-of-work links (drafts, AI conversations/prompts used to brainstorm, generate the web app, and other sections) ✏️🔗 HTGAA 2026: Week 1 Governance Framework Project: DIY Aging Biomarkers Kit for Community Labs Objective: To lower the single biggest barrier to longevity research (cost) through an affordable, open-source testing kit.

  • Week 2 HW: DNA Sequencing and Synthesis

    PART 2 path to image: 2026a-zoe-isabel-senon/webpages/src/branch/main/assets/images/heartsim.jpg (I tried to recreate a heart shape…) I did the digest simulation in Benchling and checked the virtual gel simulation result: image in: 2026a-zoe-isabel-senon/webpages/src/branch/main/assets/images/benchlingdigest1.jpg image in: 2026a-zoe-isabel-senon/webpages/src/branch/main/assets/images/benchlingdigest2.jpg 3.1 PICK A PROTEIN & Find the protein sequence: I picked SIRT1

  • Week 3 HW: Lab Automation

    Week 3 HW: Lab Automation 🎨 Assignment: Python Script for Opentrons Artwork Link: https://colab.research.google.com/drive/1Yw0ZrnxIz1kG73b_9PcuZNgXGv6uQy9s?usp=sharing Click to expand code mscarlet_i_points = [(-17.6, 17.6),(-15.4, 17.6),(-13.2, 17.6),(-11, 17.6),(-8.8, 17.6),(-6.6, 17.6),(-4.4, 17.6),(-2.2, 17.6),(0, 17.6),(2.2, 17.6),(4.4, 17.6),(6.6, 17.6),(8.8, 17.6),(11, 17.6),(13.2, 17.6),(15.4, 17.6),(17.6, 17.6),(19.8, 17.6),(-17.6, 15.4),(-15.4, 15.4),(-13.2, 15.4),(-11, 15.4),(-8.8, 15.4),(-6.6, 15.4),(-4.4, 15.4),(-2.2, 15.4),(0, 15.4),(2.2, 15.4),(4.4, 15.4),(6.6, 15.4),(8.8, 15.4),(11, 15.4),(13.2, 15.4),(15.4, 15.4),(17.6, 15.4),(19.8, 15.4),(-17.6, 13.2),(-15.4, 13.2),(-13.2, 13.2),(-11, 13.2),(-8.8, 13.2),(-6.6, 13.2),(-4.4, 13.2),(-2.2, 13.2),(0, 13.2),(2.2, 13.2),(4.4, 13.2),(6.6, 13.2),(8.8, 13.2),(11, 13.2),(13.2, 13.2),(15.4, 13.2),(17.6, 13.2),(19.8, 13.2),(-17.6, 11),(-15.4, 11),(-13.2, 11),(-11, 11),(-8.8, 11),(-6.6, 11),(-4.4, 11),(-2.2, 11),(0, 11),(2.2, 11),(4.4, 11),(6.6, 11),(8.8, 11),(11, 11),(13.2, 11),(15.4, 11),(17.6, 11),(19.8, 11),(-17.6, 8.8),(-15.4, 8.8),(-13.2, 8.8),(-11, 8.8),(-6.6, 8.8),(-4.4, 8.8),(-2.2, 8.8),(0, 8.8),(2.2, 8.8),(4.4, 8.8),(6.6, 8.8),(8.8, 8.8),(13.2, 8.8),(15.4, 8.8),(17.6, 8.8),(19.8, 8.8),(-17.6, 6.6),(-15.4, 6.6),(-13.2, 6.6),(-11, 6.6),(-6.6, 6.6),(-4.4, 6.6),(-2.2, 6.6),(0, 6.6),(2.2, 6.6),(4.4, 6.6),(6.6, 6.6),(8.8, 6.6),(13.2, 6.6),(15.4, 6.6),(17.6, 6.6),(19.8, 6.6),(-17.6, 4.4),(-15.4, 4.4),(-13.2, 4.4),(-11, 4.4),(-6.6, 4.4),(-4.4, 4.4),(-2.2, 4.4),(0, 4.4),(2.2, 4.4),(4.4, 4.4),(6.6, 4.4),(8.8, 4.4),(13.2, 4.4),(15.4, 4.4),(17.6, 4.4),(19.8, 4.4),(-17.6, 2.2),(-15.4, 2.2),(-13.2, 2.2),(-11, 2.2),(-8.8, 2.2),(-6.6, 2.2),(-4.4, 2.2),(-2.2, 2.2),(0, 2.2),(2.2, 2.2),(4.4, 2.2),(6.6, 2.2),(8.8, 2.2),(11, 2.2),(13.2, 2.2),(15.4, 2.2),(17.6, 2.2),(19.8, 2.2),(-24.2, 0),(-22, 0),(-19.8, 0),(-17.6, 0),(-15.4, 0),(-13.2, 0),(-11, 0),(-8.8, 0),(-6.6, 0),(-4.4, 0),(-2.2, 0),(0, 0),(2.2, 0),(4.4, 0),(6.6, 0),(8.8, 0),(11, 0),(13.2, 0),(15.4, 0),(17.6, 0),(19.8, 0),(22, 0),(24.2, 0),(26.4, 0),(-24.2, -2.2),(-22, -2.2),(-19.8, -2.2),(-17.6, -2.2),(-15.4, -2.2),(-13.2, -2.2),(-11, -2.2),(-8.8, -2.2),(-6.6, -2.2),(-4.4, -2.2),(-2.2, -2.2),(0, -2.2),(2.2, -2.2),(4.4, -2.2),(6.6, -2.2),(8.8, -2.2),(11, -2.2),(13.2, -2.2),(15.4, -2.2),(17.6, -2.2),(19.8, -2.2),(22, -2.2),(24.2, -2.2),(26.4, -2.2),(-24.2, -4.4),(-22, -4.4),(-19.8, -4.4),(-17.6, -4.4),(-15.4, -4.4),(-13.2, -4.4),(-11, -4.4),(-8.8, -4.4),(-6.6, -4.4),(-4.4, -4.4),(-2.2, -4.4),(0, -4.4),(2.2, -4.4),(4.4, -4.4),(6.6, -4.4),(8.8, -4.4),(11, -4.4),(13.2, -4.4),(15.4, -4.4),(17.6, -4.4),(19.8, -4.4),(22, -4.4),(24.2, -4.4),(26.4, -4.4),(-17.6, -6.6),(-15.4, -6.6),(-13.2, -6.6),(-11, -6.6),(-8.8, -6.6),(-6.6, -6.6),(-4.4, -6.6),(-2.2, -6.6),(0, -6.6),(2.2, -6.6),(4.4, -6.6),(6.6, -6.6),(8.8, -6.6),(11, -6.6),(13.2, -6.6),(15.4, -6.6),(17.6, -6.6),(19.8, -6.6),(-17.6, -8.8),(-15.4, -8.8),(-13.2, -8.8),(-11, -8.8),(-8.8, -8.8),(-6.6, -8.8),(-4.4, -8.8),(-2.2, -8.8),(0, -8.8),(2.2, -8.8),(4.4, -8.8),(6.6, -8.8),(8.8, -8.8),(11, -8.8),(13.2, -8.8),(15.4, -8.8),(17.6, -8.8),(19.8, -8.8),(-17.6, -11),(-15.4, -11),(-13.2, -11),(-11, -11),(-8.8, -11),(-6.6, -11),(-4.4, -11),(-2.2, -11),(0, -11),(2.2, -11),(4.4, -11),(6.6, -11),(8.8, -11),(11, -11),(13.2, -11),(15.4, -11),(17.6, -11),(19.8, -11),(-13.2, -13.2),(-11, -13.2),(-6.6, -13.2),(-4.4, -13.2),(6.6, -13.2),(8.8, -13.2),(13.2, -13.2),(15.4, -13.2),(-13.2, -15.4),(-11, -15.4),(-6.6, -15.4),(-4.4, -15.4),(6.6, -15.4),(8.8, -15.4),(13.2, -15.4),(15.4, -15.4),(-13.2, -17.6),(-11, -17.6),(-6.6, -17.6),(-4.4, -17.6),(6.6, -17.6),(8.8, -17.6),(13.2, -17.6),(15.4, -17.6),(-13.2, -19.8),(-11, -19.8),(-6.6, -19.8),(-4.4, -19.8),(6.6, -19.8),(8.8, -19.8),(13.2, -19.8),(15.4, -19.8)] mjuniper_points = [(-4.4, 28.6),(-2.2, 28.6),(0, 28.6),(2.2, 28.6),(4.4, 28.6),(-4.4, 26.4),(-2.2, 26.4),(2.2, 26.4),(4.4, 26.4),(-4.4, 24.2),(-2.2, 24.2),(2.2, 24.2),(4.4, 24.2),(-6.6, 22),(-4.4, 22),(-2.2, 22),(2.2, 22),(4.4, 22),(6.6, 22),(-6.6, 19.8),(-4.4, 19.8),(-2.2, 19.8),(0, 19.8),(2.2, 19.8),(4.4, 19.8),(6.6, 19.8)] mturquoise2_points = [(0, 26.4),(0, 24.2),(0, 22)] 📖 Assigment: Automation paper “Automated Cell Culture Splitter (ACCS): An open-source benchtop system for cell passaging with integrated cell counting” — PNAS Nexus, December 2025

Subsections of Homework

Week 1 HW: Principles and Practices

Class assignment – designing policy frameworks around bioengineering tools

⭐⭐ Web app with policy homework content ⭐⭐ (external link)

🔗✏️ Proof-of-work links (drafts, AI conversations/prompts used to brainstorm, generate the web app, and other sections) ✏️🔗

HTGAA 2026: Week 1 Governance Framework

Project: DIY Aging Biomarkers Kit for Community Labs
Objective: To lower the single biggest barrier to longevity research (cost) through an affordable, open-source testing kit.

Context: Diseases of aging account for 3/4 of global deaths, yet independent research is gated by prohibitive costs (often $500+ per commercial assay).

Proposed Tool: An accessible, open-source DIY Aging Biomarkers Kit designed specifically for the ~50 community biolabs worldwide. This kit allows independent researchers to measure cellular senescence and other aging hallmarks without relying on expensive institutional supply chains.

*(Bonus: Personal context for why I chose this project 🙋🏼‍♀️)*

I am extremely passionate about the topic of “solving aging” as a way to reduce suffering in the world at scale (as typically called “diseases of aging” ultimately account for somewhere between 1/3 and ~3/4 of all deaths (1) (2)).

With this goal in mind, I decided to fully focus my efforts on biotech, coming from a computational background, and learn hands-on by joining an open community lab (Biopunk Labs in San Francisco – one of the HTGAA nodes) and running my own bioengineering experiments.

(I wrote an article about my first experience at the lab doing wet lab/bioengineering: https://acceleratingutopia.com/my-biotech-journey-pt-i-wet-lab-genetic-engineering/)

For my second experiment I decided to use mammalian cells (fibroblasts) instead of bacteria, as bacteria do not share our mechanisms of aging and are therefore not a good model to study this.

However, I quickly realized how severely limited the scope of what I could do in the lab would be due to the high costs associated with working independently in the lab (without external funding), especially when mammalian cells are involved. Initially, I was planning to replicate a full cellular reprogramming protocol, but quickly learned this would not be a possibility for me due to the cost, so I pivoted to a “partial reprogramming” protocol.

I managed to secure sample cells and some media through donations, thanks to some very kind fellow scientists and mentors who wanted to support such an initiative*. However, none of my work would have any validity unless I could find a reliable way to measure the effects of my interventions on biomarkers classically associated with longevity (see: Hallmarks of Aging), such as senescence.

*(people thought I was crazy for even attempting to run mammalian cell experiments independently, as a beginner, given the costs and difficulty!)

I quickly learned that assay kits would quickly eat up a big portion of my budget, especially given that most companies sell them in bulk, which makes them prohibitively expensive for independent researchers wanting to run just a few small assays.

This whole experience opened my eyes to how non-accessible aging research is at moment.

Given that a big part of my mission is to enable others to help accelerate the eradication of all human disease (with a special focus on longevity), a straightforward way in which I could contribute to this acceleration is by enabling more independent research to happen by lowering the biggest entry barrier: the cost to even get started with simple longevity experiments.


02. Policy Objectives

  1. Democratize Access: Lower financial and institutional barriers so scientists in low-resource settings can meaningfully contribute to aging research.
  2. Prevent Misuse: Ensure that wider access to bioengineering tools does not enable unsafe practices through proactive monitoring.
  3. Ensure Translation: Guarantee that research outcomes meet quality standards sufficient for peer review and clinical translation.

03. Proposed Interventions

A1: Government Subsidies (Incentive)

Actor: Government funding bodies (NIH, ERC)
A dedicated micro-grant program (€5–25K) for community labs to accelerate biomedical progress by enabling new and existing scientists to carry out independent aging research.

  • Risk: Could create a two-tier system where funded labs professionalize and lose grassroots accessibility.

A2: Lab Space Sharing Network (Coordination)

Actor: Academic Institutions, Incubators
An “Airbnb for lab benches” connecting institutions with spare capacity to independent researchers.

  • Risk: Institutions may refuse due to liability concerns.

A3: AI Biosafety Co-Pilot (Technical)

Actor: Open-source developers, DIYbio.org
A software tool that checks experiment plans against biosafety databases, flags risks, and requires mentor sign-off. Serves as a dynamic guardrail.

  • Risk: Over-reliance could reduce researchers’ own safety judgment (the “GPS effect”).

04. Impact Assessment Matrix

CriteriaA1: SubsidiesA2: Lab NetworkA3: AI Co-Pilot
Access DemocratizationHighHighIndirect
Enables new talent
Enables existing researchers
Misuse PreventionMost
Ensures safety standards
Blocks malign applications
TranslationPartialPartial
Incentivizes translation
Directly aids translation
FeasibilityLowMediumHigh

Legend:
✓ = Strong positive contribution
— = Not applicable / No direct impact

Assignment (Week 2 Lecture Prep)

From Professor Jacobson

  1. Nature’s machinery for copying DNA is called polymerase. What is the error rate of polymerase? How does this compare to the length of the human genome. How does biology deal with that discrepancy?

    Polymerase’s error rate is 1:106 (one error per 106 bases), about one in ten million. The human genome is 3.2 Gbp (3.2 * 109), which would then mean that we would expect to see 320 errors per haploid genome copy with no additional repair mechanisms (or double that amount for diploid replication). Yet we see that the actual final mutation rate is closer to 1 in 109, which is multiple orders of magnitude less.

    This is because the body applies additional “proofreading” and repair mechanisms, such as by leveraging mismatch repair proteins that scan newly synthesized DNA (they can recognize helix distortions where bases are mismatched and resynthesize them). Additionally, polymerase itself has a 3’ to 5’ exonuclease activity that removes incorrectly incorporated nucleotides immediately, allowing polymerase to redo the badly-synthesized base section.

  2. How many different ways are there to code (DNA nucleotide code) for an average human protein? In practice, what are some of the reasons that all of these different codes don’t work to code for the protein of interest?

    Given that an average human protein is encoded by 1036 bp, and each codon consists of 3 bases, we can calculate that each protein is approximately 345 amino acids long (1036/3 ≈345).

    Since there are 61 codons that can code for 20 amino acids (64 total codons, but 3 of them are “stop” codons), and multiple codons can code for the same amino acid, a theoretically enormous number of DNA sequences could code for the same protein. Yet in practice we see that only a limited set of codon combinations actually lead to the production of a specific protein, and this is because there are additional biological limitations that dictate these capabilities: certain combinations are more viable (or not viable at all) based on external factors like the availability of matching tRNAs to produce it, or a given organism’s preference for a specific codon sequence, regulatory sequences that might be accidentally created, mRNA secondary structure stability, and translation efficiency.

From Dr. LeProust

  1. What’s the most commonly used method for oligo synthesis currently?
  2. Why is it difficult to make oligos longer than 200nt via direct synthesis?
  3. Why can’t you make a 2000bp gene via direct oligo synthesis?

The current standard for de novo gene synthesis is solid‑phase phosphoramidite chemistry. It is effective but highly noisy (errors accumulate rapidly on each iteration due to approximately 95-99.5% stepwise coupling efficiency), which currently limits the total amount of viable DNA that can be synthesized, as, for a coding gene, a single base error can cause malfunction.

200 nt is the standard limit because at that point most strands have some error, but at a level where it is still feasible to fix it through cloning or purification.

A 2,000 bp gene would require 2,000 single-stranded nucleotides. The most optimistic coupling efficiency per base (99.9%), the accumulation of errors (only about 13.5% of synthesized strands would be full-length and error-free) would make the final product differ too much from the desired sequence to be useful.

We can, however, assemble genes of lengths much longer than the theoretical limitation for the method by synthesizing much smaller and more manageable strands (~50-150 bp) and assembling them through methods like PCR and Gibson assembly. This is the standard for longer DNA synthesis.

From George Church

  1. Using Google & Prof. Church’s slide #4: What are the 10 essential amino acids in all animals and how does this affect your view of the “Lysine Contingency”?

    The 10 essential amino acids are

    • Histidine
    • Isoleucine
    • Leucine
    • Lysine
    • Methionine
    • Phenylalanine
    • Threonine
    • Tryptophan
    • Valine
    • Arginine

    (Note: in humans, arginine is considered conditionally essential and is sometimes included in the list of 10)

    The definition of an “essential amino acid” is that it must be obtained from external sources because the organism cannot produce it on its own, so by this definition, and given that lysine is already found in this category, the “lysine contingency” would be a nonsensical solution (even without additional bioengineering, the dinosaurs would still have to rely on obtaining lysine from external sources like lysine-rich prey and plants, and in the movie they are already shown consuming these).

Week 2 HW: DNA Sequencing and Synthesis

PART 2

heart heart path to image: 2026a-zoe-isabel-senon/webpages/src/branch/main/assets/images/heartsim.jpg

(I tried to recreate a heart shape…)

I did the digest simulation in Benchling and checked the virtual gel simulation result:

benchlingdigest1 benchlingdigest1 image in: 2026a-zoe-isabel-senon/webpages/src/branch/main/assets/images/benchlingdigest1.jpg

benchlingdigest2 benchlingdigest2 image in: 2026a-zoe-isabel-senon/webpages/src/branch/main/assets/images/benchlingdigest2.jpg

3.1 PICK A PROTEIN & Find the protein sequence:

I picked SIRT1

And downloaded the sequence from Uniprot:

>sp|Q96EB6|SIR1_HUMAN NAD-dependent protein deacetylase sirtuin-1 OS=Homo sapiens OX=9606 GN=SIRT1 PE=1 SV=2
MADEAALALQPGGSPSAAGADREAASSPAGEPLRKRPRRDGPGLERSPGEPGGAAPEREV
PAAARGCPGAAAAALWREAEAEAAAAGGEQEAQATAAAGEGDNGPGLQGPSREPPLADNL
YDEDDDDEGEEEEEAAAAAIGYRDNLLFGDEIITNGFHSCESDEEDRASHASSSDWTPRP
RIGPYTFVQQHLMIGTDPRTILKDLLPETIPPPELDDMTLWQIVINILSEPPKRKKRKDI
NTIEDAVKLLQECKKIIVLTGAGVSVSCGIPDFRSRDGIYARLAVDFPDLPDPQAMFDIE
YFRKDPRPFFKFAKEIYPGQFQPSLCHKFIALSDKEGKLLRNYTQNIDTLEQVAGIQRII
QCHGSFATASCLICKYKVDCEAVRGDIFNQVVPRCPRCPADEPLAIMKPEIVFFGENLPE
QFHRAMKYDKDEVDLLIVIGSSLKVRPVALIPSSIPHEVPQILINREPLPHLHFDVELLG
DCDVIINELCHRLGGEYAKLCCNPVKLSEITEKPPRTQKELAYLSELPPTPLHVSEDSSS
PERTSPPDSSVIVTLLDQAAKSNDDLDVSESKGCMEEKPQEVQTSRNVESIAEQMENPDL
KNVGSSTGEKNERTSVAGTVRKCWPNRVAKEQISRRLDGNQYLFLPPNRYIFHGAEVYSD
SEDDVLSSSSCGSNSDSGTCQSPSLEEPMEDESEIEEFYNGLEDEPDVPERAGGAGFGTD
GDDQEAINEAISVKQEVTDMNYPSNKS

3.2 - Protein → DNA sequence

Obtained through the reverse translation tool after attaching the human codon table:

```jsx
Reverse Translate
Results for 747 residue sequence "sp|Q96EB6|SIR1_HUMAN NAD-dependent protein deacetylase sirtuin-1 OS=Homo sapiens OX=9606 GN=SIRT1 PE=1 SV=2" starting "MADEAALALQ"
>reverse translation of sp|Q96EB6|SIR1_HUMAN NAD-dependent protein deacetylase sirtuin-1 OS=Homo sapiens OX=9606 GN=SIRT1 PE=1 SV=2 to a 2241 base sequence of most likely codons.
atggccgacgaggccgccctggccctgcagcccggcggcagccccagcgccgccggcgcc
gacagagaggccgccagcagccccgccggcgagcccctgagaaagagacccagaagagac
ggccccggcctggagagaagccccggcgagcccggcggcgccgcccccgagagagaggtg
cccgccgccgccagaggctgccccggcgccgccgccgccgccctgtggagagaggccgag
gccgaggccgccgccgccggcggcgagcaggaggcccaggccaccgccgccgccggcgag
ggcgacaacggccccggcctgcagggccccagcagagagccccccctggccgacaacctg
tacgacgaggacgacgacgacgagggcgaggaggaggaggaggccgccgccgccgccatc
ggctacagagacaacctgctgttcggcgacgagatcatcaccaacggcttccacagctgc
gagagcgacgaggaggacagagccagccacgccagcagcagcgactggacccccagaccc
agaatcggcccctacaccttcgtgcagcagcacctgatgatcggcaccgaccccagaacc
atcctgaaggacctgctgcccgagaccatccccccccccgagctggacgacatgaccctg
tggcagatcgtgatcaacatcctgagcgagccccccaagagaaagaagagaaaggacatc
aacaccatcgaggacgccgtgaagctgctgcaggagtgcaagaagatcatcgtgctgacc
ggcgccggcgtgagcgtgagctgcggcatccccgacttcagaagcagagacggcatctac
gccagactggccgtggacttccccgacctgcccgacccccaggccatgttcgacatcgag
tacttcagaaaggaccccagacccttcttcaagttcgccaaggagatctaccccggccag
ttccagcccagcctgtgccacaagttcatcgccctgagcgacaaggagggcaagctgctg
agaaactacacccagaacatcgacaccctggagcaggtggccggcatccagagaatcatc
cagtgccacggcagcttcgccaccgccagctgcctgatctgcaagtacaaggtggactgc
gaggccgtgagaggcgacatcttcaaccaggtggtgcccagatgccccagatgccccgcc
gacgagcccctggccatcatgaagcccgagatcgtgttcttcggcgagaacctgcccgag
cagttccacagagccatgaagtacgacaaggacgaggtggacctgctgatcgtgatcggc
agcagcctgaaggtgagacccgtggccctgatccccagcagcatcccccacgaggtgccc
cagatcctgatcaacagagagcccctgccccacctgcacttcgacgtggagctgctgggc
gactgcgacgtgatcatcaacgagctgtgccacagactgggcggcgagtacgccaagctg
tgctgcaaccccgtgaagctgagcgagatcaccgagaagccccccagaacccagaaggag
ctggcctacctgagcgagctgccccccacccccctgcacgtgagcgaggacagcagcagc
cccgagagaaccagcccccccgacagcagcgtgatcgtgaccctgctggaccaggccgcc
aagagcaacgacgacctggacgtgagcgagagcaagggctgcatggaggagaagccccag
gaggtgcagaccagcagaaacgtggagagcatcgccgagcagatggagaaccccgacctg
aagaacgtgggcagcagcaccggcgagaagaacgagagaaccagcgtggccggcaccgtg
agaaagtgctggcccaacagagtggccaaggagcagatcagcagaagactggacggcaac
cagtacctgttcctgccccccaacagatacatcttccacggcgccgaggtgtacagcgac
agcgaggacgacgtgctgagcagcagcagctgcggcagcaacagcgacagcggcacctgc
cagagccccagcctggaggagcccatggaggacgagagcgagatcgaggagttctacaac
ggcctggaggacgagcccgacgtgcccgagagagccggcggcgccggcttcggcaccgac
ggcgacgaccaggaggccatcaacgaggccatcagcgtgaagcaggaggtgaccgacatg
aactaccccagcaacaagagc

>reverse translation of sp|Q96EB6|SIR1_HUMAN NAD-dependent protein deacetylase sirtuin-1 OS=Homo sapiens OX=9606 GN=SIRT1 PE=1 SV=2 to a 2241 base sequence of consensus codons.
atggcngaygargcngcnytngcnytncarccnggnggnwsnccnwsngcngcnggngcn
gaymgngargcngcnwsnwsnccngcnggngarccnytnmgnaarmgnccnmgnmgngay
ggnccnggnytngarmgnwsnccnggngarccnggnggngcngcnccngarmgngargtn
ccngcngcngcnmgnggntgyccnggngcngcngcngcngcnytntggmgngargcngar
gcngargcngcngcngcnggnggngarcargargcncargcnacngcngcngcnggngar
ggngayaayggnccnggnytncarggnccnwsnmgngarccnccnytngcngayaayytn
taygaygargaygaygaygaygarggngargargargargargcngcngcngcngcnath
ggntaymgngayaayytnytnttyggngaygarathathacnaayggnttycaywsntgy
garwsngaygargargaymgngcnwsncaygcnwsnwsnwsngaytggacnccnmgnccn
mgnathggnccntayacnttygtncarcarcayytnatgathggnacngayccnmgnacn
athytnaargayytnytnccngaracnathccnccnccngarytngaygayatgacnytn
tggcarathgtnathaayathytnwsngarccnccnaarmgnaaraarmgnaargayath
aayacnathgargaygcngtnaarytnytncargartgyaaraarathathgtnytnacn
ggngcnggngtnwsngtnwsntgyggnathccngayttymgnwsnmgngayggnathtay
gcnmgnytngcngtngayttyccngayytnccngayccncargcnatgttygayathgar
tayttymgnaargayccnmgnccnttyttyaarttygcnaargarathtayccnggncar
ttycarccnwsnytntgycayaarttyathgcnytnwsngayaargarggnaarytnytn
mgnaaytayacncaraayathgayacnytngarcargtngcnggnathcarmgnathath
cartgycayggnwsnttygcnacngcnwsntgyytnathtgyaartayaargtngaytgy
gargcngtnmgnggngayathttyaaycargtngtnccnmgntgyccnmgntgyccngcn
gaygarccnytngcnathatgaarccngarathgtnttyttyggngaraayytnccngar
carttycaymgngcnatgaartaygayaargaygargtngayytnytnathgtnathggn
wsnwsnytnaargtnmgnccngtngcnytnathccnwsnwsnathccncaygargtnccn
carathytnathaaymgngarccnytnccncayytncayttygaygtngarytnytnggn
gaytgygaygtnathathaaygarytntgycaymgnytnggnggngartaygcnaarytn
tgytgyaayccngtnaarytnwsngarathacngaraarccnccnmgnacncaraargar
ytngcntayytnwsngarytnccnccnacnccnytncaygtnwsngargaywsnwsnwsn
ccngarmgnacnwsnccnccngaywsnwsngtnathgtnacnytnytngaycargcngcn
aarwsnaaygaygayytngaygtnwsngarwsnaarggntgyatggargaraarccncar
gargtncaracnwsnmgnaaygtngarwsnathgcngarcaratggaraayccngayytn
aaraaygtnggnwsnwsnacnggngaraaraaygarmgnacnwsngtngcnggnacngtn
mgnaartgytggccnaaymgngtngcnaargarcarathwsnmgnmgnytngayggnaay
cartayytnttyytnccnccnaaymgntayathttycayggngcngargtntaywsngay
wsngargaygaygtnytnwsnwsnwsnwsntgyggnwsnaaywsngaywsnggnacntgy
carwsnccnwsnytngargarccnatggargaygarwsngarathgargarttytayaay
ggnytngargaygarccngaygtnccngarmgngcnggnggngcnggnttyggnacngay
ggngaygaycargargcnathaaygargcnathwsngtnaarcargargtnacngayatg
aaytayccnwsnaayaarwsn

```

3.3 - In your own words, describe why you need to optimize codon usage. Which organism have you chosen to optimize the codon sequence for and why?

I have chosen to optimize it for homo sapiens, because I am interested in human medicine and I want to learn more about how certain proteins might affect human lifespans.

We need to optimize codon usage because different organisms have different availability of tRNA to match certain codons, and we want to optimize for tRNA abundance to maximize translation speed, and mRNA stability and structure. These optimizations can be made because the same amino acid can be produced with different codons.

3.4 - What technologies could be used to produce this protein from your DNA? Describe in your words the DNA sequence can be transcribed and translated into your protein. You may describe either cell-dependent or cell-free methods, or both.

I could transfect the necessary genes into mammalian cells (like neurons, or HEK cells, which divide rapidly!) to make them express this protein in large quantities. We do this by basically integrating these “instructions” (as, for example, plasmids) for producing different specific proteins into the cell, and letting their machinery decode them in the same way that it does with their own genome.

(I have done this in the past with HEK cells to make them express RFP, using lipofectamine as the transfection method/reagent.)

We optimize the plasmid content for the target organism by choosing a certain promoter, codon-optimized CDS, and regulatory elements.


5.1 DNA Read

I would want to sequence the genomes of healthy centenarians or supercentenarians (people who reach 110 years of age), so that we can learn if there is a genetic basis for longevity and find enhancing variants. I know that certain variants of the FOXO3 gene have been found to be more prevalently enriched among this population (paper), and I would like to learn more.

(ii) In lecture, a variety of sequencing technologies were mentioned. What technology or technologies would you use to perform sequencing on your DNA and why?

Also answer the following questions:

  • Is your method first-, second- or third-generation or other? How so?**
  • What is your input? How do you prepare your input (e.g. fragmentation, adapter ligation, PCR)? List the essential steps.**
  • What are the essential steps of your chosen sequencing technology, how does it decode the bases of your DNA sample (base calling)?**
  • What is the output of your chosen sequencing technology?**

I would choose Illumina short-read WGS, which is a relatively quick, affordable and accurate current industry standard for consumer sequencing.

It is a second-generation method that allows to do massively-parallelized short-reads.

To do this, we would take a sample from the supercentenarians (saliva or blood), perform end-repair and A-tailing, ligate Illumina adapters, and PCR-amplify to make libraries.

The output is a FASTQ file which we align to the human reference genome to find (call) SNPs, indels, etc. Basically to identify how and where this given genome differs from the “reference” one (assembled as an average of a group of +100 individuals).

5.2 DNA Write

(i) What DNA would you want to synthesize (e.g., write) and why? These could be individual genes, clusters of genes or genetic circuits, whole genomes, and beyond.

Klotho gene therapy for cognitive enhancement and longevity! I has been linked to better cognition in mice and humans (paper: https://pmc.ncbi.nlm.nih.gov/articles/PMC4176932/ )

(ii) What technology or technologies would you use to perform this DNA synthesis and why?

Also answer the following questions:

  • What are the essential steps of your chosen sequencing methods?**
  • What are the limitations of your sequencing method (if any) in terms of speed, accuracy, scalability?**

I would use the industry standard (phosphoramidite chemical oligo synthesis + Gibson assembly) as it is currently the most battle-tested one.

The limitation is that it only allows us to assemble up to around 200 nucleotides at a time before the error rate becomes so high as to make the output unusable (too different from the referent we want to “print”). To print out longer sequences, we must separately assemble them using methods like Gibson assembly.

5.3 DNA Edit

(i) What DNA would you want to edit and why? What kinds of edits might you want to make to DNA (e.g., human genomes and beyond) and why?

Genes associated with longevity or cognitive enhancement, like FOXO3 or Klotho. I would like to test these in both humans and animals, especially dogs, since it could be helpful to obtain faster data about the effects in mammals, and possibly buy a few people additional time with their beloved pets :)

(ii) What technology or technologies would you use to perform these DNA edits and why?

Also answer the following questions:

  • How does your technology of choice edit DNA? What are the essential steps?**
  • What preparation do you need to do (e.g. design steps) and what is the input (e.g. DNA template, enzymes, plasmids, primers, guides, cells) for the editing?**
  • What are the limitations of your editing methods (if any) in terms of efficiency or precision?**

I would use a CRISPR-based editing system and deliver it with AAV (the current most widely-used delivery mechanism for gene therapies). AAV is safer because it doesn’t integrate, which means that it doesn’t actually modify the existing genome (which can cause issues like cancer through insertional mutagenesis).

The main limitation of AAVs is their small cargo sizes, which severely limits the number of genes we could deliver through this method.


STEPS

Week 3 HW: Lab Automation

Week 3 HW: Lab Automation

🎨 Assignment: Python Script for Opentrons Artwork

Link: https://colab.research.google.com/drive/1Yw0ZrnxIz1kG73b_9PcuZNgXGv6uQy9s?usp=sharing

Click to expand code

mscarlet_i_points = [(-17.6, 17.6),(-15.4, 17.6),(-13.2, 17.6),(-11, 17.6),(-8.8, 17.6),(-6.6, 17.6),(-4.4, 17.6),(-2.2, 17.6),(0, 17.6),(2.2, 17.6),(4.4, 17.6),(6.6, 17.6),(8.8, 17.6),(11, 17.6),(13.2, 17.6),(15.4, 17.6),(17.6, 17.6),(19.8, 17.6),(-17.6, 15.4),(-15.4, 15.4),(-13.2, 15.4),(-11, 15.4),(-8.8, 15.4),(-6.6, 15.4),(-4.4, 15.4),(-2.2, 15.4),(0, 15.4),(2.2, 15.4),(4.4, 15.4),(6.6, 15.4),(8.8, 15.4),(11, 15.4),(13.2, 15.4),(15.4, 15.4),(17.6, 15.4),(19.8, 15.4),(-17.6, 13.2),(-15.4, 13.2),(-13.2, 13.2),(-11, 13.2),(-8.8, 13.2),(-6.6, 13.2),(-4.4, 13.2),(-2.2, 13.2),(0, 13.2),(2.2, 13.2),(4.4, 13.2),(6.6, 13.2),(8.8, 13.2),(11, 13.2),(13.2, 13.2),(15.4, 13.2),(17.6, 13.2),(19.8, 13.2),(-17.6, 11),(-15.4, 11),(-13.2, 11),(-11, 11),(-8.8, 11),(-6.6, 11),(-4.4, 11),(-2.2, 11),(0, 11),(2.2, 11),(4.4, 11),(6.6, 11),(8.8, 11),(11, 11),(13.2, 11),(15.4, 11),(17.6, 11),(19.8, 11),(-17.6, 8.8),(-15.4, 8.8),(-13.2, 8.8),(-11, 8.8),(-6.6, 8.8),(-4.4, 8.8),(-2.2, 8.8),(0, 8.8),(2.2, 8.8),(4.4, 8.8),(6.6, 8.8),(8.8, 8.8),(13.2, 8.8),(15.4, 8.8),(17.6, 8.8),(19.8, 8.8),(-17.6, 6.6),(-15.4, 6.6),(-13.2, 6.6),(-11, 6.6),(-6.6, 6.6),(-4.4, 6.6),(-2.2, 6.6),(0, 6.6),(2.2, 6.6),(4.4, 6.6),(6.6, 6.6),(8.8, 6.6),(13.2, 6.6),(15.4, 6.6),(17.6, 6.6),(19.8, 6.6),(-17.6, 4.4),(-15.4, 4.4),(-13.2, 4.4),(-11, 4.4),(-6.6, 4.4),(-4.4, 4.4),(-2.2, 4.4),(0, 4.4),(2.2, 4.4),(4.4, 4.4),(6.6, 4.4),(8.8, 4.4),(13.2, 4.4),(15.4, 4.4),(17.6, 4.4),(19.8, 4.4),(-17.6, 2.2),(-15.4, 2.2),(-13.2, 2.2),(-11, 2.2),(-8.8, 2.2),(-6.6, 2.2),(-4.4, 2.2),(-2.2, 2.2),(0, 2.2),(2.2, 2.2),(4.4, 2.2),(6.6, 2.2),(8.8, 2.2),(11, 2.2),(13.2, 2.2),(15.4, 2.2),(17.6, 2.2),(19.8, 2.2),(-24.2, 0),(-22, 0),(-19.8, 0),(-17.6, 0),(-15.4, 0),(-13.2, 0),(-11, 0),(-8.8, 0),(-6.6, 0),(-4.4, 0),(-2.2, 0),(0, 0),(2.2, 0),(4.4, 0),(6.6, 0),(8.8, 0),(11, 0),(13.2, 0),(15.4, 0),(17.6, 0),(19.8, 0),(22, 0),(24.2, 0),(26.4, 0),(-24.2, -2.2),(-22, -2.2),(-19.8, -2.2),(-17.6, -2.2),(-15.4, -2.2),(-13.2, -2.2),(-11, -2.2),(-8.8, -2.2),(-6.6, -2.2),(-4.4, -2.2),(-2.2, -2.2),(0, -2.2),(2.2, -2.2),(4.4, -2.2),(6.6, -2.2),(8.8, -2.2),(11, -2.2),(13.2, -2.2),(15.4, -2.2),(17.6, -2.2),(19.8, -2.2),(22, -2.2),(24.2, -2.2),(26.4, -2.2),(-24.2, -4.4),(-22, -4.4),(-19.8, -4.4),(-17.6, -4.4),(-15.4, -4.4),(-13.2, -4.4),(-11, -4.4),(-8.8, -4.4),(-6.6, -4.4),(-4.4, -4.4),(-2.2, -4.4),(0, -4.4),(2.2, -4.4),(4.4, -4.4),(6.6, -4.4),(8.8, -4.4),(11, -4.4),(13.2, -4.4),(15.4, -4.4),(17.6, -4.4),(19.8, -4.4),(22, -4.4),(24.2, -4.4),(26.4, -4.4),(-17.6, -6.6),(-15.4, -6.6),(-13.2, -6.6),(-11, -6.6),(-8.8, -6.6),(-6.6, -6.6),(-4.4, -6.6),(-2.2, -6.6),(0, -6.6),(2.2, -6.6),(4.4, -6.6),(6.6, -6.6),(8.8, -6.6),(11, -6.6),(13.2, -6.6),(15.4, -6.6),(17.6, -6.6),(19.8, -6.6),(-17.6, -8.8),(-15.4, -8.8),(-13.2, -8.8),(-11, -8.8),(-8.8, -8.8),(-6.6, -8.8),(-4.4, -8.8),(-2.2, -8.8),(0, -8.8),(2.2, -8.8),(4.4, -8.8),(6.6, -8.8),(8.8, -8.8),(11, -8.8),(13.2, -8.8),(15.4, -8.8),(17.6, -8.8),(19.8, -8.8),(-17.6, -11),(-15.4, -11),(-13.2, -11),(-11, -11),(-8.8, -11),(-6.6, -11),(-4.4, -11),(-2.2, -11),(0, -11),(2.2, -11),(4.4, -11),(6.6, -11),(8.8, -11),(11, -11),(13.2, -11),(15.4, -11),(17.6, -11),(19.8, -11),(-13.2, -13.2),(-11, -13.2),(-6.6, -13.2),(-4.4, -13.2),(6.6, -13.2),(8.8, -13.2),(13.2, -13.2),(15.4, -13.2),(-13.2, -15.4),(-11, -15.4),(-6.6, -15.4),(-4.4, -15.4),(6.6, -15.4),(8.8, -15.4),(13.2, -15.4),(15.4, -15.4),(-13.2, -17.6),(-11, -17.6),(-6.6, -17.6),(-4.4, -17.6),(6.6, -17.6),(8.8, -17.6),(13.2, -17.6),(15.4, -17.6),(-13.2, -19.8),(-11, -19.8),(-6.6, -19.8),(-4.4, -19.8),(6.6, -19.8),(8.8, -19.8),(13.2, -19.8),(15.4, -19.8)]
mjuniper_points = [(-4.4, 28.6),(-2.2, 28.6),(0, 28.6),(2.2, 28.6),(4.4, 28.6),(-4.4, 26.4),(-2.2, 26.4),(2.2, 26.4),(4.4, 26.4),(-4.4, 24.2),(-2.2, 24.2),(2.2, 24.2),(4.4, 24.2),(-6.6, 22),(-4.4, 22),(-2.2, 22),(2.2, 22),(4.4, 22),(6.6, 22),(-6.6, 19.8),(-4.4, 19.8),(-2.2, 19.8),(0, 19.8),(2.2, 19.8),(4.4, 19.8),(6.6, 19.8)]
mturquoise2_points = [(0, 26.4),(0, 24.2),(0, 22)]

📖 Assigment: Automation paper

“Automated Cell Culture Splitter (ACCS): An open-source benchtop system for cell passaging with integrated cell counting” — PNAS Nexus, December 2025

Citation: Automated Cell Culture Splitter (ACCS), PNAS Nexus, 4(12), pgaf385, 2025. https://academic.oup.com/pnasnexus/article/4/12/pgaf385/8405882

Why this paper: This paper presents an open-source system built around the Opentrons OT-2 that automates the passaging of adherent or suspension cells in 96-well plates. What makes it novel is the integration of a custom Cell Counting Imager (CCI) that adjusts seeding volumes per-well based on measured cell density (the robot doesn’t just pipette blindly, it makes decisions based on real-time data). The system fits inside a biosafety cabinet, processes 2–3 plates per working day with minimal intervention, and communicates status updates via Slack.

Relevance to my final project ideas: All three of my proposed projects involve cell culture steps. Automated cell passaging with integrated counting is exactly the infrastructure needed upstream of any of these experiments. The paper also demonstrates how custom hardware (the CCI) can be integrated with the OT-2’s Python API, which is relevant for designing my own automation protocols that might need plate reader integration for fluorescence readouts.

⚙️ Assignment: How I’ll apply automation in my projects

This is how I’d use automation for my proposed final project #1 (“Idea 1: CRISPR Epigenome Editing at Clock CpG Sites”): Step 1 — Transfection Setup (Opentrons OT-2/Flex) Dispensing cells, transfection reagents (e.g., Lipofectamine or PEI), and different gRNA/construct combinations across a 96-well plate. Each well gets a different gRNA targeting a different CpG site, allowing parallel testing of multiple epigenome editing targets.

Step 2 — Bisulfite Conversion Sample Prep (Opentrons OT-2) After editing, validate whether methylation was actually changed at the target site. This requires bisulfite conversion of genomic DNA — a multi-step protocol (denaturation → bisulfite treatment → desulphonation → cleanup) that is repetitive, error-prone, and ideal for automation. Zymo Research already provides Opentrons-compatible scripts for their EZ DNA Methylation kits.

Step 3 — Targeted PCR Setup (Opentrons OT-2) Set up PCR reactions targeting the specific CpG sites of interest (using bisulfite-specific primers) across the 96-well plate for downstream sequencing.

Pseudocode for Transfection Protocol:

from opentrons import protocol_api

metadata = { ‘protocolName’: ‘dCas9-TET1 Epigenome Editing Transfection Setup’, ‘author’: ‘[Your Name]’, ‘description’: ‘Automated transfection of dCas9-TET1 + gRNAs targeting aging clock CpG sites’ }

requirements = {“robotType”: “OT-2”, “apiLevel”: “2.16”}

def run(protocol: protocol_api.ProtocolContext): # — LABWARE — plate = protocol.load_labware(‘corning_96_wellplate_360ul_flat’, ‘1’) reagent_rack = protocol.load_labware(‘opentrons_24_tuberack_nest_1.5ml’, ‘2’) tiprack_20 = protocol.load_labware(‘opentrons_96_tiprack_20ul’, ‘3’) tiprack_300 = protocol.load_labware(‘opentrons_96_tiprack_300ul’, ‘6’)

# --- INSTRUMENTS ---
p20 = protocol.load_instrument('p20_single_gen2', 'left', tip_racks=[tiprack_20])
p300 = protocol.load_instrument('p300_single_gen2', 'right', tip_racks=[tiprack_300])

# --- REAGENTS (in tube rack) ---
# A1: OptiMEM reduced serum media
# A2: Lipofectamine 3000 reagent
# A3: P3000 reagent
# A4: dCas9-TET1 plasmid (shared across all wells)
# B1-B6: gRNAs targeting 6 different aging clock CpG sites
#   B1: gRNA for ELOVL2 promoter (cg16867657)
#   B2: gRNA for FHL2 promoter (cg22454769)
#   B3: gRNA for PENK intron (cg16008966)
#   B4: gRNA for KLF14 promoter (cg07553761)
#   B5: gRNA for TRIM59 (cg00481951)
#   B6: non-targeting control gRNA
# C1: Cell suspension (pre-trypsinized, counted)

optimen = reagent_rack['A1']
lipofectamine = reagent_rack['A2']
p3000 = reagent_rack['A3']
dcas9_tet1 = reagent_rack['A4']
grnas = [reagent_rack[well] for well in ['B1', 'B2', 'B3', 'B4', 'B5', 'B6']]
cells = reagent_rack['C1']

# --- PROTOCOL ---

# Step 1: Seed cells into all wells (200 uL per well, ~40,000 cells)
# Note: In practice, cells would be seeded 24h prior
# This step shows the protocol for Day 0
protocol.comment("Step 1: Seeding cells")
for well in plate.wells()[:48]:  # 48 wells = 6 gRNAs x 8 replicates
    p300.transfer(200, cells, well, new_tip='always')

# [Protocol would pause here for 24h incubation]
protocol.pause("Incubate plate at 37°C, 5% CO2 for 24 hours. Resume for transfection.")

# Step 2: Prepare transfection complexes
# Each gRNA condition gets 8 replicate wells (columns)
protocol.comment("Step 2: Preparing lipofection complexes")

for grna_idx, grna in enumerate(grnas):
    # Target wells: 8 wells per gRNA (one column)
    target_wells = plate.columns()[grna_idx][:8]

    for well in target_wells:
        # Add OptiMEM
        p20.transfer(10, optimen, well, new_tip='always')
        # Add dCas9-TET1 plasmid (250 ng)
        p20.transfer(2, dcas9_tet1, well, new_tip='always')
        # Add specific gRNA plasmid (250 ng)
        p20.transfer(2, grna, well, new_tip='always')
        # Add P3000 reagent
        p20.transfer(1, p3000, well, new_tip='always')
        # Add Lipofectamine
        p20.transfer(1, lipofectamine, well, mix_after=(3, 10), new_tip='always')

protocol.comment("Transfection complete. Incubate 72h before harvesting.")
# After 72h: harvest cells for bisulfite conversion + methylation analysis

Pseudocode for Bisulfite Conversion (Post-editing validation):

def run_bisulfite_conversion(protocol: protocol_api.ProtocolContext):
    """
    Automated bisulfite conversion of genomic DNA from transfected cells.
    Validates whether dCas9-TET1 successfully demethylated target CpG sites.
Uses Zymo EZ DNA Methylation Kit protocol adapted for OT-2.
"""

# Step 1: Add CT Conversion Reagent to each DNA sample
# 130 uL CT reagent + 20 uL DNA sample per well
for well in sample_plate.wells()[:48]:
    p300.transfer(130, ct_reagent, well, mix_after=(5, 100))

# Step 2: Thermal cycling for bisulfite conversion
# Would use Opentrons Thermocycler Module:
#   98°C for 8 min (denaturation)
#   64°C for 3.5 hours (conversion)
#   4°C hold
thermocycler.set_block_temperature(98, hold_time_minutes=8)
thermocycler.set_block_temperature(64, hold_time_minutes=210)
thermocycler.set_block_temperature(4)

# Step 3: Desulphonation + Cleanup
# Transfer to spin columns, wash, elute
# (Magnetic bead-based cleanup would be more OT-2 friendly)
for well in sample_plate.wells()[:48]:
    # Add binding buffer
    p300.transfer(600, binding_buffer, well, mix_after=(3, 200))
    # Transfer to magnetic bead plate
    # Wash 2x with wash buffer
    # Elute in 10 uL elution buffer
    p20.transfer(10, elution_buffer, well, mix_after=(5, 8))

# Step 4: Set up targeted PCR for clock CpG sites
# Bisulfite-specific primers for each target locus
for i, primer_pair in enumerate(bisulfite_primers):
    target_wells = pcr_plate.columns()[i][:8]
    for well in target_wells:
        p20.transfer(10, pcr_master_mix, well)
        p20.transfer(2, primer_pair, well)
        p20.transfer(8, converted_dna, well, mix_after=(3, 15))

💡 Final project ideas

Added the slides to the slide deck.

3 final project ideas I'd like to pursue1. Design targeted epigenetic editors to reverse aging methylation signatures
  1. Training a Minimal Epigenetic Aging Clock and Design of a Fluorescent Age Reporter Construct

    1. Cross-Intervention Epigenetic Clock Comparison and CRISPR Knock-in Design of a p16 Aging Sensor

Subsections of Labs

Week 1 Lab: Pipetting

cover image cover image

Subsections of Projects

Individual Final Project

cover image cover image

Group Final Project

cover image cover image