Start here

DNA Design Suite

Paste DNA, a protein, or a GenBank file. Choose a codon table and the rules. Run design. The job keeps running in the background, and the finished gene can be copied or saved as FASTA, GenBank, a CSV of the scores, or SBOL 3.

epistasis.context_naturalness absent

Checking whether ViennaRNA is installed.

Checking installed models.

  1. Sequence
  2. Host
  3. Rules
  4. Run
  5. Results

Codon design keeps the protein the same and changes which codons spell it, so the gene suits the host you name. Later steps already have a working default.

1 Sequence

DNA is the coding sequence only. A protein is reverse-translated with the codon table you load, then designed. A GenBank file uses one CDS feature. If the file has more than one, type that feature’s name.

For DNA, paste the coding sequence (the part that is translated) or a FASTA record. It should use A, C, G and T, and its length should divide by 3. Switch the menu above for a protein (M, L, K…) or a GenBank record.

rpsL is the E. coli K-12 MG1655 gene, 125 codons. BBa_E0040 is the untrimmed iGEM GFP part.

Off unless you tick it. Standard-code stops are TAA, TAG and TGA. An iGEM part that ends TAATAA, such as untrimmed BBa_E0040 (720 bp), keeps the first stop and drops the second (717 bp). With the box off, that part is still refused as CF-SEQ-003.

No sequence yet. The rpsL demo is the E. coli K-12 MG1655 gene rpsL, 125 codons.

Leave blank to start from the coding sequence above. If you paste another coding sequence, it must translate to the same protein. A difference is CF-SEQ-004 and names the residue positions. The search then starts from this sequence.

2 Host

The menu is the codon-usage files installed with this page, from GET /v1/hosts. It is not a catalogue of every organism. The name is a label on the job and has to look like genus_species:taxid/strain. The filled-in name is the rpsL demo host. The table is what the optimizer uses. The bundled table is examples/mg1655_ribosomal_usage.json, counted from E. coli K-12 MG1655 ribosomal proteins and labelled user-supplied.

CAI (codon adaptation index) compares your gene with this table. 1.0 means every counted codon is a top synonym of the table that was loaded. Stops and single-codon families are excluded. A codon whose weight is 0 makes the whole CAI 0. Kazusa (taxid 316407) is genome-wide frequencies converted to relative adaptiveness. Loading it replaces the table the search uses, so the result is a different number, not a second column on the ribosomal score. Upload accepts a codon_usage JSON, a Kazusa or CoCoPUTs-style CSV or text file, or a FASTA of coding sequences. The server counts or normalizes it and labels the result user-supplied unless you already marked the file. There is still no downloaded catalogue of species.

No codon table loaded yet.

Paste Kazusa text (triplet and a count in parentheses), a codon and count table, or FASTA coding sequences. Relative adaptiveness is each count divided by the maximum in its synonymous family. Unobserved families stay at 0. No pseudocount is added. The table is stored as user_supplied, not as a highly expressed Sharp and Li set, unless you say so. GET /v1/hosts remains the example files, not a catalogue of organisms.

3 Rules optional

Constraints are hard limits, separate from scores. Leave this on “No extra rules” for a first run. The rpsL example file, examples/rpsL_constraints.json, is named as an empty demonstration set: its list is empty, so it checks nothing.

Each button loads that preset into the JSON box and sends it. BioBrick RFC[10] forbids EcoRI, XbaI, SpeI, PstI and NotI. Golden Gate forbids BsaI and BsmBI. Synthesis forbids a 50 nt GC window outside 40–60%, a homopolymer longer than 6, and a repeated 12-mer. Gibson forbids that same repeated 12-mer on the 5′ flank, the coding sequence, and the 3′ flank as one string. Paste the promoter and the terminator into the flanks under Advanced. A clear Gibson result does not guarantee that the fragments will assemble. A rule this version does not search is reported as CF-FEAS-008 rather than treated as satisfied.

4 What to optimize

A preset is expanded by the server. The finished job lists the term ids it actually used. CAI only is the right first design. Harmonize needs a second table: the organism the DNA came from. Match frequency is ranked by the population loop, so use the standard budget if you want the search to move it; a fast budget reports the score and says the seeds were chosen without it. Structure needs ViennaRNA on this computer. The context model is used only when it is installed. Choose “Scores I tick below” to send the boxes instead of a preset.

Scores. Codon adaptation index is enough for a first design.

Codon adaptation index. Higher means the codons look more like the highly expressed genes in the table you loaded. This is the usual first objective. The search maximizes it.

The share of the gene that is G or C, as one number. The search minimizes it, so selecting it pushes GC down. It is not a target and not a GC window. Use the GC-window rule above if you want a band.

How many constraint rules the sequence still breaks. The result table says whether this term was ranked on or only reported.

Minimize the mean absolute difference between each input codon’s relative adaptiveness in the source table and the chosen codon’s relative adaptiveness in the expression-host table. The method is Claassens et al., PLoS ONE 2017. The input DNA’s codons are the source choices. A protein paste is reverse-translated first, so those codons are not a natural gene.

