POST/cloning/gibson/primersGibson assembly primers (overlap + annealing)
gibson_cloning_primers
Description
Designs forward/reverse primers for an insert: overlap regions are taken from `start_overlap_seq` / `end_overlap_seq` templates (extended until overlap Tm target), combined with annealing regions designed to `primer_tm`.
Overlaps or backbone: Provide both overlap templates, or omit both and supply `backbone` plus `restrictase`. When both overlap templates are present they are used, even if a backbone is also sent. Homology templates from `backbone` + `restrictase` come from a single MCS cut of a circular backbone. One overlap without the other, or neither a complete overlap pair nor backbone+restrictase, returns 422.
Insert: An `insert` oligo object.
Options: `primer_tm`, `overlap_size`, and `overlap_tm` are required. `overlap_size` is a minimum overlap length in bp (integer ≥ 1). `add_kozak` (default false) designs the forward annealing region against `GCCACC` immediately 5′ of the insert; the insert sequence must start with ATG. `overwrite` applies when saving an oligo input. This route does not persist primer outputs.
Request body
{
"content": {
"application/json": {
"schema": {
"properties": {
"backbone": {
"$ref": "#/paths/~1backbone~1linearize~1selection/post/requestBody/content/application~1json/schema/properties/backbone"
},
"end_overlap_seq": {
"allOf": [
{
"$ref": "#/paths/~1backbone~1linearize~1restriction/post/responses/200/content/application~1json/schema/properties/results/oneOf/0/properties/seq"
}
],
"description": "Template for the 3' overlap."
},
"insert": {
"$ref": "#/paths/~1primers~1simple/post/requestBody/content/application~1json/schema/properties/insert"
},
"options": {
"properties": {
"add_kozak": {
"default": false,
"description": "When true, the forward annealing region is designed against GCCACC immediately 5′ of the insert. The insert sequence must start with ATG.\n",
"type": "boolean"
},
"overlap_size": {
"description": "Minimum overlap length (bp); actual overlap may grow to meet `overlap_tm`.",
"example": 25,
"minimum": 1,
"type": "integer"
},
"overlap_tm": {
"description": "Target duplex Tm (°C) applied when lengthening homology tails: overlap size grows until a sliding nearest-neighbour estimate reaches this target with simpler ion modelling than the primer melting_temperature fields (those use the fuller mixed-ion recipe on the insert annealing segment only—not the overlap).\n",
"type": "integer"
},
"overwrite": {
"$ref": "#/paths/~1backbone~1linearize~1selection/post/requestBody/content/application~1json/schema/properties/options/properties/overwrite"
},
"primer_tm": {
"description": "Target Tm (°C) for the annealing portion of the primer.",
"type": "integer"
}
},
"required": [
"primer_tm",
"overlap_size",
"overlap_tm"
],
"type": "object"
},
"restrictase": {
"allOf": [
{
"$ref": "#/paths/~1cloning~1restriction~1primers/post/requestBody/content/application~1json/schema/properties/restrictases/properties/start"
}
],
"description": "Enzyme used to linearize a circular backbone at a unique MCS site when overlap templates are omitted.\n"
},
"start_overlap_seq": {
"allOf": [
{
"$ref": "#/paths/~1backbone~1linearize~1restriction/post/responses/200/content/application~1json/schema/properties/results/oneOf/0/properties/seq"
}
],
"description": "Template for the 5' overlap (typically vector-adjacent homology); longer than final overlap."
}
},
"required": [
"insert",
"options"
],
"type": "object"
}
}
}
}Responses
{
"200": {
"content": {
"application/json": {
"schema": {
"properties": {
"results": {
"properties": {
"forward": {
"description": "One Gibson assembly primer: overlap (homology) region plus annealing region, full primer sequence, Tm of the annealing part, and ΔG metrics for the full primer (hairpin and homodimer components plus their minimum).\n",
"properties": {
"annealing_sequence": {
"allOf": [
{
"$ref": "#/paths/~1backbone~1linearize~1restriction/post/responses/200/content/application~1json/schema/properties/results/oneOf/0/properties/seq"
}
],
"description": "Insert-specific annealing region (designed to target Tm)."
},
"full_seq": {
"$ref": "#/paths/~1backbone~1linearize~1restriction/post/responses/200/content/application~1json/schema/properties/results/oneOf/0/properties/seq"
},
"gibbs_free_energy": {
"allOf": [
{
"$ref": "#/paths/~1primers~1simple/post/responses/200/content/application~1json/schema/properties/results/properties/forward/properties/gibbs_free_energy"
}
],
"description": "Minimum of hairpin and homodimer ΔG for the full primer (kcal/mol)."
},
"hairpin_gibbs_free_energy": {
"$ref": "#/paths/~1primers~1simple/post/responses/200/content/application~1json/schema/properties/results/properties/forward/properties/hairpin_gibbs_free_energy"
},
"homodimer_gibbs_free_energy": {
"$ref": "#/paths/~1primers~1simple/post/responses/200/content/application~1json/schema/properties/results/properties/forward/properties/homodimer_gibbs_free_energy"
},
"melting_temperature": {
"$ref": "#/paths/~1primers~1simple/post/responses/200/content/application~1json/schema/properties/results/properties/forward/properties/melting_temperature"
},
"overlap": {
"allOf": [
{
"$ref": "#/paths/~1backbone~1linearize~1restriction/post/responses/200/content/application~1json/schema/properties/results/oneOf/0/properties/seq"
}
],
"description": "Homology overhang taken from the provided overlap template."
}
},
"required": [
"annealing_sequence",
"overlap",
"full_seq",
"melting_temperature",
"hairpin_gibbs_free_energy",
"homodimer_gibbs_free_energy",
"gibbs_free_energy"
],
"type": "object"
},
"reverse": {
"$ref": "#/paths/~1cloning~1gibson~1primers/post/responses/200/content/application~1json/schema/properties/results/properties/forward"
}
},
"required": [
"forward",
"reverse"
],
"type": "object"
},
"status": {
"enum": [
"success"
],
"type": "string"
}
},
"required": [
"status",
"results"
],
"type": "object"
}
}
},
"description": "Forward and reverse Gibson primers (full sequences include overlaps)."
},
"400": {
"$ref": "#/paths/~1backbone~1linearize~1selection/post/responses/400"
},
"403": {
"$ref": "#/paths/~1backbone~1linearize~1selection/post/responses/403"
},
"409": {
"$ref": "#/paths/~1backbone~1linearize~1selection/post/responses/409"
},
"422": {
"$ref": "#/paths/~1backbone~1linearize~1selection/post/responses/400"
}
}