DOI: 10.5061/dryad.dr7sqvb33
title: Data from: Environmentally independent selection for hybrids between divergent freshwater stickleback lineages in semi-natural ponds

description: Hybridization following secondary contact of genetically divergent
 populations can influence the range expansion of invasive species, though
 specific outcomes depend on the environmental dependence of hybrid
 fitness. Here, using two genetically and ecologically divergent threespine
 stickleback lineages that differ in their history of freshwater
 colonization, we estimate fitness variation of parental lineages and
 hybrids in semi-natural freshwater ponds with contrasting histories of
 nutrient loading. In our experiment, we found that fish from the older
 freshwater lineage (Lake Geneva) and hybrids outperformed fish from the
 younger freshwater lineage (Lake Constance) in terms of both growth and
 survival, regardless of the environmental context of our ponds. Across all
 ponds, hybrids exhibited the highest survival. Although wild- caught adult
 populations differed in their functional and defence morphology, it is
 unclear which of these traits underlie the fitness differences observed
 among juveniles in our experiment. Overall, our work suggests that when
 hybrid fitness is insensitive to environmental conditions, as observed
 here, introgression may promote population-expansion into unoccupied
 habitats and accelerate invasion success.
description: # Data from: Environmentally independent selection for hybrids between
 divergent freshwater stickleback lineages in semi-natural ponds --- These
 data were generated from an experiment conducted in 2019 involving natural
 and lab-raised populations of threespine stickleback in Switzerland. It
 comprises environmental data (e.g. water chemistry and invertebrate
 community composition) of the experimental ponds used in the experiment,
 as well as morphological and genotypic (microsats) data from adult and
 juvenile stickleback used in the experiment. ## Description of the data
 and file structure The following files are included, with annotations of
 column variable names below each: 1. Benthos_Data.csv - Count data for
 benthic invertebrate species collected yearly in our experimental ponds *
 Pond: Experimental pond from which a benthos sample was collected *
 Treatment: Whether the pond belongs to the eutrophic (nutrients added) or
 oligotrophic (no nutrients added) treatment * Columns C to M are count
 data for various aquatic invertebrate taxa * Total: Sums of columns C to M
 * Month: Month when the sample was collected * Year: Year that the sample
 was collected 2.Combined_Experiments.csv - Data on survival and growth of
 experimental stickleback from this study combined with that of a
 previously published experiment (Best RJ, Anaya-Rojas JM, Leal MC, Schmid
 DW, Seehausen O, Matthews B. Transgenerational selection driven by
 divergent ecological impacts of hybridizing lineages. Nat Ecol Evol.
 2017;1: 17571765.) * Fish ID: Unique identifier number for each individual
 fish * Treatment: Whether the pond which the fish was collected in belongs
 to the eutrophic (nutrients added) or oligotrophic (no nutrients added)
 treatment * Lineage: Three conditions, Constance, Geneva, or Hybrid *
 Mass(mg): Fish weight in milligrams * Mass(g): Fish weight in grams *
 SL(mm): Fish standard length in millimeters * SL(cm): Fish standard length
 in centimeters * Fulton: Body condition factor (Fulton's K)
 calculated using fish length and mass 1. Condition_Survival.csv - Data on
 means for body condition and proportion of fish surviving in our
 experimental treatments * Pond: Experimental pond from which a fish was
 collected * Lineage: Three conditions, Constance, Geneva, or Hybrid *
 Fulton.Mean: Mean body condition for fish of a given lineage within a pond
 * Fulton.SE: Standard error for the above variable * Survive: Percentage
 of fish belonging to a given lineage surviving until the end of the
 experiment * Survival: The same measure, expressed as a value between 0
 and 1 * Number: Number of fish belonging to each group * Total: The total
 number of fish collected from each pond * Treatment: Whether the pond
 belongs to the eutrophic (nutrients added) or oligotrophic (no nutrients
 added) treatment * Biomass: Total biomass of all fish in a given pond *
 Biomass2: Amount of biomass by lineage * Selection coefficient: A measure
 from 0-1 which compares the strength of selection by lineage 1.
 Juvenile_Data.csv - Data on juvenile morphology, lipid content, and
 lineage from each of our experimental ponds at the end of the experiment.
 Also includes measurements of juvenile standard length prior to their
 introduction to the ponds. * Fishec: Unique identifier number for each
 individual fish * Pond: Experimental pond from which a fish was collected
 * Date: Date of collection * Mass: Fish body mass in grams * SL: Fish
 standard length in millimeters * logMass: Log transformed body mass *
 logSL: Log transformed body length * log_log_cond: Body condtion
 calculated using log transformed mass and length * Plates: Three condtions
 FP (fully plated), PP (partially plated), LP (low plated) * Plates2: PP
 and FP plates = Yes, LP plates = No * Keel: Whether a keel is present at
 the tail of the fish * Treatment: Whether the pond which the fish was
 collected in belongs to the eutrophic (nutrients added) or oligotrophic
 (no nutrients added) treatment * Lab_Exp: Whether the fish was raised in
 the lab, or was part of the pond experiment * Comment: Any important
 comments or notes taken during fish collection * Father: Paternal identity
 from microsatellite genotyping * Mother: Maternal identity from
 microsatellite genotyping * Real Pair?: Whether the parental pair
 suggested by Colony software matches a true pairing (i.e. fish that we
 artificially crossed in the lab) * Status: Whether the juvenile fish has
 two parents from Constance (CC), two parents from Geneva (GG), a Constance
 father and geneva mother (CG) or a Geneva father and a constance mother
 (GC) * Lineage: Three conditions, Constance, Geneva, or Hybrid * Fulton:
 Body condition factor (Fulton's K) calculated using fish length and
 mass * lipid: percent lipid content of fish muscle 1.
 Maternal_Genotypes.csv - Microsatellite genotypes for wild caught female
 sticklebacks used to generate experimental offspring * Fishec: Unique
 identifier number for each individual fish * Columns B to U contain the
 microsatellite genotypes (fragment lengths) for the markers used in this
 study. Each microsatellite has two columns, as stickleback are diploid 1.
 Paternal_Genotypes.csv - Microsatellite genotypes for wild caught male
 sticklebacks used to generate experimental offspring * Same as previous 1.
 Offspring_Genotypes.csv - Microsatellite genotypes for lab raised
 sticklebacks used in this study. We used COLONY software version 2.0.6.7
 (Jones & Wang 2010) to assign juvenile fish to their lineage of origin
 (e.g. Constance, Geneva, or hybrid) * Same as previous 1. Parent_Pairs.csv
 - This is a list of the male and female crosses used in our experiment *
 Cross: Four combinations, representing the origin of the parental cross.
 CxC, GxG, CxG, and GxC. C=Constance, G=Geneva. The first letter is the
 male, the second letter is the female * Father: Unique identifier for each
 fish * Mother: Unique identifier for each fish * Pair: Parental
 combination 1. Parental_Morphology.csv - Data on external morphological
 phenotypes * Fishec: Unique identifier number for each individual fish *
 Sex: Fish sex * Lineage: Three conditions, Constance, Geneva, or Hybrid *
 Mouth: Some fish had broken mouthparts during processing, these were
 exluded from some analyses * plates: Number of bony lateral plates \** All
 body size measurements below are in millimeters * F-L: Morphological
 traits for each fish, variable names describe the trait measured 1.
 Pond_Environmental_Data.csv - Environmental data from our experimental
 ponds prior to fish introduction. This data was largely obtained from:
 Narwani A, Reyes M, Pereira AL, Penson H, Dennis SR, Derrer S, et al.
 Interactive effects of foundation species on ecosystem functioning and
 stability in response to disturbance. Proc Biol Sci. 2019;286: 20191857.
 Some additional measurements of water chemistry and plankton community
 were also added. * Pond: Experimental pond from which a sample was
 collected * Date: Sampling date * Day: Number of days after beginning of
 experiment * Week: Number of weeks after beginning of experiment * Year:
 The year in which sampling took place * Block: Ponds were organized into
 blocks, randomly distributed throughout the facility * Rep: Replicate *
 Dreisse: Whether the pond contained zebra mussels * Macrophytes: Whether
 the pond contained aquatic plants * Nutrients: 1 or 0 (nutrients added or
 not) * TreatNR: Treatment number * Columns M to CV: Physical and chemical
 measurements of pond water quality * Columns CW to IM: Plankton and
 bactieral community data * Columns IN to KC: Abundance of aquatic
 invertebrate taxa * Comments: Any notes taken during sampling 1.
 Pond_Treatment.csv - Short file of pond treatments to be combined with
 Prey_Presence.csv for use with the R pacakge "vegan" *
 Treatment: Whether the pond belongs to the eutrophic (nutrients added) or
 oligotrophic (no nutrients added) treatment 1. Prey_Presence.csv - A
 matrix of prey presence and absesnce used for mulitvariate analysis of
 differences in prey community between ponds. * .: Pond Identity * Columns
 B to J: Presence (1) or absence (0) of aquatic invertebrate taxa *
 Treatment: Whether the pond belongs to the eutrophic (nutrients added) or
 oligotrophic (no nutrients added) treatment 1. Pond_parent_photographs.zip
 - A folder containing dorsal and lateral photographs (mouth open and
 closed) of the parental fish used in this study. Photographs are presented
 in raw format, and in processed formats (with landmarks added). ##
 Sharing/Access information Data was derived from the following sources:
 All data for this experiment were generated by the authors. ##
 Code/Software Below are the annotated R scripts used in the analysis of
 this data. library(lme4) library(lmerTest) library(ggplot2);
 theme_set(theme_bw()) library(reshape2) library(emmeans) library(plyr)
 library(dplyr) library(ggpubr) library(car) library(vegan)
 library(tidyverse) library(ggdist) library(gghalves) \####### POND
 ENVIRONMENTAL CONDITIONS environment &lt;-
 read.csv("Pond_Environmental_Data.csv", header=T)
 environment$Pond&lt;-factor(environment$Pond,
 levels=c("1B","1C","2B","3A","1D","3B","3C","5D")) #Re-ordered ponds by treatment environment_mean &lt;- aggregate(environment[, 15:289], by = list(environment$Pond, environment$Treatment), FUN = mean, na.rm = TRUE) environment_mean &lt;- environment_mean %&gt;% dplyr::rename(Pond = Group.1, Treatment = Group.2) ###### BENTHOS DATA benthos &lt;- read.csv("Benthos_Data.csv", header=T) benthos$Pond&lt;-factor(benthos$Pond, levels=c("1B","1C","2B","3A","1D","3B","3C","5D")) #Re-ordered ponds by treatment benthos_mean &lt;- aggregate(benthos[, 14], by = list(benthos$Pond, benthos$Treatment), FUN = mean, na.rm = TRUE) benthos_mean &lt;- benthos_mean %&gt;% dplyr::rename(Pond = Group.1, Treatment = Group.2, Total = x) ###### POND ENVIRONENT STATISTICS TP.lmer &lt;- lmer(TP ~ Treatment + (1|Day), data = environment) summary(TP.lmer) confint(TP.lmer) DOC_AUA.lmer &lt;- lmer(DOC_AUA ~ Treatment + (1|Day), data = environment) summary(DOC_AUA.lmer) confint(DOC_AUA.lmer) CHL.lmer &lt;- lmer(CHL ~ Treatment + (1|Day), data = environment) summary(CHL.lmer) confint(CHL.lmer) plankton.lmer &lt;- lmer(Total_Macrozoop ~ Treatment + (1|Day), data = environment) summary(plankton.lmer) confint(plankton.lmer) benthos.lm &lt;- lm(Total ~ Treatment, data = benthos) summary(benthos.lm) confint(benthos.lm) tab_model(TP.lmer, DOC_AUA.lmer, CHL.lmer, plankton.lmer, benthos.lm, show.df=TRUE) # Presence/Absence data prey &lt;- read.csv("Prey_Presence.csv", header=T, stringsAsFactors=T) treatment &lt;- read.csv("Pond_Treatment.csv", header=T, stringsAsFactors=T) Treat &lt;- levels(prey$Treatment) prey2 &lt;- prey[,-1] rownames(prey2) &lt;- prey[,1] prey3 &lt;- prey2[,-10] my.rda &lt;- rda(prey2[,-10]) my.rda biplot(my.rda, display = c("sites", "species"), type = c("text", "points")) ## Distance-based Redundancy Analysis prey.cap &lt;- capscale(prey3 ~Treatment, treatment, dist="bray") prey.cap plot(prey.cap) anova(prey.cap) PCA_Ponds &lt;-vegan::scores(my.rda, display= "sites", scaling="sites", choices = c(1:2)) # Extract PC_scores of individuals PCA_Prey &lt;-vegan::scores(my.rda, display= "species", scaling="species", choices = 1:2) # Extract PC_scores of prey items prey2$PC1 &lt;- PCA_Ponds[, c("PC1")] prey2$PC2 &lt;- PCA_Ponds[, c("PC2")] # Plot reduced RDA results: par(mfrow=c(1,1)) plot(PC2~~PC1, bty="l", data = prey2, pch=16, col = rgb(0,0,0,0.15), yaxt="none", ylim = c(-0.8, 0.8), xlim = c(-0.8, 0.8), xlab = ("PC1")) axis(2, las = 2) points(PC2~~PC1, data=subset(prey2, Treatment == "Eutrophic"),col="black" ,pch=16, cex = c(2.2,2.2,2.2,2.2)) points(PC2~~PC1, data=subset(prey2, Treatment == "Oligotrophic"),col="black" ,pch=16, cex = c(2.2,2.2,2.2,2.2)) points(PC2~~PC1, data=subset(prey2, Treatment == "Eutrophic"),col="green4" ,pch=16, cex = c(2,2,2,2)) points(PC2~~PC1, data=subset(prey2, Treatment == "Oligotrophic"),col="mediumblue" ,pch=16, cex = c(2,2,2,2)) points(PC2~~PC1, data=PCA_Prey, pch=16, cex= c(1,1,1,1,1,1,1)) segments(-2,0, 0.8,0,lty=3);segments(0,-1.5,0,1.5, lty=3) text1 &lt;- prey2[,"PC1"] text(PC2 + 0.1~ text1, cex=1 , data=prey2, c("1B", "1C", "2B", "3A", "1D", "3B", "3C", "")) text(PC2 + 0.2 ~ text1, cex=1 , data=prey2, c("", "", "", "", "", "", "", "5D")) text2 &lt;- PCA_Prey[,"PC1"] text(PC2 - 0.05 ~ text2, cex=0.75 , data=PCA_Prey, c("", "", "", "Tricoptera", "Asellus", "Mesocyclops", "Cyclopoida", "Odonata", "Arachnida")) text(x = -0.13, y = -0.08, cex=0.75, label = "Ephemeroptera") text(x = 0.12, y = 0.07, cex=0.75, label = "Chironomidae") text(x = 0.11, y = -0.05, cex=0.75, label = "Chaoboridae") segments(0,0, PCA_Prey[,"PC1"] , PCA_Prey[,"PC2"],lwd = c(1,1,1,1,1,1,1),col=c("red","red","red","red","red","red") ) \#Add legend legend("topleft", col = c("green4","mediumblue"), lwd = 2.2, lty = 1, legend = Treat) Pres_Abs_PCA &lt;- recordPlot() Pres_Abs_PCA ### SET CONTRASTS FOR CAR PACKAGE options(contrasts = c("contr.sum","contr.poly")) ###### POND PARENTS - Exploring morphological differences between sexes and lineages parents &lt;- read.csv("Parental_Morphology.csv", header=T) names(parents) parents_relative &lt;- parents[,7:38]/parents[,6] parents_relative &lt;- cbind(parents_relative, parents[,1:6, drop=FALSE]) parents_relative_head &lt;- parents[,7:38]/parents[,19] parents_relative_head &lt;- cbind(parents_relative_head, parents[,1:6, drop=FALSE]) # Exclude 12 fish with broken mouths from mouthpart and functional trait analyses mouthparts &lt;- parents[which(parents$Mouth!=c("Broken")),] mouthparts$Mouth &lt;- NULL mouthparts_relative &lt;- parents_relative_head[which(parents_relative$Mouth!=c("Broken")),] mouthparts_relative$Mouth &lt;- NULL \#Functional Traits (Suction Index and Displacement Advantage) mouthparts$CSA &lt;- pi*(mouthparts$epaxial_height_open*(mouthparts$body_width/2))/2 mouthparts$suction_index &lt;- ((mouthparts$CSA*(mouthparts$epaxial_height_open/mouthparts$head_length_lateral))/(mouthparts$gape_width*mouthparts$buccal_cavity)) mouthparts$displacement_advantage &lt;- (mouthparts$lower_jaw_outlever/mouthparts$lower_jaw_inlever) # four-bar linkage Oin_start &lt;- acos((mouthparts$fixed_link^2+mouthparts$input_link^2-mouthparts$diagonal_link^2)/(2*mouthparts$fixed_link*mouthparts$input_link)) O1_start &lt;- acos((mouthparts$fixed_link^2 + mouthparts$diagonal_link^2 - mouthparts$input_link^2)/(2*mouthparts$fixed_link*mouthparts$diagonal_link)) O2_start &lt;- acos((mouthparts$output_link^2 + mouthparts$diagonal_link^2 - mouthparts$coupler_link^2)/(2*mouthparts$output_link*mouthparts$diagonal_link)) out_start &lt;- O1_start+O2_start Oin_end &lt;- Oin_start + ((2*pi*5)/360) Dend &lt;- sqrt(mouthparts$input_link^2+mouthparts$fixed_link^2-2*mouthparts$input_link*mouthparts$fixed_link*cos(Oin_end)) O1_end &lt;- acos((mouthparts$fixed_link^2 + Dend^2 - mouthparts$input_link^2)/(2*mouthparts$fixed_link*Dend)) O2_end &lt;- acos((mouthparts$output_link^2 + Dend^2 - mouthparts$coupler_link^2)/(2*mouthparts$output_link*Dend)) out_end &lt;- O1_end+O2_end mouthparts$KT &lt;- abs(out_start-out_end)/(((2*pi*5)/360)) ## Log transform logtransform &lt;- function (x) { return (log(x)) } names(mouthparts) mouthparts_log &lt;- mouthparts %&gt;% dplyr::select(Fishec:KT)%&gt;% dplyr::mutate_at(vars(standard_length, body_width, mouth_protrusion_dorsal, head_length_dorsal, head_spine, spine1_spine2, spine2_spine3, spine3_tail, tail_fin, gape_width, upper_jaw_protrusion, lower_jaw_outlever, lower_jaw_inlever, head_length_lateral, premaxilla_buccal, buccal_cavity, epaxial_height_open, first_spine, second_spine, inter_spine, spine_width, body_depth, pelvic_process_height, pelvic_process_width, pelvic_spine_height, pelvic_spine, epaxial_height_closed, output_link, fixed_link, coupler_link, input_link, eye_width, CSA, suction_index, displacement_advantage, KT), logtransform) parents_log &lt;- parents %&gt;% dplyr::select(Fishec:eye_width)%&gt;% dplyr::mutate_at(vars(standard_length, body_width, mouth_protrusion_dorsal, head_length_dorsal, head_spine, spine1_spine2, spine2_spine3, spine3_tail, tail_fin, gape_width, upper_jaw_protrusion, lower_jaw_outlever, lower_jaw_inlever, head_length_lateral, premaxilla_buccal, buccal_cavity, epaxial_height_open, first_spine, second_spine, inter_spine, spine_width, body_depth, pelvic_process_height, pelvic_process_width, pelvic_spine_height, pelvic_spine, epaxial_height_closed, output_link, fixed_link, coupler_link, input_link, eye_width), logtransform) # Mouth part Traits Anova(lm(mouth_protrusion_dorsal~~head_length_lateral * Lineage * Sex, data=mouthparts_log), type=3) Anova(lm(upper_jaw_protrusion~~head_length_lateral * Lineage * Sex, data=mouthparts_log), type=3) Anova(lm(lower_jaw_outlever~~head_length_lateral * Lineage * Sex, data=mouthparts_log), type=3) Anova(lm(gape_width~~head_length_lateral * Lineage * Sex, data=mouthparts_log), type=3) # Functional Traits Anova(lm(suction_index~ Lineage * Sex, data=mouthparts_log), type=3) Anova(lm(displacement_advantage~~Lineage * Sex, data=mouthparts_log), type=3) Anova(lm(KT~~Lineage * Sex, data=mouthparts_log), type=3) # Other morphological traits Anova(lm(standard_length~~Lineage * Sex, data=parents_log), type=3) Anova(lm(plates~~Lineage * Sex, data=parents_log), type=3) Anova(lm(body_width~~standard_length * Lineage * Sex, data=parents_log), type=3) Anova(lm(head_length_lateral~~standard_length * Lineage * Sex, data=parents_log), type=3) Anova(lm(epaxial_height_open~~standard_length * Lineage * Sex, data=parents_log), type=3) Anova(lm(first_spine~~standard_length * Lineage * Sex, data=parents_log), type=3) Anova(lm(second_spine~~standard_length * Lineage * Sex, data=parents_log), type=3) Anova(lm(eye_width~~standard_length * Lineage * Sex, data=parents_log), type=3) Anova(lm(body_depth~~standard_length * Lineage * Sex, data=parents_log), type=3) Anova(lm(pelvic_spine~~standard_length * Lineage * Sex, data=parents_log), type=3) Anova(lm(pelvic_process_width~~standard_length * Lineage * Sex, data=parents_log), type=3) Anova(lm(pelvic_process_height~~standard_length * Lineage * Sex, data=parents_log), type=3) \####### JUVENILES juv &lt;- read.csv("Juvenile_Data.csv", header=T) #### Removed unidentified dead fish (was rotting) #### Also Removed individuals where Lineage is ? juv&lt;-juv[which(juv$Fishec!=c(187625)),] juv&lt;-juv[which(juv$Lineage!=c("?")),] juv2&lt;-juv[,c("Fishec","Pond","Mass","SL", "logMass", "logSL", "log_log_cond", "Plates","Plates2","Keel","Treatment", "Lab_Exp", "Status", "Lineage", "Fulton", "lipid")] juv2$Lineage&lt;-factor(juv2$Lineage, levels=c("Constance","Hybrid","Geneva")) #Re-ordered lineages juv2$Lab_Exp&lt;-factor(juv2$Lab_Exp, levels=c("Before","Exp")) exp&lt;-juv2[juv2$Lab_Exp=="Exp",] exp$Pond&lt;-factor(exp$Pond, levels=c("1C","2B","3A","1D","3C","5D")) #Re-ordered ponds by treatment exp$Lineage&lt;-factor(exp$Lineage, levels=c("Constance","Hybrid","Geneva")) #Re-ordered lineages lab&lt;-juv2[juv2$Lab_Exp=="Lab",] lab$Lineage&lt;-factor(lab$Lineage, levels=c("Constance","Hybrid","Geneva")) exp_mean &lt;- aggregate(exp[, 3:16], by = list(exp$Pond, exp$Treatment, exp$Lineage), FUN = mean, na.rm = TRUE) exp_mean &lt;- exp_mean[c(1:18),c(1:8,16:17)] exp_mean &lt;- exp_mean %&gt;% dplyr::rename(Pond = Group.1, Treatment = Group.2, Lineage = Group.3) exp_mean2 &lt;- exp_mean %&gt;% pivot_longer(cols = c(Mass, SL, Fulton, lipid), names_to = "Trait", values_to = "Value" ) %&gt;% group_by(Trait, Treatment, Lineage) %&gt;% dplyr::summarize(mean(Value)) lipid.lmer &lt;- lmer(lipid ~ Treatment * Lineage + (1|Pond), data = exp) summary(lipid.lmer) confint(lipid.lmer) emmeans(lipid.lmer, list(pairwise ~ Lineage), adjust = "tukey") fulton.lmer &lt;- lmer(Fulton ~ Treatment * Lineage + (1|Pond), data = exp) summary(fulton.lmer) confint(fulton.lmer) emmeans(fulton.lmer, list(pairwise ~ Lineage), adjust = "tukey") length.lmer &lt;- lmer(SL ~ Treatment * Lineage + (1|Pond), data = exp) summary(length.lmer) confint(length.lmer) emmeans(length.lmer, list(pairwise ~ Lineage), adjust = "tukey") mass.lmer &lt;- lmer(Mass ~ Treatment * Lineage + (1|Pond), data = exp) summary(mass.lmer) confint(mass.lmer) emmeans(mass.lmer, list(pairwise ~ Lineage), adjust = "tukey") condi &lt;- read.csv("condition_survival.csv", header=T) condi$Treatment&lt;-factor(condi$Treatment, levels=c("Eutrophic","Oligotrophic", "Mesocosm")) condi$Lineage&lt;-factor(condi$Lineage, levels=c("Constance","Hybrid","Geneva")) #Re-ordered lineages condi2 &lt;- condi[c(1:18),] survival.glmer &lt;- glmer(Survival ~ Treatment * Lineage + (1|Pond), data = condi2) summary(survival.glmer) emmeans(survival.glmer, list(pairwise ~ Lineage), adjust = "tukey") tab_model(survival.glmer, show.df=TRUE) tab_model (survival.glmer, fulton.lmer, lipid.lmer, length.lmer, mass.lmer, show.df = TRUE)