Genedom is a Python package for managing the domestication of genetic parts, which means modifying their sequences to make them compatible with a given genetic assembly standard. Genedom binds together a sequence optimizer, information on the genetic standard, and a reporting routine to automate the domestication of large batches in an easy and human-friendly way.
Features include:
- User-defined part domesticators with extra nucleotides optionally added to both ends, hard constraints on the sequence (such as enforcing absence of a restriction site) and optimization objectives (such as codon optimization).
- Built-in pre-defined domesticators for popular genetic assembly standards (well, only EMMA at the moment).
- Generation of barcodes that can be added to the sequence (but won't be in final constructs). This allows easy verification of a sequence file or a DNA sample (e.g. in case of label mix-up).
- Routine for batch-domesticating sequences with report generation, including reports on each sequence optimization, spreadsheets of parts, ready-to-order FASTA and Genbank files of the parts, and a summary report to quickly verify everything, with a list of every domesticator used, for traceability.
An example summary report:
You can also use Genedom online via EGF's Domesticate Part Batches web app.
from genedom import (GoldenGateDomesticator, random_dna_sequence,
write_record)
sequence = random_dna_sequence(2000, seed=123)
domesticator = GoldenGateDomesticator("ATTC", "ATCG", enzyme='BsmBI')
domestication_results = domesticator.domesticate(sequence, edit=True)
print (domestication_results.summary())
write_record(domestication_results.record_after, 'domesticated.gb')
(see docs for more options)
from genedom import BarcodesCollection
barcodes_collection = BarcodesCollection.from_specs(
n_barcodes=96, barcode_length=20,
forbidden_enzymes=('BsaI', 'BsmBI', 'BbsI'))
barcodes_collection.to_fasta('example_barcodes_collection.fa')
from genedom import BUILTIN_STANDARDS, load_record, batch_domestication
records = [
load_record(filepath, name=filename)
for filepath in records_filepaths
]
barcodes_collection = BarcodesCollection.from_specs(n_barcodes=10)
batch_domestication(records, 'domestication_report.zip',
barcodes=barcodes, # optional
standard=BUILTIN_STANDARDS.EMMA)
You can install Genedom through PIP:
pip install genedom
Alternatively, you can unzip the sources in a folder and type:
python setup.py install
Genedom is a free/libre and open-source software released on Github under the MIT license (Copyright 2018 Edinburgh Genome Foundry, University of Edinburgh). It was originally written by Zulko and is currently being developed by Peter Vegh. Everyone is welcome to contribute!