Moonshine.jl Documentation
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.
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–.