jane* docs
Start hereWorkflows

Design a CRISPR guide, check where else it binds, and measure the edit you got

The route: enumerate guides on the target → read the scores for what they are → search for off-target sites → screen the guide for cloning → sequence the edited pool and decompose it.

The first half runs on data/samples/Genbank/EMX1_NC_000002.12.gb (the CRISPR guides starter); the last step runs on four real cane-toad tyrosinase chromatograms from the CRISPR edit inference (ICE) starter. Every number below came from running the engines on those files.


Step 1 — Enumerate the guides

Tool: CRISPR Guide Design. Where: Tools → Design, or right-click a selection.

Open the EMX1 record and run. Ten nucleases ship, each with its own PAM and geometry — SpCas9, SpCas9-NG, SpG, SpRY, xCas9, SaCas9, SaCas9-KKH, AsCas12a, LbCas12a, enAsCas12a — and the choice changes which sites exist at all, not just how they rank.

With SpCas9 on the 20,703 bp EMX1 record: 3,857 candidate protospacers.

The scan always covers the whole molecule, and the region control filters afterwards. That is deliberate: a guide's efficiency score is read from its real flanking sequence, so scanning only a selection would score guides against flanks that are not there. On a circular plasmid it is also how an origin-spanning guide gets found at all.

Check: the nuclease shown is the one you mean. A guide list is meaningless without it, and PAM geometry is the difference between 3,857 sites and a few hundred.


Step 2 — Read the scores for exactly what they are

Three on-target models are reported per guide, and they disagree, which is information rather than a defect:

Guide (SpCas9, EMX1)Rule Set 1CRISPRscanCRISPR-RaterGC
CTAGATGTAAAACAGCTACG GGG0.9420.50.71940%
TGTGTGAGCGAGCGACCGCG GGG0.9120.60.73170%
GCCACCATCTTGGAGCCCAA GGG0.9110.60.63760%
TTATTCCCCGCGTTCCCCCG CGG0.9100.80.84765%
ATTGCTGGATGCAAACTCCG GGG0.9100.50.69650%

Row 1 is the best guide by Rule Set 1 and among the worst by CRISPRscan; row 4 is the reverse. They were trained on different data with different readouts, and sorting by one of them is a choice you should make on purpose.

A score of null is never filled in. Each model is defined for particular nuclease geometries and needs a particular amount of flanking context (Rule Set 1 scores a 30 nt window, CRISPRscan a 35 nt one). Where the context is not there — a guide too close to the end of a linear molecule, or a nuclease the model was not built for — the field is empty and the panel says so. The exact scored context is carried on the guide so you can check what was fed in.

Alongside the scores, each guide carries QC that has nothing to do with efficiency and everything to do with whether it will work in your hands: GC fraction and whether it is in range, longest homopolymer, longest poly-T run, whether it contains a Pol III terminator (TTTT — a U6-driven guide with one in it gets truncated), the longest self-complementary stem, and any cloning-enzyme recognition sites in the spacer. Enzyme names resolve against the real restriction registry, so asking for BsmBI checks for CGTCTC and an unknown name is an error rather than a silent pass.

The top guide above: GC 40% (in range), longest homopolymer 4, no Pol III terminator, no self-complementary stem, no BsmBI or BbsI site.


Step 3 — Search for off-target sites, and read the specificity honestly

Same panel, off-target tab.

Searching the top guide against the EMX1 record itself, allowing up to 4 mismatches:

total hits         1
by mismatch count  [1, 0, 0, 0, 0]     ← index = number of mismatches
scored             true
MIT specificity    100
CFD specificity    100

The one hit is the on-target site — 0 mismatches, MIT 1, CFD 1, flagged onTarget: true.

This is specificity within the sequence you searched. It is not a genome-wide score, and the app will not pretend otherwise. A genome-wide number needs a whole-genome index, which is a registered gap rather than a fabricated figure. Searching a 20 kb record and reading "100" means "no second site in these 20 kb" — a true and useful statement, and a completely different claim from "no second site in the human genome".

To make it a real specificity read, search against something large: another loaded sequence, an imported genome slice, or the pasted region you actually care about. The aggregate follows Hsu's form (100 / (100 + Σ 100·scoreᵢ) over off-target hits), which is the same aggregation CRISPOR uses, and both MIT and CFD variants are reported because they weight mismatch position differently.

Two limits stated up front. MIT and CFD are only defined for a 20 nt spacer against a 20 nt protospacer plus a 3 nt PAM; a Cas12a or SaCas9 geometry gets null rather than a number computed under the wrong assumption. And the bulge search (insertions or deletions in the guide

duplex) is an unvalidated path — it is off by default, its hits are flagged, and they are excluded from the specificity aggregate.


Step 4 — Screen the guide before you clone it

The guide has to survive being made. The screen checks the spacer as it will exist in the construct — with the scaffold attached:

spacer      CTAGATGTAAAACAGCTACG
screened    CTAGATGTAAAACAGCTACGGT     ← spacer + the first scaffold bases
GC          40%
hairpin              no
backbone hairpin     no
backbone             original gRNA backbone
hits                 none

Both the original and the extended scaffolds are offered, and the choice changes the answer: a spacer can be perfectly well-behaved on its own and fold against the scaffold it is joined to. The screen also covers the gg and preG variants — a 5′ G added for U6 transcription is extra sequence, and extra sequence can pair.

