Enzymes & cloning

Verify a full assembly recipe

Deterministic self-check: given the same method/parts cloning_simulate would use (restriction-ligation, Gibson, Golden Gate, LIC, SLIC or In-Fusion/CPEC — optionally deriving a part by in-silico PCR first), re-derive the expected WHOLE product and diff it against a claimed final sequence. Returns pass/fail plus the exact position and nature of any discrepancy — not an opinion, the same deterministic simulation SeqBench already runs, run a second time as a check. A recipe that can give more than one molecule is checked against ALL of them and matchedCandidate names the one the claim matched: a non-directional ligation really does put the insert in both ways round (half the plate carries each), a vector cut more than twice offers more than one backbone, and a Gibson junction whose fragments already share terminal sequence has two honest readings (one homology arm, or a tandem repeat present twice). See verify_construct for a narrower, insert-only check that doesn't require declaring the vector/enzymes/method.

post/verify_assembly

Request

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

Request body

method'restriction' | 'gibson' | 'goldengate' | 'lic' | 'slic' | 'infusion' required

Assembly method used. restriction/gibson/goldengate are the primer-and-enzyme methods; lic and slic re-run the T4-polymerase chew-back (sequence-defined and time-stopped respectively) and infusion is In-Fusion/CPEC. Anything else is refused rather than substituted — see the note on "topo".

claimedConstructstring required

The sequence you claim you ended up with.

circularboolean

Treat the product/claimed construct as circular (most plasmids are).

codingboolean

Report amino-acid effects of any mismatch, assuming claimedConstruct is (or contains) a coding sequence.

frameStartinteger

1-based reading-frame start on claimedConstruct, used when coding is true.

vectorstring

Vector sequence (restriction and lic methods; for lic, the LINEARIZED vector). Omit if vectorPcr is given.

vectorPcrobject

Derive the vector by PCR instead: {template, forwardPrimer, reversePrimer, maxMismatches? (0-10), circular?}.

insertstring

Insert sequence (restriction and lic methods). Omit if insertPcr is given.

insertPcrobject

Derive the insert by PCR instead: {template, forwardPrimer, reversePrimer, maxMismatches? (0-10), circular?}.

enzyme5string

Insert 5′ enzyme (restriction method).

enzyme3string

Insert 3′ enzyme (restriction method).

vectorEnzyme5string

Vector 5′ enzyme (restriction method); defaults to enzyme5. Set a different, compatible enzyme (e.g. BglII for a BamHI insert) to verify heterologous-overhang cloning.

vectorEnzyme3string

Vector 3′ enzyme (restriction method); defaults to enzyme3.

dephosphorylateVectorboolean

The linearized vector was CIP/rSAP-dephosphorylated (restriction method). Affects the self-ligation background warnings, not the product.

fragmentsstring[]

Fragments (5′→3′), assembled head-to-tail (gibson/goldengate/slic/infusion). BARE parts only — for gibson do NOT include the homology arms, which are added by the assembly primers and merged (so the product is fragment1+…+fragmentN). The convention is the OPPOSITE for slic and infusion: there the homology must already BE on the fragments (it arrived on the PCR primer tails), and infusion derives the ORDER from those homologies, so the order listed here is ignored. Use "" as a placeholder for any fragment supplied instead via the matching fragmentPcrs[i].

fragmentPcrsobject[]

Parallel to fragments, same length: null (or omit) to use fragments[i] directly, or a PCR spec {template, forwardPrimer, reversePrimer, maxMismatches? (0-10), circular?} to derive that fragment instead.

namesstring[]

Optional labels for each fragment.

overlapLeninteger

Gibson homology-arm length (bp) that the assembly PRIMERS add at each junction. Since the fragments themselves must not carry their arms, this describes the junction/primer design only — it does not change the predicted product length or the verdict.

mergePreAddedArmsboolean

Gibson only. When two fragments already share terminal sequence, count that share ONCE (the default — the fragments already carry their arm) or set false to concatenate it twice, which is the right reading when the shared block is a genuine tandem repeat. You should rarely need this: the check tries BOTH readings and reports which one matched in matchedCandidate. Setting it restricts the check to one.

armTmTargetnumber

Target annealing Tm (°C) for primer arms.

enzymestring

Type IIS enzyme for Golden Gate — one of BsaI, BbsI, Esp3I (BsmBI); "BsmBI" also resolves to Esp3I, and NEB's variant names (BsaI-HFv2, BbsI-HF, BsmBI-v2) fold to the parent enzyme. Any other name fails the verification outright rather than being substituted.

vectorNucleotide'A' | 'C' | 'G' | 'T'

lic method: the single dNTP the VECTOR's chew-back was run with (T for dTTP…). Required — T4 pol's exonuclease stops at the first occurrence of this base reading inward from each 3′ end, so there is no product to check against without it.

insertNucleotide'A' | 'C' | 'G' | 'T'

lic method: the single dNTP the INSERT's chew-back was run with. Normally the COMPLEMENT of vectorNucleotide (the classic pair is dTTP on the vector, dATP on the insert).

chewBackLeninteger

slic method: nucleotides removed from each 3′ end. A SLIC chew-back has no dNTP to arrest it and is stopped by time, so this is an input rather than a property of the sequence. 0 (default) models the intended reaction — chewed to the full homology and no further.

homologyLeninteger

infusion method: terminal homology required at every junction, in bp. At least 15 — the junction is annealed and extended by a polymerase with no exonuclease to widen it and no ligase to seal it, so a shorter overlap is a different chemistry rather than a weaker version of this 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.