1
$\begingroup$

Parent 1 and 2 have children. Assume infinite, randomly-mating population size. How many generations until the median descendant by lineage of parent 1 has 0 base pairs inherited from parent 1?

I tried calculating this, but it was difficult to model variability in cross-over rates, and my computer is too slow for the Monte-Carlo I made.

Here is my guess:

from math import ceil, log2
import random
import numpy as np

haploid_genome_size_bp = 3300 * 1e6
diploid_genome_size_bp = haploid_genome_size_bp * 2
chromosome_pairs = 23

# Recomb hotspots
hotspot_length = 1500  # Taking the average length of 1-2 kb, in bp
hotspot_interval = 75000  # Taking the average interval of 50-100 kb, in bp
hotspots_per_genome = 30000  # Number of hotspots in the human genome

# Average crossover frequency per hotspot
avg_crossover_per_hotspot = 1 / 1300  # One crossover per 1300 meioses

total_hotspot_length_bp = hotspots_per_genome * hotspot_length

initial_genome_fraction = 1  # Starting with 100% of the genome from Parent 1
generations = 0  # Counter for the number of generations

# Loop to calculate the number of generations required for the descendant to have less than 1 bp from Parent 1
while initial_genome_fraction * diploid_genome_size_bp > 1:
    # Introduce variance in the average number of crossovers per chromosome, for probably needless complication
    # Using a Gaussian distribution centered around the average, with a standard deviation of 0.5
    avg_crossover_per_chromosome = np.random.normal(1.25, 0.5) #this doesn't actually affect the result

    # Total length affected by crossovers in one meiosis event bc hotspots
    total_crossover_length_bp = total_hotspot_length_bp * avg_crossover_per_hotspot * avg_crossover_per_chromosome * chromosome_pairs

    # Calculate the fraction of the genome that is affected by crossovers and recombination in each generation
    fraction_swapped_each_generation = 2 * (total_crossover_length_bp / diploid_genome_size_bp)

    # Update the fraction of the genome from Parent 1 in the descendant
    initial_genome_fraction *= 0.5 * (1 - fraction_swapped_each_generation) + 0.5 * fraction_swapped_each_generation / 2

    generations += 1

print(generations)

Result: 33 generations.

But really, information is lost sooner, since (approximately) non-SNPs won't contribute to information, non-SNPs are shared between individuals. Let's say there's 600 million SNPs, randomly distributed throughout the genome. Let's assume that parent 1 and the entire rest of the population differ at, say, 70% of SNPs (this value doesn't matter much, it's always 29 or 30).

from math import ceil, log2
import random
import numpy as np

total_snps = 600e6
haploid_genome_size_bp = 3300 * 1e6
diploid_genome_size_bp = haploid_genome_size_bp * 2
chromosome_pairs = 23

hotspot_length = 1500
hotspot_interval = 75000
hotspots_per_genome = 30000

avg_crossover_per_hotspot = 1 / 1300

total_hotspot_length_bp = hotspots_per_genome * hotspot_length

initial_snps_fraction = 0.7
generations = 0

while initial_snps_fraction * total_snps > 1:
    avg_crossover_per_chromosome = np.random.normal(1.25, 0.1)
    total_crossover_length_bp = total_hotspot_length_bp * avg_crossover_per_hotspot * avg_crossover_per_chromosome * chromosome_pairs
    fraction_swapped_each_generation = 2 * (total_crossover_length_bp / diploid_genome_size_bp)
    initial_snps_fraction *= 0.5 * (1 - fraction_swapped_each_generation) + 0.5 * fraction_swapped_each_generation / 2
    generations += 1
print(generations)

Result: 29 generations.

It is sensitive to the number of SNPs in existence. If we use 1 million SNPs, we get 15 generations.

Is this right? Can we find a more accurate estimate? My code probably has some mistakes.

$\endgroup$
4
  • 1
    $\begingroup$ My interpretation: assuming a generation time of 25 years, this means if you have an ancestor who lived more than 725 years ago, they are probably (P > 0.5) not genetically related to you in a meaningful way. $\endgroup$
    – BigMistake
    Sep 9, 2023 at 6:06
  • 1
    $\begingroup$ If you’re a mother, your mitochondria can go a long way. $\endgroup$ Sep 9, 2023 at 11:31
  • $\begingroup$ @PaulTanenbaum I'm disregarding mtDNA and the Y chromosome, but it wouldn't make much of a difference since only a small fraction of descendants will be paternal/maternal line $\endgroup$
    – BigMistake
    Sep 9, 2023 at 13:50
  • $\begingroup$ Indeed. That’s why I said can. $\endgroup$ Sep 9, 2023 at 14:34

2 Answers 2

2
$\begingroup$

Graham Coop performed simulations related to this question, based on actual transmission data for each chromosome in humans. He found that after 10 or 11 generations there was >50% chance that any particular ancestor contributed no genetic information to a specific descendant. Fewer than 5% of a person's 14th-generation ancestors will have contributed genetic information to them.

Graph showing the "probability of inheriting zero blocks of ancestral genome" by generation, for matrilineal, patrilineal, and typical transmissions. The probability is about 50% by generation 10, and >50% by generation 11 for all three types. Graph by Graham Coop.

This blog post is part of a series. The first provides some more information about the data and assumptions feeding these simulations.

$\endgroup$
2
  • $\begingroup$ What is the relevance of the link discussing GWASs? $\endgroup$
    – BigMistake
    Oct 14, 2023 at 19:32
  • $\begingroup$ That was just a link to Graham Coop's blog, where the other posts can be found. $\endgroup$ Oct 18, 2023 at 20:20
1
$\begingroup$

Father/Mother, DNA = D
Child, $\frac{1}{2} \times D$
Grandchild, $\frac{1}{2}\times \frac{1}{2} \times D= \left(\frac{1}{2}\right)^2 \times D$
Great grandchild, $\left(\frac{1}{2}\right)^3 \times D$
One's $n^{th}$ descendant has only $\left(\frac{1}{2}\right)^n$ of one's DNA.

Which generation and later will have only $1\%$ or less of your DNA?

$\left(\frac{1}{2}\right)^n \leq \frac{1}{100}$

$2^n \geq 100$

$n \geq 7$

That is to say, after 7 generations, one's genes are diluted to near homeopathic concentrations.

EDIT

Note that this is a(n) (over)simplfication of how heredity via DNA works. The actual processes are quite complsx.

$\endgroup$
4
  • 3
    $\begingroup$ This is illustrative of a simplified view of the problem, but it doesn't directly answer the OP question which introduces more complex phenomena like recombination. It's a bit more complex than this due to haplotypes, population structure, etc. $\endgroup$ Sep 12, 2023 at 23:20
  • 1
    $\begingroup$ @MaximilianPress, I concur. Edited my answer appropriately. $\endgroup$ Sep 13, 2023 at 1:38
  • 2
    $\begingroup$ If we assume infinite crossing-over and 600 million SNPs, we'd still be left with 6,000,000 SNPs after only having 1% of the DNA. Interestingly, I think your model basically works similarly to mine, because (1/2)^30 * (600 million) is approximately equal to 0.5. That is, after 29-30 generations, it rounds to 0 SNPs left. $\endgroup$
    – BigMistake
    Sep 13, 2023 at 2:01
  • $\begingroup$ @BigMistake, If our (similar) models are even half as accurate, some things should be impossible, no? Unless ... 🤔 $\endgroup$ Sep 13, 2023 at 2:59

You must log in to answer this question.

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