Jean docs
Design

In-Situ Probes

This is the manual. In-Situ Probes runs in your browser, free, no account.

Open In-Situ ProbesTry it on the In-situ probes (GAPDH) sampleOverview

Design a hybridization probe against a transcript or a locus: tile it into oligos, screen them for off-target binding, and pick the set that images as one spot. Or design padlock probes for in-situ sequencing, checked for off-target ligation at the junction, HCR v3.0 split-initiator probe pairs for amplified imaging, MERFISH encoding probes that spell a gene's codeword in readouts, or the 40 nt padlock targets of a Xenium custom panel.

Reached byTools → In-Situ Probes
FormatsAny sequence already open in the project (GenBank, FASTA, SnapGene, .melad …) A SAM alignment of the candidates BLAST tabular output (padlock targets) FASTA and BED out (the oligos) FASTA out (padlock targets and probes) SAM in, FASTA and an IDT-style Name/Sequence table out (HCR pairs) Transcriptome, readout and rRNA/tRNA FASTA in, a Name/Sequence table out (MERFISH probes) FASTA out, BLAST CSV output in (Xenium targets)

What it does

An in-situ hybridization experiment makes one RNA or one locus visible inside a fixed cell by hybridizing many short oligos along it, each carrying a fluorophore or a readout sequence. What you see down the microscope is the sum of those oligos, so the design question is never "is this a good oligo" on its own. It is three questions, and they have to be answered in order.

Can each oligo hybridize? An oligo that melts off at the hybridization temperature contributes nothing, and one that binds far too tightly contributes background. So the target is walked window by window and each window is judged on length, melting temperature, G+C content, and whether it contains a run of one base — homopolymer runs hybridize promiscuously and are excluded by default.

Would any of them bind somewhere else? This is the question that separates a probe that works from one that images the wrong thing, and it cannot be answered from the oligo alone: it needs the rest of the genome. Align the candidates against your reference and the alignment tells you which oligos have a competitor. A trained linear discriminant then judges whether that competitor is thermodynamically real at your hybridization temperature, which recovers usable probes near repeats that a strict unique-alignment rule would throw away.

Does any of them carry a repeat? An alignment of each oligo reports where it lands, and an oligo holding a short stretch that recurs hundreds of times in the genome can still pass it. So each surviving oligo is read k-mer by k-mer, 18 bases at a time by default, against a count of every k-mer in the reference, and an oligo is dropped as soon as any of its k-mers occurs at least as often as the count you set. A small reference is counted for you; for a whole genome, count it once with jellyfish and give the panel the dump.

Do they image as one spot? A set spread thinly across a long transcript is a smear, not a spot, and a set clumped at one end images that end. So candidate sets of consecutive oligos are scored on three properties — how centred the set is on the molecule, how compact it is, and how evenly its oligos are spaced — and you choose which one defines the acceptable band and which ranks inside it.

What this computes

Per candidate oligo

ReadoutWhat it is
Melting temperatureNearest-neighbour Tm under the unified SantaLucia parameters, salt-corrected for the sodium you specify, computed at the probe and target strand concentrations you set (25 nM each by default, as OligoMiner does), and then corrected for formamide. It is the temperature at the bench, not in water.
Percent G+CCounted over the oligo, with S counted as a G or C base.
Length and coordinatesWhere the oligo sits on the target, 1-based inclusive. When the target carries a range= header from a genome browser, the coordinates are the genome's.

Per screening decision

ReadoutWhat it is
Off-target probabilityThe probability that an oligo's best competing site is thermodynamically real, from a linear discriminant over three features: the oligo's length, the alignment score of its best off-target hit, and its percent G+C. Six models exist, one per hybridization temperature (32, 37, 42, 47, 52 and 57 °C).
VerdictWhether an oligo was kept because it aligned uniquely, because it aligned nowhere, or because the model judged its off-target site unlikely.

Per k-mer screening decision

