Grace Hussey — HTGAA Spring 2026
About me
I am a senior neuroscience major at William & Mary. My research project focuses on elucidating the roles of the tweety genes in the neural development of Xenopus laevis.
I am a senior neuroscience major at William & Mary. My research project focuses on elucidating the roles of the tweety genes in the neural development of Xenopus laevis.
Week 1 HW: Principles and Practices
Governance Assignment Biological Engineering Application Immunotherapies are a promising avenue in cancer treatment as they leverage the immune system’s innate ability to recognize and target non-self structures. However, traditional immunotherapies often result in on-target off-tumor effects, particularly in solid tumors. Synthetic biology has enabled new avenues of discovery to minimize this immunotherapy-related toxicity: engineering immune cells to target tumor-associated antigens (TAAs) or engineering genetic circuits to detect cancer disease signatures (Zhu et al., 2024). For example, modifying the traditional Chimeric Antigen Receptor (CAR) T-cell immunotherapy approach with a synthetic Notch (synNotch) receptor has demonstrated the ability to suppress off-target cytotoxicity related to organ rejection (Reddy et al., 2024) and selectively target cancerous cells in the central nervous system of mice rather than elsewhere in the body (Simic et al., 2024). Yet, while synNotch-modified CAR-T therapies show promise in their ability to reduce immunotherapy-related toxicity, additional research is needed to effectively administer these bioengineered cell systems in patients beyond pre-clinical experimentation.
Week 2 HW: DNA Read, Write, and Edit
Part 1: Benchling and In-silico Gel Art Virtual restriction enzyme digest designed with DNA from the bacteriophage Kampy (isolated at W&M!) and the restriction enzymes BstXI, KpnI, and SfiI to resemble two bacteriophages. The chosen restriction enzymes were selected because they were in stock at William & Mary, had multiple cut sites in the Kampy DNA, and could be combined to make a design resembling a bacteriophage.
Python Script for Opentrons Artwork My Opentrons design is meant to resemble a frog because I use Xenopus laevis as my model organism in my honors thesis research at William & Mary. Post-Lab Questions Find and describe a published paper that utilizes the Opentrons or an automation tool to achieve novel biological applications. In Sanders et al., 2022, the researchers use an Opentron robot to optimize a bacterial whole-genome sequencing (WGS) protocol for gut microbiota samples. The Opentron was used for DNA extraction and library preparation steps, reducing the overall cost of WGS by ~$10 per genome and eliminating the need for 16S rRNA gene-based screening.
Immunotherapies are a promising avenue in cancer treatment as they leverage the immune system’s innate ability to recognize and target non-self structures. However, traditional immunotherapies often result in on-target off-tumor effects, particularly in solid tumors. Synthetic biology has enabled new avenues of discovery to minimize this immunotherapy-related toxicity: engineering immune cells to target tumor-associated antigens (TAAs) or engineering genetic circuits to detect cancer disease signatures (Zhu et al., 2024). For example, modifying the traditional Chimeric Antigen Receptor (CAR) T-cell immunotherapy approach with a synthetic Notch (synNotch) receptor has demonstrated the ability to suppress off-target cytotoxicity related to organ rejection (Reddy et al., 2024) and selectively target cancerous cells in the central nervous system of mice rather than elsewhere in the body (Simic et al., 2024). Yet, while synNotch-modified CAR-T therapies show promise in their ability to reduce immunotherapy-related toxicity, additional research is needed to effectively administer these bioengineered cell systems in patients beyond pre-clinical experimentation.
Goal 1: Perform rigorous pre-clinical testing to ensure new immunotherapies meet safety and efficacy standards before introducing into human patients.
Goal 2: Design ethical clinical trials with standardized eligibility, safety, and efficacy protocols with consideration for unique patterns of patient progression or response to treatment.
Goal 3: Create policies and organizations to promote equitable access to cancer prevention, screening, diagnosis, and immunotherapy resources to patients from diverse backgrounds and socioeconomic statuses across the globe.
| Does the option: | Option 1 | Option 2 | Option 3 |
|---|---|---|---|
| Enhance Biosecurity | |||
| • By preventing incidents | 2 | 1 | 1 |
| • By helping respond | 2 | 2 | 2 |
| Foster Lab Safety | |||
| • By preventing incident | 1 | 1 | 1 |
| • By helping respond | 2 | 1 | 1 |
| Protect the environment | |||
| • By preventing incidents | 1 | 1 | 1 |
| • By helping respond | 1 | 1 | 1 |
| Other considerations | |||
| • Minimizing costs and burdens to stakeholders | 2 | 2 | 2 |
| • Feasibility? | 2 | 2 | 2 |
| • Not impede research | 2 | 3 | 3 |
| • Promote constructive applications | 3 | 3 | 3 |
I believe Option 3 should be prioritized. While innovative bioengineering applications to cancer immunotherapies are a promising avenue for decreasing cancer mortality both nationally and internationally, these efforts are in vain if they cannot be administered effectively in a large patient population. Increasing early detection of cancer by promoting equitable access to cancer screenings and diagnostic testing will ultimately increase the use of bioengineered immunotherapies as cancers detected at earlier stages are better candidates to be treated by immunotherapy approaches.
I completed the setup of my personal HTGAA website, including adding my biography, contact information, and cover photo to my homepage.

