Skip to main content

No project description provided

Project description

[logo] Travis CI build status

Dna Cauldron (complete documentation here) is a Python library to simulate restriction-based assembly operations. You provide a set of parts and receptor vectors and Dna Cauldron will compute the assembli(es) that could result from the mix.

Dna Cauldron was written with Synthetic Biology applications in mind (typically, batches of parts-based assemblies).

It is simple to use, plays well with BioPython, can import and export Genbank (it conserves all features), and provides ways to select particular constructs when dealing with large combinatorial assemblies.

Try it online ! Too lazy to use the library programmatically ? It is available there as a web service .


You can install DnaCauldron through PIP

sudo pip install dnacauldron

Alternatively, you can unzip the sources in a folder and type

sudo python install

It works better with the Networkx development version, that you install with

sudo pip3 install git+


Single assembly

To assemble several parts and a receptor plasmid into a single construct, use single_assembly. The parts can be provided either as paths to genbank files or as Biopython records. Dna Cauldron returns a Biopython record of the final assembly, and (optionally) writes it to a Genbank file.

from dnacauldron.utils import single_assembly
final_construct = single_assembly(
    parts=["", "", "", ""],
    receptor="", # Receptor plasmid for the final assembly
    outfile="", # Name of the output
    enzyme="BsmBI" # enzyme used for the assembly

Combinatorial assembly

The following example imports parts from Genbank files and outputs all possible outcomes of BsmBI-based Golden-Gate assembly as new genbank files,, etc. We ignore the final assemblies containing a BsmBI site as these are unstable.

from Bio import SeqIO # for exporting to Genbank
from dnacauldron import (RestrictionLigationMix, NoRestrictionSiteFilter,

# Load all the parts (including the receptor)
parts_files = ["", "", "", "", "",
parts = [load_genbank(filename, linear=False) for filename in parts_files]

# Create the "reaction mix"
enzyme = "BsmBI"
mix = RestrictionLigationMix(parts, enzyme)

# Find all final assemblies (containing no sites from the restriction enzyme)
filters = [NoRestrictionSiteFilter(enzyme)]
assemblies = mix.compute_circular_assemblies(seqrecord_filters=filters)

# Iter through all possible constructs and write them on disk as Genbanks.
for i, assembly in enumerate(assemblies):
    SeqIO.write(assembly, os.path.join("..", "" % i), "genbank")

Full Assembly report

DNA Cauldron also implements routine to generate reports on the assemblies, featuring the resulting constructs (in genbank and PDF format) as well as figures for verifying that the parts assembled as expected and help troubleshoot if necessary.

The following code produces a structured directory with various reports:

import dnacauldron as dc
parts = [
    dc.load_genbank("", linear=False, name="PartA"),
    dc.load_genbank("", linear=False, name="PartB"),
    dc.load_genbank("", linear=False, name="PartC"),
    dc.load_genbank("", linear=False, name="Receptor"),
dc.full_assembly_report(parts, target="./my_report", enzyme="BsmBI",
                        max_assemblies=40, fragments_filters='auto',



How it works

Dna Cauldron simulates enzyme digestions and computes sticky ends, then generates a graph of the fragments that bind together, and explores circular paths in this graph (which correspond to circular constructs), an idea also used in PyDNA and first described in Pereira et al. Bioinf. 2015 . DNA Cauldron adds methods to deal with combinatorial assemblies, selecting constructs based on a marker, routines for report generation, etc.


Dna Cauldron is an open-source software originally written at the Edinburgh Genome Foundry by Zulko and released on Github under the MIT licence (¢ Edinburgh Genome Foundry). Everyone is welcome to contribute !

Project details

Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Filename, size & hash SHA256 hash help File type Python version Upload date
dnacauldron-0.1.1.tar.gz (201.2 kB) Copy SHA256 hash SHA256 Source None

Supported by

Elastic Elastic Search Pingdom Pingdom Monitoring Google Google BigQuery Sentry Sentry Error logging AWS AWS Cloud computing DataDog DataDog Monitoring Fastly Fastly CDN SignalFx SignalFx Supporter DigiCert DigiCert EV certificate StatusPage StatusPage Status page