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 Github 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 phylogenetic models.

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 formal peer review process, but that should happen soon as a paper is currently in preparation. I'll keep this section updated for those of you who value scientific rigor.

On that matter, note that this package places a strong emphasis on reproducibility through design choices that will be documented soon. Much of this is made possible by Melissa O'Neil's PCG family of random number generator. Her website and, in particular, her blog, are definitely worth reading 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–.