Week 2 HW: DNA design

HTBAA Homework #2 — Designing the DNA for a 3D DLBCL Reporter Line

Repository: Povea-DLBCL-reporter · Construct: pLenti-EFS-mKate2NLS-P2A-Puro


Part 0: Setup

I joined the HTGAA 2026 workspace in Kernel and created the folder Povea-DLBCL-reporter, which holds six parts and one assembled construct, pLenti-EFS-mKate2NLS-P2A-Puro.


Part 1: Define your expression target

What molecule am I expressing?

My Homework #1 product is a tissue model rather than a molecule: standardized 3D DLBCL microtumors encapsulated in hydrogel for automated drug screening. The DNA that makes that product possible is therefore the DNA that makes it measurable. I am expressing two proteins from a single transcript:

  • mKate2, a monomeric far-red fluorescent protein, as a constitutive nuclear reporter
  • PAC (puromycin N-acetyltransferase), the selection marker that isolates a pure, stable reporter line

The readout bottleneck I identified in Homework #1 was automated imaging of cells inside a hydrogel. A constitutive fluorescent reporter lets every microtumor be segmented and quantified without endpoint dyes, which is what makes the screen automatable at all.

What is the sequence?

ElementLengthSource
mKate2232 aa · 696 bp CDS (no stop)Protein from FPbase DBBO8; Shcherbo et al. (2009) Biochem J 418:567–574. Derived from eqFP578 of the sea anemone Entacmaea quadricolor. Ex 588 / Em 633 nm.
PAC199 aa · 600 bp CDSUniProt P13249, pac gene of Streptomyces alboniger; DNA from GenBank/ENA M25346.1 (Lacalle et al. 1989, Gene 79:375–380)

Neither protein is a de novo design; both are standard reused parts. The mKate2 DNA, however, is not a copied sequence: I back-translated the FPbase protein using Homo sapiens codon preferences and verified computationally that it translates back to the FPbase protein exactly. This matters for Part 4, where it produces a deliberately different search result from PuroR.

What host or chassis?

SU-DHL-4, a human DLBCL cell line of the germinal-center B-cell (GCB) subtype — the same chassis proposed in Homework #1. Two properties of this host drive almost every part choice that follows:

  1. It grows in suspension and is difficult to transfect chemically, so delivery is by third-generation self-inactivating (SIN) lentiviral transduction. This is why the backbone is a lentiviral transfer plasmid rather than a simple expression plasmid, and it is the constraint that recurs throughout Part 4.
  2. It is a lymphoid cell, which is why the promoter is EF1α rather than CMV — CMV promoters are frequently silenced in hematopoietic lineages.

Where does the product need to go?

The nucleus, via a short SV40 NLS on the mKate2 C-terminus. Nothing is secreted, so there is no signal peptide.

The targeting decision is the one I would most defend. In a dense 3D microtumor of thousands of cells, a cytoplasmic reporter merges into a continuous mass that cannot be segmented into individual cells. Nuclei remain discrete, roughly spherical objects, which is what automated segmentation requires. Nuclear labelling also makes apoptotic nuclear fragmentation directly visible — and apoptosis is the endpoint the drug screen measures. PAC carries no targeting sequence and remains cytoplasmic, which is where it must be to acetylate puromycin.


Part 2: Design your genetic parts

LayerPartTypeLengthSource
Transcription startEFS promoterPromoter232 bpShort intron-less human EF1α promoter, pUltra/pLenti family
Translation startKozak5’ UTR with Kozak6 bpDesigned (consensus GCCACC)
Coding sequence 1mKate2CDS (+start −stop)696 bpFPbase DBBO8, back-translated for H. sapiens
TargetingSV40 NLSPeptide CDS (−start −stop)21 bpDesigned (canonical SV40 NLS, PKKKRKV)
LinkerGSG-P2APeptide CDS (−start −stop)66 bpiGEM Registry BBa_K4094004; Kim et al. 2011 PLoS ONE 6:e18556
Coding sequence 2PuroR (pac)CDS (+start +stop)603 bpUniProt P13249 / ENA M25346.1
Transcription stopBtGH1 poly(A)3’ UTR239 bpKernel library — bovine growth hormone poly(A) signal

One sentence of justification each

