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 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.
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–.