Optimize DNA sequences under constraints.
(Documentation in progress, come back later !)
DnaChisel (complete documentation here) is a Python library to optimize the nucleotides of DNA sequences with respect to a set of constraints and optimization objectives.
It can be used for codon-optimizing the genes of a sequence for a particular micro-organism, modifying a sequence to meet the constraints of a DNA provider while preserving genes, and other sensible patterns.
DnaChisel also provides much freedom to define optimization problems and model new kinds of specifications, making it suitable for either automated sequence design, or for complex custom design projects.
Example of use
In this basic example we generate a random sequence and optimize it so that
- It will be rid of BsaI sites.
- GC content will be between 30% and 70% on every 50bp window.
- The reading frame at position 500-1300 will be codon-optimized for E. coli.
Here is the code to achieve that:
from dnachisel import * # DEFINE THE OPTIMIZATION PROBLEM problem = DnaOptimizationProblem( sequence=random_dna_sequence(10000), constraints=[AvoidPattern(enzyme_="BsaI"), EnforceGCContent(mini=0.3, maxi=0.7, window=50)], objectives=[CodonOptimize(species='e_coli', location=(500, 1300))] ) # SOLVE THE CONSTRAINTS, OPTIMIZE WITH RESPECT TO THE OBJECTIVE problem.resolve_constraints() problem.optimize() # PRINT SUMMARIES TO CHECK THAT CONSTRAINTS PASS print(problem.constraints_text_summary()) print(problem.objectives_text_summary())
DnaChisel implements advanced constraints such as the preservation of coding sequences, or the inclusion or exclusion of advanced patterns, as well as some common biological objectives (such as codon optimization, GC content), but it is also very easy to implement new constraints and objectives.
You can install DnaChisel through PIP
sudo pip install dnachisel
Alternatively, you can unzip the sources in a folder and type
sudo python setup.py install
To be able to generate plots and reports, run
sudo pip install dna_features_viewer weasyprint
Release history Release notifications
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
|Filename, size||File type||Python version||Upload date||Hashes|
|Filename, size dnachisel-0.1.0.tar.gz (163.5 kB)||File type Source||Python version None||Upload date||Hashes View hashes|