DNA Chisel

Last updated: September 9, 2025

Overview

DNA chisel is a Python library for optimising DNA sequences with respect to a set of constraints and optimisation objectives.

Inputs

  • FASTA file containing DNA or protein sequence to codon optimise

  • Minimum and maximum GC content (default value based on species selected)

  • Species to optimise for (E coli, S-Cerevisiae, Homo Sapiens, C-Elegans, B-Subtilis, D-Melanogaster)

  • Array of restriction enzymes to avoid

  • To skip enforcing GC content constraint (true) or not (false) - default true

Outputs

  • FASTA file with the codon optimised DNA sequence

  • Statement containing key information (GC content, information about back translation and genetic constraints for the chosen organism)

Description (https://academic.oup.com/bioinformatics/article/36/16/4508/5869515)

DNA Chisel is an easy to use and extend sequence optimisation framework, which can be run as a python library, web application, or command line interface. For DNA Chisel, a problem is defined by annotating a genbank record to indicate the nature and scope of the different specifications to be applied to the record’s sequence. The optimisation section has two main steps - resolution of hard constraints ignoring optimisation objectives, and objectives maximisation with respect to the constraints. During both these steps, unsatisfactory sequences are detected and separately optimised. A region’s sequence is optimised via either a stochastic search or an exhaustive search through all possible sequence variants (depending on the number of variants). Within Python, a new sequence is created by creating a new Python class with custom sequence evaluation and local resolution methods, and the class can optionally be registered with DNA Chisel’s GenBank record parser to enable its use via GenBank annotations.