I want to study the nature of genetic variation in offspring from the same set of human parents. To this end, I would like to take two (male and female) complete genomes, generate gametes from them, combine pairs of them at random, and analyze the distribution of the resultant offspring’s genomes (calculate variance of polygenic risk scores, etc.).

In the absence of recombination, this is trivial; I just duplicate gamete DNA and segregate the vectors representing tetrads. However, I want to take recombination and linkage into account. Of course, I could randomly generate crossover sites and even encode interference in the algorithm I write to perform this, but I want things to be as similar to observed human recombination dynamics as possible.

I can’t seem to find any software packages (preferably in Python, but I’m not picky) that would allow me to do this, but I figure I must have overlooked a standard library for this purpose as this seems like something people would have wanted to do long before now.


1 Answer 1


I believe that this is an application of the ms program, which is widely used in population genetics.

More recent programs also exist (here is another; here is another, here is another) that may be more applicable directly to human genomes.

I'd suggest looking at those various options and deciding which of them fits your application. This is certainly not exhaustive, there are plenty more!


You must log in to answer this question.

Not the answer you're looking for? Browse other questions tagged .