ReadoutWhat it is
K-mer countHow many times each k-mer of the oligo occurs in the reference, counted on the strand the reference is written in unless you count both strands. A k-mer seen only once is reported as 0, and counts saturate at 255, as the published k-mer dictionary stores them.
VerdictWhether the oligo held any k-mer at or above the count you set, and the count that removed it.

Per probe set

ReadoutWhat it is
CentralityWhere the set's midpoint sits relative to the middle of the region: 1 when they coincide, 0 at either end, negative when the set's midpoint falls outside the region entirely.
CompactnessThe size of the set: the span from the first oligo's start to the last one's end. Smaller is one diffraction-limited spot.
Even spacingHomogeneity: the inverse standard deviation of the gaps between consecutive oligos. Higher means more evenly spread; clumped oligos leave dark stretches.

Per MERFISH encoding probe

ReadoutWhat it is
SpecificityThe mean, over the target region's 17-mers, of the expression-weighted copies in this gene's transcripts divided by those in the whole transcriptome. Reported for the target region and for the whole transcribed oligo.
IsospecificityThe same mean of this transcript's expression over its gene's: the share of the signal that comes from this isoform.
rRNA/tRNA off-targetsHow many of the region's (and the whole oligo's) 15-mers occur in the rRNA and tRNA sequences you gave.
Readouts and probe barcodeWhich readouts the probe carries, and which on-bits they turn on.
Bit coverageHow many selected probes carry each on-bit, and the fewest on any one bit.
ComplementarityHow many 15-mers of the probe pair with another probe of the library; the screen removes the most complementary until none pairs.

Per Xenium target

ReadoutWhat it is
Full-length and arm Tmprimer3's melting temperature of the 40 nt target and of each 20 nt arm, under 10x's stated conditions.
Ligation junctionThe two bases either side of the nick the ligase must seal, and whether 10x classes them preferred, neutral or nonpreferred.
Longest G runThe longest run of G on the probe strand.
Nearest off-targetThe fewest mismatches across both arms to any transcript that is not this gene, and which transcript that is; no off-target hit when BLAST found none.

Across the whole design

ReadoutWhat it is
CoverageThe fraction of the target covered by at least one oligo, counted base by base so overlapping oligos are counted once.
GapsEvery stretch the design leaves uncovered, with its length — measured, not eyeballed off the picture.
Melting-temperature and G+C distributionsDrawn against the window you asked for, because a set that fills its whole permitted range will not hybridize as one set even though every member passes.
Stage accountingHow many windows each stage took in, how many it passed, and the named reason for every rejection — melting temperature too low or too high, G+C outside the window, a prohibited run, an ambiguous base, an off-target site.

Padlock probes

A padlock probe is one oligo whose two ends, the arms, hybridize side by side on the target so that ligase can close it into a circle, which is then amplified and read by sequencing the barcode it carries. It reports only if the arms ligate, so the question that matters is different from hybridization: whether any other transcript matches across the junction where the two arms meet.

The target is walked in windows twice the arm length. Each window whose melting temperature falls inside the window you set is exported as FASTA; you search those with BLAST against your transcriptome and paste the tabular output back. A window is rejected if any other transcript matches more than half of it at over 80% identity and the match spans the ligation site with five bases to spare on each side. Non-overlapping windows are then packed from the 3′ end, and each is assembled into its padlock: the 3′ arm, the upstream linker, the barcode, the downstream linker and the 5′ arm.

Per padlock target

ReadoutWhat it is
Melting temperatureNearest-neighbour Tm (Sugimoto 1996 parameters) of the two-arm target at 0.1 µM probe, 75 mM monovalent and 10 mM divalent salt, corrected for 20% formamide. These conditions are fixed, as the published pipeline fixes them.
Junction verdictWhether any other transcript in your BLAST output covers the ligation site at the identity and length above. Transcripts you name as variants of the target (its isoforms) count as the target itself.
Found in the databaseWhether BLAST found the target itself at full length and 100% identity. A target that was not is dropped from the final list, since nothing confirms it is the transcript you meant.
Start and padlock sequenceWhere the target begins on the molecule, 1-based, and the full probe sequence to order.

