This page lists libraries, packages, containers and programs I have developed. Usability varies, but everything is still maintained and should be functional.
Genetics
Moonshine.jl
Ancestral recombination graph inference in Julia. This package's primary objective is to provide user-friendly facilities for fast, model-based ARG inference. As shown in the quickstart guide, even a first-time Julia user can infer ancestries with a few lines of code. Our package is built on top of Julia's graph ecosystem, which makes studying ARGs from a graph-theoretical perspective easy and natural. Data can be loaded from VCF files using VCFTools.
Moonshine is tightly integrated with the popular tskit package via PythonCall. Genetic samples can be generated directly from msprime without ever leaving Julia's REPL. Moonshine's genealogies are readily converted to TreeSequences with a single method call. Conversely, our package can be used from Python thanks to JuliaCall. Explanations and examples are available in the documentation. More interoperability features are planned.
This work is the subject of an article forthcoming in Frontiers in Genetics.
Hooch.jl
Phenotype modelling on networks via circuit theory. Not public yet!
Lineage
Asymptote library for drawing ancestral recombination graphs. Documentation is provided in the project's readme along with a commented usage example.
Containers
container-waypipe
Base image to serve graphical applications via Waypipe and/or X11 forwarding. Built on top of Alpine Linux, it runs an SSH server configured to accept the user's certificate authority. The readme contains general user-friendly instructions on how to set up CA authentication for ssh on a small network; worth a read if you are interested in those kinds of things.
Julia
JCheck.jl
Property-based testing in Julia. I presented this package at JuliaCon 2022. A video recording of my talk is available. The package is currently usable and available in Julia’s general registry. Its development is on hold however because of lack of time on my part. I intend to pick up where I left in the near future.