Mantha: Genetics for Dummies

Because it’s been going on for a long time, and if they aren’t at equilibrium they’ll be moving toward an equilibrium at which the number of A → G equals the number of G → A, and base composition seems pretty stable, at most loci, in most taxa. Mutations are not coin flips. Different sorts of mutations have different frequencies.

The context is genetic drift. So one organism reproducing more than another is not the answer.

@Jordan The frequency of an allele can increase in a population over time for reasons completely unrelated to its contribution to any reproduction “advantage” of the individuals carrying the allele.

Except it is. There are differences in number of offspring that have merely to do with chance. That is what drift relies upon.

@Jordan, in general, when trying to get a good handle on the technical details, just ignore interjections from people presenting contrarian view for the fun of it. :smile:

1 Like

Yes it is. You can have random variation in reproductive success, meaning some carriers will coincidentally have higher reproductive success without it being tied to some particular phenotypic advantage.

2 Likes

I didn’t take population genetics at university, so I have had to pick up things here and there. One of the concepts that helped wrap my head around population dynamics is looking at things in the reverse direction.

Each of us has two parents, four grandparents, eight great-grandparents, and so on. Each generation going backwards doubles, but that is obviously untenable. There weren’t trillions of humans in the past, so this doubling can’t be a real thing. So what gives? Well, we are all cousins because we all share ancestors. This is called pedigree collapse. When cousins have kids they amplify the mutations their common ancestor had if they still carry that allele.

Mendelian genetics also plays a role. For any given allele in a heterozygote, there is a 50/50 chance it will be passed on. Some new neutral mutations will disappear, but some will get passed on, by chance. If a new mutation has some good luck early on it can be amplified by mechanisms like pedigree collapse.

Like I said, pop gen is not my forte, so I might have some of this wrong. Corrections are always welcome.

2 Likes

@T_aquaticus That is true, but from the “backward time” perspective. In this conversation, we have been explaining drift from a “forward time” perspective. There are relationships between each points of view, but they are not the same. Drift is, for example, related to coalescence.

Exactly. That’s what “just happen to reproduce” means. But aside from Mung’s attempt at pedantry, he has a point he may not realize. It isn’t necessary that individuals have differential reproductive success in order for drift to operate. Which gametes, carrying which alleles, happen to contribute to the an individual’s reproductive success is also a factor in outcrossing diploids.

1 Like

Here is another simple forward simulator:

https://www.radford.edu/~rsheehy/Gen_flash/popgen/

Also if anybody wants to check out a flexible forward simulator that is widely used in research (obviously has a vastly larger learning curve), I would recommend SLiM.

2 Likes

This is only true in the diploid case. With hapliod genomes we will still see drift due to random differences in reporductive success. The baseline model is that each parent reproduces a random number of times with a random set of mates.

Yes. That’s why I said “in outcrossing diploids”.

1 Like

@jordan, I wonder if this could be useful to build activities in a course:

I actually just sent the link to SLiM to two of my biology colleagues yesterday and one is looking at incorporating it into a course already.

I do think simulation is a very good way to on-ramp people into population genetics. It’s one thing to give and equation or describe it as a probability problem, but people generally don’t have good intuitions there. I think it’s a lot better to use simulations where possible.

@swamidass, I was able to play with the simple neutral mutation example in SLiM this evening. This may be silly, but here’s what I did:

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(); } 

I really enjoyed watching the mutation frequency trajectory graphs. I threw the fixation output into R real quick and calculated the average number of generations from initial mutation (8th column in the output) to fixation (9th column).

For one run of the above code I got 95 fixed mutations with an average of 2,182 generations to fixation. Given the population was 500, then 4N should be 2,000. Am I doing this right?

2 Likes

That looks right!

Can you figure out why you didn’t get more fixations? Simple question, simple answer, deep insight.

(If I’m understanding this code correctly…I may not be!)

OK, so I’m going to use mutation rate = fixation rate. The mutation rate is the probability I’ll get a mutation within my 100,000 base sequence in a given generation. So the rate I’ll get a mutation anywhere is 1e-7 x 100,000 bases = 0.01 / generation. I take that times 10,000 generations and get 100 expected fixed mutations. I got 95. Is that close? I’m not sure what the role of the 100,000 base pairs is in my math, this is just a guess.

1 Like

I misunderstood the Sim! You got it right, it seems. Let’s see if @evograd agrees…

Looks right at face value to me too.

1 Like

So the big caveat here is that the first 2000 generations are really just “burn in”. You start with a uniform population, which is not realistic. So the first 4N generations are building up a normal amount of diversity before you start seeing fixation = mutation.

You can test if I’m right be running the Sim for much shorter amounts of generation. At 2000 generations, you should see a precipitous drop in fixations, less than 20.

1 Like

I tended to get around 80 fixed mutations in 10,000 generations, and probably an average of around 5 (0-13) in 2,000 generations. In 50,000, I got around 470. In 100,000 generations, I got an average of around 960, and in the 2 runs of 1,000,000 generations that I ran, I got an average of almost exactly 10,000 fixed mutations.

3 Likes

OK, that makes sense. When I re-ran it a few times I noticed I was getting closer to 80 on average than 100. When I lowered the number of generations I started to often get no fixations at all. So I played around with population size and it does seem like it changes that burn in time as you suggested. So I can take 0.01 (per generation mutation rate) x (#generations - 4N) and it’s pretty close to what I’m seeing for number of fixed mutations.

However, there is a lot of variability. Is there a way to calculate the variance here? It’d be nice to have something like a confidence interval so that I could get a feel for how well the simulation stacks up. Setting two population size/generation combinations that are outside a 95 or 99% confidence interval would help make sure the simulation doesn’t just happen to agree.

Also, I just noticed while watching the simulations that many mutations fix at the same time and generally rise and lower in the population together. Not knowing a much about this stuff, I would have guessed that it was recombination, but I set the recombination rate to be 0 and the mutations that go together are evenly spread across the sequence and I thought recombination rate depended on distance between alleles. So, I’m kinda stumped as to why I’ll see something like 20 mutations all fix at the same generation and in general go up and down in frequency together.

1 Like