Lesson 8b

A

Locked — confirm your name above to begin.

Mendel was a physicist who made a pea garden because his abbot told him to. He found consistent ratios. He did back-cross experiments. He realised that important patterns can only be explained by one underlying model. The model he built, very elegantly, out of flower-colour ratios in pea plants, figures out meiosis: you start with two copies of each gene, end with one in each gamete, and there is a randomization step between them.

He had no idea what a nucleus was. He didn't know what mitosis was, or meiosis. He'd never encountered the word chromosome. He didn't know there was a molecule in each cell that drove inheritance. When you learn his rules now, you smuggle in everything you know about cells and chromosomes, which can actively mislead you.

The spot marked on the long chromosome is not dominant, and it is not recessive. They are just big A and little a. Everyone wants to make everything dominant and recessive. A lot of the time there is no dominant and there is no recessive. They are just different.

  • One cell. Two long chromosomes, two short ones.
  • Four spots on every chromosome. One is labelled: big A on one long copy, little a on the other.
  • Replicate the chromosomes, then fill all four gametes.
  • Every gamete takes one long chromosome and one short one.

To open Stage B

  • Fill four gametes by hand, three times over. 0 of 3
  • Draw 500 gametes and watch the share carrying big A. 0 of 500
  • Fuse two gametes by hand, then build 200 embryos. 0 of 200
A heterozygote is an individual with two different genetic ancestors for that spot. To have one, there has to be more than one allele.

R code

# one cell: two long chromosomes, two short. 1 = big letter, 0 = little.long  <- rbind(c(1,1,1,1), c(0,0,0,0))short <- rbind(c(1,1,1,1), c(0,0,0,0))# replication: every chromosome becomes two identical chromatidsdup <- function(m) m[c(1,1,2,2), ]# the randomization step: which chromatid lands in which gametemeiosis <- function() {  L <- dup(long)[sample(4), ]; S <- dup(short)[sample(4), ]  lapply(1:4, function(i) list(long = L[i, ], short = S[i, ]))}# one gamete at random, five hundred timesg <- replicate(500, meiosis()[[sample(4, 1)]]$long[1])cumsum(g) / seq_along(g)      # running share carrying big A# two gametes fuse. 2 = AA, 1 = Aa, 0 = aaembryo <- function() meiosis()[[sample(4,1)]]$long[1] + meiosis()[[sample(4,1)]]$long[1]table(replicate(200, embryo()))

B

Solve Stage A to unlock this section.

Do your cells know what a gene is? No. As nice as it is to split things off into alleles and loci, what actually matters is the physical reality of the DNA strand.

Two dictionaries, different versions, same words. The words are the spots. The slightly different definitions are the alleles.

  • The same cell. Every spot now carries a label.
  • Long chromosome: A B C D on one copy, a b c d on the other.
  • Short chromosome: E F G H on one copy, e f g h on the other.
  • Deal the chromatids so that every kind of gamete you can make comes out at once.
  • The same three steps as Stage A.

To open Stage C

  • Fill the four gametes so that every kind you can make comes out at once — no two the same. 0 of 4 kinds
  • Draw 500 gametes and log every version that turns up. 0 of 500
  • Fuse two gametes by hand, then build 200 embryos. 0 of 200
They're stuck together. A whole bunch of things you cannot recombine — until and unless something breaks them apart.

R code

# same cell, every spot read out now. 1 = big letter, 0 = little.long  <- rbind(c(1,1,1,1), c(0,0,0,0))   # ABCD / abcdshort <- rbind(c(1,1,1,1), c(0,0,0,0))   # EFGH / efghdup <- function(m) m[c(1,1,2,2), ]meiosis <- function() {  L <- dup(long)[sample(4), ]; S <- dup(short)[sample(4), ]  lapply(1:4, function(i) list(long = L[i, ], short = S[i, ]))}# every long-chromosome version that turns up in 500 gametesv <- replicate(500, paste(meiosis()[[sample(4,1)]]$long, collapse = ""))table(v)gam <- function() meiosis()[[sample(4,1)]]$longe <- replicate(200, gam()[1] + gam()[1])table(e)                       # 2 = AA, 1 = Aa, 0 = aa

C

Solve Stage B to unlock this section.

Recombination is taking a dictionary, choosing a page at random, and ripping it. Then taking a different dictionary, ripping out the same page, and gluing the two together. The closer two spots are, the more likely they stay on the same fragment after a single rip.

It costs you. You are scrambling your genome with somebody else's. Your kid is not as closely related to you as they would be if you reproduced asexually. In the trade-off between inherit and invent, you are reducing the inherit for your own kids.

  • The same cell, the same labels.
  • Every round cuts both chromosomes: one mark on the long one, one on the short.
  • The slider sets how many go on each. Three gaps a chromosome, so one to three.
  • Everything past a mark swaps between the two chromatids it sits between.
  • Use at least five of the six spots before moving on.
  • The same three steps again.

Tasks

  • Drop the mark into a gap, then fill four gametes. Five different spots. 0 of 5 spots
  • Draw 500 gametes and log every version that turns up. 0 of 500
  • Fuse two gametes by hand, then build 200 embryos. 0 of 200
A locus is just a chunk of DNA selection hasn't recombined apart yet. Functionally speaking, recombination is mutation — super-mutation, at random places, but not necessarily breaking. Selection sees stretches of DNA, not single alleles.

R code

long  <- rbind(c(1,1,1,1), c(0,0,0,0))short <- rbind(c(1,1,1,1), c(0,0,0,0))dup <- function(m) m[c(1,1,2,2), ]# the slider, and the gaps you dropped the marks inton  <- 1                # crossovers per chromosomekL <- c()kS <- c()# every crossing on a chromosome joins the same two chromatids -- the# pair facing each other across the copies, rows 2 and 3. So two of them# trade the stretch between the cuts back, and rows 1 and 4 stay whole.rip <- function(M, ks) {  for (k in ks) { s <- k:4; t <- M[2, s]; M[2, s] <- M[3, s]; M[3, s] <- t }  M}meiosis <- function() {  L <- rip(dup(long),  kL)[sample(4), ]  S <- rip(dup(short), kS)[sample(4), ]  lapply(1:4, function(i) list(long = L[i, ], short = S[i, ]))}v <- replicate(500, paste(meiosis()[[sample(4,1)]]$long, collapse = ""))table(v)gam <- function() meiosis()[[sample(4,1)]]$longe <- replicate(200, gam()[1] + gam()[1])table(e)