GitHub

Constraints on sexual polymorphism evolution

There are often dramatic differences in the intensity and direction of selection between the sexes.However, because the majority of the genome is shared between the sexes, the response to selection in one sex will be countered by allele mixing with other sexes during fertilization. This between-sex gene flow has been shown to constrain adaptation of sexual differentiation in many dioecious organisms (those with separate male and female sexes), but for other mating systems the role of gene flow between mating classes (e.g., mating types, alternative reproductive tactics) is almost wholly unknown. In fact, dioecy is the simplest case: because each individual has one male and one female parent, the rate of gene flow between sexes is always one-half. Other mating systems are more variable; the rate of gene flow between mating classes will vary depending on the frequencies of each class in the population, and on the genetics of mating class determination. Relative to dioecy, some mating classes will be more, or less, influenced by gene flow. We can use this variance to understand the role of between-class gene flow more generally, and to place dioecy in the context of other mating systems.

Using the gynodioecious weed Silene vulgaris — in which individuals are either hermaphrodite or female — my research investigated the degree of constraint between-class gene flow imposes, and how this compares to the dioecious case.

See my CV for publications and presentations, or below for protocols and relevant software.

Crossing website

At one point I was looking at between-class genetic correlations in a gynodioecious (hermaphrodite-female) species. To estimate the genetics I needed to do crosses among several families and compare what sibling plants looked liked. On top of that, I was curious whether there were differences between hermaphrodite-hermaphrodite crosses and hermaphrodite-female crosses, so I needed two paired crossing designs (technically, I had two paired partial diallel sets of crosses). Even worse, some of the plants had been used in prior projects, so there was some pre-existing nonrandomness I needed to account for.
In other words, it was a bit complicated.
I found I needed to cross-reference three or four different datasheets every time I pollinated a flower, which quickly became burdensome. So instead I wrote a simple website to organize the information and keep notes.
The code below is a simple PHP site that will read and write to an SQL database. If you are doing complicated crosses and mildly familiar with SQL, you may find this a useful base to modify for your own ends.
Example: website
Code: cross_vulgaris.tar.gz

import_mysql

MySQL allows you to import tabular data, but relies on the ordering of the columns, rather than a header row. This seems like a great way to cause a huge mess if you are used to interacting with tables based on column names rather than column position. This script allows you to import data with a header row.
It seems to work for the simple examples I have encountered, but use at your own risk. In particular, the current versions of the InnoDB engine in MySQL do not correctly defer foreign key constraint checking during transactions (see here), and consequently the script also has problems trying to update tables with foreign keys.
import_mysql.py

seln

A small collection of functions and definitions which I have found helpful for calculating and visualizing simple selection surfaces, written in R.
seln.r

measure_flowers

In the summer of 2012 I was trying to estimate the strength of natural selection on various floral organs in Silene vulgaris. I decided to measure the flower pieces from photos taken on backlit red paper inside a whiskey tube (the joys of cobbled together field research projects). I wrote these MATLAB classes and scripts help segment the flower parts and leaves from their backgrounds, but especially for smaller floral structures (e.g., anthers and stigma) the problem was too difficult to do automatically. The code and protocols are relatively application-specific, but should be modifiable for similar user-guided image analysis problems.
Code: measure_flowers.tar.gz
Dissection protocol: flower_dissection_protocol.pdf
Measurement protocol: flower_photo_protocol.pdf

Data management

Brodie lab standards and practices for data collection and management. Written in collaboration with Corlett Wolfe Wood and Brian Sanderson.
brodie_standards.pdf