The folding readout is a separate question from the screen, and both ship. The screen is a string search that tells you whether a published pipeline would flag this guide; the fold tells you what the molecule does. Neither subsumes the other, and the panel labels which is which. Flagged motifs and folded pairs are both drawn on the map with the design, clamped to the spacer where a motif runs past it into the scaffold.

Check: no Pol III terminator, no cloning-enzyme site in the spacer, and no hairpin against the scaffold you are actually going to use.


Step 5 — Design the validation amplicon

Tools: Primer Designer, then PCR Simulation.

You need an amplicon that spans the cut site with enough clean sequence on both sides for a Sanger read to decompose. Set the guide's protospacer as the target in the primer designer — the amplicon must flank it without a primer sitting on it, which is exactly what the target constraint enforces — and follow primer → PCR → gel from there.

The published cane-toad experiment used a 424 bp amplicon spanning two guide sites, which is a reasonable size to aim for: long enough to place the cut well inside the trace's good region, short enough that a single read covers it.

Check: the cut site is not within the first ~40 bases of where your sequencing primer starts. The beginning of a Sanger read is its worst part, and a decomposition needs clean control sequence before the cut.


Step 6 — Sequence the pool and decompose it

Tool: CRISPR Edit Inference (ICE). Where: Tools → Design.

You get back a chromatogram from an edited pool, not a clone — a superposition of every allele in it. ICE takes that trace plus a wild-type control trace and infers which indels, at what proportions, add up to what you observed.

The CRISPR edit inference (ICE) starter carries four real traces from Rhinella marina tyrosinase exon 1 (Zenodo 15945185, CC-BY-4.0), with guide GTCTGGGCTGATGGTGCGTT. Running each edited trace against fwdcontrol.ab1:

TraceICEKOR²What the decomposition says
Partial_albino_1_gRNA1_fwd.ab150640.93Mosaic F0: 43% wild-type, 19% −4, then a second −4, a −7, a −17 … 12 alleles
F1_albino_sample_1_gRNA1_fwd.ab143500.88Clean heterozygote: 45% wild-type + 42% a single −6, in frame
Partial_albino_2_gRNA1_fwd.ab1040.9999% wild-type — visibly partial-albino, genotypically unedited at this guide

Then take the second opinion. The same panel runs TIDE on the same two files: it decomposes by indel SIZE with a p-value per size, and reports the base composition of the +1 insertion, which ICE does not compute. On the mosaic F0 it gives 45.1% with R² 0.68 against ICE's 50 / 0.93 — and on the genotypically unedited control it gives 15.6% at R² 0.92 where ICE gives 0. That last one is the lesson: a good fit means the mixture explains the trace, not that an edit happened. Read TIDE's aberrant-signal profile before its percentage. Set Read start to 20 for this amplicon: its guide cuts at base 101, so TIDE's own default of 100 correctly refuses to decompose a break that close to the start of the read.

Read R² before you read ICE. It is the fit of the inferred mixture to the observed trace, and it is what tells you whether the number above it means anything. The third row is the important one: ICE 0 with R² 0.99 is a confident "nothing happened here", which is a real result. A low ICE with a low R² would be a failed inference wearing the same clothes.

ICE and KO are different questions. ICE is the fraction of alleles carrying any indel; the KO score is the fraction carrying a frameshift. Row 2 makes the gap concrete — 43% edited, but the dominant allele is a −6 deletion, which removes two residues and keeps the reading frame. A high edit rate and a low knockout rate is a normal, and disappointing, outcome.

The panel reports the guide it located in the control (orientation, cut offset, cut site, the protospacer's coordinates), the mean discordance before and after the cut, and every proposed allele with its relative abundance and its aligned sequence.

Check: the guide was found in the control on the expected strand, and the discordance before the cut is low. A control that already disagrees with itself upstream of the cut is a bad control, and no decomposition on top of it is worth reading.


What you did, and where each piece lives

StepToolHand-off
1–2CRISPR Guide DesignRanked guides with three scores and real QC
3Same panel, off-targetA mismatch census + specificity vs what you searched
4Same panel, screen + foldA guide that survives cloning and transcription
5Primer Designer → PCRA validation amplicon spanning the cut
6CRISPR Edit InferenceEdit rate, knockout rate, and the allele mixture

Guides, PAMs, cut marks, flagged motifs and folded pairs all draw on the sequence map, and selecting a guide in the list selects its protospacer in the editor — so the panel and the canvas are looking at the same molecule rather than two copies of it.

If it does not work

SymptomWhere to look
Far fewer guides than expectedThe nuclease. PAM geometry is the biggest single lever on the candidate count
A score column is emptyThe model is undefined for that nuclease or the context is off the end of the molecule. It is left empty rather than approximated
Specificity reads 100 and you do not believe itYou searched a small sequence. It is specificity within the subject — search something genome-scale for a genome-scale claim
Off-target hits with mit/cfd nullA non-20+3 geometry, or a bulge hit. Both are reported without a score rather than with a wrong one
ICE reports a failure, not a numberThe guide was not found in the control. Check strand and that the control is really wild-type
Low ICE and low R²The inference did not fit. That is not "no editing" — it is "no answer"
High ICE, low KOYour dominant allele is in frame. Real, common, and the reason both numbers are shown

The tools, in depth: CRISPR Guide Design · CRISPR Edit Inference (ICE) · Primer Designer · Chromatogram

What feeds this: an auto-annotated target, so you are choosing a guide against features rather than against bare sequence.

What follows: Compare Traces to Reference when you have clonal reads rather than a pool, and Sequencing Verification to grade a knock-in construct against its design.

The canvases this draws on: the sequence map · the chromatogram.

On this page