Skip to content

Releases: davewalker5/MolecularClockSimulation

Version 0.5.0

Choose a tag to compare

@davewalker5 davewalker5 released this 07 Jul 10:10
a59a283

Distance Matrix Calculator

This release introduces the project’s first phylogenetic analysis component: a reusable Distance Matrix Calculator.

Previous releases focused on simulating evolutionary histories under strict and relaxed molecular clock models. Version 0.5.0 begins the next stage of the project by providing the tools needed to analyse sequence data and prepare it for phylogenetic reconstruction algorithms such as UPGMA.

Highlights

Distance Matrix Calculator

A new command-line utility has been added for generating pairwise genetic distance matrices from aligned FASTA files.

The calculator supports two distance measures:

  • Hamming distance – the absolute number of differing nucleotide positions.
  • Proportional distance (p-distance) – the fraction of differing positions relative to sequence length.

Distance matrices are exported in both CSV and JSON formats, making them suitable for inspection, downstream analysis and reuse by future algorithms.

Reusable Core Module

The distance calculation logic has been implemented as a reusable Python module with a lightweight command-line wrapper.

This architecture allows the same implementation to be used directly by future phylogenetic reconstruction algorithms without duplicating code.

Documentation

The project documentation has been expanded to include:

  • A detailed description of the Distance Matrix Calculator
  • An overview of the supported distance measures
  • Updates to the project wiki reflecting the growing analysis pipeline

Project Roadmap

With the addition of the Distance Matrix Calculator, the project now covers the first two major stages of molecular clock analysis:

  • Simulating evolutionary histories
  • Measuring genetic distances between taxa

The next planned milestone is the implementation of a simple substitution model and then the UPGMA (Unweighted Pair Group Method with Arithmetic Mean) clustering algorithm, allowing phylogenetic trees to be reconstructed directly from the generated distance matrices.

As with the existing simulation engines, the emphasis will remain on clarity, educational value and implementing the algorithms from first principles.

Version 0.4.0

Choose a tag to compare

@davewalker5 davewalker5 released this 06 Jul 21:28
266dafa

Relaxed Molecular Clock Explorer

This release introduces the Relaxed Molecular Clock Explorer, providing an interactive environment for exploring sequence evolution under a simple relaxed molecular clock model.

Built directly on top of the Relaxed Molecular Clock Engine introduced in v0.3.0, the explorer allows lineage-specific mutation rates to be adjusted interactively before generating and visualising complete simulated evolutionary histories.

This release brings the relaxed clock implementation to feature parity with the existing strict clock workflow, combining command-line dataset generation with an interactive visualisation environment.

Highlights

  • Added the Relaxed Molecular Clock Explorer
  • Interactive adjustment of relaxed clock simulation parameters
  • Visualisation of lineage-specific mutation rates and accumulated genetic change
  • Simulation summary including mutation rate statistics and expected substitutions
  • Support for exporting FASTA, Newick and JSON outputs directly from the explorer
  • New workflow documentation describing the relaxed clock simulation pipeline
  • Comprehensive Wiki documentation for the Relaxed Molecular Clock Engine and Explorer
  • Updated project documentation to include both strict and relaxed molecular clock workflows

Overview

The Relaxed Molecular Clock Explorer provides an intuitive way to investigate how variation in mutation rates influences molecular evolution.

Users can interactively adjust:

  • Tree structure and branch durations
  • Sequence length
  • Root mutation rate
  • Rate variation (sigma)
  • Minimum and maximum lineage rates
  • Mutation behaviour
  • Random seed

Each simulation produces a complete synthetic evolutionary history together with an interactive phylogenetic tree, simulation summary statistics and downloadable outputs.

Project Status

The project now includes two complementary molecular clock implementations:

  • Strict Molecular Clock – constant evolutionary rate across all lineages.
  • Relaxed Molecular Clock – lineage-specific mutation rates using a simple autocorrelated model.

Both implementations provide:

  • Independent simulation engines
  • Command-line interfaces
  • Interactive Streamlit explorers
  • FASTA, Newick and JSON exports
  • Comprehensive documentation

Together these provide a foundation for investigating how different molecular clock assumptions influence simulated evolutionary histories.

Looking Ahead

With both strict and relaxed molecular clock models now supported through command-line tools and interactive explorers, the next stage of the project will shift from simulation to phylogenetic reconstruction.

Version 0.3.0

