Primers & oligos

Design a set of sequencing barcodes

Build a set of DNA barcodes that are pairwise at least a chosen edit distance apart, so a read error cannot turn one barcode in the pool into another. Honours a GC window, a homopolymer cap and excluded motifs (the restriction sites you clone with) during the search rather than filtering afterwards, and can extend a set you already have rather than replacing it. Reports the distance ACHIEVED — re-derived over the finished pool, not assumed from the search — plus how many read errors that distance lets you correct and detect. Deterministic given a seed. Returns fewer barcodes than asked, with a reason, when the constraints leave no room.

post/barcode_design

Request

  • Base URL: https://seqbench.com/api/v1
  • URL: https://seqbench.com/api/v1/barcode_design
  • Auth: none required

Request body

countinteger

How many barcodes to design (max 1000). A plate is 96 or 384.

lengthinteger

Barcode length in bases (default 12). Longer barcodes make a given distance far easier to reach.

minDistanceinteger

Minimum edit distance between any two barcodes (default 3). Distance 3 corrects one read error and detects two; distance 5 corrects two. Distance 1 only means 'not identical' and corrects nothing.

metric'levenshtein' | 'hamming'

'levenshtein' counts substitutions, insertions and deletions — the right choice for nanopore or PacBio, and the safe default. 'hamming' counts substitutions only, which is faster and adequate when the platform's errors are substitutions (Illumina), but gives NO protection against an indel shifting one barcode into another.

gcMinnumber

Lowest GC% a barcode may have.

gcMaxnumber

Highest GC% a barcode may have.

maxHomopolymerinteger

Longest run of one base allowed (default 3). Homopolymers miscall on every platform and are the one composition rule worth keeping tight.

excludestring[]

Motifs no barcode may contain, checked on both strands — the restriction sites you clone with. Literal ACGT only.

existingstring[]

Barcodes you already use. They are held fixed and the new ones are kept distant from them, so a second plate does not collide with the first.

seedinteger

Seeds the search. Change it for a different set from the same constraints; keep it to reproduce one.

Response

Tool ran successfully.

okunknown required
toolstring required

The tool slug that ran.

resultobject required

Tool-specific output object. Its shape depends on the tool — call GET /{tool} or see the docs for each tool's fields.

Example response

{
  "provenance": {
    "apiVersion": "1.1.0"
  }
}

Changes

No recorded changes to this operation across all 1 revision of this API.