Unravelling the effects of ecology and evolutionary history in the phenotypic convergence of fishes
Data files
Aug 18, 2025 version files 78.70 MB
-
2025.05.05_dryad.submission_submitted.zip
78.69 MB
-
README.md
8.74 KB
Abstract
Understanding the ecological drivers and limitations of adaptive convergence is a fundamental challenge. Here, we explore how adaptive convergence of planktivorous fishes has been influenced by multiple ecological factors, evolutionary history, and chance. Using ecomorphological data for over 1600 marine species, we integrate pattern-based metrics of convergence with evolutionary model fitting to test whether phenotypic similarities among specialist planktivores exceed expectations under null models and whether ecology, evolutionary history, or their combined effects best explain trait evolution. We find that planktivores are significantly more similar in phenotype than expected. Traits with functional relevance for prey detection and capture, such as eye diameter and lower jaw length, are strongly convergent, while general body size and shape are constrained by deep divisions between clades where the effects of evolutionary history are most pronounced. Since not all traits undergo strong selection toward a convergent ecomorph, their evolutionary trajectories have not entirely overcome ancestral differences in the multivariate trait space, resulting in a specific form of convergence termed conservatism. We show how adaptive responses to feeding ecology intertwine with other ecological pressures (i.e., light environment) and historical contingency to shape fish phenotype evolution over deep time, offering key insights into the generality of phenotypic evolution.
https://doi.org/10.5061/dryad.18931zd69
Description of the data and file structure
Morphometric data measured (in mm) from fish specimens in the FishShapes v1 dataset (Price et al. 2019, 2022) were combined with five new morphometric traits measured (in mm) from corresponding specimen images. Ecological data were compiled from the literature and online data repositories.
Description:
-------------------------------------------------
(1) Data folder
This folder contains:
(a) the curated dataset ("Raw_data_final_Hodge_et.al.csv") with the five new morphometric measurements (columns C:F, H), the eight morphometric measurements from the FishShapes v1 dataset (columns J:Q), the corresponding metrics of size (columns B, G, I; see also Table S2), and the classified ecological and clade variables (columns R:T) per fish species, as described in the manuscript.
(b) the tree file ("SmithsonianTree_v7.tre"), which is a phylogenetic tree with 5959 species matched to the FishShapes v1 dataset. The tree was originally generated by Rabosky and colleagues (2018).
(c) the size-standardised dataset ("Size_standardized_data_final_Hodge_et.al.csv") generated using the R script ("SizeStandardisation_script_Hodge_et.al.R") in the SizeStandardisation folder.
(d) the trimmed size-standardised dataset ("Trimmed_Size_standardized_data_final_Hodge_et.al.csv") generated using the R script ("AncestralStateReconstruction_script_Hodge_et.al.R") in the AncestralStateReconstruction folder.
(e) the full feeding ecology dataset ("Full_feeding_ecology_data_final_Hodge_et.al.csv") that contains feeding and clade categories for 1,982 species.
(f) a subfolder of the ancestral state reconstructions estimated using the maximum amount of ecological data (AncestralStateReconstructions_Full). The files within this folder are generated using the R script ("AncestralStateReconstruction_script_Hodge_et.al.R") in the AncestralStateReconstruction folder.
(g) a subfolder of the ancestral state reconstructions trimmed to have the same number of species (AncestralStateReconstructions_Trimmed). The files within this folder are generated using the R script ("AncestralStateReconstruction_script_Hodge_et.al.R") in the AncestralStateReconstruction folder.
(h) the z-score dataset ("Z.score_Trimmed_Size_standardized_data_final_Hodge_et.al.csv") generated using the R script ("Morphospace_script_Hodge_et.al.R") in the Morphospace folder.
(i) the focal taxa with group designations ("convevol.groups.csv") defined within the CONVEVOL R script.
-------------------------------------------------
(2) AncestralStateReconstruction folder
This folder contains the R script ("AncestralStateReconstruction_script_Hodge_et.al.R") to perform the ancestral state reconstructions.
It requires the full feeding ecology dataset ("Full_feeding_ecology_data_final_Hodge_et.al.csv"), the size-standardised dataset ("Size_standardized_data_final_Hodge_et.al.csv"), and the tree file ("SmithsonianTree_v7.tre").
The trimmed size-standardised data file generated by this R script is used as an input file in other scripts.
The trimmed ancestral state reconstructions all have the same number of species/tips and are used as input in the CONVEVOL and OUwie scripts.
Please be aware that several of these analyses take quite a long time to run.
-------------------------------------------------
(3) CONVEVOL folder
This folder contains the R script ("CONVEVOL_script_Hodge_et.al.R") to perform the convevol analysis.
It requires the z-score data file ("Z.score_Trimmed_Size_standardized_data_final_Hodge_et.al.csv") generated by the R script in the Morphospace folder, as well as the trimmed feeding ecology ancestral state reconstruction ("Feeding.ecology.AncestralStates_Hodge_et.al.nex") and the tree file ("SmithsonianTree_v7.tre").
It includes the identification of focal groups using castor::count_transitions_between_clades (Louca & Doebeli 2018).
The customised R functions ("calcConvCt_MODIFIED" and "convSigCt_MODIFIED") to perform ancestral state reconstructions and simulations using the multivariate OU model are also provided.
There is also a series of folder to save the output generated (convSigCt_MODIFIED_results/), which contain some example output files.
Please be aware that these analysis take quite a long time to run.
-------------------------------------------------
(4) history.test folder
This folder contains the R script ("histroy.test_script_Hodge_et.al.R") to perform the history.test function, and the phylogenetic generalised least squares regressions to test the hypothesis that specialist planktivores farther from the adaptive optima have spent less time with that feeding ecology (functions described in Moen et al. 2016 and Simon and Moen 2023).
It requires the functions published by Simon and Moen 2023 ("history.test/R_functions_PBZ.R"), the trimmed size-standardised dataset ("Trimmed_Size_standardized_data_final_Hodge_et.al.csv") generated using the R script in the AncestralStateReconstruction folder, as well as the parameters estimated by the best-fit models (OUwie/Best.fit_models/) generated using the OUwie script, the tree file ("SmithsonianTree_v7.tre") and the focal groups defined within the CONVEVOL script ("Data/convevol.groups.csv").
-------------------------------------------------
(5) Morphospace folder
This folder contains the R script ("Morphospace_script_Hodge_et.al.R") to perform the principal component analysis on the size corrected data and plot the respective results.
It requires the the trimmed size-standardised dataset ("Trimmed_Size_standardized_data_final_Hodge_et.al.csv") generated using the R script in the AncestralStateReconstruction folder.
The z-score data file generated by this R script is used as an input file in other scripts.
-------------------------------------------------
(6) OUwie folder
This folder contains R script ("OUwie_script_Hodge_et.al.R") to perform the OUwie analyses, summarise the results, and extract best-fit model parameter values.
It requires the trimmed size-standardised dataset ("Trimmed_Size_standardized_data_final_Hodge_et.al.csv") and the trimmed ancestral state reconstructions (Data/AncestralStateReconstructions_Trimmed) generated using the R script in the AncestralStateReconstruction folder.
The parameter files generated by this R script are used as input files in the OUwie.boot and history.test scripts.
It also contains R script ("OUwie.boot_script_Hodge_et.al.R") to perform the OUwie.sim and OUwie.boot analyses.
It requires the trimmed ancestral state reconstructions (Data/AncestralStateReconstructions_Trimmed) and the trimmed size-standardised dataset ("Trimmed_Size_standardized_data_final_Hodge_et.al.csv") generated using the R script in the AncestralStateReconstruction folder, as well as the parameters estimated by the best-fit models (OUwie/Best.fit_models/) generated using the OUwie script.
All OUWie and OUwie.boot analyses were run on Clemson University's high-performance computing cluster, which used parallel processing.
We do not recommend running these analyses on a single processor as they are unlikely to finish.
Therefore, we have also included the .RData output files generated by OUwie (Results/ and Best.fit_models/) and example simulated dataset (Simulations/).
There are also empty folders (Bootstraps/ and Power/) to store results within.
-------------------------------------------------
(7) SizeStandardisation folder
This folder contains R script ("SizeStandardisation_script_Hodge_et.al.R") to perform the morphometric data size standardisation and cross ecological variables.
It requires the curated dataset ("Raw_data_final_Hodge_et.al.csv") and the tree file ("SmithsonianTree_v7.tre").
The size-standardised data file generated by this R script is used as an input file in other scripts.
-------------------------------------------------
Code/software
The scripts were written in R version 4.3.0 using a Mac OS 14.3.1
All R package versions are provided within the respective scripts
All R scripts require setting the working directory to the corresponding folder
Access information
Other publicly accessible locations of the data:
Data was derived from the following sources:
- Price, S.A., Friedman, S.T., Corn, K.A., Larouche, O., Brockelsby, K., Lee, A.J., et al. (2022). FishShapes v1: functionally relevant measurements of teleost shape and size on three dimensions. Ecology, 13, e3829. https://doi.org/10.1002/ecy.3829
