[ANN] PopGen.jl v0.4.0 and PopGenSims.jl v0.0.2

Hello all, I’m thrilled to announce the next release of PopGen.jl v0.4.0 (although incorrectly versioned in the release, oops).

Internal tweaks

  • removing CategoricalArrays in favor of PooledArrays
  • cleaning up and adding more internal functions
  • Structure/fastStructure file support
  • lazy loading of VCF/BCF file readers to trim initial compilation time
  • rewriting B/VCF importer
  • releases now pushed to release branch (formerly master)
  • default branch is now dev
  • starting writing actual tests for CI :sweat:

New features

The big new feature is the inclusion of a relatedness/kinship estimators! You can now calculate pairwise relatedness for (diploid) samples in your PopData using these estimators:

Relatedness is performed in parallel and performs bootstrapping and CI if specified. Progress bars added for convenience. We also provide an accompanying tutorial for the new relatedness functions.

To do:

  • Wang 2002 relatedness estimator
  • dyadML (Milligan 2003) estimator using Turing.jl
  • rewrite the estimators to be more performant (help appreciated!)
  • pairwise FST and friends along with permutation tests for F-stats
  • figure out precompilation (help appreciated) because the package takes way to long to load on first using call

Announcing PopGenSims.jl

To complement the PopGen.jl release, GeneticCrosses.jl has been rebranded PopGenSims.jl, as it exists to be a functionality add-on to PopGen.jl. As the name implies, it makes population genetics simulations. The docs for PopGenSims.jl have been integrated into the PopGen.jl docs.

Changes

  • cross() method for samples from two different PopData now uses the Pair syntax
cross(PopData => "Parent1Name", PopData => "Parent2Name", n::Int, generation::String)

New features

  • simulate samples within populations
  • simulate offspring of specific siblingship (unrelated, halfsib, fullsib)

We’re very excited about this release and hope you check out the package and the docs. We’re always looking for an extra set of eyes to point out bugs, find inefficiencies, come up with new stuff, etc., so please reach out if you’re interested! :grin:

7 Likes

Really cool package.

I have a completely unrelated question. The website and the docs are beautiful. Is it all done with docasaurus? Are the docs not done with Documenter?

-viral

Thanks for the kind words!

Yeah, I use docusaurus for all the docs. I have no ability to play with JS or CSS (or HTML, really) and know I wanted/needed tab block support, so I went with this framework after a bunch of trial and error.

1 Like

Indeed - that looks lovely! But looks like they’re not built automatically - are you manually managing the gh-pages?

They have to be manually edited, which is a bit tedious.