Across the design: how many windows melt in range, how many pass the junction check, and how many fit without overlapping at the spacing you set.

What is not claimed. The junction check is only as complete as the database you searched: a transcriptome that lacks a paralog cannot reject a probe against it. The backbone defaults are placeholder text, not sequence, and the reading says so until you set real linkers and a barcode. The published pipeline also offers a random subset of N probes per gene; that step is not offered, because a random draw is not a result you could reproduce.

HCR split-initiator probes

HCR v3.0 (hybridization chain reaction) splits each probe into two halves that bind side by side on the target, 25 nt each around a 2 nt gap. Each half carries half of an amplifier initiator, so the fluorescent hairpins polymerize only where both halves have bound; one half bound alone starts nothing, which is what suppresses background without a wash-stringency search.

Every 52 nt window of the target is reverse-complemented into a candidate probe and filtered in a fixed order: a run of C, then of G (seven bases holding at least five of one base), a hairpin that melts at or above 45 °C, more alignments than you allow, G+C outside 45–55% and an RNA

free energy outside −70 to −50 kcal/mol. Optionally the two halves must melt within a few degrees of each other. From what survives, the windows closest to the target free energy are taken one at a time, skipping any that overlaps one already taken, and each is split and given the initiator halves of the amplifier you choose (B1 to B5, one per colour when you multiplex).

Uniqueness comes from an alignment you make: export the tiles as FASTA, align them with bowtie2 -k 3 -f against your genome or transcriptome, and paste the SAM back. Without one, no uniqueness filter runs and the reading says so.

Per pair

ReadoutWhat it is
StartWhere the 52 nt window begins on the target, 1-based.
Free energy (ΔG)The RNA
duplex free energy of the whole probe at 37 °C, from Sugimoto 1995's hybrid nearest-neighbour parameters with an initiation term and a salt correction. Pairs are ranked by how close this is to the target.
G+CPercent G+C over the whole window, the two gap bases included.
Half ΔTmHow far apart the two halves' melting temperatures are (primer3's nearest-neighbour Tm at 50 mM Na⁺, 1.5 mM Mg²⁺). Shown on every pair; used as a filter only when you turn the check on.
HitsHow many alignments the tile has in your SAM, when you gave one.
Odd and even oligoThe two sequences to order: the odd initiator half before the 3′ half-probe, and the 5′ half-probe before the even initiator half.

Across the design: how many windows each filter kept, in the order they ran, and how many pairs were selected. When fewer pairs come back than you asked for, the reading says the filters left no more non-overlapping windows.

What is not claimed. A tile that spans an exon junction aligns nowhere in genomic sequence, so a genome alignment passes it as unique; that is right for a genome mask and is why the transcriptome is the other choice. The free energy is for the probe as one 52 nt duplex, not for each half.

MERFISH encoding probes

MERFISH (multiplexed error-robust FISH) gives every gene a binary codeword and images one bit per round. An encoding probe is a target region of the transcript with readout sequences attached: each readout belongs to one bit, and a probe carries readouts only for the bits its gene's codeword turns on, so the readout probes of a round light up exactly the genes whose codeword has that bit.

The design follows the Zhuang lab's own pipeline, stage by stage. Every 30 nt window of the transcript is a candidate target region. It is kept when its G+C is strictly between 40 and 70%, its melting temperature strictly between 50 and 65 °C (nearest-neighbour, SantaLucia & Hicks 2004, at 390 mM Na⁺ and 5 nM probe, less 0.65 °C per percent formamide, 30% by default), it shares no 15-mer with an rRNA or tRNA, and its specificity is above 0.999. Readouts are then attached, two per probe by default, one at each end, drawn so that every on-bit is used about equally down the transcript. The amplification primers are added, and the whole oligo, as in vitro transcription will produce it, is screened again for rRNA/tRNA k-mers and specificity. From what survives, probes are chosen one at a time, each time taking the one that adds the least overlap with probes already chosen and keeps the on-bits most evenly covered, with ties broken at random; the best of several such runs is kept. Last, any probe holding a 15-mer complementary to a probe of the library is dropped, the most complementary first, until none is left.

