Skip to content

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.

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.