SeqBench

Oligo Pool Cross-Dimer Screen — Every Pair in One Pass

Screen a whole oligo pool for cross-dimers between members, each oligo's own hairpin and self-dimer, duplicates and Tm spread.

🔒 Nothing you paste is logged or stored

Paste the pool you already own — up to 384 oligos, as FASTA or as one sequence per line out of a spreadsheet column — and every pair is screened for cross-dimers in one pass: 51 primers is 1,275 pairs. Each oligo is also screened against itself, because a hairpin or a self-dimer sequesters primer just as effectively and no all-pairs sweep can see it, and the set is checked for exact duplicates, reverse-complementary entries and the widest Tm gap across the pool. A pairing that occupies an oligo's 3′ end counts as a conflict at −6 kcal/mol while one that only pairs internally needs −9, because the 3′ end is where extension starts, and the conflicts come back sorted most stable first instead of as a table of every combination.

0 record(s) pasted — FASTA headers become the names; one sequence per line gets named oligo_1, oligo_2, …

Conflict thresholds (ΔG, kcal/mol)

A pairing that occupies an oligo's 3′ end counts as a conflict at a weaker ΔG than one that only sequesters primer internally, because that end is where extension starts. Defaults are −6 and −9.

Reaction conditions

Paste at least two oligos to screen the pool. For one oligo's own hairpin and self-dimer, use the Oligo Analyzer.

How to use the Oligo Pool Screen tool

  1. 1Paste the pool as FASTA (headers become the names) or as one sequence per line, or click "Load example" for a six-oligo pool that carries the defects this screen exists to find.
  2. 2Optionally move the two ΔG thresholds — −6 kcal/mol for a pairing that involves a 3′ end, −9 for one that only pairs internally.
  3. 3Optionally set the reaction conditions, or pick the Standard PCR / qPCR / Isothermal preset; these move the melting temperatures only, not the dimer or hairpin ΔG.
  4. 4Read the pass/fail gate, then the conflict table: it is sorted most stable first, a row marked "yes — can extend" is one where a 3′ end is inside the pairing, and each row opens its base-paired alignment.
  5. 5Check the per-oligo table for any oligo flagged "own structure", plus the duplicates block and the warnings, then export the conflicts as CSV or copy a share link.

Frequently asked questions

What does a pool screen check that a pair-at-a-time cross-dimer check does not?

Three things. It screens every pair in one pass, so a 51-primer pool is 1,275 pairs rather than 1,275 separate checks. It screens every oligo against itself, since a hairpin or self-dimer sequesters primer just as effectively as a cross-dimer and is invisible to an all-pairs loop. And it looks at the set as a set: exact duplicates, reverse-complementary entries, and the widest Tm gap across the pool, because one annealing temperature has to serve all of it.

How many oligos can I screen at once, and how long can they be?

Up to 384 oligos — four 96-well plates — and up to 200 nt each; past that it is a gene fragment rather than an oligo. One call is also budgeted at 60 million base comparisons, since the sweep grows with the square of the pool and with the product of the two lengths, so an extreme pool (200 sixty-mers, say) is refused with a message rather than run. Screen the sub-pools you would actually combine in one tube.

Why are there two ΔG thresholds instead of one?

Because a pairing that occupies an oligo's 3′ end is a different problem from one that only sequesters primer in the middle: the 3′ end is where extension starts. So a 3′-end pairing counts as a conflict at −6 kcal/mol while an internal one needs −9, and the gate treats a pool with 3′-end conflicts more harshly. Both numbers are editable if your assay warrants a different bar.

How is this different from the Oligo Analyzer or Multiplex PCR Panel Design?

Different scale and different question. The Oligo Analyzer (/tools/oligo-analyzer) is the per-molecule view — one oligo, or one forward/reverse pair, with its full duplex drawing; Multiplex PCR Panel Design (/tools/multiplex-pcr-panel) DESIGNS primers from templates and coordinates and also weighs amplicon comigration on the gel. This page takes the synthesized pool you have already ordered and answers the pool-level question neither of those does: across all members, which ones interact, which are duplicates of each other, and which is its own worst enemy.

What input does it take, and what will it refuse?

A FASTA paste, where the headers become the names used throughout the result, or one sequence per line — which is what comes out of a spreadsheet column, and gets named oligo_1, oligo_2 and so on. Repeated names are made unique so two records called "F" can still be told apart. Residues outside A/C/G/T/U are refused: a degenerate or modified oligo has no single nearest-neighbour ΔG, so screening it would report a number for a molecule nobody ordered. Fewer than two oligos is refused too — for one oligo's own structure, use the Oligo Analyzer.

Does raising Mg²⁺ change which pairs are flagged?

No. The nearest-neighbour dimer and hairpin ΔG carry no salt term, so the oligo, Na⁺, Mg²⁺ and dNTP settings move the melting temperatures and the Tm spread while leaving every conflict ΔG and the conflict count identical. The result says so in the tool itself, because a caller who raises Mg²⁺ hoping to change a dimer verdict would otherwise get the same answer with no explanation.

If the screen passes, will the pool work?

It does not say that, and no calculation over these sequences could. The screen never sees a template, so it says nothing about whether any primer amplifies what you intend, about off-target priming against a genome, or about amplicon sizes and whether the products would resolve on a gel — the gate lists exactly that. Read the conflict count carefully too: pairs grow with the square of the pool, and a few percent of pairs among unrelated sequences of primer length cross the bar anyway, so the rate and the sorted head of the table are what to act on rather than the raw count.

More