Specificity is counted from 17-mers. For each 17-mer of the target region, it is the number of copies in this gene's transcripts divided by the number in the whole transcriptome, each transcript weighted by its expression, and the region's specificity is the mean over its 17-mers: 1 means every 17-mer occurs only in this gene. Isospecificity is the same mean of this transcript's expression over its gene's, and reads how much of the signal comes from this isoform. Without expression data every transcript weighs 1, which is what the pipeline's authors do when they have none for the cell type.

Per probe

ReadoutWhat it is
ShiftWhere the target region starts on the transcript, 1-based.
G+C, TmOf the target region, under the conditions above.
Specificity, isospecificityOf the target region, and again of the whole transcribed oligo.
ReadoutsThe readout names the probe carries, left end then right end.
Probe barcodeWhich bits this probe's readouts turn on.
OligoThe sequence to order: the reverse complement of the transcribed oligo, primers included.

Per transcript: how many regions each stage kept, how many probes carry each on-bit and the fewest on any one, and how many of the probes could be placed without overlapping, before and after selection. Across the library: how many probes the complementarity screen removed, and in how many rounds.

What is not claimed. Off-targets are exact shared 17-mers, not alignments, so a near match is not counted. Specificity is only as complete as the transcriptome you give, and the rRNA/tRNA screen only as complete as the sequences you give; without them it does not run, and the reading says so. The codebook itself (which gene gets which codeword) is an input here, not a design.

Xenium custom-panel targets

A Xenium custom panel is ordered as gene targets, and each probe is a padlock whose two 20 nt arms lie side by side on the transcript, so the ligase seals them only on the right molecule. 10x designs the panel itself, but it publishes the rules its designer follows, and this applies them to your transcript so you can see which stretches can carry a probe before you order.

Every 40 nt window is a candidate. Its melting temperature is computed the way 10x states, with primer3 at 10 mM monovalent and 20 mM divalent salt, 10 mM dNTP and 5 µM oligo, and the window passes when the full 40 nt melts between 68 and 82 °C or each arm melts between 50 and 70 °C. The two bases either side of the ligation nick must be a junction 10x classes preferred or neutral; the four nonpreferred junctions (CG, GT, GG, GC) are refused by default. The probe may not carry a run of five G. There is no G+C rule, and 10x states none.

The windows that pass are exported as FASTA to search with blastn against your transcriptome, not the genome, as 10x advises. With that output pasted back, a target is kept only when every hit to another gene carries at least four mismatches across both arms, where a gap or an unaligned end counts as a mismatch. Hits to the gene's own isoforms are not off-targets: name them under Gene accessions. From what is left, eight targets are kept, at least 10 bp apart, preferred junctions first and the coding sequence before the UTRs.

What is not claimed. 10x states the rules, not how its designer ranks the targets that pass them, so the order above is this tool's and the reading says so. Its designer may pick other windows, and the panel it returns is the one you order. Off-targets are only as complete as the transcriptome you searched.

Controls

Oligos

ControlDefaultWhat it sets
Length—How long each candidate oligo is
Tm—The melting-temperature window a candidate must fall in
G+C—Its G+C window, as a percentage
Spacing0 ntBases forced between consecutive oligos
Prohibited runsAAAAA, TTTTT, CCCCC, GGGGGSubsequences an oligo may not contain. Homopolymer runs hybridize promiscuously, which is why they are banned by default
Allow overlapping oligosoffOff by default: two oligos that overlap cannot be used together in one probe

