Moonshine.jl Documentation

Warning

Under active development, breaking changes are likely, and documentation is a work in progress.

Expect nothing. Live frugally on surprise. Report any issue to the project's Codeberg repository.

Moonshine.jl 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 models of molecular evolution.

QuickStart

First things first, you are probably looking for the QuickStart page.

Read it. It's awesome.

Peer Review

As of today, Moonshine.jl has not undergone any kind of official peer review process, but that should happen soon enough as a paper is currently in the works. I'll keep this section updated for those of you who care about scientific rigour.

On that matter, note that this package places a strong emphasis on repetability via design choices that will be documented soon. Much of it is made possible via Melissa O'Neil's PCG family of random number generator. Her website and, in particular, her blog, definitely deserve a read if you care about random number generation, especially when done concurrently.

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.

Conventions

Documentation implements the following conventions:

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