We had seen Cassie Stoddard’s 2017 Science paper on varian in avian egg shape across a huge range of species (Stoddard et al. 2017). She measured anywhere from just a few up to a few hundred eggs from each species using a custon MatLab program from museum pictures. While there are some full clutches measured, all of the analyses are based on species mean values rather than any comparison of multiple eggs produced by the same individual. She ends up concluding that the most variation in egg shape (albeit, not that large a % of variation) is explained by flight distances and time spent flying. The striking figure from the paper is figure 1 that shows the full variation of egg shape in morphospace plotted as the degree of asymmetry (pointiness on one end vs round on the other) vs. ellipticity (elongation). Here is the figure from her paper:

In the figure, each species is one point, but as we were doing cross fosters of eggs in 2019, we were noticing that there seemed to be a huge amount of variation in egg shape between different tree swallows and that it seemed to span a lot of the variation in Cassie’s paper. Just for fun, we started taking photos of each full clutch of eggs from 2019 & 2020 and I got in touch with Cassie to get her eggxtractor MatLab code running. Since our photos have a scale bar, I also measured the length and width at the longest/widest point. I haven’t formally calculated volume from those measurements, but they should be good proxies for overall volume. So now we have measures for a bunch of eggs from the same female in a clutch and also some females with egg shape measurements from multiple years. We can easily look at how much variation there is and how consistent individual females are in the shape of their eggs.

Tree Swallow Egg Data

At this point, I’ve measured egg shape as described above for 940 eggs from 185 nests and 159 different females. While there were experiments in these years, all the treatments took place after incubation had started, so this is essentially just a large observational dataset.

The first thing I wanted to do is just to recreate exactly the plot that is shown above from Cassie’s comparative study. I’ve tried to do that here and have set the x and y limits as close as possible to her plot to make it easy to compare.

d_egg <- read.delim(here::here("1_raw_data/data_by_egg.txt"))

ggplot(data = d_egg, mapping = aes(x = A, y = E)) +
  geom_point(size = 0.7) + xlim(-0.02, 0.505) + ylim(0.07, 0.75) +
  xlab("Asymmetry") + ylab("Ellipticity")