Skip to content
Switch branches/tags


DNAplotlib is a library that enables highly customizable visualization of individual genetic constructs and libraries of design variants. It can be thought of in many ways as matplotlib for genetic diagrams. Publication quality vector-based output is produced and all aspects of the rendering process can be easily customized or replaced by the user. DNAplotlib is capable of SBOL Visual compliant diagrams in addition to a format able to better illustrate the precise location and length of each genetic part. This alternative "traced-based" visualization method enables direct comparison with nucleotide-level information such as RNA-seq read depth or other base resolution measures. While it is envisaged that access will be predominantly via the programming interface, several easy to use text-based input formats can be processed by a command-line scripts to facilitate broader usage. DNAplotlib is cross-platform and open-source software released under the OSI OSL-3.0 license.

If you make use of DNAplotlib in any publications, we kindly ask that the following paper is cited:

Der B.S., Glassey E., Bartley B.A., Enghuus C., Goodman D.B., Gordon D.B., Voigt C.A., Gorochowski T.E., "DNAplotlib: programmable visualization of genetic designs and associated data", ACS Synthetic Biology, 2016. (DOI: 10.1021/acssynbio.6b00252)


The DNAplotlib library is contained within the file in the lib directory and requires Python 2.6 and matplotlib 1.2 or newer. To install add the location of this file to your PYTHONPATH and you are good to: import dnaplotlib

Getting Started

We provide an extensive gallery of use cases for DNAplotlib in the gallery directory. Click on a thumbnail below to go directly to the example code:

Genetic Designs and Annotation

New Part Types and Regulation

Trace-based Rendering

Dynamics and Evolution

Variant Libraries


DNA plotting library for Python




No packages published