Buffer

ControlDefaultWhat it sets
Sodium390 mMThe monovalent salt the melting temperature is computed at
Probe strand25 nMThe higher-concentration strand in that calculation
Target strand25 nMThe lower-concentration strand. The calculation uses probe − target/2

Specificity

ControlDefaultWhat it sets
DecisionTrained modelOr Unique alignment only, or No alignment at all
Hybridization temperature42 °CThe model was trained at six temperatures. Its coefficients change sign across the range, so an intermediate value would be a different model rather than a blend of two
Alignment (SAM)emptyThe aligner's own output for these candidates

K-mer screen

ControlDefaultWhat it sets
K-mer referencenoneA genome FASTA, counted here, or the output of jellyfish dump -c for a genome too large to count in the browser
K-mer length18 ntThe length of the k-mers counted. A dump carries its own
Drop at count5An oligo holding any k-mer that occurs this many times or more is dropped
Count both strandsoffCounts a k-mer and its reverse complement as one. Off, as the published dictionary counts only the reference strand

Probe set

ControlDefaultWhat it sets
Gather oligos into a probeoffOff returns every surviving oligo. On picks the set that images best: compact, evenly spread and centered on the molecule
Oligos per probe24How many oligos a probe holds, from 2 to 500
Band defined by · Ranked byCentrality on the region · CompactnessWhich property narrows the candidate sets and which orders them. Either can be centrality on the region, compactness or even spacing
Band width0.1How far a set may sit from the best one on the band property, as a fraction of its value
Probes returned1How many probe sets come back

HCR pairs

ControlDefaultWhat it sets
ChannelB1The amplifier whose initiator halves the oligos carry: B1 to B5
Max probes20How many pairs to select at most
Min GC · Max GC45 · 55 %The G+C window of the whole window
Min Gibbs · Max Gibbs · Target Gibbs−70 · −50 · −60 kcal/molThe free-energy window, and the value pairs are ranked toward
Tile size52 ntAdvanced. The window that becomes one pair
Max run length · Max run mismatches7 · 2Advanced. A C or G run is this many bases holding all but this many of one base
Max hairpin Tm45 °CAdvanced. A window whose hairpin melts at or above this is dropped
ΔTm filter · ΔTm maxoff · 5 °CAdvanced. Drop pairs whose halves melt further apart than this
Alignment (SAM)emptybowtie2's output for the exported tiles
Num hits allowed1Shown once a SAM is pasted. Alignments a tile may have and still pass

MERFISH probes

ControlDefaultWhat it sets
TranscriptomeemptyEvery transcript as FASTA. The open sequence is found in it; RefSeq titles name the gene
BarcodeemptyThe gene's codeword: one 0 or 1 per bit
ReadoutsemptyOne readout sequence per bit, in bit order, as FASTA
rRNA/tRNA referenceemptyrRNA and tRNA sequences. An Ensembl ncRNA FASTA is filtered to those types
Target length30 ntThe length of each target region
G+C · Tm40–70 % · 50–65 °CThe windows a target region must fall strictly inside
Min specificity0.999The specificity a region, and its whole oligo, must exceed
Readouts per probe2Split between the two ends
Probes per transcript72How many probes to select
Sodium · Formamide · Probe390 mM · 30 % · 5 nMAdvanced. The conditions of the melting temperature
ExpressionemptyAdvanced. One id value line per transcript; empty weighs every transcript 1
Readout assignment · One bit per probebalanced · offAdvanced. Balanced keeps the on-bits equally used down the transcript
SpacerAAdvanced. The bases between each readout and the target
Max readout off-target increaseemptyAdvanced. Drop a probe whose readouts add this many weighted off-target 17-mers
Reverse primer · Forward primer · T7 lengthempty · empty · 17 ntAdvanced. The primers; the first bases of the reverse primer are lost in transcription
Trials · Seed5 · 0Advanced. Selection runs, and the seed of every random draw, so a design repeats