Virtual restriction enzyme digest designed with DNA from the bacteriophage Kampy (isolated at W&M!) and the restriction enzymes BstXI, KpnI, and SfiI to resemble two bacteriophages. The chosen restriction enzymes were selected because they were in stock at William & Mary, had multiple cut sites in the Kampy DNA, and could be combined to make a design resembling a bacteriophage.
The imaged gel resembles the band lengths predicted by the virtual digest! While interpreting the gel image as two bacteriophages does require a bit of imagination, the digest was successful in that the true gel resembled the in silico prediction.
I chose the protein TTYH3 (tweety homolog 3) because it is the subject of my honors thesis research. ttyh3 encodes a calcium-dependent chloride channel and is a member of the tweety gene family- consisting of members ttyh1, ttyh2, and ttyh3- that is highly conserved across eukaryotes. ttyh3 is the least-characterized member of the tweety gene family, making it an intriguing subject of research. During neural development, the gene ttyh3 is primarily expressed in post-mitotic neurons. However, its precise function and role in neural development remain unknown. In my research, I aim to provide greater insight into the role of TTYH3 in neural development by overexpressing and knocking-out the ttyh3 gene in X. laevis and observing changes in expression of the downstream neural marker genes Sox2 and tubb2b.
Sequence from UniProt: MAGVSYAAPWWVSLLHRLPHFDLSWEATSSQFRPEDTDYQQALLLLGAAALACLALDLLFLLFYSFWLCCRRRKSEEHLDADCCCTAWCVIIATLVCSAGIAVGFYGNGETSDGIHRATYSLRHANRTVAGVQDRVWDTAVGLNHTAEPSLQTLERQLAGRPEPLRAVQRLQGLLETLLGYTAAIPFWRNTAVSLEVLAEQVDLYDWYRWLGYLGLLLLDVIICLLVLVGLIRSSKGILVGVCLLGVLALVISWGALGLELAVSVGSSDFCVDPDAYVTKMVEEYSVLSGDILQYYLACSPRAANPFQQKLSGSHKALVEMQDVVAELLRTVPWEQPATKDPLLRVQEVLNGTEVNLQHLTALVDCRSLHLDYVQALTGFCYDGVEGLIYLALFSFVTALMFSSIVCSVPHTWQQKRGPDEDGEEEAAPGPRQAHDSLYRVHMPSLYSCGSSYGSETSIPAAAHTVSNAPVTEYMSQNANFQNPRCENTPLIGRESPPPSYTSSMRAKYLATSQPRPDSSGSH
Using the “reverse translate” tool on bioinformatics.org, I generated the following nucleotide sequence from the TTYH3 amino acid sequence: atggcgggcgtgagctatgcggcgccgtggtgggtgagcctgctgcatcgcctgccgcattttgatctgagctgggaagcgaccagcagccagtttcgcccggaagataccgattatcagcaggcgctgctgctgctgggcgcggcggcgctggcgtgcctggcgctggatctgctgtttctgctgttttatagcttttggctgtgctgccgccgccgcaaaagcgaagaacatctggatgcggattgctgctgcaccgcgtggtgcgtgattattgcgaccctggtgtgcagcgcgggcattgcggtgggcttttatggcaacggcgaaaccagcgatggcattcatcgcgcgacctatagcctgcgccatgcgaaccgcaccgtggcgggcgtgcaggatcgcgtgtgggataccgcggtgggcctgaaccataccgcggaaccgagcctgcagaccctggaacgccagctggcgggccgcccggaaccgctgcgcgcggtgcagcgcctgcagggcctgctggaaaccctgctgggctataccgcggcgattccgttttggcgcaacaccgcggtgagcctggaagtgctggcggaacaggtggatctgtatgattggtatcgctggctgggctatctgggcctgctgctgctggatgtgattatttgcctgctggtgctggtgggcctgattcgcagcagcaaaggcattctggtgggcgtgtgcctgctgggcgtgctggcgctggtgattagctggggcgcgctgggcctggaactggcggtgagcgtgggcagcagcgatttttgcgtggatccggatgcgtatgtgaccaaaatggtggaagaatatagcgtgctgagcggcgatattctgcagtattatctggcgtgcagcccgcgcgcggcgaacccgtttcagcagaaactgagcggcagccataaagcgctggtggaaatgcaggatgtggtggcggaactgctgcgcaccgtgccgtgggaacagccggcgaccaaagatccgctgctgcgcgtgcaggaagtgctgaacggcaccgaagtgaacctgcagcatctgaccgcgctggtggattgccgcagcctgcatctggattatgtgcaggcgctgaccggcttttgctatgatggcgtggaaggcctgatttatctggcgctgtttagctttgtgaccgcgctgatgtttagcagcattgtgtgcagcgtgccgcatacctggcagcagaaacgcggcccggatgaagatggcgaagaagaagcggcgccgggcccgcgccaggcgcatgatagcctgtatcgcgtgcatatgccgagcctgtatagctgcggcagcagctatggcagcgaaaccagcattccggcggcggcgcataccgtgagcaacgcgccggtgaccgaatatatgagccagaacgcgaactttcagaacccgcgctgcgaaaacaccccgctgattggccgcgaaagcccgccgccgagctataccagcagcatgcgcgcgaaatatctggcgaccagccagccgcgcccggatagcagcggcagccat
Codon optimization is necessary because not all organisms use each codon with the same frequency due to differences in the abundance of various tRNAs, so optimizing the codons in the designed sequence will ideally increase the translational yield of my protein. I chose to optimize my sequence for X. laevis because that is the model organism in which I study the role of ttyh3 in neural development.
Using the Twist Bioscience Codon Optimization tool, I generated the following codon-optimized sequence: ATGGCTGGTGTGTCTTATGCTGCTCCTTGGTGGGTCTCTTTATTACATCGGTTGCCACACTTCGACCTCTCCTGGGAAGCCACATCTAGTCAATTCCGACCAGAGGACACAGACTACCAACAAGCACTATTATTGCTAGGGGCTGCCGCTTTAGCTTGTTTGGCTCTTGACCTTCTCTTCCTTTTGTTCTACTCTTTCTGGTTATGTTGTAGAAGAAGGAAGTCAGAGGAGCACCTCGACGCAGACTGTTGTTGTACTGCTTGGTGTGTCATAATCGCTACTCTTGTATGTTCAGCAGGTATAGCAGTAGGATTCTACGGGAATGGTGAGACATCCGACGGAATCCACCGGGCAACTTACTCCCTCAGACACGCTAATAGAACTGTTGCTGGTGTACAAGACCGGGTATGGGACACTGCAGTAGGGTTGAATCACACAGCAGAGCCTTCATTACAAACTTTAGAGAGACAACTTGCTGGAAGACCTGAGCCACTTAGAGCTGTTCAAAGATTACAAGGATTGTTAGAGACGCTCCTAGGGTACACTGCAGCCATCCCATTCTGGCGAAATACTGCCGTATCCTTAGAGGTACTCGCAGAGCAAGTTGACCTCTACGACTGGTACCGATGGCTTGGATACCTTGGGTTGTTGTTGTTGGACGTTATCATATGTTTACTCGTATTAGTTGGACTCATCAGGTCATCTAAGGGAATACTTGTTGGGGTTTGTTTACTTGGGGTTCTTGCTCTCGTCATCTCTTGGGGAGCATTGGGTCTTGAGCTTGCTGTTTCAGTAGGGTCAAGTGACTTCTGTGTAGACCCCGACGCCTACGTCACAAAGATGGTCGAGGAGTACTCAGTTCTTAGTGGAGACATCTTACAATACTACCTCGCTTGTTCACCAAGGGCAGCTAATCCCTTCCAACAAAAGCTTTCAGGTTCTCACAAGGCACTCGTAGAGATGCAAGACGTTGTCGCAGAGTTGCTTAGAACAGTTCCTTGGGAGCAACCAGCAACAAAGGACCCATTGCTCAGAGTCCAAGAGGTCCTTAATGGAACTGAGGTTAATCTCCAACACCTAACAGCCCTTGTAGACTGTCGATCACTCCACTTGGACTACGTCCAAGCTTTGACAGGTTTCTGTTACGACGGAGTTGAGGGTCTAATATACCTCGCCCTTTTCTCCTTCGTTACAGCTCTAATGTTCTCCAGTATCGTTTGTTCTGTTCCCCACACTTGGCAACAAAAGAGAGGACCCGACGAGGACGGAGAGGAAGAGGCAGCACCCGGTCCCAGACAAGCACACGACTCTTTGTACCGGGTCCACATGCCAAGTTTGTACTCATGTGGGTCTTCTTACGGTAGTGAGACAAGTATACCAGCCGCTGCCCACACTGTTTCTAATGCCCCCGTTACAGAGTACATGTCCCAAAATGCAAATTTCCAAAATCCCCGATGTGAGAATACGCCTTTGATAGGACGGGAGAGTCCCCCACCTTCATACACATCATCAATGAGGGCAAAGTACCTTGCAACATCACAACCCCGACCCGACTCCAGTGGATCACAC
To synthesize the ttyh3 mRNA and protein, I would use an in vitro transcription and translation kit (such as the ones produced by ThermoFischer) to synthesize ttyh3 mRNA and TTYH3 protein, respectively.
Single genes can produce multiple proteins at the transcriptional level through the process of alternative splicing. In eukaryotic cells, transcription and mRNA processing occurs in the nucleus whereas translation occurs in the cytoplasm. After mRNA is synthesized via transcription, mRNA processing (5’ cap addition, poly(A) tail addition, and intron splicing) occurs and exons (which make the coding region of the protein) are annealed together after introns are removed. However, the combinations of different exons (alternative splicing) can produce different proteins from the same primary (immature) mRNA transcript.

