L: maximum seed ageb: baseline germination ratem: age-dependence germination parameter, controlling
how quickly germination rates decline with seed aged: baseline survival rateq: age-dependence survival parameter, controlling how
quickly survival rates decline with seed ageK: carrying capacity of plantsBASELINE_OVULE_AVG: average effective ovule count per
femaleBASELINE_EFFECTIVE_POLLEN_AVG: average effective pollen
count per male at wild-type equilibriumCAIN: if T, CAIN is simulated. If F, ClvR is
simulated.MALE_FERTILITY_SUPPRESSION_DRIVE: if T, males with 2
drive alleles are sterile.
FEMALE_FERTILITY_SUPPRESSION_DRIVE: if T, females with
2 drive alleles are sterile.
s_g: drive fitness cost reducing gamete viability
(probability that a drive-carrying gamete is nonviable)s_s: drive fitness cost reducing seed survival
(baseline survival rate is d - s_s/2 for drive heterozygous seeds and
d-s_s for drive homozygous seeds)GERMLINE_CLEAVAGE_RATE_FEMALE: probability that an
undisrupted target gene is cleaved in the germline of a drive-carrying
femaleGERMLINE_CLEAVAGE_RATE_MALE: probability that an
undisrupted target gene is cleaved in the germline of a drive-carrying
maleCAIN_PENETRANCE_RATE: if CAIN=T, this is the
probability that a male gamete with no functional copies of the target
gene is not viable (always set to 96%)INTRODUCTION_FREQUENCY: the starting frequency of the
drive in plants.DROP_GEN: the time at which the drive is released (set
to 2L by default)HETERZYGOUS_DROP: if T, drive heterozygous plants are
released. If F, drive homozygous plants are released.TRACK_FREQUENCIES: if this is set to T, a csv file is
created in the same directory as the SLiM file, containing allele and
genotype frequencies in the plant population, the drive allele frequency
in the seedbank population, and the number of plants, effective pollen
grains, effective ovules, and seeds at each timestep after the drive was
released.1 first(): population set-up at year 1.
We create a population p1 of K plants,
a population p2 starting with 0 seeds, and proxy
populations of males (p3) and females (p4)
with each of the 6 possible gametic genotypes for future usage in the
reproduction callback.
Instead of using mutation objects in SLiM, we speed up the model by storing each individual’s alleles with tag values. For each individual, we track:
drive_chrom_g1: maternal drive locus alleledrive_chrom_g2: paternal drive locus alleletarget_chrom_g1: maternal target locus alleletarget_chrom_g2: paternal target locus alleletag integer value equal to
their number of drive alleles (0, 1, or 2)reproduction(p1): pollination, drive processes, and seed
production
avg_effective_pollen_count
(n_p(t)) that year, based on how close the current number of fertile
females is to K/2avg_effective_pollen_count)s_g)surviving_male_gametessurviving_male_gametes vector to
simulate randomly mixed pollen in the population. We draw from the
Multinomial distribution to determine how much effective pollen each
fertile female receives. We discard any fertile females who didn’t
receive pollen.BASELINE_OVULE_AVG)s_g)p2). We use the proxy female (from p4) with
the same genotype as this effective ovule to act as the “mother” and
proxy male (from p3) with the same genotype as the
effective pollen to act as the “father” of this cross.modifyChild: tag assignments
drive_chrom_g1 and
target_chrom_g1 based on the genotype of their proxy mother
(aka effective ovule)drive_chrom_g2 and
target_chrom_g2 based on the genotype of their proxy father
(aka effective pollen grain)tag value representing their
number of drive alleles.1:early: survival
s_s) and the seed has a drive
allele.1:late: germination, seedling competition, drive
release, output, and end-conditions
p1, becoming the plants
of the next year, and all other seedlings are removed.HETEROZYGOUS_DROP is T) or homozygotes
(if HETEROZYGOUS_DROP is F). Homozygous releases are
sex-specific when MALE_FERTILITY_SUPPRESSION_DRIVE or
FEMALE_FERTILITY_SUPPRESSION_DRIVE is T to avoid releasing
sterile females or males. The drive starts at the
INTRODUCTION_FREQUENCYPRESEED_R1_ALLELES is T and the year is
PRESEED_R1_GEN, we randomly convert seeds (if
PRESEED_ALLELES_IN_SEEDBANK is T) or plants (if
PRESEED_ALLELES_IN_SEEDBANK is F) to r1 heterozygotes, such
that the r1 allele starts at a frequency of
R1_INITIAL_FREQUENCYDROP_GEN.This repeats. Each tick of the model represents a year.