DOI: 10.5061/dryad.7sqv9s4pw
title: Data from: Transgressive segregation in mating traits drives hybrid speciation

description: Hybridization can instantaneously generate novel genetic variation, which
 can promote ecological speciation by creating novel adaptive phenotypes.
 However, it remains unclear how hybridization, creating novel mating
 phenotypes (e.g., mating season, genitalia shapes, sexual displays, mate
 preferences), affects speciation especially when the phenotypes do not
 confer adaptive advantages. Here, based on individual-based evolutionary
 simulations, we propose that transgressive segregation of mating traits
 can drive incipient hybrid speciation. Simulations demonstrated that
 incipient hybrid speciation occurred most frequently when the hybrid
 population received moderate continued immigration from parental lineages
 causing recurrent episodes of hybridization. Recurrent hybridization
 constantly generated genetic variation, which promoted the rapid
 stochastic evolution of mating phenotypes in a hybrid population. The
 stochastic evolution continued until a novel mating phenotype came to
 dominate the hybrid population, which reproductively isolates the hybrid
 population from parental lineages. However, too frequent
 hybridization rather hindered the evolution of reproductive isolation by
 inflating the variation of mating phenotypes to produce phenotypes
 allowing mating with parental lineages. Simulations also revealed
 conditions for long-term persistence of hybrid species after their
 incipient emergence. Our results suggest that recurrent transgressive
 segregation of mating phenotypes can offer a plausible explanation for
 hybrid speciation and radiations that involved little adaptive ecological
 divergence.
description: Java programs for individual-based computer simulations, R codes
 to analyze and visualize simulation results, and final output files of the
 computer simulations.
