Software module for DNA structure generation and analysis¶
A Python toolkit for generation and analysis of double-stranded DNA structures.
What is MDNA?¶
MDNA enables the construction of arbitrarily shaped DNA using spline-based mapping, supports canonical and non-canonical nucleotides, and integrates Monte Carlo relaxation to obtain physically consistent configurations. In addition, it implements rigid base parameter analysis and linking number calculations, and exports directly to MDTraj and OpenMM compatible trajectories for molecular dynamics workflows.
Example Gallery¶
Three examples that highlight the building of biomolecular assemblies with MDNA: extension of DNA structures, using proteins as scaffold to generate DNA structure, and connecting two DNA strands to form a DNA loop. Molecular representations are visualized with Mol* Viewer.
Quick Example¶
import mdna
# Generate a 100-bp DNA minicircle
dna = mdna.make(n_bp=100, circular=True)
# Relax the structure
dna.minimize()
# Compute rigid base parameters
params, names = dna.get_parameters()
# Export to PDB
dna.save_pdb('minicircle.pdb')
Key Features¶
- Arbitrary DNA shapes via spline control points
- Sequence-driven construction with canonical and non-canonical bases (hachimoji, fluorescent, hydrophobic UBPs)
- Hoogsteen base flipping and methylation editing
- Circular DNA generation with linking number control (\(\Delta Lk\))
- Monte Carlo relaxation for physically consistent configurations
- Rigid base parameter analysis: shear, stretch, stagger, buckle, propeller, opening, shift, slide, rise, tilt, roll, twist
- MDTraj interoperability for seamless MD workflows
Documentation¶
| Section | Description |
|---|---|
| Getting Started | Install MDNA and generate your first DNA in 5 minutes |
| User Guide | Task-oriented guides: Build · Modify · Analyse |
| Concepts | Architecture, splines, rigid base formalism |
| Jupyter Notebooks | Interactive tutorials from basic to advanced |
| API Reference | Complete reference for all classes and functions |
Citation¶
Link to the publication
Acknowledgements¶
This project is supported by the NWO Klein grant.