A Python toolkit for simulating sequence evolution, exploring molecular clock models and implementing phylogenetic reconstruction algorithms from first principles.
Molecular clocks use DNA sequence variation to estimate evolutionary relationships and divergence times between species.
This project explores the computational foundations of molecular clock analysis by implementing the core algorithms from first principles. It combines reusable simulation engines, analytical tools and interactive visualisations to provide an educational framework for understanding sequence evolution and phylogenetic reconstruction.
Detailed documentation, implementation notes and usage guides are available in the project Wiki.
| Component | Description |
|---|---|
| Strict Molecular Clock Simulation | Simulates sequence evolution under a strict molecular clock, producing synthetic FASTA, Newick and JSON datasets |
| Relaxed Molecular Clock Simulation | Simulates lineage-specific mutation rates using a simple autocorrelated relaxed clock model |
| Distance Matrix Calculator | Generates pairwise Hamming, proportional (p-distance) and Jukes–Cantor (JC69) distance matrices from aligned DNA sequences |
| Strict Molecular Clock Explorer | Interactive Streamlit application for exploring strict molecular clock simulations |
| Relaxed Molecular Clock Explorer | Interactive Streamlit application for investigating relaxed molecular clock behaviour |
Further documentation, including the documentation on intended field usage and how to run the application, is available in the project Wiki.
To file issues or suggestions, please use the Issues page for this project on GitHub.
This project is licensed under the MIT License - see the LICENSE file for details.