Choose a tag to compare

@davewalker5 davewalker5 released this 06 Jul 17:26
8dfe28e

Relaxed Molecular Clock Engine

This release introduces the Relaxed Molecular Clock Engine, extending the project beyond the idealised strict molecular clock to model lineage-specific evolutionary rates.

While the existing Strict Clock Engine remains unchanged, the new simulator provides an independent implementation of a simple autocorrelated relaxed molecular clock, allowing different branches of the phylogenetic tree to evolve at different mutation rates while preserving a complete known evolutionary history.

Highlights

  • Added a new Relaxed Molecular Clock Engine
  • Independent implementation alongside the existing Strict Clock Engine
  • Support for lineage-specific mutation rates
  • Autocorrelated rate inheritance between parent and descendant lineages
  • New JSON configuration format for relaxed clock simulations
  • Generation of synthetic datasets in FASTA, Newick and JSON formats
  • Complete recording of lineage rates, mutation history and simulation metadata
  • New workflow documentation describing the relaxed clock simulation process
  • Expanded project documentation covering relaxed molecular clock concepts

Overview

The Relaxed Molecular Clock Engine follows the same overall simulation workflow as the Strict Clock Engine:

  • Generate an ancestral DNA sequence
  • Construct a rooted phylogenetic tree
  • Calibrate an ultrametric time tree
  • Assign lineage-specific mutation rates
  • Simulate sequence evolution
  • Export complete simulation datasets

By separating the two simulation engines, the project provides a clear comparison between strict and relaxed molecular clock assumptions while keeping each implementation focused, readable and reproducible.

Looking Ahead

With both strict and relaxed molecular clock simulation engines now in place, the project is well positioned to move on to phylogenetic reconstruction algorithms.

Future releases will explore methods such as UPGMA and other distance-based tree reconstruction techniques, using the simulated datasets as known ground truth for algorithm validation.

Version 0.2.0

Choose a tag to compare

@davewalker5 davewalker5 released this 06 Jul 10:23
a77e4c1

Molecular Clock Simulation v0.2.0

This release introduces the Strict Molecular Clock Explorer, an interactive Streamlit application for exploring the project's strict molecular clock simulation.

Built directly on top of the existing simulation engine, the explorer allows simulation parameters to be adjusted interactively before generating and visualising complete evolutionary histories. The command-line interface remains fully supported, with both interfaces sharing the same underlying simulation library.

New Features

  • Added the Strict Molecular Clock Explorer
  • Interactive adjustment of simulation parameters
  • Interactive visualisation of generated phylogenetic trees
  • Real-time simulation summary

Architecture

The simulation engine has been refactored to provide a reusable API consumed by both:

  • The existing command-line interface
  • The new Streamlit explorer

This establishes a common foundation for future molecular clock models and phylogenetic reconstruction algorithms.

Looking Ahead

While the current implementation focuses on generating ground-truth evolutionary histories under a strict molecular clock, the explorer provides the platform for future interactive tools.

This release represents an important step in evolving the project from a command-line simulator into an interactive computational laboratory for exploring molecular clock algorithms.

Version 0.1.0

Choose a tag to compare

@davewalker5 davewalker5 released this 06 Jul 07:16

Version 0.1.0

Initial Release

This initial release establishes the foundation of the Molecular Clock project with the implementation of a strict molecular clock simulation framework.

The simulator generates complete synthetic evolutionary datasets from first principles, providing a known evolutionary history that can be used to develop and validate future molecular clock algorithms.

Features

  • Generate random ancestral DNA sequences.
  • Construct rooted binary phylogenetic tree topologies.
  • Calibrate trees under a strict molecular clock to produce ultrametric trees.
  • Simulate DNA sequence evolution along each branch.
  • Record the complete evolutionary history, including internal nodes and mutation events.
  • Export simulated datasets in FASTA, Newick and JSON formats.
  • Configuration-driven simulations using JSON configuration files.
  • Fully reproducible simulations through configurable random seeds.

Documentation

This release includes initial project documentation covering:

  • Simulation architecture
  • Workflow and design
  • Configuration reference
  • Simulator operation

Looking Ahead

The strict molecular clock simulator provides the “forward model” for the project—simulating sequence evolution from a known evolutionary history.

Future releases will focus on the inverse problem: reconstructing phylogenetic relationships and estimating divergence times from simulated sequence data through the implementation of molecular clock inference algorithms.