description: Codes and data for
 “<em><strong>Transgressive segregation in mating traits drives
 hybrid speciation</strong></em>” by Kotaro Kagawa, Gaku
 Takimoto & Ole Seehausen.
 =========================================== Reference Kagawa K, Takimoto G, & Seehausen O. (2023). “Transgressive segregation in mating traits drives hybrid speciation”, Evolution, (https://doi.org/10.1093/evolut/qpad072) ========================================== Code Overview There are four main directories: “Java_IBM_Matching”, “Java_IBM_PreferenceTrait”, “R_Scripts”, and “Appendix_configs_Figures”. Directories “Java_IBM_Matching” and “Java_IBM_PreferenceTrait” contain Java source cords for our individual-based evolutionary simulations with the matching model and preference/trait model, respectively. The directory “R_Scripts” contains R scripts for analyzing and visualizing simulation results. The directory “Appendix_configs_Figures” contains 2 subdirectories including 48 sub-subdirectories, each of which contains four input files for running simulations shown in figures of the paper and its SI.  Codes_Kagawa_et_al_2023_Evolution.zip ├── Java_IBM_Matching │   ├── configs # four input files for simulation. │   │   ├── basal_parameter_set.txt # list of the default parameter values. │   │   ├── parameters_AH.txt # list of parameter values to be explored (for hybridization). │   │   ├── parameters_BH.txt # list of parameter values to be explored (for allopatric phase). │   │   └── simulation_mode.txt # the scenario to be simulated. │   └── src # java source codes for the individual-based simulation of the matching model. │       ├── MersenneTwisterFast.java # random number generator*. │       ├── Run_AfterHybrid.java # code to run simulations of evolution by hybridization. │       ├── Run_BeforeHybrid.java # code to run simulations of the allopatric period. │       └── Simulation.java # core program of the individual-based model (matching model). ├── Java_IBM_PreferenceTrait │   ├── configs # four input files for simulation. │   │   ├── basal_parameter_set.txt # list of the default parameter values. │   │   ├── parameters_AH.txt # list of parameter values to be explored (for hybridization). │   │   ├── parameters_BH.txt # list of parameter values to be explored (for allopatric phase). │   │   └── simulation_mode.txt # the scenario to be simulated. │   └── src # java source codes for the individual-based simulation of the preference/trait model. │       ├── MersenneTwisterFast.java # random number generator (*). │       ├── Run_AfterHybrid.java # code to run simulations of evolution by hybridization. │       ├── Run_BeforeHybrid.java # code to run simulations of the allopatric period. │       └── Simulation.java # core program of the individual-based model (preference/trait model). ├── R_Scripts # scripts for analyzing raw simulation outputs and for visualizing results. │   ├── Analysis_DynamicsReplicates.R # to analyze simulations under the same condition. │   ├── Analysis_ParameterDependence.R # to analyze simulations under various conditions. │   ├── Plot_DynamicsExample.R # to visualize evolutionary dynamics in a simulation. │   ├── Plot_DynamicsReplicates.R # to visualize evolutionary dynamics in many simulations. │   ├── Plot_ParameterDependence.R # to visualize effects of parameters on evolutionary outcomes. │   ├── Plot_FigS2.R # script to generate Fig. S2 │   ├── Plot_FigS5.R # script to generate Fig. S5 │   └── Plot_FigS17.R # script to generate Fig. S17 └── Appendix_configs_Figures # input files (the directory “config”) for running simulation for each figure.     ├── MatchingModel # input files for the Matching model (“Java_IBM_Matching”)     │   ├── configs_Fig3a_One-timeHybridization # input files for simulations for a part of Fig. 3a     │   ├── configs_Fig3a_S4a # input files for simulations for the main part of Figs. 3a, S4a     │   ├── configs_Fig4a_5_a_c # input files for simulations for Figs. 4a, 5a, c     │   ├── configs_Fig4c # input files for simulations for Fig. 4c     │   ├── configs_FigS10a_c # input files for simulations for Fig. S10a, c     │   ├── configs_FigS10b # input files for simulations for Fig. S10b     │   ├── configs_FigS11a # input files for simulations for Fig. S11a     │   ├── configs_FigS12a # input files for simulations for Fig. S12a     │   ├── configs_FigS13a # input files for simulations for Fig. S13a     │   ├── configs_FigS13b # input files for simulations for Fig. S13b     │   ├── configs_FigS14a # input files for simulations for Fig. S14a     │   ├── configs_FigS14c # input files for simulations for Fig. S14c     │   ├── configs_FigS15 # input files for simulations for Fig. S15     │   ├── configs_FigS16a # input files for simulations for Fig. S16a     │   ├── configs_FigS16b # input files for simulations for Fig. S16b     │   ├── configs_FigS16c # input files for simulations for Fig. S16c     │   ├── configs_FigS17a_b # input files for simulations for Fig. S17a, b     │   ├── configs_FigS18a # input files for simulations for Fig. S18a     │   ├── configs_FigS3a_c_d # input files for simulations for Fig. S3a, c, d     │   ├── configs_FigS3b # input files for simulations for Fig. S3b     │   ├── configs_FigS7a # input files for simulations for Fig. S7a     │   ├── configs_FigS8a # input files for simulations for the main part of Fig. S8a     │   ├── configs_FigS8a_One-timeHybridization # input files for simulations for a part of Fig. S8a     │   ├── configs_FigS9a # input files for simulations for Figs. 10b     │   └── configs_FigS9b # input files for simulations for Figs. 10b     └── PreferenceTraitModel # input files for the Matching model (“Java_IBM_PreferenceTrait”)         ├── configs_Fig3b_One-timeHybridization # input files for simulations for a part of Fig. 3b         ├── configs_Fig3b_S4c # input files for simulations for the main part of Figs. 3b, S4c         ├── configs_Fig4b_5b_d # input files for simulations for Figs. 4b, 5b, d         ├── configs_Fig4d # input files for simulations for Fig. 4d         ├── configs_FigS10d_f # input files for simulations for Fig. S10d, f         ├── configs_FigS10e # input files for simulations for Fig. S10e         ├── configs_FigS11b # input files for simulations for Fig. S11b         ├── configs_FigS12b # input files for simulations for Fig. S12b         ├── configs_FigS13c # input files for simulations for Fig. S13c         ├── configs_FigS13d # input files for simulations for Fig. S13d         ├── configs_FigS14b # input files for simulations for Fig. S14b         ├── configs_FigS14d # input files for simulations for Fig. S14d         ├── configs_FigS16d # input files for simulations for Fig. S16d         ├── configs_FigS17c_d # input files for simulations for Fig. S17c. d         ├── configs_FigS18b # input files for simulations for Fig. S18b         ├── configs_FigS2c # input files for simulations for Fig. S2c         ├── configs_FigS3e_g_h # input files for simulations for Fig. S3e, g, h         ├── configs_FigS3f # input files for simulations for Fig. S3f         ├── configs_FigS7b # input files for simulations for Fig. S7b         ├── configs_FigS8b # input files for simulations for the main part of Fig. S8b         ├── configs_FigS8b_One-timeHybridization # input files for simulations for a part of Fig. S8b         ├── configs_FigS9c # input files for simulations for Fig. S9c         └── configs_FigS9d # input files for simulations for Fig. S9d * “MersenneTwisterFast.java” is the java source code of the Mersenne-Twister-random-number-generator implemented by Dr. Sean Luke (2004), which is distributed at the following website: https://cs.gmu.edu/~sean/research/mersenne/MersenneTwisterFast.java Data Overview This dataset contains two main directories: “RawSimulationOutputExamples” and “SimulationResults_For_Figures”. The directory “RawSimulationOutputExamples” contains raw output files (6140 files in total) from simulations under a small subset of parameter conditions that we explored. These files are intermediate files to be processed by R codes and are not necessary for reproducing our study, but they are useful for checking how our Java programs and R scripts work. The directory “SimulationResults_For_Figures” contains source data for figures, which were generated by analyzing raw output files of simulations.   Data_Kagawa_et_al_2023_Evolution.zip ├── RawSimulationOutputExamples # examples of raw simulation outputs for testing codes. │   ├── Example_raw_output_MatchingModel # results with the matching model. │   │   ├── Allopatric_Matching (cont.545 files) # results from simulations of allopatric phase. │   │   └── SecondaryContact_Matching (cont.2524 files) # results from simulations of hybridization. │   └── Example_raw_output_PreferenceTraitModel # results with the preference/trait model. │       ├── Allopatric_PrefTrait (cont.545 files) # results from simulations of allopatric phase. │       └── SecondaryContact_PrefTrait (cont.2524 files) # results from simulations of hybridization. └── SimulationResults_For_Figures     └── Simulation_Final_Results # source data for figures (input files for R-scripts starting with “Plot_”) ├── DynamicsExamples (cont.10files) # data for Figs. 2, 6, 18 ├── DynamicsReplicates (cont.8files) # data for Figs. 4, 5         ├── ParameterDependency (cont.40 files) # data for Figs. 3, S3, S7-S16         ├── FigS2 (cont.4 files) # data for Fig. S2         ├── FigS5 (cont.2 files) # data for Fig. S5         └── FigS17 (cont.6 files) # data for Fig. S17   ========================================== Instructions for running Java programs for individual-based simulation Step 1: Compilation of java source codes Our individual-based simulation models are implemented with Java language. Before running simulations, all java source codes files (“Simulation.java”, “Run_AfterHybrid.java”, “Run_BeforeHybrid.java”, and “MersenneTwisterFast.java”) have to be compiled with the Open Java Development Kit (Open JDK) or Java Development Kit (JDK) with the following command: “javac *.java”.  Step 2: Running simulations of the allopatric phase with the default condition After compilation, simulations of the allopatric evolution of two parental lineages before they go into a secondary contact (i.e., the “allopatric phase”) can be run with Open JDK by the following command: “java Run_BeforeHybrid”. Raw output files of simulations will be stored in directories “Allopatric_Matching” (or “Allopatric_PrefTrait” in the case of preference/trait model), which will be automatically generated by the program.  Step 3: Running simulations of the evolution following hybridization with the default condition Simulation of the evolutionary dynamics following a secondary contact and hybridization between parental lineages can be run with the following command: “java Run_AfterHybrid”. This simulation requires raw output files from simulations of the allopatric phase; the simulation program automatically extract data from the directory “Allopatric_Matching” (“Allopatric_PrefTrait”) to construct the initial condition for simulating a secondary contact between two allopatrically diverged lineages. The directory “RawSimulationOutputExamples” contains some examples of raw output files from simulations of the allopatric phase. Raw output files from simulations of the evolution following hybridization will be stored in directories “SecondaryContact_Matching” or “SecondaryContact_PrefTrait”, which will be automatically generated by the program.  Step 4: Running simulations with various conditions Conditions for the simulation including parameter values, the presence/absence of continuing parental immigration to the hybrid population, and the shape of fitness landscape are controlled by text files in the directory “configs” (for details of parameters and simulation scenarios, please see the main text and SI of the paper). Simulation programs automatically extract data from input files in this directory. Therefore, simulations with varied conditions can be run by modifying files in the directory “configs”. Parameter values for simulation of the allopatric phase are in the file “parameter_table_BH.txt”. When Run_BeforeHybrid.java is executed, the program run simulations with all combinations of parameter values written in this text file (up to two parameters can be varied at once). Parameter values for simulation of the evolution following hybridization are in the file “parameter_table_AH.txt”. When “Run_AfterHybrid.java” is executed, the program run simulations with all combinations of parameter values written in this file for all pairs of parental populations that have been generated with “Run_BeforeHybrid.java” under parameter sets in “parameter_table_BH.txt”. The scenario to be simulated is designated by a number written in the file simulation_mode.txt. Simulations for each figure can be reproduced by using the input files in “configs_Figures_MatchingModel” and “configs_Figures_PreferenceTraitModel”, which are subdirectories of the directory “SimulationResults_For_Figures”. The correspondence relationship between parameters in the paper and those in the Java source codes and R scripts are summarized in the Table 1. ========================================== Instructions for running R scripts. Step 1: Visualization of evolutionary dynamics in a single simulation (e.g., Fig. 2) Evolutionary dynamics in a simulation can be visualized by using the script “Plot_Dynamics.R”. Input file of this script is a raw simulation output file in which properties of all individuals are recorded with a constant time interval (the default name of this file is “population_x_.txt” (x = 0, 1, 2, …)).  Step 2: Analysis of raw outputs of many simulations with the same parameter condition (e.g., Fig. 4, 5) The script “Analysis_DynamicsReplicates.R” processes raw output files from a set of many simulation replications under the same parameter condition. For each simulation run, the script calculates the mean and variance of mating trait phenotypes and the strength of reproductive isolation at several timepoints of the simulation. Then, the script creates a file summarizing evolutionary dynamics of mean and variance of phenotypes as well as the strength of reproductive isolation (the default name of the file is “Stats_Integrated_RI.txt”).  Step 3: Visualization of dynamics in simulations with the same parameter condition (e.g., Fig. 4, 5) The script “Plot_DynamicsReplicates.R” visualizes evolutionary dynamics in many simulations with the same parameter condition using the final output files of the step 2 as input files. Step 4: Analysis of raw outputs of many simulations with varied parameter conditions (e.g., Fig. 3) The script “Analysis_ParameterDependence.R” analyzes raw output files from a set of many simulations with systematically varied parameter values. For each simulation run, the script categorizes evolutionary outcome, quantifies the strength of reproductive isolation, and calculates the degree of genetic differentiation between parental lineages using methods described in the supplementary text S4. Then, the script creates some intermediate files and a final output file, in which parameter values and evolutionary outcome of each simulation are summarized (the default name of the file is “Results_integrated.txt”). Step 5: Visualization of evolutionary results of simulations with varied parameter conditions (e.g., Fig. 3) Using final output files of the step 4, the script “Plot_ParameterDependence.R” visualizes evolutionary outcomes of many simulations with systematically varied parameter conditions.   Step 6: Scripts to generate other supplementary figures l   Plot_FigS2.R: Using a raw output file of a simulation of the preference/trait model, this script calculates and visualizes the genetic variance and covariance of male and female mating traits (Fig S2). l   Plot_FigS5.R: This script visualizes the time series of population size, average survival fitness, and average reproductive fitness in a single simulation by extracting data from a raw output file of the simulation. l   Plot_FigS17.R: This script calculates and visualizes the reproductive fitness landscape in a simulation run (Supplementary Text S6 for details).  ========================================== Format of raw output files of individual-based simulation with Java programs The simulation program runs multiple simulations at once. The x-th simulation generates a set of the following raw output files: (1)   “alleles_x_y_.txt”: The list of all derived alleles that were existing in the system at the generation y. Each row stores the following six properties of each derived allele: the ID of the allele (“mutation_id”), the position of the derived allele in the genome (“position”), the name of population in which the derived allele originated (“origin”), ID of trait that the allele affects (“trait_id”), ID of the genetic locus that the allele belongs to (“locus_id”), the phenotypic effect value of the allele (“pheno_effect”). (2)   “loci_x.txt”: This files stores positions of all genetic loci that could potentially affect mating trait phenotypes in this simulation run. All simulations starting from the same common ancestor share the same list of positions of loci. (3)   “individuals_x_y_.txt”: This file stores the list of all haploid genotypes from all individuals at the generation y. Each row stores the information of a haploid genotype as a list of IDs of derived alleles. The first five columns store the following properties of the haploid genome and its carrier (a diploid individual): generation, which should be equal to y, name of the population that the individual belonged to (“population_id”; 0 or 1 -&gt; parental population, 2 -&gt; hybrid zone), sex of the individual (“female”; 0 -&gt; male, 1 -&gt; female), ID of the individual (“id_no”), and the ID of the haploid genome (“chromo_no”; 0 or 1). Following columns list all derived alleles involved in the haploid genome. (4)   “para_x_.txt”: This file stores all parameter values that have been used for running the simulation. (5)   “population_x_.txt” This is the main file of raw simulation output, in which properties of all individuals in the system are recorded at a constant interval. Table meaning of each row is shown in the Table 2. Following files follow the same format: all files in directories “DynamicsExamples”, “FigS5”, and “FigS17”; “FigS2a.txt” and “FigS2c.txt” in the directory “FigS2”. (6)   “population_x_last100_.txt” In this file, properties of all individuals in the system are recorded every generation of the last 100 generations of the simulation. Format of the file is same as “population_x_.txt”. (7)   “statistics_x_.txt”: In this file, the following six statistics are recorded at a constant time interval: population size at the juvenile stage (“pop_size”), population size at the adult stage (“survivor_size”), number of genetic sites with allele polymorphism (num_snp), number of derived alleles that have fixed in the entire system after starting the simulation (“num_fixed”), the mean value of the mating trait value (“mean_x0”. In the preference/trait model, the mean values of male mating trait and female mate preference are recorded as “mean_x0” and “mean_y0”, respectively), the standard deviation of the mating trait value (“sd_x0”. In the preference/trait model, the mean values of male mating trait and female mate preference are recorded as “sd_x0” and “sd_y0”, respectively). In simulations of the allopatric phase, these statistics are calculated for the parental population. In simulations of the evolution following hybridization, on the other hand, these statistics are calculated for the hybrid population. (8)   Four files starting from “#” (“#basal_parameter_set.txt”, “#parameters_AH.txt”, “parameters_BH.txt”, and “simulation_mode.txt”) are copies of the four input files in the directory “config” that were used to run the set of simulations (see the “step 4” of the “Instructions for running Java programs for individual-based simulation” section). ========================================== Format of files summarizing results of many simulations Our R scripts summarize results from a set of many simulations into single files, which follow either one of the following tree formats: (1)   “Results_integrated.txt”: Each row of this file summarizes information of single simulation run. The first 23 columns are parameter values used for the simulation (Table 1). The remaining columns are statistics that summarize simulation results. Meanings of these statistics are described in the Table 3. All files in the directory “ParameterDependency” follow this format. (2)   “Stats_Integrated_RI.txt”: This file summarizes evolutionary dynamics in many simulations of the evolution following hybridization. Statistics that summarize evolutionary state of the hybrid population are provided for each timepoint (the column “generation”) in each simulation (the column “trial_id”). Meaning of each statistic is described in the Table 3. Files “Fig5a_c.txt” and “Fig5b_d.txt” in the directory “DynamicsReplicates” follow this format. (3)   “mean_trait_dynamics.txt”: This file integrates the column “mean_x0” the file “statistics_x_.txt” of many simulations. Each column of this file except for the first column showing generation shows the dynamics of mean trait value in a single simulation run. In the case of preference/trait model, the dynamics of mean male and female mating trait values are separately stored in “mean_trait_dynamics.txt” and “mean_pref_dynamics.txt”, respectively. The following files follow this format: “Fig4a.txt”, “Fig4b.txt”, “Fig4c.txt”, and “Fig4d.txt” in the directory “DynamicsReplicates” and “FigS2b_mean_trait_dynamics.txt” and “FigS2b_mean_pref_dynamics.txt” in the directory “FigS2”. Table 1. Correspondence between symbols for parameters and their names in the Java simulation programs, R scripts, and simulation output files. Definition Symbol Name in programs, codes, and simulation outputs The number of chromosomes n num_chromo Length of each chromosome l single_chromo_length The number of loci controlling each trait L num_loci_m*; num_loci_f ** Length of each genetic locus − single_gene_length Mutation rate/generation μ mutation_per_locus Phenotypic effect size of mutations σm mutation_jump_m*; mutation_jump_f** Recombination rate/generation r recombination_per_genome/total_genome_length Female fecundity λ fecundity Carrying capacity (at the adult stage) of the hybrid zone KH Ne_hybrid_zone Carrying capacity of parental populations KP Ne_parental Expected number of immigrants from a parental population to the hybrid zone per generation m num_immigrants The duration of allopatric evolution of parental lineages (generations) T0 generation_load Randomness/non-randomness of mating (the range of male traits that females can accept) θ sig_mate_choice Upper limit number of mating per male individual Mm num_mating_male Encounter rate between female and male individuals within a population e encounter_rate Initial ratio of two parental lineages r0 initial_ratio_L0 Degree of asymmetry of immigration from parental populations 1 and 2 to the hybrid zone γ immigration_asymmetry Depth of fitness valley d depth_fitness_valley Steepness of the fitness valley β width_fitness_valley Global fitness cost to have extreme mating phenotypes c global_cost Distance between two fitness peaks in the phenotype space α pos_peak2 *For the mating trait in the Matching model and the male trait in the Preference/Trait mode **For the female trait in the Preference/Trait model Table 2. Contents of “population_x_.txt” (the main file of raw simulation outputs). Column name Meaning generation Generation from the starting of the simulation id The ID number of the individual mother_id The ID number of the mother of the individual father_id The ID number of the mother of the individual population_id The ID of the population that the individual finally belonged to (0, 1 -&gt; parental population, 2 -&gt; hybrid zone) original_pop_id The ID of the population where the individual had bone sex The sex of the individual (0 -&gt; male, 1 -&gt; female) trait_0 The value of the mating trait (matching model); The value of the male mating trait value (preference/trait model) trait_1 The value of the female mating trait value of the preference/trait model (Not applicable to matching model) survive_competition Whether the individual survived to the adult stage (1 -&gt; survived, 0 -&gt; dead) num_offsprings The total number of offspring that the individual produced in his/her lifetime origin_mate The ID of the population where the mating partner of the individual had bone Table 3. Results shown in “Results_integrated.txt” and “Stats_Integrated_RI.txt” (files for generating figures that summarize results of many simulations) Column name Meaning result The category of outcome of the evolution following hybridization gene_flow_male The magnitude of gene flow from parental populations to the hybrid population caused by immigrant male individuals* gene_flow_female The magnitude of gene flow from parental populations to the hybrid population caused by immigrant female individuals* RI The strength of reproductive isolation between the hybrid population and parental populations* immigrant_male_relative_fitness The mean fitness (measured by lifetime number of offspring) of males that had immigrated from a parental population to the hybrid population divided by the mean fitness of resident males of the hybrid population. immigrant_female_relative_fitness The mean fitness (measured by lifetime number of offspring) of females that had immigrated from a parental population to the hybrid population divided by the mean fitness of resident females of the hybrid population. mean_trait_0 The average of the mating trait value (matching model) or the male mating trait value (preference/trait model) in the hybrid population. The average is taken across all recorded individuals in a period of 200 generations starting from the generation shown in the column “generation”.  mean_trait_1 The average of the female mating trait value (applicable only to the preference/trait model), which was calculated in the same way as the “mean_trait_0”. var_trait_0 Variance of the mating trait value (matching model) or the male mating trait value (preference/trait model), which was calculated in the same way as the “mean_trait_0”. var_trait_1 Variance of the female mating trait value (applicable only to the preference/trait model), which was calculated in the same way as the “mean_trait_0”. mean_OneGenResi_trait_0 The average of the mating trait value (matching model) or the male mating trait value (preference/trait model) in the hybrid population. The average was taken across resident individuals of the hybrid population excluding immigrants. mean_OneGenResi_trait_1 The average of the female mating trait value (applicable only to the preference/trait model), which was calculated in the same way as the “mean_OneGenResi_trait_0”. var_OneGenResi_trait_0 Variance of the mating trait value (matching model) or the male mating trait value (preference/trait model) in the hybrid population, which was calculated in the same way as the “mean_OneGenResi_trait_0”. var_OneGenResi_trait_1 Variance of the female mating trait value (applicable only to the preference/trait model) in the hybrid population, which was calculated in the same way as the “mean_OneGenResi_trait_0”. signal_final The average of the mating trait value (matching model) or the male mating trait value (preference/trait model) in the hybrid population at the end of simulation. preference_final The average of the female mating trait value (applicable only to the preference/trait model) in the hybrid population in the hybrid population at the end of simulation. signal_final_pop0 The average of the mating trait value (matching model) or the male mating trait value (preference/trait model) in the parental population 1 at the end of simulation. preference_final_pop0 The average of the female mating trait value (applicable only to the preference/trait model) in the parental population 1 at the end of simulation. signal_final_pop1 The average of the mating trait value (matching model) or the male mating trait value (preference/trait model) in the parental population 2 at the end of simulation. preference_final_pop1 The average of the female mating trait value (applicable only to the preference/trait model) in the parental population 2 at the end of simulation. result_BH The category of evolutionary state of parental lineages immediately before they went into a secondary contact. sum_effect_size_sig The degree of genetic differentiation between parental lineages (GD) in loci affecting the mating trait (matching model) or the male mating trait (preference/trait model)*. sum_effect_size_pref The degree of genetic differentiation between parental lineages (GD) in loci affecting the female mating trait (applicable only to the preference/trait model)*. *Supplementary Text S4 for details.