What DNA would you want to sequence (e.g., read) and why? I would like to sequence the DNA of a tumor sample from a cancer in which ttyh3 is observed to be misregulated (i.e. HCC, genitourinary cancers, colorectal cancer, etc.). I would be interested to observe which mutations in ttyh3 gene lead to functional changes that promote tumorigenesis, tumor invasiveness, etc. and which changes have little to no impact.
In lecture, a variety of sequencing technologies were mentioned. What technology or technologies would you use to perform sequencing on your DNA and why? I would use Illumina whole-genome sequencing (WGS), a second-generation sequencing method, because it is a relatively quick method of obtaining a base-by-base view of any single nucleotide variants (SNVs) in the genome which is essential information for understanding how mutations in the ttyh3 gene increase tumor proliferation, invaseiness, or aggression. The input for this sequencing is gDNA extracted from a tumor biopsy and prepared using the Illumina DNA Library Prep Kit. Following DNA extraction, the sample is sequenced using the “sequencing by synthesis” (SBS) technology which utilizes dNTPs bound to fluorescently-labeled reversible terminators to decode each base. The output of Illumina sequencing is a FASTQ file with quality scores.
What DNA would you want to synthesize (e.g., write) and why? Completely unrelated to my work with X. laevis, I think it would be fascinating to design a phage with a novel gene (or perhaps an entirely synthetic genome!). The protein structure could be predicted with a tool like AlphaFold, then the amino acid sequence could be reverse transcribed into cDNA for the gene of interest and integrated into a plasmid. As advancements in phage therapy show promise in combating antibiotic resistance, it would be fascinating to design a protein that would increase phage DNA replication, phage entry, etc. to increase the efficacy of the treatment.
What technology or technologies would you use to perform this DNA synthesis and why? First, and I don’t know if this is possible, I would create the desired 3D protein structure with a tool like AlphaFold and obtain the amino acid sequence. Then, similarly to this homework assignment, I would generate cDNA by reverse transcribing the AA sequence and order a plasmid from Twist (or elsewhere) with the gene of interest.
What DNA would you want to edit and why? I would like to develop a technology to perform somatic editing of the DNA of individuals with genetic diseases that result from mutations in a single gene (i.e. Huntington’s, cystic fibrosis, etc.). While many similar technologies already exist and some clinical trials have shown promise (i.e. sickle cell anemia!), I would like to expand these technologies to other genetic diseases.
What technology or technologies would you use to perform these DNA edits and why? I would use CRISPR/Cas9-mediated homlogy directed repair to excise the mutated gene and replace it with a nonmutated, functional gene. This would involve design of the nonmutated gene and the sgRNA to direct the Cas9 enzyme to the appropriate cut site. The limitations of CRISPR/Cas9 technology are possible off-target effects (low precision) or the construct not being effectively delivered to all cells (low efficiency).
My Opentrons design is meant to resemble a frog because I use Xenopus laevis as my model organism in my honors thesis research at William & Mary.
Find and describe a published paper that utilizes the Opentrons or an automation tool to achieve novel biological applications. In Sanders et al., 2022, the researchers use an Opentron robot to optimize a bacterial whole-genome sequencing (WGS) protocol for gut microbiota samples. The Opentron was used for DNA extraction and library preparation steps, reducing the overall cost of WGS by ~$10 per genome and eliminating the need for 16S rRNA gene-based screening.
Write a description about what you intend to do with automation tools for your final project. My final project will likely involve the design of a genetic circuit whose expression is regulated by a synNotch system. As such, I could use the Opentron to automatize construction of my genetic circuit.
For my final project, I am interested in engineering a synNotch-regulated circuit into Xenopus laevis, either to control cell-fate decisions or to control expression of a fluorescent protein to observe cell-cell communication during embryonic development. See my slide in the Committed Listener slide deck linked here.
Benchling Gel Design Restriction Digest Protocol Gel Preparation Protocol Gel Run and Imaging Protocol Final Gel Image
Opentrons Design Opentrons CoLab Code ### Green cursor = center_location.move(types.Point(x=-18, y = 12)) pipette_20ul.pick_up_tip() pipette_20ul.aspirate(15, location_of_color('Green')) dispense_and_detach(pipette_20ul, 3, cursor) cursor = cursor.move(types.Point(x=-4, y=4)) for i in range(4): dispense_and_detach(pipette_20ul, 3, cursor) if i!=3: cursor = cursor.move(types.Point(y=4)) pipette_20ul.aspirate(15, location_of_color('Green')) for i in range(2): cursor = cursor.move(types.Point(x=4, y=4)) dispense_and_detach(pipette_20ul, 3, cursor) cursor = cursor.move(types.Point(x=4)) for i in range(3): dispense_and_detach(pipette_20ul, 3, cursor) if i!=2: cursor = cursor.move(types.Point(x=4, y=-4)) pipette_20ul.aspirate(18, location_of_color('Green')) cursor = cursor.move(types.Point(x=4)) for i in range(3): dispense_and_detach(pipette_20ul, 3, cursor) if i!=2: cursor = cursor.move(types.Point(x=4, y=4)) cursor = cursor.move(types.Point(x=4)) for i in range(3): dispense_and_detach(pipette_20ul, 3, cursor) if i!=2: cursor = cursor.move(types.Point(x=4, y=-4)) pipette_20ul.aspirate(15, location_of_color('Green')) cursor = cursor.move(types.Point(y=-4)) for i in range(2): dispense_and_detach(pipette_20ul, 3, cursor) if i!=1: cursor = cursor.move(types.Point(y=-4)) cursor = cursor.move(types.Point(y=-4)) for i in range(3): dispense_and_detach(pipette_20ul, 3, cursor) if i!=2: cursor = cursor.move(types.Point(x=-4, y=-4)) cursor = cursor.move(types.Point(x=-4)) pipette_20ul.aspirate(18, location_of_color('Green')) for i in range(6): dispense_and_detach(pipette_20ul, 3, cursor) if i!=5: cursor = cursor.move(types.Point(x=-4)) cursor = cursor.move(types.Point(x=-4)) pipette_20ul.aspirate(15, location_of_color('Green')) for i in range(3): dispense_and_detach(pipette_20ul, 3, cursor) if i!=2: cursor = cursor.move(types.Point(x=-4, y=-4)) cursor = cursor.move(types.Point(y=-4)) for i in range(2): dispense_and_detach(pipette_20ul, 3, cursor) if i!=1: cursor = cursor.move(types.Point(y=-4)) cursor = cursor.move(types.Point(y=-4)) pipette_20ul.aspirate(15, location_of_color('Green')) for i in range(3): dispense_and_detach(pipette_20ul, 3, cursor) if i!=2: cursor = cursor.move(types.Point(x=4, y=-4)) cursor = cursor.move(types.Point(x=-12, y=16)) for i in range(2): dispense_and_detach(pipette_20ul, 3, cursor) if i!=1: cursor = cursor.move(types.Point(x=-4)) cursor = cursor.move(types.Point(x=-4, y=-4)) pipette_20ul.aspirate(9, location_of_color('Green')) dispense_and_detach(pipette_20ul, 3, cursor) cursor = cursor.move(types.Point(y=-4)) for i in range(2): dispense_and_detach(pipette_20ul, 3, cursor) if i!=1: cursor = cursor.move(types.Point(x=4, y=-4)) cursor = cursor.move(types.Point(x=-4, y=-4)) pipette_20ul.aspirate(12, location_of_color('Green')) for i in range(4): dispense_and_detach(pipette_20ul, 3, cursor) if i!=3: cursor = cursor.move(types.Point(x=4)) cursor = cursor.move(types.Point(x=12)) pipette_20ul.aspirate(18, location_of_color('Green')) for i in range(6): dispense_and_detach(pipette_20ul, 3, cursor) if i!=5: cursor = cursor.move(types.Point(x=4)) cursor = cursor.move(types.Point(x=4)) pipette_20ul.aspirate(15, location_of_color('Green')) for i in range(3): dispense_and_detach(pipette_20ul, 3, cursor) if i!=2: cursor = cursor.move(types.Point(x=4, y=4)) cursor = cursor.move(types.Point(y=4)) for i in range(2): dispense_and_detach(pipette_20ul, 3, cursor) if i!=1: cursor = cursor.move(types.Point(y=4)) cursor = cursor.move(types.Point(y=4)) pipette_20ul.aspirate(15, location_of_color('Green')) for i in range(2): dispense_and_detach(pipette_20ul, 3, cursor) if i!=1: cursor = cursor.move(types.Point(x=-4, y=4)) cursor = cursor.move(types.Point(x=8, y=-8)) dispense_and_detach(pipette_20ul, 3, cursor) cursor = cursor.move(types.Point(x=4)) for i in range(2): dispense_and_detach(pipette_20ul, 3, cursor) if i!=1: cursor = cursor.move(types.Point(x=4, y=-4)) cursor = cursor.move(types.Point(y=-4)) pipette_20ul.aspirate(18, location_of_color('Green')) for i in range(2): dispense_and_detach(pipette_20ul, 3, cursor) if i!=1: cursor = cursor.move(types.Point(x=-4, y=-4)) cursor = cursor.move(types.Point(x=4, y=-4)) for i in range(4): dispense_and_detach(pipette_20ul, 3, cursor) if i!=3: cursor = cursor.move(types.Point(x=-4)) pipette_20ul.drop_tip() pipette_20ul.pick_up_tip() ### Red cursor = cursor.move(types.Point(x=-8, y=44)) pipette_20ul.aspirate(12, location_of_color('Red')) for i in range(2): dispense_and_detach(pipette_20ul, 3, cursor) if i!=1: cursor = cursor.move(types.Point(x=-4)) cursor = cursor.move(types.Point(y=4)) for i in range(2): dispense_and_detach(pipette_20ul, 3, cursor) if i!=1: cursor = cursor.move(types.Point(x=4)) cursor = cursor.move(types.Point(x=-24)) pipette_20ul.aspirate(12, location_of_color('Red')) for i in range(2): dispense_and_detach(pipette_20ul, 3, cursor) if i!=1: cursor = cursor.move(types.Point(x=-4)) cursor = cursor.move(types.Point(y=-4)) for i in range(2): dispense_and_detach(pipette_20ul, 3, cursor) if i!=1: cursor = cursor.move(types.Point(x=4)) cursor = cursor.move(types.Point(x=4, y=-8)) pipette_20ul.aspirate(18, location_of_color('Red')) for i in range(4): dispense_and_detach(pipette_20ul, 3, cursor) if i!=3: cursor = cursor.move(types.Point(x=4)) cursor = cursor.move(types.Point(x=-4, y=-4)) for i in range(2): dispense_and_detach(pipette_20ul, 3, cursor) if i!=1: cursor = cursor.move(types.Point(x=-4)) pipette_20ul.drop_tip()