Not loaded. Harmonization refuses to invent this table.

Minimize the squared difference between the gene’s synonymous codon fractions and the host table’s fractions. This is not CAI. CAI piles onto the top codon. The term couples every synonym of an amino acid, so only the population loop ranks it.

How folded the messenger RNA is near each codon. ViennaRNA reports an accessibility from its partition function. If it is missing, the job refuses this objective with CF-STRU-003 rather than inventing a score. UNKNOWN means not measured. It is not zero and it is not a bad score.

Nussinov is an opt-in maximum matching: pair score 1 for A–U, G–C and G–U, hairpin of at least 3 (Nussinov and Jacobson, PNAS 1980). The score is the mean paired fraction between 0 and 1. It is not a free energy in kcal/mol and not an unpaired probability. Temperature does not enter it. It is not used unless you select it.

Advanced options

The budget chooses which search stages run. Fast runs two stages (a first pass, then a polish) and is the right first choice. Standard adds a population of alternative designs, evolved for the number of generations below. Exact also asks for a final ranking stage this version does not run; the job says so with CF-ORCH-006 and still returns the earlier stages. Tiers are those stages. The progress panel shows one row per tier, not a single percentage.

How many rounds the population stage runs. Fast does not run that stage, so this number waits until you choose Standard or Exact. 4 generations and seed 7 are the rpsL example.

A number that makes the random part of the search repeatable. The same sequence, table, options, and seed produce the same design.

NCBI translation table. 11 is the bacterial code, which is what E. coli uses. Change it only if your host uses a different code.

Bases before and after the coding sequence that must not change, such as a promoter and a terminator. The Gibson repeat rule counts these together with the coding sequence. A 12-mer that occurs once in the promoter and once in the gene is a repeat the search can try to remove from the gene. A repeat that sits only in the flank is reported and left in place. Leave both blank if the coding sequence is the whole design. Sequence you do not paste is not scanned.

Used by Gibson report, not by the codon search. Each arm is this many bases copied from the end of the 5′ flank and the start of the 3′ flank. 40 is the default. 20 to 150 is the accepted range. Melting temperature is not computed, and bases are not invented when a flank is shorter than this number.

The local server asks for a token shaped like t_ and then 8 to 32 letters or digits. The filled-in value is fine when you are the only person using this computer. It is not a password for an account.

Built from the steps above. Tick the box only if you need to change a field the form does not show. While it is ticked, Run design sends this text as-is.

Run design posts the job and returns immediately. Fast, on the rpsL demo, usually finishes within a minute. Check these rules asks whether the DNA you pasted can satisfy the constraints. It does not start a design. Vendor-class screen flags GC windows, homopolymers, repeats and cloning sites using this suite’s presets. It is not a manufacturer score and not an expression assay. Global fold reports a ViennaRNA minimum free energy when that program is installed, or a labelled Nussinov base-pair count when it is not. That fold is not the windowed accessibility objective.

Rules not checked yet. Check these rules uses the DNA in the box. A protein or a GenBank file is checked on the finished design.

Status

No job yet. A running job fills the tier tracks from GET /v1/jobs/{id}.

Background jobs

No jobs yet. Run design starts one in the background. This list is filled from GET /v1/jobs.

Pareto front

The designs the search kept. When there is one objective, this is that one design. The recommended candidate is marked. A column is a score the search used. UNKNOWN means that score was not measured. FASTA, GenBank, and CSV download from this result.

No front yet. A finished job fills this panel. A failure names its code and the reason in words.

6 Lab measurement optional

Record a number you measured. It is stored and can be downloaded as CSV. The server may fit a straight line of that number against GC fraction. That line does not change codon choices, and no sequence model is trained.

What this version does not do

A request this build cannot run answers CF-CLI-003. Nothing is silently skipped.

  • Dwell is not scored (CF-LAND-001). No paper states one 5′ A-site offset for GEO GSE53767, so this version does not invent one and does not report a zero deviation.
  • GET /v1/hosts is the codon-usage files installed here, not a list of every organism. A name you type still needs a table. Import a Kazusa file, a count table, or your own CDS set for another organism.
  • GET /v1/models is the verified context model, or an empty list when that file is not installed. A saved lab measurement is stored and exported. The GC-fraction line, when one can be fit, does not change codon choices. No sequence model is trained.
  • Feasibility reports a proof only when it can show a synonymous CDS the checker accepts, or an exact finding. Otherwise the report says the checks are necessary conditions and the set is unknown.
  • Nussinov is an approximate matching you must opt into. It is not used when ViennaRNA is missing, and it is not a free-energy score.
  • On the assembly rules, rpsL stays at CAI 0.9866866273575934. CAG at codon 74 is blocked by PstI, and GAC at codon 88 by a 12-mer whose cheapest feasible repair costs more CAI than that codon returns. The higher number is an infeasible sequence.