Data and code from: Evaluating phylogenetic comparative methods under reticulate evolutionary scenarios
Data files
Sep 11, 2026 version files 1.14 GB
-
2-ACE_results_Networks.RData
296.62 MB
-
3-ACE_treeAnalysis.csv
4.57 MB
-
4-ACE_network_Analysis.csv
660.70 MB
-
5-NodeSpecificAnalysis_Networks.RData
175.06 MB
-
6-AllTopologies.csv
1.57 MB
-
README.md
6.25 KB
Abstract
Phylogenetic comparative methods (PCMs) are widely used to study trait evolution. While a treelike history is typically assumed, many evolutionary histories involve reticulation, such as hybridization, that violates core assumptions of these methods. In this study, we evaluate how such violations affect inferences of ancestral character states, evolutionary rates, and model selection using commonly used PCMs. Using random forest, generalized linear models, and model-based clustering, we identify the key factors contributing to these inaccuracies.
In order to do this, we first simulated thousands of phylogenetic networks with various patterns of gene flow, inheritance probabilities, and numbers of reticulation events. Then, we simulated continuous traits evolving under brownian motion, with various rates of trait evolution and transgressive segregation events. To evaluate the adequacy of traditional tree-based PCMs, we then extracted the major tree for each network, along with tip states for our simulated traits, and performed ancestral character estimations. We calculated tree-wide trait estimation error, node-specific error, evolutionary rate estimation error, and evolutionary model misspecification. Finally, we simulated 10,000 traits evolving under brownian motion using our major tree topologies in order to establish a baseline expectation of error distribution when traits evolve on trees and tree-based methods are used.
Dataset DOI: 10.5061/dryad.5mkkwh7hg
Description of the data and file structure
All data contained herein are the result of simulation experiments.
Files and variables
File: 3-ACE_treeAnalysis.csv
Description: dataframe summarizing tree-based simulation and ACE
Variables
- mean_error: overall tree-wide trait estimation error
- sig2_Est: model-estimated rate parameter
- sig2_True: true evolutionary rate of trait
- ModelChosen: chosen model of evolution (BM= brownian motion; OU=orenstein-Uhlenbeck) *note: true model is always brownian motion
- TreeTopology: topology used for simulation, in newick text format
- rateError: error in evolutionary rate estimation
- BM_aic: AIC evaluation score for BM
- OU_aic: AIC evaluation score for OU
- logLik: log likelihood of ancestral character estimation
File: 2-ACE_results_Networks.RData
Description: results from ancestral character estimation for every network topology and simulated trait
- Node: Node name
- TrueVal: true character value at node
- Replicate: replicate number for trait simulation
- Netname: network name
- TreeTopology: Major tree topology
- NetTopology: Network topology
- sig2_True: true rate of trait evolution
- ModelUsed: best-fit model of trait evolution
- numHyb: number of reticulation events
- ancMean: ancestral mean trait value
- numTrans: number of transgressive events
- Est: estimated trait value at node
- LogLik: log likelihood of Ancestral character estimation
- sig2: estimated rate of trait evolution
- error: Error in trait estimation at node
- rate_error: Error in evolutionary rate parameter estimation
- meanError: mean tree-wide trait estimation error
- BM_aic: AIC for Brownian motion
- OU_aic: AIC for Ornstein-Uhlenbeck
- EB_aic: AIC for EB
- Node_index: Tree name ; node name ; replicate ; true evolutionary rate
- Tree_index: Tree name ; replicate ; true evolutionary rate
File: 4-ACE_network_Analysis.csv
Description: summarized dataframe, used for analysis of factor contribution and rate distributions. Contains information about trait estimation error, rate estimation error, model misspecification, and relevant network and trait structural features.
Variables
- Netname: network name, where LN/LG indicate whether reticulation events are lineage generative vs lineage neutral
- NetTopology: network topology in newick text format
- sig2_True: true evolutionary rate
- Replicate: replicate number for trait simulation
- ModelUsed: best fit model of evolution, chosen by AIC scores
- rate_error: error in trait evolutionary rate estimation
- meanError: mean overall tree-wide error
- numTrans: number of transgressive events
- nTaxa: number of terminal taxa
- nSur: number of extant taxa
- termMax: maximum terminal branch length
- termMin: minimum terminal branch length
- termMean: mean terminal branch length
- termVar: variance in terminal branch length
- intMax: maximum internal branch length
- intMin: minimum internal branch length
- intMean: mean internal branch length
- intVar: variance in internal branch length
- termRat: mean internal branch length/mean terminal branch length
- nHyb: number of reticulation events
- PropTermH: proportion of reticulate nodes that occur on terminal branches
- PropExtH: proportion of reticulate nodes that occur on extinct branches
- HybType: the probability of lineage generative (LG) vs lineage neutral (LN) reticulation events. LG=100% lineage generative; LN=100% lineage neutral; LG75= 75% lineage generative/25% lineage neutral; LN75=75% lineage neutral/25% lineage generative; LG50= 50% lineage generative/50% lineage neutral
- ExtRate: extinction rate used for network simulation
- HybRate: hybridization rate used for network simulation
- spRate: speciation rate used for network simulation
- inherMean: mean inheritance value for all reticulation events
- inherMax: maximum inheritance value
- inherVar: variance in inheritance values
- isTB: is the network tree-based
- isTC: is the network tree-child
- isFU: is the network FU stable
- level: network level
File: 5-NodeSpecificAnalysis_Networks.RData
Description: Dataframe summarizing node-specific trait estimation error, including relevant node-specific features.
- Node_index: Node index
- error: trait estimation error at node
- sig2_True: true evolutionary rate of trait
- numHyb: Number of reticulation events
- numTrans: Number of transgressive events
- TrueVal: true trait value at node
- Node_index: Tree name ; node name ; replicate ; true evolutionary rate
- Tree_index: Tree name ; replicate ; true evolutionary rate
- NetTopology: network topology in newick text format
- NodeAge: branch length adjusted node depth (0=root)
- MinDistH: minimum distance of node to reticulation event
- MinPosDistH: minimum distance of reticulation event preceding node
- MinNegDistH: minimum distance of reticulation event following node
- ClosestHyb: closest reticulation event to node
- brLenTo: branch length preceding node
- brLenFrom: branch length following node
- TransMagnitude: magnitude of transgressive evolution at closest reticulation event to node (0 = no transgressive evolution)
File: 6-AllTopologies.csv
Description: simple dataframe containing all network topologies and major tree topologies used throughout this project, listed in newick text format.
Variables
- Netname: network name
- NetTopology: network topology in newick-text format
- TreeTopology: major tree topology in newick text-format
Code/software
All analyses and simulations were conducted in R and Julia, using packages SiPhyNetwork, Phytools, and Geiger for network simulation, ancestral character estimation, and tree-based trait simulations. The package PhyloNetwork in Julia was used for network-based trait simulations. All code associated with production of these datasets, and descriptions therein, can be found on GitHub:
