Data from: Beyond fixation: Persistent genetic variation under intense selection
Data files
Jul 17, 2026 version files 904.31 MB
-
ACO1_Deepseq_SNP_20_5000.csv
62.92 MB
-
arnold25_genomic_trajectory_SNP_table_counts.csv
841.02 MB
-
Mortality_2019.csv
50.56 KB
-
Mortality_2020.csv
106.46 KB
-
Mortality_2023.csv
112.90 KB
-
Pupariation_2019_AtoC.csv
30.50 KB
-
Pupariation_2019_CtoA.csv
35.16 KB
-
Pupariation_2024.csv
19.65 KB
-
README.md
10.39 KB
Abstract
Understanding how and why genetic variation is maintained under sustained selection remains a central question in evolutionary genetics. Experimental evolution shows that adaptation in sexually reproducing populations is often highly polygenic, proceeding through coordinated, genome-wide allele frequency shifts from standing variation rather than classic hard sweeps. Recent explanations emphasize highly polygenic architectures, optimizing selection, and genetic redundancy, which can slow fixation by distributing selection across many loci during adaptation. However, observations from long-term selection experiments reveal a pattern these frameworks do not fully explain: substantial genetic variation persists after hundreds of generations of intense directional selection in constant environments. Here, we use long-term experimental evolution in Drosophila melanogaster to test whether balancing selection actively maintains genetic variation under strong life-history selection and preserves evolutionary reversibility. Populations subjected to selection for accelerated or delayed reproduction for hundreds of generations were shifted to the opposing regime, imposing age-structured fitness trade-offs. Notably, selection for early reproduction is associated with substantial loss of genetic variation, providing a stringent test of whether standing variation is truly depleted. Following reciprocal shifts, populations showed rapid phenotypic convergence toward the target regime. At the genomic level, allele-frequency trajectories were strongly antiparallel and highly repeatable across replicates, revealing coordinated polygenic responses. Relaxing long-standing early-life selection produced a pronounced rebound in genome-wide heterozygosity. Deep sequencing uncovered ultra-rare alleles at sites appearing fixed under standard coverage, indicating that low-frequency functional variation persists below detection thresholds. These results suggest that substantial genetic variation can persist under intense directional selection and be rapidly redeployed when selection reverses, consistent with widespread balancing selection.
Dataset DOI: 10.5061/dryad.tdz08kqdc
Description of the data and file structure
Data were collected from a long-term experimental evolution system in Drosophila melanogaster in which populations have been maintained under accelerated (A-type, 10-day generation) or delayed (C-type, 28-day generation) reproduction schedules. Ten replicate populations from each regime were shifted to the opposing selection regime, creating reciprocal A-to-C and C-to-A trajectory populations. Phenotypic and genomic data were collected from founder populations and trajectory populations at multiple timepoints spanning approximately 5 years of selection reversal (roughly 64 generations for A-to-C and 182 generations for C-to-A trajectories). Genomic data consist of pooled whole-genome sequencing (pool-seq) of approximately 200 individuals per population, with standard coverage (~90x) for trajectory and founder populations and deep coverage (~767x) for a single A-type founder population. Phenotypic data include age-specific mortality assays and larval development timing (pupariation) collected at up to three timepoints.
Files and variables
File: arnold25_genomic_trajectory_SNP_table_counts.csv
Description: Pooled whole-genome sequencing SNP table containing major and minor allele read counts for all trajectory and founder populations across all sampling timepoints. Each row represents a single SNP. Population codes follow the naming convention: population type + replicate number + year of collection (18=2018, 19=2019, 20=2020, 24=2024). Missing values indicated by NA.
Note on file size: This file is 841 MB and will exceed the practical limits of Excel and similar spreadsheet software, which may fail to load it or silently truncate rows. We recommend R for opening and working with this file, consistent with the analysis scripts provided:
data.table::fread("arnold25_genomic_trajectory_SNP_table_counts.csv")
Users without R can inspect the file using command-line tools such as head or awk, or Python's pandas.read_csv() with low_memory=False.
Variables
- chr: Chromosome arm (X, 2L, 2R, 3L, 3R)
- pos: Genomic position (base pairs, dm6 reference genome)
- maj: Major allele nucleotide (A, T, C, or G)
- min: Minor allele nucleotide (A, T, C, or G)
- _mj: Suffix indicating major allele read count for the indicated population and timepoint
- _mi: Suffix indicating minor allele read count for the indicated population and timepoint
Column naming convention
- [PopulationType][ReplicateNumber][Year][AlleleType]
- ReplicateNumber: Replicate number within population type (1-5)
- Year: Two-digit year of sample collection (18=2018, 19=2019, 20=2020, 24=2024)
Population Prefixes
- CACO: A-to-C trajectory populations (derived from ACO founders, shifted to C-type selection)
- CAO: A-to-C trajectory populations (derived from AO founders, shifted to C-type selection)
- NACO: C-to-A trajectory populations (derived from NCO founders, shifted to A-type selection)
- ANCO: C-to-A trajectory populations (derived from CO founders, shifted to A-type selection)
- ACO: A-type founder populations
- AO: A-type founder populations
- CO: C-type founder populations
- NCO: C-type founder populations
File: ACO1_Deepseq_SNP_20_5000.csv
Description: Deep sequencing SNP table for a single A-type founder population (ACO1), with minimum coverage of 20x and maximum of 5000x per site. Used to detect ultra-rare alleles at sites appearing fixed under standard sequencing coverage. Missing values indicated by NA.
Variables
- chr: Chromosome arm (X, 2L, 2R, 3L, 3R)
- pos: Genomic position (base pairs)
- maj: Major allele nucleotide
- min: Minor allele nucleotide
- ACO1_mj: Major allele read count
- ACO1_mi: Minor allele read count
- ACO1_freq: Minor allele frequency (minor count / total coverage)
- convertedPosition: Chromosomal position converted to a continuous genomic coordinate for plotting
- cov: Total read coverage at this site
File: Pupariation_2019_AtoC.csv
Description: Larval development timing data collected in 2019 for A-to-C trajectory populations (CACO, CAO) and their A-type and C-type founder controls (ACO, AO, CO, NCO). Records cumulative pupariation counts across three vials per population at each hourly timepoint. Missing values indicated by NA.
Variables
- Treatment: Population type identifier (ACO, AO, CO, NCO, CACO, CAO)
- Pop: Replicate population number (1-30)
- Time: Hours elapsed since start of assay
- CumSumA: Cumulative number of puparia in vial A at this timepoint
- CumSumB: Cumulative number of puparia in vial B at this timepoint
- CumSumC: Cumulative number of puparia in vial C at this timepoint
- A: Number of individuals that pupariated in vial A at this timepoint
- B: Number of individuals that pupariated in vial B at this timepoint
- C: Number of individuals that pupariated in vial C at this timepoint
File: Pupariation_2019_CtoA.csv
Description: Larval development timing data collected in 2019 for C-to-A trajectory populations (NACO, ANCO) and their A-type and C-type founder controls (ACO, AO, CO, NCO). Records cumulative pupariation counts across three vials per population at each hourly timepoint. Missing values indicated by NA.
Variables
- Treatment: Population type identifier (ACO, AO, CO, NCO, NACO, ANCO)
- Pop: Replicate population number (1-30)
- Time: Hours elapsed since start of assay
- CumSumA: Cumulative number of puparia in vial A at this timepoint
- CumSumB: Cumulative number of puparia in vial B at this timepoint
- CumSumC: Cumulative number of puparia in vial C at this timepoint
- A: Number of individuals that pupariated in vial A at this timepoint
- B: Number of individuals that pupariated in vial B at this timepoint
- C: Number of individuals that pupariated in vial C at this timepoint
File: Pupariation_2024.csv
Description: Larval development timing data collected in 2024 for all trajectory populations (CACO, CAO, NACO, ANCO) and their A-type and C-type founder controls (ACO, AO, CO, NCO). Records cumulative pupariation counts across three vials per population at each hourly timepoint. Missing values indicated by NA.
Variables
- Treatment: Population type identifier (ACO, AO, CO, NCO, CACO, CAO, NACO, ANCO)
- Pop: Replicate population number (1-40)
- Time: Hours elapsed since start of assay
- CumSumA: Cumulative number of puparia in vial A at this timepoint
- CumSumB: Cumulative number of puparia in vial B at this timepoint
- CumSumC: Cumulative number of puparia in vial C at this timepoint
- A: Number of individuals that pupariated in vial A at this timepoint
- B: Number of individuals that pupariated in vial B at this timepoint
- C: Number of individuals that pupariated in vial C at this timepoint
File: Mortality_2019.csv
Description: Age-specific mortality data for A-type and C-type founder populations collected in 2019. Each row represents the number of surviving individuals of a given sex in a given population at a given age. Missing values indicated by NA.
Variables
- Selection: Population type identifier (ACO, AO, CO, NCO)
- Population: Replicate population number
- Age: Fly age in days at time of census
- Alive: Number of individuals alive at this age
- Sex: Sex of individuals counted (F = female, M = male)
File: Mortality_2020.csv
Description: Age-specific mortality data for founder and trajectory populations collected in 2020, corresponding to the first mortality assay timepoint following selection reversal. Each row represents the number of surviving individuals of a given sex in a given population at a given age. Missing values indicated by NA.
Variables
- Selection: Population type identifier (ACO, AO, CO, NCO, CACO, CAO, NACO, ANCO)
- Population: Replicate population number
- Age: Fly age in days at time of census
- Alive: Number of individuals alive at this age
- Sex: Sex of individuals counted (F = female, M = male)
File: Mortality_2023.csv
Description: Age-specific mortality data for founder and trajectory populations collected in 2023, corresponding to the final mortality assay timepoint. Each row represents the number of surviving individuals of a given sex in a given population at a given age. Missing values indicated by NA.
Variables
- Selection: Population type identifier (ACO, AO, CO, NCO, CACO, CAO, NACO, ANCO)
- Population: Replicate population number
- Age: Fly age in days at time of census
- Alive: Number of individuals alive at this age
- Sex: Sex of individuals counted (F = female, M = male)
Code/software
All downstream data processing and analysis were performed in R (version 4.5.x; R Core Team 2024). Analysis scripts are available at https://github.com/krarnold/A-C_Genomic_Trajectory_Project. Required packages:
Genomic analysis: glmmTMB, broom.mixed, furrr, future, purrr, dplyr, tidyr, stringr, poolSeq, VariantAnnotation, GenomicRanges, TxDb.Dmelanogaster.UCSC.dm6.ensGene, org.Dm.eg.db
Phenotypic analysis: nlme, lme4, lmerTest, ggplot2, ggpubr, ggtext, data.table, reshape2, readxl, gridExtra
Visualization: ggplot2, UpSetR, patchwork, scales
Sequence alignment and variant calling were performed using Novoalign v4.04.01, Novosort, Bamtools, SAMtools, and PoPoolation2 (see Methods for the full pipeline description).
Access information
Other publicly accessible locations of the data:
- Analysis scripts: https://github.com/krarnold/A-C_Genomic_Trajectory_Project
- Raw sequencing data: https://www.ncbi.nlm.nih.gov/bioproject/PRJNA1426013
Data was derived from the following sources:
- Raw paired-end FASTQ files generated by pooled whole-genome sequencing of Drosophila melanogaster experimental evolution populations, available under NCBI BioProject PRJNA1426013. Sequencing was performed at the UC Irvine Genomics Research and Technology Hub on an Illumina NovaSeq X Plus platform. All data were generated as part of this study and are not derived from any third-party source.
Sequencing and variant calling: Genomic DNA was pooled from approximately 200 individuals per population and sequenced at the UC Irvine Genomics Research and Technology Hub on an Illumina NovaSeq X Plus platform, producing standard coverage (~90x) for trajectory and founder populations and deep coverage (~767x) for a single A-type founder population (ACO1). Raw paired-end reads (NCBI SRA: PRJNA1426013) were aligned to the Drosophila melanogaster dm6 reference genome (FlyBase) using Novoalign v4.04.01. Duplicate reads were marked with Novosort, and BAM files were merged using Bamtools. Pileups were generated with SAMtools mpileup, and allele counts were called using PoPoolation2, producing sync-format output. A custom Python script converted the sync files into the SNP count table provided here (arnold25_genomic_trajectory_SNP_table_counts.csv). The same workflow was applied to generate the deep sequencing table for the ACO1 founder population (ACO1_Deepseq_SNP_20_5000.csv), using a coverage range of 20 to 5000x per site to detect ultra-rare alleles at sites appearing fixed under standard coverage.
Downstream analysis: All downstream statistical analyses, including allele frequency trajectory modeling and phenotypic mixed-effects modeling, were performed using the R scripts and packages described in the Code/software section of the README.
