Mantha: Genetics for Dummies

I’m wondering if you are seeing this effect because you set the recombination to zero. I know 100,000 nucleotides sounds like a pretty long sequence, but you will still see some strong linkage effects in that range. I’ve never run the simulation before, but I’ll be curious to see what happens if you increase the recombination frequency. What do you think, @evograd?

1 Like

That is what I think it is too. @Jordan can test this hypothesis easily, by increasing the recombination rate. Let’s see what that does. Let’s see if we can understand why we get the results we end up getting…

Yes, there is a formula for the variance. Do you recall @John_Harshman?

No. Past my pay grade. But I bet it’s complicated.

I’m sure it is not complicated. It is related to the number of generations. As you increase the number of generations, the central limit theorem kicks in, and the relative variance decreases. That is why they are observing this:

Sorry, I thought you were talking about the variance in time to fixation.

1 Like

I’m pretty sure theory would dictate that recombination rate has no effect on neutral mutation fixation rate, and that’s what the program shows:


This was based on the same parameters as @Jordan showed earlier (code below), the only difference being the recombination rate. Each bar is based on 10 SLiM runs, and the error bars represent ± the SD. The only thing that might be able to be said for the recombination rate is that it might slightly reduce the variance, but I wouldn’t bet on it in a larger set of runs.

initialize() {
 initializeMutationRate(1e-7);
 initializeMutationType("m1", 0.5, "f", 0.0);
 initializeGenomicElementType("g1", m1, 1.0);
 initializeGenomicElement(g1, 0, 99999);
 initializeRecombinationRate(0);
}

1 { sim.addSubpop("p1", 500); }
10000 late() { sim.outputFixedMutations(); }
1 Like

That wasn’t the key observation. Recombination reduce the lumpiness. Look at the distribution of fixations per generation.

Right, I realise I misread the comments above. I can look at the “lumpiness” later tonight.

1 Like

Also, thought you might be interested in this @swamidass:

1 Like

I got bored and did it already. Yeah, recombination makes a big difference to the “lumpiness”!

In 10 runs with the above code, with recombination rate set to 0, there were 817 fixed mutations in total. On average, there were about 10.474 mutations fixed in “one go” (in the same generation).

In 10 runs with the above code, with recombination rate set to 1e-3 (very high), there were 821 fixed mutations in total.
On average, there were just 1.005 mutations fixed in “one go” (in the same generation).

2 Likes

Show a graph!

Do you guys know why? It should be obvious if you understand.

Ok, so quick example. I took the following initial setup:

initialize() {
 initializeMutationRate(1e-7);
 initializeMutationType("m1", 0.5, "f", 0.0);
 initializeGenomicElementType("g1", m1, 1.0);
 initializeGenomicElement(g1, 0, 99999);
 initializeRecombinationRate(0);
}

1 { sim.addSubpop("p1", 500); }
20000 late() { sim.outputFixedMutations(); } 

I ran it twice and calculated (number of unique generations where mutations were fixed)/(total number of mutations). So the larger the number the less “lumpy” it would be.

For a recombination rate of 0 I got 6% and 8% on two different runs. For a recombination rate of 1e-8 I got 21% and 17% on two different runs.

I then calculated the average number of mutations in each “lump”, for recombination rate of 0 it was 8 and 11 for the two runs, for recombination rate of 1e-8 it was 13 and 18.

I also calculate the RMS distance between fixed mutations that fixed in the same generation. For a recombination rate of 0 I got average distances of 26,678 and 27,458 bases for the two runs. For a recombination rate of 1e-8 I got average distances of 21,097 and 21,143 bases for the two runs.

So it seems that by adding recombination we got less lumpy, at least that’s what I’m taking away from this :smile:

2 Likes

You got more mutations per “unique generation” in the higher recombination runs?

1 Like

My data isn’t really “graphable”, the numbers I mentioned are the only real output I got.

Of course, it makes perfect sense. The lower the recombination is, the larger linkage groups are, in which case large number of mutations will be fixed at the same time because they’re in the same linkage block.

1 Like

Nope, sorry, I flipped it around. 8 and 11 mutations/lump for recombination rate of 1e-8, 13 and 18 mutations/lump for recombination rate of 0.

Glad for this post since I’m definitely in the genetics for dummies category.

In this model and other population genetic evolution models, what assumptions are made for:
1). number of offspring per reproducing couple
2). frequency and mixing rate for those offspring with others within the population (including the parents themselves)
3). frequency and amount of mixing with outside populations

Are these metrics simply a constant average, or a hi-low bounds that stays static over time and throughout the population, or are they in themselves random variables that change over time?

Seems like the results would vary dramatically if the bounds on these variables are greatly expanded or contracted?

Sorry if this question doesn’t make sense, I can try asking in another way if needed.

1 Like

Ok, that makes more sense. I got an average of 10.5 mutations/lump for a recombination rate of 0, and 1.0 mutations/lump for a recombination rate of 1e-3.

2 Likes

In reading the UW book that @swamidass listed (thanks!), seems like a whole host of assumptions, some I listed (inbreeding, overlapping generations) and other new ones: gender mix, degrees of monogamy, reproductive fitness (although I guess the offspring number would account for that), etc.

Would seem any models should list the assumptions that are made on these factors and/or the methods used to test variations in these?

1 Like

Turns out you can start getting rid of most assumption one by one, or understand how being wrong would affect things. The methods we are currently using are data driven, and make extemely narrow and verifiable “assumptions”. I put that in quotes because we can justify and cross check all of them with evidence.