Skip to main content
Dryad logo

Data from: Breakdown of gametophytic self-incompatibility in subdivided populations


Brom, Thomas; Castric, Vincent; Billiard, Sylvain (2019), Data from: Breakdown of gametophytic self-incompatibility in subdivided populations, Dryad, Dataset,


In many hermaphroditic flowering plants self-fertilization is prevented by self-incompatibility (SI), often controlled by a single locus, the S-locus. In single isolated populations, the maintenance of SI depends chiefly on inbreeding depression and the number of SI alleles at the S-locus. In subdivided populations, however, population subdivision has complicated effects on both the number of SI alleles and the level of inbreeding depression, rendering the maintenance of SI difficult to predict. Here, we explore the conditions for the invasion of a self-compatible mutant in a structured population. We find that the maintenance of SI is strongly compromised when a population becomes subdivided. We show that this effect is mainly caused by the decrease of the local diversity of SI alleles rather than by a change in the dynamics of inbreeding depression. Strikingly, we also find that the diversity of SI alleles at the whole population level is a poor predictor of the maintenance of SI. We discuss the implications of our results for the interpretation of empirical data on the loss of SI in natural populations.


The general purpose of the program is to investigate the maintenance of a gametophytic self-incompatibility system in front of self-compatible mutants. The program do evolutionary simulations for different value of deleterious (or lethal) mutations that lead to inbreeding depression.

recursion.cpp is the function for each simulation, that receive a set of parameters to test the invasion (or not) by the SC mutants

main.cpp use fichier.cpp to read the parameters.csv file and to launche "recursion". main can investigate different value of U sequencialy or search for a critical value of U: the lowest value for which SI system is maintained

Mercennes Twister.h and ranbin.cpp are for random numbers

fichiers.cpp is to open, close, read parameters file.

SelRec.cpp contain mainly functions for fitness calculation and for recombination depression.h contain function and structure declaration