Xenium targets

ControlDefaultWhat it sets
Tm ruleeitherWhich melting temperatures must fall in their windows: the full length or both arms (10x's rule), the full length only, the arms only, or both
Full-length Tm68–82 °CThe window of the whole 40 nt target, inclusive
Arm Tm50–70 °CThe window of each arm, inclusive
Junctionspreferred and neutralWhich ligation junctions to accept: preferred only, preferred and neutral, or any
BLAST outputemptyblastn's comma-separated output for the exported targets, searched against the transcriptome with word size 7 on the plus strand
Gene accessionsthe sequence's nameThe accessions of this gene and its isoforms, whose hits are not off-targets
Min mismatches4The fewest mismatches across both arms an off-target hit may carry
Spacing10 bpThe fewest bases between two kept targets
Probes per gene8How many targets to keep
Prefer CDSonRank targets in the coding sequence before the UTRs
Arm length20 ntAdvanced. Each arm; the target is twice this
Max G run4Advanced. The longest run of G the probe may carry

Uncertainty, and what is not claimed

The specificity screen is only as good as the alignment you give it. If you do not supply one, the oligos are returned unscreened and the reading says so in those words — they are candidates, not probes. Nothing here infers specificity from the sequence alone. The same holds for the k-mer screen: it reads the reference you give it, so a 200 kb window says nothing about a repeat elsewhere in the genome, and without a reference k-mer abundance is reported as not checked.

The off-target model is a classifier, not a measurement. It returns a probability, and you choose the threshold. It was trained at six hybridization temperatures and its coefficients change sign across that range, so a temperature it was not trained at is refused rather than interpolated: a blend of two models is not a model.

Melting temperatures are predictions. They are nearest-neighbour estimates under the conditions you state, and the formamide correction in particular is a linear approximation of roughly 0.65 °C per percent.

Provenance of correctness

The four stages are checked against the published tools that define them: the tiling and the specificity model against OligoMiner's own programs, the k-mer screen against OligoMiner's k-mer filter running on jellyfish's own counts, and the probe-set selection against the iFISH probe-design package. The padlock design is checked against the Nilsson lab's own padlock pipeline, on real BLAST output for every RefSeq transcript of a human chromosome region. The HCR pairs are checked against the Goff lab's HCRProbeDesign over the same transcripts at four settings, with real bowtie2 alignments, and the initiator halves against Choi et al. 2018. The MERFISH probes are checked against the Zhuang lab's MERFISH_probe_design for every transcript of that region, at fourteen settings and as a five-gene library, with its random draws replayed exactly. In each case the check regenerates the output those authors themselves published, and compares it exactly rather than approximately.

The Xenium targets have no published program to check against, because 10x's designer is internal. They are checked instead against an independent reading of 10x Genomics' published custom-panel rules (technical note CG000683), with melting temperatures from primer3 itself and off-targets from real blastn output, for every transcript of that region and at twelve settings.

Practical notes

  • Formamide moves everything. A 50% formamide buffer lowers a 78 °C oligo to about 46 °C, so the melting-temperature window you set is meaningless without it. It is a control here, not a constant.
  • Widen the length range before you widen the temperature window. The tiler grows a window from the shortest permitted length until one fits, so a 36–41 nt range finds probes a fixed 36 nt cannot.
  • Look at the gaps, not just the count. Forty oligos that all sit in the first third of a transcript is a worse probe than twenty spread across it, and only the coverage track shows that.
  • Click an oligo on the track to select those bases on the sequence map. Designed oligos and padlock targets, HCR pairs, MERFISH probes and Xenium targets are also drawn on the map itself, and disappear when the panel closes.
  • Name the isoforms. Two isoforms share most of their exons, so without naming them as variants of the target, almost every padlock window reads as off-target against its sibling.

On this page