Version Compatibility
Reference examples tested with: BioPython 1.83+, PrimeDesign 1.2+ (Docker), PRIDICT2.0 (web/code).
Before using code patterns, verify installed versions match. If versions differ:
- Python:
pip show <package> then help(module.function) to check signatures
- CLI:
<tool> --version then <tool> --help to confirm flags
If code throws ImportError, AttributeError, or TypeError, introspect the installed package and adapt the example to match the actual API rather than retrying.
PrimeDesign is Docker-only (no pip) and takes the edit inline in a single string with exact parenthesis notation (below) -- the most-hallucinated thing in PE tooling; verify it against the repo, never reconstruct from memory. Outcome-prediction models are trained mostly on HEK293T + small edits (<=3 bp); their scores are priors, not measurements, and degrade off-distribution. The PE system (MMR status, expressed vs synthetic pegRNA) drives efficiency more than any oligo tweak.
Prime Editing Design
"Install a precise small edit without a double-strand break" -> Establish the edit, cell type, MMR status, and delivery; choose the nick position/strand; design a panel of PBS x RTT combinations; pick the PE system; add the free wins (PAM-disrupting + MMR-evading silent edits, a 3' motif); rank with a model; and test.
- CLI (Docker):
PrimeDesign generates ranked pegRNA + nicking-guide components from a reference + edit string
- Python: assemble/sweep PBS x RTT panels with
Bio.Seq; enforce the don't-end-on-C and 5'-G rules
- Web/code: PRIDICT2.0 / DeepPrime rank candidates by intended-edit and indel rate
The Single Most Important Modern Insight -- there is no universal PBS/RTT optimum, and the system choice carries the order of magnitude
Two reframes:
PBS and RTT length are parameters to optimize per locus, not constants to look up. The PBS x RTT optimum is locus-specific -- it depends on local GC (which sets the PBS annealing Tm), the edit, the nick-to-edit distance, and chromatin. A high-GC target wants a short PBS; a low-GC target a long one; the "13/15" that is perfect at one locus is useless 200 bp away. A hard-coded default produces a sequence that looks valid, so nothing flags it until the data come back at 2%. The correct deliverable is a ranked panel (a few PBS x a few RTT x the viable nicks), tested or model-ranked -- emitting a single pegRNA is the tell of someone who has never run PE.
Prime editing efficiency is a cellular-genetics problem, not just oligo design. The cell's mismatch repair (MMR; MutSalpha/MutLalpha) detects the edit:original heteroduplex and excises the edited strand, reverting it and spawning indels. The biggest post-2019 jump was not a better PBS -- it was inhibiting MMR (MLH1dn -> PE4/PE5, ~7.7x average). The second was stopping the pegRNA 3' end from being degraded (epegRNA motifs; PE7's La protein). Design now means choosing the system (PE2 vs PE3b vs PE5max+epegRNA vs PE7) as much as the sequence. First branch: what edit, what cell type, MMR-proficient or not, expressed or synthetic.
Mechanism (the design rules fall out of it)
The prime editor (Anzalone 2019) is Cas9 H840A nickase + engineered M-MLV reverse transcriptase, programmed by a pegRNA = sgRNA (spacer + scaffold) with a 3' extension read 5'->3' as [RTT][PBS]. (1) The nickase cuts the protospacer (PAM) strand 3 nt 5' of the PAM, exposing a free 3'-OH. (2) The PBS anneals to that nicked 3' end (the genomic strand becomes the primer). (3) The RT extends through the RTT, synthesizing a new 3' DNA flap that encodes the edit. (4) FEN1-type nucleases preferentially excise the unedited 5' flap, favoring incorporation of the edited 3' flap; ligation seals it. (5) The resulting heteroduplex is resolved by MMR -- which preferentially reverts the edit (hence the MMR section below). Consequences: PBS length is tuned by annealing Tm; **RTT length = nick-to-edit distance + edit + 3' homology tail (10-16 nt)**; efficiency falls as the edit moves farther from the nick; the edit must lie within the RTT.
The PE System Stack -- orthogonal axes, not a "bigger number is better" ranking
| System |
Adds over previous |
Acts on |
Cite |
| PE1 |
Cas9 H840A + wild-type M-MLV RT |
proof of concept |
Anzalone 2019 |
| PE2 |
engineered M-MLV RT (pentamutant) |
the workhorse enzyme |
Anzalone 2019 |
| PE3 |
+ second nicking sgRNA on the non-edited strand (~1.5-4x) |
flap resolution / MMR strand bias -- but raises indels (transient near-DSB) |
Anzalone 2019 |
| PE3b |
PE3 ngRNA matching only the edited sequence -> nick fires after the edit |
near-eliminates PE3's indels; only possible when the edit makes/breaks a protospacer |
Anzalone 2019 |
| PE4 |
PE2 + MLH1dn (dominant-negative MMR) (~7.7x avg) |
MMR globally |
Chen 2021 |
| PE5 |
PE3 + MLH1dn |
second nick + MMR |
Chen 2021 |
| PEmax |
optimized protein (codon, NLS, R221K/N394K, linker); +MLH1dn = PE4max/PE5max |
the protein |
Chen 2021 |
| PE7 |
PEmax-family + La-protein RBD capping the pegRNA 3' end |
pegRNA stability |
Yan 2024 |
The expert move is to reason about which axis the problem needs: low efficiency in an MMR-active cell -> add MLH1dn; too many indels -> drop to PE2 or design PE3b (not PE3); short pegRNA half-life -> epegRNA/PE7. Note: in MMR-deficient lines (HCT116, many tumor lines) PE2 already behaves like PE4, so MLH1dn adds nothing -- benchmark numbers from such lines overstate the gain in MMR-proficient primary cells. PE5max + epegRNA is the modern default workhorse for hard, MMR-active contexts.
pegRNA Parameters & the Free Wins
- PBS (~8-17 nt; start ~11-15): tune to annealing Tm/GC, not a fixed length. pegFinder's starting heuristic is PBS ~= 24 - (GC%/5), clamped 8-17; test a small ladder (e.g. 10/13/15/17).
- RTT: = nick-to-edit + edit + ~10-16 nt 3' homology. Shorter RTT is usually more efficient -- use the shortest that spans the edit with adequate homology, then test a couple.
- Don't end the synthesized flap on a C (a C at the +1 templated position lowers efficiency; PrimeDesign exposes
--filter_c1_extension).
- 5' G for U6: prepend a G if the spacer lacks one -- prepend, do not replace the first base (replacing creates a spacer:target mismatch).
- PAM-disrupting silent edit (free win): if the edit (or an added silent change) destroys the protospacer/PAM, the editor cannot re-nick the edited strand -> fewer indels, and the change doubles as an MMR-evading mismatch. Always check whether the edit can be routed to disrupt the PAM.
- MMR-evading bystander edits (free win): add 1-2 silent substitutions next to the intended edit to make a >=3-bp edited "bubble" that MMR recognizes less efficiently -> higher correct-edit yield. Trivial in coding sequence (synonymous codons); the tactic of choice before reaching for MLH1dn.
epegRNA 3' Motifs & pegRNA Stability
The pegRNA 3' extension (RTT+PBS) is single-stranded RNA that is exonucleolytically degraded before it can prime RT -- an invisible failure (the molecule is made, just chewed back). epegRNAs append a structured pseudoknot motif to the 3' end (Nelson 2022): use tevopreQ1 by default (~3-4x gain, no added off-target); mpknot is larger and benefits most from a pegLIT-designed linker (tevopreQ1/evopreQ1 often work linker-free). PE7 (La protein) attacks the same degradation from the protein side and is partly redundant with epegRNAs (PE7's gains are largest with plain pegRNAs) -- don't stack them as if independent. For synthetic (non-expressed) pegRNAs where a folded motif is awkward, PE7 / La-optimized 3' chemistry is the lever instead.
Outcome Prediction (rank, but still test)
| Model |
Predicts |
Cite |
| PRIDICT / PRIDICT2.0 |
intended-edit + unintended (indel) rate; 2.0 is chromatin-aware across lines |
Mathis 2023 Nat Biotechnol 41:1151; Mathis 2025 Nat Biotechnol 43:712 |
| DeepPrime / DeepPrime-FT |
efficiency across 8 PE systems x 7 cell types, edits <=3 bp |
Yu 2023 Cell 186:2256 |
| Easy-Prime |
XGBoost pegRNA design with RNA-structure features |
Li 2021 Genome Biol 22:235 |
Limits: trained mostly on HEK293T + small edits; scores degrade for large edits, untrained cell types, primary/iPS cells, and in vivo loci. A high score says "worth synthesizing," not "will work in the target cell." Report edit:indel purity, not efficiency alone (PE3's indel liability hides when only the intended-edit rate is reported).
Large / Advanced Edits (single-pegRNA PE runs out of room)
| Strategy |
Mechanism |
Size |
Cite |
| twinPE |
two pegRNAs template complementary flaps -> replacement/deletion/inversion |
up to ~hundreds bp; +recombinase -> kb |
Anzalone 2022 Nat Biotechnol 40:731 |
| GRAND editing |
dual pegRNAs, RTTs complementary to each other (non-genomic) -> template-free insertion |
up to a few hundred bp (drops sharply >~400 bp) |
Wang 2022 |
| PASTE |
PE writes a serine-integrase attB site, integrase drops in a donor |
~10-36 kb, DSB-free |
Yarnall 2023 Nat Biotechnol 41:500 |
Route "knock in a 2 kb reporter" to twinPE+integrase/PASTE (or HDR/HITI) -- a single giant-RTT pegRNA is a category error.
Decision Tree by Scenario
| Scenario |
Recommended |
Why |
| C->T / G->A or A->G / T->C transition, base positionable in a window |
-> base-editing-design |
BE is higher-efficiency, cleaner, no flap/MMR competition for its transition |
| Any of the other small edits (other transversions, small indels, combined) |
prime editing, panel of PBS x RTT |
PE owns the precise-small-edit-without-a-DSB box |
| Low efficiency in an MMR-proficient cell |
PE4/PE5 (MLH1dn) + MMR-evading silent edits |
MMR is the dominant barrier |
| Indels unacceptable (therapeutic) |
PE2 or PE3b (not PE3) |
PE3's second nick raises indels |
| Expressed pegRNA |
add a tevopreQ1 3' motif (PE5max+epegRNA default) |
fixes invisible 3'-degradation |
| Large insertion (genes/tags, >~hundreds bp) |
-> twinPE+integrase / PASTE / hdr-template-design |
beyond single-pegRNA flap capacity |
| Knockout only (any frameshift) |
-> grna-design (plain Cas9) |
PE's precision is wasted; nuclease is simpler/more efficient |
| Validate edits |
-> crispr-screens/crispresso-editing |
quantify intended-edit and indel rates from amplicons |
Generate Designs with PrimeDesign (verified notation)
Goal: Produce ranked pegRNA + nicking-guide candidates for a precise edit.
Approach: Encode the reference and edit in ONE inline string with PrimeDesign's exact parenthesis notation, then run the Docker CLI; it sweeps PBS/RTT, ranks pegRNAs (PAM-disrupted preferred), and nominates ngRNAs. Do not hand-roll the design as the only step.
# PrimeDesign edit-string notation (verify against the repo README; the most-hallucinated PE detail):
# substitution: ...AAACG(T/A)CTTCC... # ref/edit, slash-separated
# insertion: ...AAACGT(+CTT)CTTCC... # bare leading + (also (/CTT))
# deletion: ...AAAAC(-GTCT)TCCAAT... # bare leading - (also (GTCT/))
# combinatorial: GCCTGTGACTAACTGC(G/T)CCA(+ATCG)AAACGTC(-TTCC)AATCCCCTTATCCAATTTA
docker run -v ${PWD}/:/DATA -w /DATA pinellolab/primedesign primedesign_cli \
-f edits.csv -pbs 10 12 14 -rtt 10 16 22 -nick_dist_min 0 -nick_dist_max 100 -out designs/
Sweep a PBS x RTT Panel and Enforce the Hard Rules
Goal: Build a small, ordered panel of pegRNA extensions for one nick, applying the don't-end-on-C and 5'-G rules.
Approach: For each PBS length, take the reverse complement of the genomic sequence 5' of the nick; for each RTT length, build the edited 3' flap and reject extensions whose first templated base is C. Rank the panel by a model (PRIDICT/DeepPrime) for synthesis. (See examples/prime_editing_design.py.)
from Bio.Seq import Seq
def prepend_u6_g(spacer):
return spacer if spacer.startswith('G') else 'G' + spacer # prepend, never replace
Per-Method Failure Modes
One pegRNA from a fixed PBS=13/RTT=15
Trigger: treating PBS/RTT as constants. Mechanism: the optimum is locus-specific (GC/Tm/nick distance/chromatin). Symptom: valid-looking pegRNA, ~2% editing. Fix: design and test a PBS x RTT panel; rank with PRIDICT2.0/DeepPrime.
Designed for the edit, ignored the repair machinery
Trigger: installing only the literal intended base. Mechanism: MMR reverts the edit; an intact PAM lets the editor re-nick. Symptom: low yield + indels. Fix: add a PAM-disrupting silent edit and 1-2 MMR-evading silent edits; use PE4/PE5 (MLH1dn) in MMR-active cells.
Reached for PE3 when PE3b was available
Trigger: reading the ladder as a scalar. Mechanism: PE3's second nick is a transient near-DSB. Symptom: good efficiency, unacceptable indels. Fix: if the edit makes/breaks a protospacer, design PE3b; otherwise drop to PE2/PE4.
Reported % editing without % indels
Trigger: efficiency-only readout. Mechanism: PE yields a mix (edit/unedited/indel). Symptom: a "40%" pegRNA that throws 15% indels looks fine. Fix: report edit:indel purity (PRIDICT predicts both).
Trusted a model score off-distribution / forgot the locus
Trigger: picking the top-scored pegRNA, skipping the panel, in a non-HEK293T context. Mechanism: models are trained on HEK293T + small edits; chromatin dominates and is invisible to sequence. Symptom: "designed perfectly, didn't work." Fix: weight the model less far from training; still test; a closed locus may sink any design.
5' G replaced, or flap ends on C, or large insert forced into one pegRNA
Trigger: 'G'+spacer[1:]; RTT ending on C; 2 kb into one RTT. Mechanism: spacer:target mismatch; +1-C re-incorporation; flap can't template/resolve. Fix: prepend the G; shift RTT off a terminal C; route large inserts to twinPE/PASTE.
Quantitative Thresholds
| Parameter |
Value |
Source |
| PBS length |
~8-17 nt, tuned to Tm/GC (start ~24-GC%/5) |
Anzalone 2019; pegFinder heuristic |
| RTT |
edit + ~10-16 nt 3' homology; shortest workable |
Anzalone 2019 |
| Nick-to-edit |
as small as possible; efficiency falls with distance |
Anzalone 2019 |
| PE3 ngRNA distance |
~40-100 bp (sweet spot ~50-90), non-edited strand |
Anzalone 2019 |
| Flap +1 base |
not C |
Anzalone 2019 / PrimeDesign --filter_c1_extension |
| MMR inhibition gain |
~7.7x avg (MMR-proficient cells only) |
Chen 2021 |
| epegRNA 3' motif |
tevopreQ1 default; ~3-4x |
Nelson 2022 |
| Deliverable |
a ranked panel, report edit:indel purity |
field practice |
Common Errors
| Error / symptom |
Cause |
Solution |
| Editing ~2% despite a "perfect" pegRNA |
fixed PBS/RTT, unfavorable locus |
test a panel; consider MLH1dn/epegRNA; the locus may be closed |
| High indels with PE3 |
second nick on non-edited strand |
use PE3b (if the edit makes/breaks a protospacer) or PE2 |
| PrimeDesign mis-encodes the edit |
wrong inline notation |
use exact (ref/edit)/(+ins)/(-del); verify against the repo |
| No benefit from MLH1dn |
MMR-deficient cell line |
PE2 already behaves like PE4 there |
References
- Anzalone AV, Randolph PB, Davis JR, et al. (2019). Search-and-replace genome editing without double-strand breaks or donor DNA. Nature 576(7785):149-157.
- Chen PJ, Hussmann JA, Yan J, et al. (2021). Enhanced prime editing systems by manipulating cellular determinants of editing outcomes. Cell 184(22):5635-5652.
- Nelson JW, Randolph PB, Shen SP, et al. (2022). Engineered pegRNAs improve prime editing efficiency. Nat Biotechnol 40(3):402-410.
- Yan J, Oyler-Castrillo P, Ravisankar P, et al. (2024). Improving prime editing with an endogenous small RNA-binding protein. Nature 628(8008):639-647.
- Anzalone AV, Gao XD, Podracky CJ, et al. (2022). Programmable deletion, replacement, integration and inversion of large DNA sequences with twin prime editing. Nat Biotechnol 40(5):731-740.
- Yarnall MTN, Ioannidi EI, Schmitt-Ulms C, et al. (2023). Drag-and-drop genome insertion of large sequences without double-strand DNA cleavage using CRISPR-directed integrases (PASTE). Nat Biotechnol 41(4):500-512.
- Hsu JY, Grunewald J, Szalay R, et al. (2021). PrimeDesign software for rapid and simplified design of prime editing guide RNAs. Nat Commun 12:1034.
- Chow RD, Chen JS, Shen J, Chen S (2021). A web tool for the design of prime-editing guide RNAs (pegFinder). Nat Biomed Eng 5(2):190-194.
- Mathis N, Allam A, Kissling L, et al. (2023). Predicting prime editing efficiency and product purity by deep learning (PRIDICT). Nat Biotechnol 41(8):1151-1159.
- Mathis N, Allam A, Talas A, et al. (2025). Machine learning prediction of prime editing efficiency across diverse chromatin contexts (PRIDICT2.0). Nat Biotechnol 43(5):712-719.
- Yu G, Kim HK, Park J, et al. (2023). Prediction of efficiencies for diverse prime editing systems in multiple cell types (DeepPrime). Cell 186(10):2256-2272.
- Li Y, Chen J, Tsai SQ, Cheng Y (2021). Easy-Prime: a machine learning-based prime editor design tool. Genome Biol 22:235.
Related Skills
- base-editing-design - Preferred for the single transition a base editor can make
- grna-design - Generic spacer scoring; plain-nuclease knockout when precision is unneeded
- off-target-prediction - pegRNA spacer and PE3 nicking-guide off-target considerations
- hdr-template-design - Large-insertion alternative (HDR/HITI) when PASTE/twinPE is not used
- crispr-screens/prime-editing-screens - Pooled prime-editing screen analysis
- crispr-screens/crispresso-editing - Quantify intended-edit vs indel rates from amplicons
- variant-calling/variant-annotation - Identify the pathogenic variant to correct or install
1---2name: bio-genome-engineering-prime-editing-design3description: Designs pegRNAs and nicking guides for prime editing (PE) -- choosing the nick/strand, tuning the primer-binding site (PBS) and reverse-transcription template (RTT) as a per-locus panel, selecting the PE system (PE2/PE3/PE3b/PE4/PE5/PEmax/PE7), adding MMR-evading and PAM-disrupting silent edits, appending epegRNA 3' motifs (tevopreQ1/mpknot), and ranking with PRIDICT/DeepPrime. Covers twinPE/PASTE for large insertions and the prime-vs-base-editing decision. Use when designing a scarless point mutation, small insertion/deletion, or any of the 12 base conversions without a double-strand break, when efficiency is low and MMR inhibition or pegRNA stabilization is needed, or when routing a large insertion to an integrase method. Generic guide scoring and base editing are separate skills.4---56## Version Compatibility78Reference examples tested with: BioPython 1.83+, PrimeDesign 1.2+ (Docker), PRIDICT2.0 (web/code).910Before using code patterns, verify installed versions match. If versions differ:11- Python: `pip show <package>` then `help(module.function)` to check signatures12- CLI: `<tool> --version` then `<tool> --help` to confirm flags1314If code throws ImportError, AttributeError, or TypeError, introspect the installed package and adapt the example to match the actual API rather than retrying.1516PrimeDesign is Docker-only (no pip) and takes the edit inline in a single string with exact parenthesis notation (below) -- the most-hallucinated thing in PE tooling; verify it against the repo, never reconstruct from memory. Outcome-prediction models are trained mostly on HEK293T + small edits (<=3 bp); their scores are priors, not measurements, and degrade off-distribution. The PE *system* (MMR status, expressed vs synthetic pegRNA) drives efficiency more than any oligo tweak.1718# Prime Editing Design1920**"Install a precise small edit without a double-strand break"** -> Establish the edit, cell type, MMR status, and delivery; choose the nick position/strand; design a *panel* of PBS x RTT combinations; pick the PE system; add the free wins (PAM-disrupting + MMR-evading silent edits, a 3' motif); rank with a model; and test.21- CLI (Docker): `PrimeDesign` generates ranked pegRNA + nicking-guide components from a reference + edit string22- Python: assemble/sweep PBS x RTT panels with `Bio.Seq`; enforce the don't-end-on-C and 5'-G rules23- Web/code: PRIDICT2.0 / DeepPrime rank candidates by intended-edit and indel rate2425## The Single Most Important Modern Insight -- there is no universal PBS/RTT optimum, and the *system* choice carries the order of magnitude2627Two reframes:28291. **PBS and RTT length are parameters to optimize per locus, not constants to look up.** The PBS x RTT optimum is locus-specific -- it depends on local GC (which sets the PBS annealing Tm), the edit, the nick-to-edit distance, and chromatin. A high-GC target wants a *short* PBS; a low-GC target a *long* one; the "13/15" that is perfect at one locus is useless 200 bp away. A hard-coded default produces a sequence that *looks* valid, so nothing flags it until the data come back at 2%. The correct deliverable is **a ranked panel** (a few PBS x a few RTT x the viable nicks), tested or model-ranked -- emitting a single pegRNA is the tell of someone who has never run PE.30312. **Prime editing efficiency is a cellular-genetics problem, not just oligo design.** The cell's mismatch repair (MMR; MutSalpha/MutLalpha) detects the edit:original heteroduplex and excises the *edited* strand, reverting it and spawning indels. The biggest post-2019 jump was not a better PBS -- it was **inhibiting MMR (MLH1dn -> PE4/PE5, ~7.7x average)**. The second was **stopping the pegRNA 3' end from being degraded** (epegRNA motifs; PE7's La protein). Design now means choosing the *system* (PE2 vs PE3b vs PE5max+epegRNA vs PE7) as much as the sequence. First branch: what edit, what cell type, MMR-proficient or not, expressed or synthetic.3233## Mechanism (the design rules fall out of it)3435The prime editor (Anzalone 2019) is **Cas9 H840A nickase + engineered M-MLV reverse transcriptase**, programmed by a **pegRNA** = sgRNA (spacer + scaffold) with a 3' extension read 5'->3' as **[RTT][PBS]**. (1) The nickase cuts the protospacer (PAM) strand ~3 nt 5' of the PAM, exposing a free 3'-OH. (2) The **PBS** anneals to that nicked 3' end (the genomic strand becomes the primer). (3) The RT extends through the **RTT**, synthesizing a new 3' DNA flap that *encodes the edit*. (4) FEN1-type nucleases preferentially excise the unedited 5' flap, favoring incorporation of the edited 3' flap; ligation seals it. (5) The resulting heteroduplex is resolved by MMR -- which preferentially reverts the edit (hence the MMR section below). Consequences: PBS length is tuned by annealing Tm; **RTT length = nick-to-edit distance + edit + 3' homology tail (~10-16 nt)**; efficiency falls as the edit moves farther from the nick; the edit must lie within the RTT.3637## The PE System Stack -- orthogonal axes, not a "bigger number is better" ranking3839| System | Adds over previous | Acts on | Cite |40|--------|--------------------|---------|------|41| PE1 | Cas9 H840A + **wild-type** M-MLV RT | proof of concept | Anzalone 2019 |42| **PE2** | **engineered M-MLV RT** (pentamutant) | the workhorse enzyme | Anzalone 2019 |43| PE3 | + second **nicking sgRNA** on the non-edited strand (~1.5-4x) | flap resolution / MMR strand bias -- **but raises indels** (transient near-DSB) | Anzalone 2019 |44| **PE3b** | PE3 ngRNA matching only the **edited** sequence -> nick fires *after* the edit | near-eliminates PE3's indels; **only possible when the edit makes/breaks a protospacer** | Anzalone 2019 |45| PE4 | PE2 + **MLH1dn** (dominant-negative MMR) (~7.7x avg) | MMR globally | Chen 2021 |46| PE5 | PE3 + MLH1dn | second nick + MMR | Chen 2021 |47| **PEmax** | optimized protein (codon, NLS, R221K/N394K, linker); +MLH1dn = **PE4max/PE5max** | the protein | Chen 2021 |48| PE7 | PEmax-family + **La-protein** RBD capping the pegRNA 3' end | pegRNA stability | Yan 2024 |4950The expert move is to reason about which axis the problem needs: low efficiency in an MMR-active cell -> add MLH1dn; too many indels -> drop to PE2 or design **PE3b** (not PE3); short pegRNA half-life -> epegRNA/PE7. Note: in **MMR-deficient lines** (HCT116, many tumor lines) PE2 already behaves like PE4, so MLH1dn adds nothing -- benchmark numbers from such lines overstate the gain in MMR-proficient primary cells. **PE5max + epegRNA is the modern default workhorse** for hard, MMR-active contexts.5152## pegRNA Parameters & the Free Wins5354- **PBS (~8-17 nt; start ~11-15):** tune to annealing Tm/GC, not a fixed length. pegFinder's starting heuristic is PBS ~= 24 - (GC%/5), clamped 8-17; test a small ladder (e.g. 10/13/15/17).55- **RTT:** = nick-to-edit + edit + ~10-16 nt 3' homology. Shorter RTT is usually more efficient -- use the shortest that spans the edit with adequate homology, then test a couple.56- **Don't end the synthesized flap on a C** (a C at the +1 templated position lowers efficiency; PrimeDesign exposes `--filter_c1_extension`).57- **5' G for U6:** prepend a G if the spacer lacks one -- **prepend, do not replace** the first base (replacing creates a spacer:target mismatch).58- **PAM-disrupting silent edit (free win):** if the edit (or an added silent change) destroys the protospacer/PAM, the editor cannot re-nick the edited strand -> fewer indels, and the change doubles as an MMR-evading mismatch. Always check whether the edit can be routed to disrupt the PAM.59- **MMR-evading bystander edits (free win):** add 1-2 *silent* substitutions next to the intended edit to make a >=3-bp edited "bubble" that MMR recognizes less efficiently -> higher correct-edit yield. Trivial in coding sequence (synonymous codons); the tactic of choice before reaching for MLH1dn.6061## epegRNA 3' Motifs & pegRNA Stability6263The pegRNA 3' extension (RTT+PBS) is single-stranded RNA that is **exonucleolytically degraded** before it can prime RT -- an invisible failure (the molecule is made, just chewed back). **epegRNAs** append a structured pseudoknot motif to the 3' end (Nelson 2022): use **tevopreQ1** by default (~3-4x gain, no added off-target); **mpknot** is larger and benefits most from a **pegLIT**-designed linker (tevopreQ1/evopreQ1 often work linker-free). **PE7** (La protein) attacks the same degradation from the protein side and is **partly redundant** with epegRNAs (PE7's gains are largest with plain pegRNAs) -- don't stack them as if independent. For synthetic (non-expressed) pegRNAs where a folded motif is awkward, PE7 / La-optimized 3' chemistry is the lever instead.6465## Outcome Prediction (rank, but still test)6667| Model | Predicts | Cite |68|-------|----------|------|69| **PRIDICT / PRIDICT2.0** | intended-edit + unintended (indel) rate; 2.0 is chromatin-aware across lines | Mathis 2023 *Nat Biotechnol* 41:1151; Mathis 2025 *Nat Biotechnol* 43:712 |70| **DeepPrime / DeepPrime-FT** | efficiency across 8 PE systems x 7 cell types, edits <=3 bp | Yu 2023 *Cell* 186:2256 |71| Easy-Prime | XGBoost pegRNA design with RNA-structure features | Li 2021 *Genome Biol* 22:235 |7273Limits: trained mostly on HEK293T + small edits; scores degrade for large edits, untrained cell types, primary/iPS cells, and in vivo loci. A high score says "worth synthesizing," not "will work in the target cell." Report **edit:indel purity, not efficiency alone** (PE3's indel liability hides when only the intended-edit rate is reported).7475## Large / Advanced Edits (single-pegRNA PE runs out of room)7677| Strategy | Mechanism | Size | Cite |78|----------|-----------|------|------|79| **twinPE** | two pegRNAs template complementary flaps -> replacement/deletion/inversion | up to ~hundreds bp; +recombinase -> kb | Anzalone 2022 *Nat Biotechnol* 40:731 |80| GRAND editing | dual pegRNAs, RTTs complementary to each other (non-genomic) -> template-free insertion | up to a few hundred bp (drops sharply >~400 bp) | Wang 2022 |81| **PASTE** | PE writes a serine-integrase attB site, integrase drops in a donor | **~10-36 kb**, DSB-free | Yarnall 2023 *Nat Biotechnol* 41:500 |8283Route "knock in a 2 kb reporter" to twinPE+integrase/PASTE (or HDR/HITI) -- a single giant-RTT pegRNA is a category error.8485## Decision Tree by Scenario8687| Scenario | Recommended | Why |88|----------|-------------|-----|89| C->T / G->A or A->G / T->C transition, base positionable in a window | -> base-editing-design | BE is higher-efficiency, cleaner, no flap/MMR competition for its transition |90| Any of the other small edits (other transversions, small indels, combined) | prime editing, panel of PBS x RTT | PE owns the precise-small-edit-without-a-DSB box |91| Low efficiency in an MMR-proficient cell | PE4/PE5 (MLH1dn) + MMR-evading silent edits | MMR is the dominant barrier |92| Indels unacceptable (therapeutic) | PE2 or **PE3b** (not PE3) | PE3's second nick raises indels |93| Expressed pegRNA | add a tevopreQ1 3' motif (PE5max+epegRNA default) | fixes invisible 3'-degradation |94| Large insertion (genes/tags, >~hundreds bp) | -> twinPE+integrase / PASTE / hdr-template-design | beyond single-pegRNA flap capacity |95| Knockout only (any frameshift) | -> grna-design (plain Cas9) | PE's precision is wasted; nuclease is simpler/more efficient |96| Validate edits | -> crispr-screens/crispresso-editing | quantify intended-edit and indel rates from amplicons |9798## Generate Designs with PrimeDesign (verified notation)99100**Goal:** Produce ranked pegRNA + nicking-guide candidates for a precise edit.101102**Approach:** Encode the reference and edit in ONE inline string with PrimeDesign's exact parenthesis notation, then run the Docker CLI; it sweeps PBS/RTT, ranks pegRNAs (PAM-disrupted preferred), and nominates ngRNAs. Do not hand-roll the design as the only step.103104```bash105# PrimeDesign edit-string notation (verify against the repo README; the most-hallucinated PE detail):106# substitution: ...AAACG(T/A)CTTCC... # ref/edit, slash-separated107# insertion: ...AAACGT(+CTT)CTTCC... # bare leading + (also (/CTT))108# deletion: ...AAAAC(-GTCT)TCCAAT... # bare leading - (also (GTCT/))109# combinatorial: GCCTGTGACTAACTGC(G/T)CCA(+ATCG)AAACGTC(-TTCC)AATCCCCTTATCCAATTTA110docker run -v ${PWD}/:/DATA -w /DATA pinellolab/primedesign primedesign_cli \111 -f edits.csv -pbs 10 12 14 -rtt 10 16 22 -nick_dist_min 0 -nick_dist_max 100 -out designs/112```113114## Sweep a PBS x RTT Panel and Enforce the Hard Rules115116**Goal:** Build a small, ordered panel of pegRNA extensions for one nick, applying the don't-end-on-C and 5'-G rules.117118**Approach:** For each PBS length, take the reverse complement of the genomic sequence 5' of the nick; for each RTT length, build the edited 3' flap and reject extensions whose first templated base is C. Rank the panel by a model (PRIDICT/DeepPrime) for synthesis. (See `examples/prime_editing_design.py`.)119120```python121from Bio.Seq import Seq122123def prepend_u6_g(spacer):124 return spacer if spacer.startswith('G') else 'G' + spacer # prepend, never replace125```126127## Per-Method Failure Modes128129### One pegRNA from a fixed PBS=13/RTT=15130**Trigger:** treating PBS/RTT as constants. **Mechanism:** the optimum is locus-specific (GC/Tm/nick distance/chromatin). **Symptom:** valid-looking pegRNA, ~2% editing. **Fix:** design and test a PBS x RTT panel; rank with PRIDICT2.0/DeepPrime.131132### Designed for the edit, ignored the repair machinery133**Trigger:** installing only the literal intended base. **Mechanism:** MMR reverts the edit; an intact PAM lets the editor re-nick. **Symptom:** low yield + indels. **Fix:** add a PAM-disrupting silent edit and 1-2 MMR-evading silent edits; use PE4/PE5 (MLH1dn) in MMR-active cells.134135### Reached for PE3 when PE3b was available136**Trigger:** reading the ladder as a scalar. **Mechanism:** PE3's second nick is a transient near-DSB. **Symptom:** good efficiency, unacceptable indels. **Fix:** if the edit makes/breaks a protospacer, design PE3b; otherwise drop to PE2/PE4.137138### Reported % editing without % indels139**Trigger:** efficiency-only readout. **Mechanism:** PE yields a mix (edit/unedited/indel). **Symptom:** a "40%" pegRNA that throws 15% indels looks fine. **Fix:** report edit:indel purity (PRIDICT predicts both).140141### Trusted a model score off-distribution / forgot the locus142**Trigger:** picking the top-scored pegRNA, skipping the panel, in a non-HEK293T context. **Mechanism:** models are trained on HEK293T + small edits; chromatin dominates and is invisible to sequence. **Symptom:** "designed perfectly, didn't work." **Fix:** weight the model less far from training; still test; a closed locus may sink any design.143144### 5' G replaced, or flap ends on C, or large insert forced into one pegRNA145**Trigger:** `'G'+spacer[1:]`; RTT ending on C; 2 kb into one RTT. **Mechanism:** spacer:target mismatch; +1-C re-incorporation; flap can't template/resolve. **Fix:** prepend the G; shift RTT off a terminal C; route large inserts to twinPE/PASTE.146147## Quantitative Thresholds148149| Parameter | Value | Source |150|-----------|-------|--------|151| PBS length | ~8-17 nt, tuned to Tm/GC (start ~24-GC%/5) | Anzalone 2019; pegFinder heuristic |152| RTT | edit + ~10-16 nt 3' homology; shortest workable | Anzalone 2019 |153| Nick-to-edit | as small as possible; efficiency falls with distance | Anzalone 2019 |154| PE3 ngRNA distance | ~40-100 bp (sweet spot ~50-90), non-edited strand | Anzalone 2019 |155| Flap +1 base | not C | Anzalone 2019 / PrimeDesign `--filter_c1_extension` |156| MMR inhibition gain | ~7.7x avg (MMR-proficient cells only) | Chen 2021 |157| epegRNA 3' motif | tevopreQ1 default; ~3-4x | Nelson 2022 |158| Deliverable | a ranked panel, report edit:indel purity | field practice |159160## Common Errors161162| Error / symptom | Cause | Solution |163|-----------------|-------|----------|164| Editing ~2% despite a "perfect" pegRNA | fixed PBS/RTT, unfavorable locus | test a panel; consider MLH1dn/epegRNA; the locus may be closed |165| High indels with PE3 | second nick on non-edited strand | use PE3b (if the edit makes/breaks a protospacer) or PE2 |166| PrimeDesign mis-encodes the edit | wrong inline notation | use exact `(ref/edit)`/`(+ins)`/`(-del)`; verify against the repo |167| No benefit from MLH1dn | MMR-deficient cell line | PE2 already behaves like PE4 there |168169## References170171- Anzalone AV, Randolph PB, Davis JR, et al. (2019). Search-and-replace genome editing without double-strand breaks or donor DNA. *Nature* 576(7785):149-157.172- Chen PJ, Hussmann JA, Yan J, et al. (2021). Enhanced prime editing systems by manipulating cellular determinants of editing outcomes. *Cell* 184(22):5635-5652.173- Nelson JW, Randolph PB, Shen SP, et al. (2022). Engineered pegRNAs improve prime editing efficiency. *Nat Biotechnol* 40(3):402-410.174- Yan J, Oyler-Castrillo P, Ravisankar P, et al. (2024). Improving prime editing with an endogenous small RNA-binding protein. *Nature* 628(8008):639-647.175- Anzalone AV, Gao XD, Podracky CJ, et al. (2022). Programmable deletion, replacement, integration and inversion of large DNA sequences with twin prime editing. *Nat Biotechnol* 40(5):731-740.176- Yarnall MTN, Ioannidi EI, Schmitt-Ulms C, et al. (2023). Drag-and-drop genome insertion of large sequences without double-strand DNA cleavage using CRISPR-directed integrases (PASTE). *Nat Biotechnol* 41(4):500-512.177- Hsu JY, Grunewald J, Szalay R, et al. (2021). PrimeDesign software for rapid and simplified design of prime editing guide RNAs. *Nat Commun* 12:1034.178- Chow RD, Chen JS, Shen J, Chen S (2021). A web tool for the design of prime-editing guide RNAs (pegFinder). *Nat Biomed Eng* 5(2):190-194.179- Mathis N, Allam A, Kissling L, et al. (2023). Predicting prime editing efficiency and product purity by deep learning (PRIDICT). *Nat Biotechnol* 41(8):1151-1159.180- Mathis N, Allam A, Talas A, et al. (2025). Machine learning prediction of prime editing efficiency across diverse chromatin contexts (PRIDICT2.0). *Nat Biotechnol* 43(5):712-719.181- Yu G, Kim HK, Park J, et al. (2023). Prediction of efficiencies for diverse prime editing systems in multiple cell types (DeepPrime). *Cell* 186(10):2256-2272.182- Li Y, Chen J, Tsai SQ, Cheng Y (2021). Easy-Prime: a machine learning-based prime editor design tool. *Genome Biol* 22:235.183184## Related Skills185186- base-editing-design - Preferred for the single transition a base editor can make187- grna-design - Generic spacer scoring; plain-nuclease knockout when precision is unneeded188- off-target-prediction - pegRNA spacer and PE3 nicking-guide off-target considerations189- hdr-template-design - Large-insertion alternative (HDR/HITI) when PASTE/twinPE is not used190- crispr-screens/prime-editing-screens - Pooled prime-editing screen analysis191- crispr-screens/crispresso-editing - Quantify intended-edit vs indel rates from amplicons192- variant-calling/variant-annotation - Identify the pathogenic variant to correct or install