The genes of the major histocompatibility complex (MHC) are a key component of the adaptive immune system and among the most variable loci in the vertebrate genome. Pathogen-mediated natural selection and MHC-based disassortative mating are both thought to structure MHC polymorphism, but their effects have proven difficult to discriminate in natural systems. Using the first model of MHC dynamics incorporating both survival and reproduction, we demonstrate that natural and sexual selection produce distinctive signatures of MHC allelic diversity with critical implications for understanding host–pathogen dynamics. While natural selection produces the Red Queen dynamics characteristic of host–parasite interactions, disassortative mating stabilizes allele frequencies, damping major fluctuations in dominant alleles and protecting functional variants against drift. This subtle difference generates a complex interaction between MHC allelic diversity and population size. In small populations, the stabilizing effects of sexual selection moderate the effects of drift, whereas pathogen-mediated selection accelerates the loss of functionally important genetic diversity. Natural selection enhances MHC allelic variation in larger populations, with the highest levels of diversity generated by the combined action of pathogen-mediated selection and disassortative mating. MHC-based sexual selection may help to explain how functionally important genetic variation can be maintained in populations of conservation concern.
Data files (Matlab worksapces) packed in a ZIP archive - scenarios with no pathogens
Scenarios with no interaction between pathogens and hosts
Data set is packed in a ZIP archive. Names of catalogue in the archive indicate scenario parameters: host population size N and simulated mechanism of partner choice (RM - random mating, h0 - soft assortative mating, h1 - hard assortative mating; see Materials and Methods for details). Each scenario catalogue contains 100 files (Matlab workspaces) with saved variables of each of 100 independent replications.
Saved variables:
HED_scen – partner choice scenario (random mating HED_scen=NaN, soft assortative mating h0 HED_scen=0, hard assortative mating h1 HED_scen=1)
N – host population size
off_val_occ – offspring reproductive value at birth in subsequent mating attempts
h_mut_rat – host mutation rate
host_n_all – allelic richness across generations
host_time – host generation number
mat_occ_distr – number of mating pairs in subsequent mating attempts (first row indicate first mating attempt) saved every host generation
Compl_all_hist – frequency distribution of MHC alleles saved in last 1400 host generations (host generations 1600-3000). Matrix of allele frequency distribution is saved as Matlab sparse matrix, (type full(Compl_all_hist) to transform Compl_all_hist into trajectories of allele frequency)
in_pres_al – decimal labels of MHC alleles in allele frequency history matrix Compl_all_hist
Pathogens_off.zip
Data files (Matlab worksapces) packed in a ZIP archive - scenarios with pathogens, mutation rate 1*10^-3
Scenarios in which pathogens interact with hosts
Data set is packed in a ZIP archive. Names of catalogue in the archive indicate scenario parameters: host population size N and simulated mechanism of partner choice (RM - random mating, h0 - soft assortative mating, h1 - hard assortative mating; see Materials and Methods for details). Each scenario catalogue contains 100 files (Matlab workspaces) with saved variables of each of 100 independent replications.
Saved variables:
HED_scen – partner choice scenario (random mating HED_scen=NaN, soft assortative mating h0 HED_scen=0, hard assortative mating h1 HED_scen=1)
N – host population size
off_val_occ – offspring reproductive value at birth in subsequent mating attempts
h_mut_rat – host mutation rate
bits_num – number of bits in MHC molecule
match – number of matching bits necessary for antigen presentation
num_pat_spec – number of pathogen species
p_mut_rat – pathogen mutation rate
pat_gen – number of pathogen generations per one host generation
pept_num – number of antigens produced by a pathogen
host_n_all – allelic richness across generations
host_time – host generation number
mat_occ_distr – number of mating pairs in subsequent mating attempts (first row indicate first mating attempt) saved every host generation
Compl_all_hist – frequency distribution of MHC alleles saved in last 1400 host generations (host generations 1600-3000). Matrix of allele frequency distribution is saved as Matlab sparse matrix, (type full(Compl_all_hist) to transform Compl_all_hist into trajectories of allele frequency)
in_pres_al – decimal labels of MHC alleles in allele frequency history matrix Compl_all_hist
mean_pres_pat – mean proportion of presented pathogens
SD_pres_pat – standard deviation for the proportion of presented pathogens
Pathogens_on_1x10min3.zip
Data files (Matlab worksapces) packed in a ZIP archive - scenarios with pathogens, mutation rate 2*10^-3
Scenarios in which pathogens interact with hosts
Data set is packed in a ZIP archive. Names of catalogue in the archive indicate scenario parameters: host population size N and simulated mechanism of partner choice (RM - random mating, h0 - soft assortative mating, h1 - hard assortative mating; see Materials and Methods for details). Each scenario catalogue contains 100 files (Matlab workspaces) with saved variables of each of 100 independent replications.
Saved variables:
HED_scen – partner choice scenario (random mating HED_scen=NaN, soft assortative mating h0 HED_scen=0, hard assortative mating h1 HED_scen=1)
N – host population size
off_val_occ – offspring reproductive value at birth in subsequent mating attempts
h_mut_rat – host mutation rate
bits_num – number of bits in MHC molecule
match – number of matching bits necessary for antigen presentation
num_pat_spec – number of pathogen species
p_mut_rat – pathogen mutation rate
pat_gen – number of pathogen generations per one host generation
pept_num – number of antigens produced by a pathogen
host_n_all – allelic richness across generations
host_time – host generation number
mat_occ_distr – number of mating pairs in subsequent mating attempts (first row indicate first mating attempt) saved every host generation
Compl_all_hist – frequency distribution of MHC alleles saved in last 1400 host generations (host generations 1600-3000). Matrix of allele frequency distribution is saved as Matlab sparse matrix, (type full(Compl_all_hist) to transform Compl_all_hist into trajectories of allele frequency)
in_pres_al – decimal labels of MHC alleles in allele frequency history matrix Compl_all_hist
mean_pres_pat – mean proportion of presented pathogens
SD_pres_pat – standard deviation for the proportion of presented pathogens
Pathogens_on_2x10min3.zip
Data files (Matlab worksapces) packed in a ZIP archive - scenarios with pathogens, mutation rate 5*10^-3
Scenarios in which pathogens interact with hosts
Data set is packed in a ZIP archive. Names of catalogue in the archive indicate scenario parameters: host population size N and simulated mechanism of partner choice (RM - random mating, h0 - soft assortative mating, h1 - hard assortative mating; see Materials and Methods for details). Each scenario catalogue contains 100 files (Matlab workspaces) with saved variables of each of 100 independent replications.
Saved variables:
HED_scen – partner choice scenario (random mating HED_scen=NaN, soft assortative mating h0 HED_scen=0, hard assortative mating h1 HED_scen=1)
N – host population size
off_val_occ – offspring reproductive value at birth in subsequent mating attempts
h_mut_rat – host mutation rate
bits_num – number of bits in MHC molecule
match – number of matching bits necessary for antigen presentation
num_pat_spec – number of pathogen species
p_mut_rat – pathogen mutation rate
pat_gen – number of pathogen generations per one host generation
pept_num – number of antigens produced by a pathogen
host_n_all – allelic richness across generations
host_time – host generation number
mat_occ_distr – number of mating pairs in subsequent mating attempts (first row indicate first mating attempt) saved every host generation
Compl_all_hist – frequency distribution of MHC alleles saved in last 1400 host generations (host generations 1600-3000). Matrix of allele frequency distribution is saved as Matlab sparse matrix, (type full(Compl_all_hist) to transform Compl_all_hist into trajectories of allele frequency)
in_pres_al – decimal labels of MHC alleles in allele frequency history matrix Compl_all_hist
mean_pres_pat – mean proportion of presented pathogens
SD_pres_pat – standard deviation for the proportion of presented pathogens
Pathogens_on_5x10min3.zip