EFS promoter. Strong, constitutive, and resistant to silencing in hematopoietic cells, where CMV is frequently shut off; the short intron-less form was chosen over full-length EF1α to limit cargo size, since lentiviral titer falls as the insert grows.

Kozak. The consensus GCCACC gives efficient, correct translation initiation; because the mKate2 CDS begins ATGGTG, the assembled context is GCCACCATGG, with a G at position +4 — the optimal configuration.

mKate2. Far-red emission (588/633 nm) avoids the green autofluorescence of hydrogel and culture medium; it is monomeric, so no aggregation artifacts in dense 3D aggregates; and unlike luciferase it needs no substrate added per read, which is what makes it compatible with an automated imaging pipeline.

SV40 NLS. Directs the reporter to the nucleus so cells appear as discrete segmentable objects in dense 3D tissue, and makes apoptotic nuclear fragmentation visible.

GSG-P2A. A single transcript yields mKate2-NLS and PuroR at fixed 1:1 stoichiometry, which is cleaner than an IRES, where the downstream cistron is expressed weakly and variably; the GSG linker improves cleavage efficiency.

PuroR. Placed downstream of the P2A, so every cell surviving puromycin selection must have translated the entire cassette, including the reporter — this guarantees a pure reporter line without needing a cell sorter.

BtGH1 poly(A). Supplies the transcription stop and polyadenylation signal required for a mammalian expression cassette. See Part 4 for why this element is correct for the checker but wrong for the real vector.

Backbone (reused, not designed)

