Documentation in progres

This documentation is still a work in progress. Among other things, API reference is not complete yet.

Moonshine is a Julia framework for coalescent modelling oriented towards ancestral recombination graph (ARG) inference. It provides the AbstractGenealogy type which leverages Graph.jl for convenient implementation of graph-theoretical phylogenetic models.

QuickStart

If it is your first visit, chances are you are looking for the Quick Start page.

Reference

Moonshine is the subject of the following open access publication:

Fournier P and Larribe F (2026). Moonshine.jl: a Julia package for genome-scale model-based ancestral recombination graph inference. Front. Genet. 17:1753780. doi: 10.3389/fgene.2026.1753780

If you use Moonshine in your work, please cite this article. References in standard formats are provided with the HTML version of the paper or on the GitHub page of the package (CITATION file).

Inference

Out of the box, types representing coalescent trees and ancestral recombination graphs are provided: see Tree and Arg respectively. Efficient inference algorithms are implemented: see build!.

Package Ecology

msprime

  • Moonshine can infer trees and ARG's directly from TreeSequence objects. For convenience, it is also possible to generate a sample of haplotypes directly from msprime with a single line of Julia code. Both these functionalities are documented in type Sample's documentation.
  • Args can be converted to TreeSequences: see Calling Moonshine From Python.

OpenMendel

Genomic data can be imported from VCF formatted files using the VCFTools package: see Working with VCF files.

Conventions

Documentation implements the following conventions:

  • constructors are documented with types;
  • non-exported symbols are documented and marked with –Internal–.