VoigtLab / dnaplotlib

DNA plotting library for Python
MIT License
288 stars 73 forks source link

DNAplotlib

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)

Installation

The DNAplotlib library is contained within the dnaplotlib.py file in the lib directory and requires Python 3.6+ and matplotlib 3.8+. 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

Build

Create a virtual env:

python3 -m venv .venv

activate the venv:

source .venv/bin/activate

Install dependancies

pip install -r requirements.txt