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

**URL:** https://discourse.julialang.org/t/ann-popgen-jl-v0-4-0-and-popgensims-jl-v0-0-2/50316
**Category:** Biology, Health, and Medicine
**Tags:** package, announcement
**Created:** [November 17, 2020, 6:17pm UTC](https://discourse.julialang.org/t/ann-popgen-jl-v0-4-0-and-popgensims-jl-v0-0-2/50316 "2020-11-17T18:17:28Z")
**Posts on this page:** 5
**Page:** 1

<div class="post-metadata">

### Author: ![pdimens](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/pdimens/32/15729_2.png) [@pdimens](https://discourse.julialang.org/u/pdimens)
#### Post date: [November 17, 2020, 6:17pm UTC](https://discourse.julialang.org/t/ann-popgen-jl-v0-4-0-and-popgensims-jl-v0-0-2/50316/1 "2020-11-17T18:17:28Z")

</div>

Hello all, I’m thrilled to announce the next release of [PopGen.jl v0.4.0](https://github.com/pdimens/popgen.jl) (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 😓

### 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:

- [Blouin](https://pdimens.github.io/PopGen.jl/docs/analyses/relatedness#blouin)
- [LiHorvitz](https://pdimens.github.io/PopGen.jl/docs/analyses/relatedness#li--horvitz)
- [Loiselle](https://pdimens.github.io/PopGen.jl/docs/analyses/relatedness#loiselle)
- [Lynch](https://pdimens.github.io/PopGen.jl/docs/analyses/relatedness#lynch)
- [LynchLi](https://pdimens.github.io/PopGen.jl/docs/analyses/relatedness#lynch--li)
- [LynchRitland](https://pdimens.github.io/PopGen.jl/docs/analyses/relatedness#lynch--ritland)
- [Moran](https://pdimens.github.io/PopGen.jl/docs/analyses/relatedness#lynch--moran)
- [QuellerGoodnight](https://pdimens.github.io/PopGen.jl/docs/analyses/relatedness#queller--goodnight)
- [Ritland](https://pdimens.github.io/PopGen.jl/docs/analyses/relatedness#ritland)

Relatedness is performed in parallel and performs bootstrapping and CI if specified. Progress bars added for convenience. We also provide an [accompanying tutorial](https://pdimens.github.io/PopGen.jl/blog/relatedness) 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](https://github.com/pdimens/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](https://pdimens.github.io/PopGen.jl/docs/simulations/simulate_samples).

### Changes

- `cross()` method for samples from two different `PopData` now uses the `Pair` syntax

```julia
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](https://github.com/pdimens/popgen.jl) and [the docs](https://pdimens.github.io/PopGen.jl/). 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! 😁

---

<div class="post-metadata">

### Author: ![viralbshah](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/viralbshah/32/54_2.png) [@viralbshah](https://discourse.julialang.org/u/viralbshah)
#### Post date: [November 17, 2020, 6:51pm UTC](https://discourse.julialang.org/t/ann-popgen-jl-v0-4-0-and-popgensims-jl-v0-0-2/50316/2 "2020-11-17T18:51:12Z")

</div>

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

---

<div class="post-metadata">

### Author: ![pdimens](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/pdimens/32/15729_2.png) [@pdimens](https://discourse.julialang.org/u/pdimens)
#### Post date: [November 17, 2020, 6:59pm UTC](https://discourse.julialang.org/t/ann-popgen-jl-v0-4-0-and-popgensims-jl-v0-0-2/50316/3 "2020-11-17T18:59:40Z")

</div>

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.

---

<div class="post-metadata">

### Author: ![kevbonham](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/kevbonham/32/216165_2.png) [@kevbonham](https://discourse.julialang.org/u/kevbonham)
#### Post date: [November 17, 2020, 9:39pm UTC](https://discourse.julialang.org/t/ann-popgen-jl-v0-4-0-and-popgensims-jl-v0-0-2/50316/4 "2020-11-17T21:39:42Z")

</div>

> [@pdimens](#):
>
> Yeah, I use docusaurus for all the docs.

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

---

<div class="post-metadata">

### Author: ![pdimens](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/pdimens/32/15729_2.png) [@pdimens](https://discourse.julialang.org/u/pdimens)
#### Post date: [November 17, 2020, 9:47pm UTC](https://discourse.julialang.org/t/ann-popgen-jl-v0-4-0-and-popgensims-jl-v0-0-2/50316/5 "2020-11-17T21:47:05Z")

</div>

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