A third-generation SIN lentiviral transfer plasmid of the pLenti/pUltra family (e.g. Addgene #17448). It provides the 5’ LTR, the ψ packaging signal, RRE, cPPT, and the ΔU3 self-inactivating 3’ LTR — whose R-U5 region supplies polyadenylation for the integrated provirus — plus a bacterial origin and AmpR for propagation in E. coli. Kernel’s parts library contains no lentiviral LTR sequence (searching “LTR” returns only unrelated Xenopus and Lactococcus proteins), so the backbone is described rather than assembled, following the assignment’s allowance to reuse an existing backbone and state what it provides.

A note on WPRE. I considered including the woodchuck hepatitis virus posttranscriptional regulatory element, which typically raises transgene expression 2–5 fold in lentiviral vectors, but omitted it. It is the only repetitive, structured viral element that would appear in the cassette and therefore the hardest to synthesize; it would add a second biosecurity flag; and the standard WPRE contains a partial WHV X ORF whose truncated product has raised oncogenicity questions — an unnecessary confounder in a cancer-biology reporter line. If reporter brightness proves insufficient, adding WPRE (preferably a WPRE3 variant with the X ORF disabled) is the first modification I would test.


Part 3: Assemble your construct

Order, 5’→3’:

EFS promoter → Kozak → mKate2 (no stop) → SV40 NLS → GSG-P2A → PuroR (TGATAA) → BtGH1 poly(A)

Assembled length: 1,863 bp, cloned between the LTRs of the lentiviral backbone for a total transfer plasmid of roughly 9 kb.

Linear map of the assembled construct, 1,863 bp Linear map of the assembled construct, 1,863 bp

Checks reported from Kernel

  • Reading frame intact. The ORF runs 1,386 bp from the Kozak ATG through the NLS and P2A to the PuroR stop — 462 codons, divisible by three.
  • Start and stop where expected. Translation begins at GCCACC ATG GTG TCC → M V S E L, and ends at TGATAA.
  • No accidental internal stops. Kernel’s sequence viewer shows continuous translation across all four coding elements, reading MVSELIKENMHM… through …LPSKLGHR (mKate2), then PKKKRKV (NLS), GSGATNFSLLKQAGDVEENPGP (P2A), and MTEYKPTVRL… through …PRTWCMTRKPGA (PAC).
  • Orientation confirmed on the rendered linear map: all seven elements sit in the intended order, all forward.

Reading frame at the start: GCCACC-ATG-GTG translating to M V S E L Reading frame at the start: GCCACC-ATG-GTG translating to M V S E L Reading frame at the end: the TGATAA double stop Reading frame at the end: the TGATAA double stop

Two errors the assembly process caught

Building the construct surfaced two defects that were not visible while designing parts in isolation.

First, my Kozak part initially carried its own ATG (GCCACCATG) while the mKate2 CDS also began with ATG, producing a tandem ATGATG and a spurious N-terminal methionine. The reading frame survived — three extra bases is one codon — but the protein was wrong. I trimmed the Kozak part to GCCACC and let the CDS supply the start codon.

Second, and more interesting, my original design placed a bGH poly(A) inside the cassette in the forward orientation. In a lentiviral transfer plasmid this is a real error: an internal forward-orientation poly(A) prematurely terminates the full-length vector genomic RNA during packaging and sharply reduces titer. Third-generation vectors rely on the 3’ LTR instead. Part 4 describes how Kernel’s checker forced this question back open.


Part 4: Optimize and quality-check

Construct Checker

The first run returned six warnings. Three were real and I fixed them: the duplicated start codon described above; a PuroR CDS ending in a single TGA, which permits translational readthrough, extended to the double stop TGATAA; and the absence of any polyadenylation element, resolved by adding BtGH1 poly(A). The rerun returned three warnings.

Construct Checker, first run: six warnings Construct Checker, first run: six warnings Construct Checker after corrections: three warnings Construct Checker after corrections: three warnings

I judged all three remaining warnings to be expected rather than defects. The checker requires an equal number of promoters, Kozaks, 5’UTRs and 3’UTRs, but that is a generic expression-cassette grammar rather than a biological requirement: a minimal mammalian cassette needs no discrete 3’UTR, and the bGH fragment already supplies untranslated sequence plus the AATAAA signal. Adding a 3’UTR purely to satisfy a counter would introduce an element I could not justify. The remaining two mark the EFS promoter and Kozak as “not recommended” simply because they are user-created rather than drawn from Kernel’s curated library; both are standard sequences, and the EFS matches the length of Kernel’s own “Short HsEef1a1 promoter” entry.

More importantly, the checker cannot see the vector context. It required a poly(A) signal, which I supplied, but in a third-generation lentiviral transfer plasmid an internal forward-orientation poly(A) truncates the vector genomic RNA during packaging. In the real build this element would be omitted or inverted, and polyadenylation would come from the R-U5 region of the SIN 3’ LTR. The checker’s rule is correct for a standard plasmid and wrong for this vector class — which is exactly why these tools inform a design rather than dictate it.

Codon optimization

I optimized the PuroR CDS for Homo sapiens using Kernel’s Simple v0.3 optimizer, with BsmBI and BsaI as forbidden sites and TGA+TAA as included stop codons. The optimizer returned a 603 bp sequence encoding an identical 199 aa protein, confirming the recoding was synonymous, and correctly appended the second stop codon to give TGATAA.

Codon optimization of PuroR for Homo sapiens Codon optimization of PuroR for Homo sapiens

I had expected GC content to fall sharply, since native pac comes from Streptomyces alboniger, a high-GC actinobacterium. It fell only from 73.3% to 69.8%, far outside my stated 45–60% target. Examining the amino acid composition explains why: PAC is 14% alanine, 11% valine, 8.5% proline and 8% glycine, and the preferred human codons for these residues (GCC, GTG, CCC, GGC) are themselves 2/3 to 3/3 GC. Eighty percent of PAC’s residues have a preferred human codon of at least 2/3 GC. If every residue used its single most-frequent human codon, GC would still be 70.4% — and the optimizer returned 69.8%, essentially that floor.

The useful conclusion is that two of my constraints are in direct conflict for this protein. Codon adaptation and GC targeting cannot both be satisfied, because amino acid composition sets a lower bound on GC that no synonymous recoding can cross. Lowering GC further would require deliberately choosing rare codons, defeating the purpose of optimization. For this cassette I would keep codon adaptation and drop the GC constraint, noting that high GC raises synthesis cost and difficulty rather than harming expression. Kernel reported the Asimov Codon Usage Index and RNA structure score as N/A for this optimizer version, so the GC figures above are my own calculation from the returned sequence.

Kernel’s Toolbox offers no BLAST-style database search; it provides pairwise alignment and an automatic part-matching function that compares a sequence against Kernel’s repositories and the iGEM Registry. I used part matching as the closest available equivalent, searching all repositories and all part types. At the default 7-nucleotide threshold the search returns only noise — dozens of 7 bp coincidental hits to unrelated iGEM parts — so I raised the minimum match length to 50 nucleotides.

Part match on mKate2 at a 50-nucleotide threshold: only a self-match Part match on mKate2 at a 50-nucleotide threshold: only a self-match

At that threshold the mKate2 CDS returned a single hit: itself, in my own repository. No external repository contains this sequence. That is the expected and correct result, because the CDS was back-translated from the FPbase DBBO8 protein using human codon preferences — novel at the nucleotide level while encoding a known protein whose closest natural relative is eqFP578 from Entacmaea quadricolor.

By contrast, when I created the GSG-P2A part, Kernel immediately reported an exact match to iGEM Registry part BBa_K4094004 (“P2A. Self-cleaving peptide.”, 66 bp), independently confirming it as the canonical sequence rather than a variant. That entry is read-only and typed “Miscellaneous,” so I created a properly typed copy as Peptide CDS to preserve Kernel’s reading-frame validation across the cassette.

Kernel reporting an exact match of GSG-P2A to iGEM Registry part BBa_K4094004 Kernel reporting an exact match of GSG-P2A to iGEM Registry part BBa_K4094004

Together these answer the question directly: one part of my construct is identical to a catalogued sequence, the other is synonymous-novel by design.

Biosecurity screen

I scanned the assembled cassette with Kernel’s SecureDNA-based biosecurity sequence scanner, which compares an input sequence against a database of potential biosecurity threats. The scan returned one flagged region, spanning approximately positions 960–1021, identified as Porcine teschovirus.

SecureDNA biosecurity scan: one flagged region, Porcine teschovirus SecureDNA biosecurity scan: one flagged region, Porcine teschovirus

This is expected by design and maps exactly onto the GSG-P2A part. The P2A self-cleaving peptide is derived from porcine teschovirus-1, a fact recorded in the part’s own description. The flagged region is 66 bp encoding a 22 amino acid peptide whose only function is to make the ribosome skip formation of a single peptide bond, releasing the upstream protein and continuing translation of the downstream one. It carries no replicative, infectious or pathogenic function of the parent virus, and porcine teschovirus is a swine pathogen with no human host range. P2A is among the most widely used parts in mammalian expression.

My response would be no change to the design. The correct handling is documentation rather than removal: the element’s viral origin is declared in the part record, the construct is handled at BSL-2 as standard for lentiviral work, and the flag would be explained in any synthesis order. This is a useful illustration of what a biosecurity screen does and does not tell you — it reports sequence provenance accurately, but risk assessment requires knowing what the matched fragment actually encodes. Notably, neither mKate2 nor PuroR triggered a flag, despite the latter being an antibiotic-resistance marker.


Part 5: From design to build

How would I build it?

One synthetic gene fragment, assembled into the cut backbone by Gibson assembly.

The cassette is 1,863 bp — comfortably within the roughly 3 kb capacity of a commercial gene fragment, so there is no need to split it. I would order it as a single sequence-verified double-stranded fragment with 20–40 bp homology arms matching the restriction-cut lentiviral backbone, then join the two in one isothermal reaction. Gibson assembly is the right method here because it is scarless, sequence-independent at the junctions, and joins fragments in a single step without intermediate subcloning (Gibson et al. 2009).

Ordering a fragment rather than building from raw oligos is the correct trade-off at this scale. Chip-synthesized oligo pools make DNA synthesis dramatically cheaper per base, but each oligo carries roughly one error per few hundred bases, so gene-length constructs assembled from pools require error correction — mismatch-binding enzymes that remove error-containing duplexes (Carr et al. 2004), or selective amplification of correct oligos from the pool (Kosuri et al. 2010). For a single 1.9 kb cassette, ordering a pre-assembled sequence-verified fragment shifts that burden to the vendor at negligible cost.

What does synthesis constrain?

My design contains one genuinely difficult region and one I removed.

PuroR at 69.8% GC is the hard part. High-GC sequences form stable secondary structures that stall polymerase during assembly PCR and cause synthesis failures or deletions. This is a direct consequence of the finding in Part 4: because PAC’s amino acid composition sets a GC floor near 70%, I cannot recode my way out of it. If the vendor rejected the fragment I would split the order at a lower-GC junction rather than compromise codon adaptation.

WPRE was the other candidate difficulty — a repetitive, structured viral element — and omitting it removed that problem entirely. The remaining elements are unremarkable: no long homopolymers (the longest run in mKate2 is 5 nt), no extreme local GC in the reporter, and no repeats.

Prototype vs. scale

These barely differ, and that is the interesting part. This construct is built exactly once. One Gibson assembly, one sequence-verified plasmid, one lentiviral production run, one transduction, one puromycin selection — and from then on the “manufacturing” is done by the cells themselves, copying the integrated provirus every division.

Scaling the Homework #1 screen from one 96-well plate to 52 plates of 384 wells scales cell expansion, not DNA synthesis. The DNA requirement is flat with respect to screen size. This is the sharpest contrast with Homework #1, where the bottleneck was biological throughput: here the genetic design is a one-time fixed cost, and the only thing that would send me back to DNA synthesis is a design change — a different promoter if EF1α silences, or adding WPRE if the signal is too dim.


Part 6: What don’t I know yet?

1. Will EFS drive sufficient expression in SU-DHL-4, and will it stay on? Promoter silencing over weeks of culture would dim the reporter mid-screen and invalidate comparisons between early and late plates. How to find out: transduce, select, then track mKate2 mean fluorescence by flow cytometry weekly for four weeks. If it decays, test SFFV or CAG promoter variants — a change that would require re-ordering the promoter but not the rest of the cassette.

2. Is far-red signal detectable through the hydrogel at screen density? Scattering and gel autofluorescence could bury the signal at 100–200 µm imaging depth, which would defeat the entire purpose of the construct. How to find out: encapsulate labelled cells in the actual hydrogel at screen density (5,000 cells per 10 µL) and measure signal-to-noise against 2D culture on the automated microscope. This is the assumption the whole design rests on and the first thing I would test.

3. Does the reporter line still behave like the parental line? Lentiviral integration is semi-random, and puromycin selection plus constitutive reporter expression could alter growth rate or drug response — which would silently corrupt every 2D-vs-3D IC50 comparison the screen produces. How to find out: compare doubling time and doxorubicin dose-response curves for labelled versus parental SU-DHL-4. They must match within experimental error before the line is used for screening.

A fourth, smaller unknown: the SV40 NLS ends up internal rather than C-terminal after P2A cleavage, since the ~21 aa 2A remnant is appended downstream of it. The SV40 NLS is known to function internally, but I would confirm nuclear localization by microscopy before trusting the segmentation pipeline.


References

  • Carr, P. A. et al. (2004). Protein-mediated error correction for de novo DNA synthesis. Nucleic Acids Research 32:e162.
  • Gibson, D. G. et al. (2009). Enzymatic assembly of DNA molecules up to several hundred kilobases. Nature Methods 6:343–345.
  • Kim, J. H. et al. (2011). High cleavage efficiency of a 2A peptide derived from porcine teschovirus-1. PLoS ONE 6:e18556.
  • Kosuri, S. et al. (2010). Scalable gene synthesis by selective amplification of DNA pools from high-fidelity microchips. Nature Biotechnology 28:1295–1299.
  • Lacalle, R. A. et al. (1989). Molecular analysis of the pac gene encoding a puromycin N-acetyl transferase from Streptomyces alboniger. Gene 79:375–380.
  • Shcherbo, D. et al. (2009). Far-red fluorescent tags for protein imaging in living tissues. Biochemical Journal 418:567–574.
  • FPbase: mKate2, FPbase ID DBBO8. https://www.fpbase.org/protein/mkate2/
  • UniProt P13249 (PUAC_STRAD); ENA/GenBank M25346.1
  • iGEM Registry: BBa_K4094004

AI

I used Claude Opus 5, and Kimi for an initial draft of the construct design.

Claude was used to review and correct that draft, to retrieve and verify sequences from primary databases (UniProt, ENA, FPbase), to back-translate the mKate2 CDS and verify it round-trips to the FPbase protein, to compute GC content and amino acid composition when Kernel returned N/A, and to interpret the outputs of Kernel’s tools. Representative prompts:

Corrections Claude made to the initial draft that I verified and adopted: mKate2 is 232 aa with Ex/Em 588/633 nm (the draft said 234 aa and 635 nm); the internal forward-orientation bGH poly(A) would collapse lentiviral titer; the reporter should be nuclear rather than cytoplasmic for 3D segmentation; and the cassette fits in one synthetic fragment rather than two.