This past weekend I wrote a tiny offshoot to PopGen.jl that simulates the offspring resulting from breeding two individuals and it’s called
GeneticCrosses.jl . https://github.com/pdimens/GeneticCrosses.jl
The package pulls some of the core internals from PopGen and let’s you pick 2 individuals and specify how many offspring you want to simulate, returning a
PopData object of offspring. It works for ploidy of 1,2,4,6, and 8. Also let’s you backcross stuff between two PopData’s. Of course the things you’re crossing must have identical loci.
The package’s immediate purpose is to generate samples of known kinship for testing the kinship methods we’re working on in PopGen.jl.
There’s a few things that need patching up though, like the functions to write to disk given the extra
parents column in the meta. It would be pretty sweet to reconstruct parental genotypes based on a bunch of offspring like I think COLONY can do, but that’s a super-long-term goal and I 100% don’t know enough about the math to do that (yet?). Another, much simpler future task would be to simulate individuals based on allele frequencies for a given population.
I welcome any thoughts and comments!