Readme

This is an R Notebook. If you’d like to pre-rendered figures, read a summary of analysis and view code, please open the html file in a browser. If you’d like to run the code yourself download and open the rmd file in rstudio or any other integrated development environment that supports r and markdown.

require(tidyverse)
require(lubridate)
require(magrittr)
require(knitr)
require(kableExtra)
require(khroma)

SKIP DOWN TO THE SYNTHESIS SECTION IF YOU’RE JUST LOOKING FOR RESULTS Synthesis

Rationale

Yakama Nation, Bureau of Reclamation, WDFW, USFWS, and Mid-Columbia Fisheries work collaboratively to rescue young of year (YoY) bull trout isolated between dewatered stream reaches or side-channels in Gold Creek and Kachess River. Some of these YoY fish are captive reared in a hatchery-like setting and released back into their natal stream the next year. Due to the success of captive rearing, captive-reared fish enjoy greater survival than their counterparts in the stream, leading to a potential Ryman-Laikre effect (decrease in inbreeding effective population size due to increased variance in family size in the combined captive-wild system) (Ryman and Laikre, 1991; Ryman et al, 1995). In other words, outplanting captive-reared fish may provide a demographic benefit, but may also impose a genetic cost if outplants have less genetic diversity than fish spawning in the wild.

In this brief analysis, we integrate results from a life-cycle model, estimates of effective population size from genetic data, and estimates of adult spawner abundance from redd surveys to determine the genetic characteristics and outplanting rates necessary to reduce genetic risks of supplementation, while maximizing the demographic benefits. We also put the demographic benefits of the supplementation into context.

Because of many demographic and genetic characteristics of the populations are unknown, this analysis does not provide a high-confidence estimate of Ryman-Laikre effect severity or demographic boost under a given scenario. Instead, this analysis considers genetic and short term demographic outcomes under a range of reasonable scenarios, effectively conducting a sensitivity analysis. Therefore these results should be used to identify areas of critical uncertainty that can be addressed to guide ongoing and proposed supplementation efforts in an adaptive management framework.

Methods Summary

Effective Population Size Using the equation developed by Ryman and Laikre (1991), we calculate the effective number of breeders for the combined captive-wild system ( \(N_{e(T)}\) ) as

\[ \frac{1}{N_{e(T)}} = \frac{x^2}{N_{e(C)}}+\frac{(1 -x)^2}{N_{e(W)}} \tag{1} \]

Where \(N_{e(C)}\) is the effective number of breeders of the captive portion, \(N_{e(W)}\) is the effective number of breeders for the wild portion and \(x\) is the contribution of captive reared portion to the adult spawning population. To examine the extent of Ryman–Laikre effect under a range of reasonable scenarios across the populations undergoing supplementation (Gold Creek, Kachess River) or proposed for future supplementation (SF Tieton River, Ahtanum River), we require estimates for each of these values.

For \(N_{e(W)}\), we use existing estimates drawn from Small et al (2009). These values use the LD method to estimate effective number of breeders (Nb). Note: Ideally we will run this again from the raw data to allow for adjustments based of life-history characteristics, and to incorporate confidence intervals into our analysis (neither provided back in 2009). Update: Got the data Feb 6, will run this soon.

For \(N_{e(C)}\), we will examine a range of reasonable scenarios. In a worst-case scenario all individuals are derived from a single redd and represent full or half-sib families. In a best case scenario, YoY are thoroughly mixed before rescue and \(N_{e(C)}\) represents a rarefaction of total genetic variation in the population, and may approach \(N_{e(W)}\) with sufficient numbers of rescued fish (although see 2 below). Unless every YoY fish is captive reared \(N_{e(C)}\) will always be less than \(N_{e(W)}\). In well designed integrated hatchery stock supplementation programs \(N_{e(C)}\) often approaches 1/2 \(N_{e(W)}\). So we will vary \(N_{e(C)}\) from a low value to an optimistic value \(N_{e(W)}\)/2. Note: This is the biggest open question in the analysis, and the results will be very sensitive to the true value. We can estimate effective number of breeders for the captive portion using genotypic data at relatively low costs. Samples are in hand, we just need to genotype them.

For \(x\) (the contribution of captive reared portion to the adult spawning population) we require the number of adult spawners from the captive portion (\(N_{(C)}\)) and the number of adult spawners for the wild portion \(N_{(W)}\). \(x\) = \(N_{(C)}\) / (\(N_{(C)}\)+\(N_{(W)}\))

\(N_{(C)}\): Past releases of two year fish range from a low of <34 (Gold Creek 2024) to a high of 531 (Kachess 2021). To estimate how many outplanted fish are expected to survive to adulthood and contribute to spawning, we use annualized survivals from Al-Chokhachy et al (2015), and assume age at maturity is 5 years.

year <- c(0,1,2,3,4,5,6)
survival <- c(0.08,0.21,0.15,0.45,0.5, 0.6, 0.6)
kable(data.frame(year, survival), , align = "c") %>%
    kableExtra::kable_classic_2(html_font = "arial")
year survival
0 0.08
1 0.21
2 0.15
3 0.45
4 0.50
5 0.60
6 0.60

Although the reared Bull Trout are released at age 1 the size at release more closely resembles age 2 adfluvial bull trout. Therefore, survival is expected to follow that of an age 2 fish. This equates to adult spawners from the captive portion = 0.03375 * N outplants. We consider the impacts from 20 to 2560 outplanted fish (or from 0.67 to 86.4 adult spawners from the captive portion).

\(N_{(W)}\): Our estimate of wild adult spawner abundance comes from redd counts (Divens 2024). Howell and Sankovich (2012) suggest that the adult spawning population size is about 2x the redd count. Al-Chokhachy (2005) uses 2.68. Our redd counts stem from index reaches that are known to exclude some spawning each year (Divens 2024; Reiss 2012). We will use an expansion of 2.5 x mean redd counts from the past 15 years.

Ryman Laikre Effect Severity To illustrate the severity of the Ryman-Laikre effect we will compare the estimate of the combined captive wild system (\(N_{e(T)}\)) to \(N_{e(W)}\). The \(\frac{N_{e(T)}}{N_{e(W)}}\) ratio therefore is the impact to inbreeding effective population size from a single year of captive rearing and outplanting.

Demographic Boost Let’s not only focus on the risks, let’s also put the demographic benefits in context. We will (liberally) assume that all rescued fish would not have survived if left in the river. Then we calculate demographic boost as the ratio of adult spawner abundance with captive reared individuals to adult spawner abundance without.

Sources of uncertainty, error, and bias in estimates above:

  1. \(N_{e(C)}\): We use a range, but with a genetic data we can actually estimate this.

  2. \(N_{e(W)}\): True Nw might be higher than previous estimates due to issues with older methods, but may also be lower if bottlenecks or other impacts have further reduced \(N_{e(W)}\).

  3. \(x\) (issue a): How many adult spawners are produced by the captive program? The number may be higher or lower than predicted by the Al-Chokhachy 2015 annualized survival. We will be able to corroborate model results soon (next year?) using PIT tag data. This will remove uncertainty.

  4. \(x\) (issue b): We likely underestimate the adult abundance relative to true value because redd surveys are based on index reaches. It’s a redd survey not redd census, after all. There may be unaccounted for spawners and these may represent a significant portion of the adult spawner population. Underestimating adult spawners will tend to inflate both the estimate of demographic benefit and genetic risk over the true value. There is little spawning outside of the index reaches for these populations (Reiss 2012), but we should still try incorporate local knowledge to develop a proper expansion for each population.

  5. \(N_{e}\) vs \(N_{b}\): We use effective population size and effective number of breeders interchangeably. The effective number of breeders is a close approximation of the effective population size for bull trout, given their life span and age at maturity (Waples et al., 2014, p. 775).

  6. RRS: We assume that reproductive success for captive reared fish is similar to wild fish (RRS = 1) once they reach adulthood. RRS greater than one will lead to this analysis UNDERESTIMATING both the demographic benefit and genetic risks of supplementation, while RRS less than one will have the opposite bias. While there’s lots of uncertainty around survival to adulthood, I don’t think there’s any reason to suspect RRS will be much different than one for individuals that do.

Data Import

Here we collect data necessary for analysis, including redd counts from Divens (2024), and Nb estimates from Small (2009).

Note that for Ahtanum we roll all the forks up to one population. This assumes migration within Ahtanum is high, and is consistent with the analysis of Small et al (2009) that did not identify any evidence for structure at this spatial scale.

redd_c <- read_csv("data/redd_counts.csv")
redd_c %<>%
  filter(stream %in% c("S.F. Tieton R. *",   "N.F. Ahtanum Cr. ", "M.F. Ahtanum Cr. *", "S.F.  Ahtanum Cr. *", "Kachess R (upper) *", "Gold Cr.")) %>%
  pivot_longer(-stream, values_to = "redds", names_to = "year") %>%
  mutate(year = as.numeric(year)) %>%
  filter(year > 2008) %>%
  # clean up messy names
  mutate(stream = case_when(stream == "S.F. Tieton R. *" ~ "SF_Tieton",
                            str_detect(stream, "Ahtanum") ~ "Ahtanum",
                            stream == "Kachess R (upper) *" ~ "Kachess",
                            stream == "Gold Cr." ~ "Gold"
                            )) %>%
  # roll up ahtanum into one pop
  group_by(stream, year) %>%
  summarise(redds = mean(redds, na.rm = TRUE))

mean_redds <- redd_c %>% 
  group_by(stream) %>%
  summarise(harm_mean = psych::harmonic.mean(redds,na.rm=TRUE,zero=TRUE), arith_mean = mean(redds, na.rm = TRUE))

# manually copy these values from Small et al 2009 table 1a
mean_redds$Nw <- c(8.5, 19, 6.2, 30.4)

Our focal populations are Kachess, Gold, SF Tieton, and Ahtanum.

Results below:

mean_redds %<>%
  mutate(n_spawn = arith_mean *2.5)
kable(mean_redds %>%
  select("Population" = "stream", "10y Arithmetic Mean Redd Count" = "arith_mean", "10y Harmonic Mean Redd Count" = "harm_mean", "Effective Population Size (Wild)" = "Nw", "Adult Spawner Estimate" = "n_spawn"), align = "c", digits = 1) %>%
  kableExtra::kable_classic_2(html_font = "arial")
Population 10y Arithmetic Mean Redd Count 10y Harmonic Mean Redd Count Effective Population Size (Wild) Adult Spawner Estimate
Ahtanum 5.1 4.1 8.5 12.7
Gold 12.1 6.9 19.0 30.2
Kachess 12.3 0.0 6.2 30.8
SF_Tieton 168.3 154.9 30.4 420.7
#Note that harmonic mean redd count might be more useful than arithmetic mean for this analysis, because impacts will be amplified in small spawner years. we will use the arithmetic mean of redd counts over the past 10 years (times 2.0) to estimate adult spawner abundance, but we should probably think more about harmonic mean being more appropriate.

Ryman-Laikre Effects

Let’s put it all together.

Adult Spawners
For each of the four populations above we will consider 8 values of contributions of the captive portion to adult spawner abundance. Remember these estimates are informed by the empirical outplanting rate (average 75 per year Gold, and 383 per year Kachess), and the modeled survival rate producing a range from 0.67 to 86.4 fish surviving to adulthood, (or from 20 to 2560 outplants with expected survival of 0.03375).

Effective Number of Breeders in the Captive Portion
Here we will range from a poor scenario to a best case (\(N_{e(C)}\) = \(N_{e(W)}\)/2). Note that the values much greater than \(N_{e(W)}\)/2 are unlikely unless we collect nearly all YOY fish from the wild. We will consider 5 values: Nc = Nw/8, Nc = Nw/4, Nc = Nw/2, and Nc = 2.

Figures/Results

# let's do this all in a tibble 
outs <- c(20, 40, 80, 160, 320, 640, 1280, 2560)
outs <- as.data.frame( outs)
ratios <- c(1, 8,4,2)
ratios <- as.data.frame(ratios)
ryman <- mean_redds %>%
  cross_join(outs) %>%
  cross_join(ratios)

# Nc
ryman %<>%
  mutate(Nc = Nw/ratios) %>%
  mutate(Nc = case_when(Nc == Nw ~ 2, #manually set worst case scenario to 2
                        TRUE ~ Nc)) #%>%
 #filter(Nc >= 2)# already defined the worst case, let's not use Nw/8 when Nc = 2 is better

# x
ryman %<>%
  mutate(as = 0.03375 * outs,
         x = as / (n_spawn + as))

# Nt
ryman %<>%
  mutate(inverse_nt = ((x^2)/Nc + ((1-x)^2/Nw) )) %>%
  mutate(Nt = 1/inverse_nt) %>%
  mutate(rl_effect = Nt/Nw)
ryman_plot <- ryman %>%
  mutate(outs = factor(outs), Nc = factor(Nc))
ggplot(filter(ryman_plot, stream == "Gold"))+geom_tile(aes(x = outs, y = Nc, fill = (rl_effect)))+scale_fill_bam(midpoint = 1, name = "Ryman Laikre Effect", breaks = c(0, 0.25, 0.5, 0.75, 1, 1.25, 1.5, 1.75, 2))+theme_classic()+xlab("Number of Outplants\nNumber of Adult Spawners")+ylab("Effective Number of Breeders in Captive Reared")+ggtitle("Gold Creek")+scale_x_discrete(labels = c("20\n0.675", "40\n1.35", "80\n2.7", "160\n5.4", "320\n10.8", "640\n21.6", "1280\n43.2", "2560\n86.4"))

Gold Creek is a great example of the what we’re hoping to demonstrate.

In this figure (and those that follow), cell color corresponds to the impact of the supplementation program on the effective number of breeders of the combined captive-wild system (\(\frac{N_{e(T)}}{N_{e(W)}}\)), with green values representing genetic benefits (increased diversity), and purple values representing genetic risks (increased risk of inbreeding depression). The x axis is the number of fish from the captive rearing program that eventually survive to spawn, and the y axis is the effective number of breeders in the captive proportion across a reasonable range given the population.

Some general takeaways:

  1. Because we assume rescued fish would not have survived, this supplementation program can have both positive and negative genetic impacts, depending on how it is implemented. In general, as the amount of diversity among the captive proportion increases (up on the y-axis) the genetic risk is decreased (less purple), and we may even see genetic benefits (green).
  2. Variation among outcomes is huge, even when we restrict ourselves to reasonable scenarios! For example releasing enough captive-reared fish to produce ~22 adult spawners in Gold Creek (i.e. releasing around 640 juvenile fish into the reservoir) can lead to an annual reduction in effective number of breeders to just 40% of its previous value, when those captive fish are collected from very few families. However we can actually increase effective population size if we collect juveniles from many families and only release 320 individuals (assumed to produce ~11 adult spawners).
  3. The effect of increasing the number of adults that survive to spawn is not consistent, but depends on the genetic characteristics of both the captive portion (y-axis) and the wild (look across pops).
  4. It is likely that the number of captive reared fish that survive to spawn, and the captive Nb will be correlated, because both depend on the number of rescued YoY fish, and there are limits on the number of fry produced by a single female. If we collect many fish, we will increase both! This means that the parameter space in the top left and bottom right of the figures are less likely to be realistic than the bottom left and top right. This also suggests that to maximize benefits of supplementation we may need to consider tailoring collections and releases to match the genetic needs of the recipient population. We could do this by collecting YoY that aren’t stranded (to increase diversity with captive portion), or culling/holding back captive reared fish (to reduce genetic impacts if we didn’t bring enough diversity into captivity).
ggplot(filter(ryman_plot, stream == "Kachess"))+geom_tile(aes(x = outs, y = Nc, fill = (rl_effect)))+scale_fill_bam(midpoint = 1, name = "Ryman Laikre Effect", breaks = c(0, 0.25, 0.5, 0.75, 1, 1.25, 1.5, 1.75, 2))+theme_classic()+xlab("Number of Outplants\nNumber of Adult Spawners")+ylab("Effective Number of Breeders in Captive Reared")+ggtitle("Kachess")+scale_x_discrete(labels = c("20\n0.675", "40\n1.35", "80\n2.7", "160\n5.4", "320\n10.8", "640\n21.6", "1280\n43.2", "2560\n86.4"))

ggplot(filter(ryman_plot, stream == "SF_Tieton"))+geom_tile(aes(x = outs, y = Nc, fill = (rl_effect)))+scale_fill_bam(midpoint = 1,name = "Ryman Laikre Effect", breaks = c(0, 0.25, 0.5, 0.75, 1, 1.25, 1.5, 1.75, 2))+theme_classic()+xlab("Number of Outplants\nNumber of Adult Spawners")+ylab("Effective Number of Breeders in Captive Reared")+ggtitle("SF Tieton")+scale_x_discrete(labels = c("20\n0.675", "40\n1.35", "80\n2.7", "160\n5.4", "320\n10.8", "640\n21.6", "1280\n43.2", "2560\n86.4"))

ggplot(filter(ryman_plot, stream == "Ahtanum"))+geom_tile(aes(x = outs, y = Nc, fill = (rl_effect)))+scale_fill_bam(midpoint = 1, name = "Ryman Laikre Effect", breaks = c(0, 0.25, 0.5, 0.75, 1, 1.25, 1.5, 1.75, 2))+theme_classic()+xlab("Number of Outplants\nNumber of Adult Spawners")+ylab("Effective Number of Breeders in Captive Reared")+ggtitle("Ahtanum")+scale_x_discrete(labels = c("20\n0.675", "40\n1.35", "80\n2.7", "160\n5.4", "320\n10.8", "640\n21.6", "1280\n43.2", "2560\n86.4"))

Demographic Boost

Now let’s examine the demographic impacts (in one year) of outplanting fish.

ryp2 <- ryman %>%
  mutate(as = as.numeric(as.character(as)),
         db = (as+n_spawn)/n_spawn) %>%
  distinct(stream, as, .keep_all = TRUE)
  
ggplot(ryp2)+geom_bar(aes(x = stream, y = (as+n_spawn)/n_spawn, fill = as.numeric(as.character(outs)) ), stat = "identity", position = "dodge2")+scale_fill_viridis_c(name = "Number of Outplants", trans = "log", breaks = c(20, 40,80, 160,320, 640,1280, 2560))+theme_classic()+ylab("Demographic Boost")+geom_hline(aes(yintercept = 1), linetype = 2)

Note that the demographic boost estimate is liberal in that it assumes all rescued fish would have died, the populations are not near carrying capacity and/or captive-reared fish do not compete for resources with their wild-born counterparts, adult abundance is 2.5x the redd counts along index reaches, and survival is similar to wild fish once released. Real demographic benefits are likely lower. This is simply the ratio comparing the number of future spawners from the captive program to the number we expect are out there from redd surveys (probably an underestimate).

This should be pretty obvious, but it’s good to visualize, The demographic benefit of supplementation is greatest in the smallest populations, and increased with more survival to adulthood. However, just like the extreme values in the Ryman Laikre figures, we are not likely to have large numbers of captive fish that survive to spawn in the smallest populations, because small populations limit the number of available fish to rescue. For example, the roughly 3x demographic boost that we get from releasing 1280 Gold Creek fish looks great, but is unlikely to occur. Gold Creek releases have never exceeded 100 fish.

Synthesis

Let’s visualize results together to see what kind of demographic boosts are possible without creating genetic risks.

require(cowplot)
a <- ggplot(filter(ryman_plot, stream == "Ahtanum"))+geom_tile(aes(x = outs, y = Nc, fill = (rl_effect)))+scale_fill_bam(midpoint = 1, name = "Ryman Laikre Effect", breaks = c(0, 0.25, 0.5, 0.75, 1, 1.25, 1.5, 1.75, 2))+theme_classic()+xlab("Number of Outplants\nNumber of Adult Spawners")+ylab("Effective Number of Breeders\nin Captive Reared")+ggtitle("Ahtanum")+
  theme(axis.text.x = element_blank(), axis.title.x = element_blank())

b <- ggplot(filter(ryp2, stream == "Ahtanum"))+geom_tile(aes(x = as.factor(outs), y = 0, fill = (db)))+theme_classic()+xlab("Number of Outplants")+ylab("")+scale_fill_viridis_c(name = "Demo Boost", trans = "log", breaks = c(1.1, 1.5, 2,3, 4, 6, 8))+
  theme(axis.text.y = element_blank(), axis.title.y = element_blank())+scale_x_discrete(labels = c("20\n0.675", "40\n1.35", "80\n2.7", "160\n5.4", "320\n10.8", "640\n21.6", "1280\n43.2", "2560\n86.4"))

plot_grid(a,b, ncol = 1, align = "v", rel_heights = c(5,2) )

a <- ggplot(filter(ryman_plot, stream == "Gold"))+geom_tile(aes(x = outs, y = Nc, fill = (rl_effect)))+scale_fill_bam(midpoint = 1, name = "Ryman Laikre Effect", breaks = c(0, 0.25, 0.5, 0.75, 1, 1.25, 1.5, 1.75, 2))+theme_classic()+xlab("Number of Outplants\nNumber of Adult Spawners")+ylab("Effective Number of Breeders\nin Captive Reared")+ggtitle("Gold")+
  theme(axis.text.x = element_blank(), axis.title.x = element_blank())

b <- ggplot(filter(ryp2, stream == "Gold"))+geom_tile(aes(x = as.factor(outs), y = 0, fill = (db)))+theme_classic()+xlab("Number of Outplants\nNumber of Adult Spawners")+ylab("")+scale_fill_viridis_c(name = "Demo Boost", trans = "log", breaks = c(1.1, 1.5, 2,3, 4, 6, 8))+
  theme(axis.text.y = element_blank(), axis.title.y = element_blank())+scale_x_discrete(labels = c("20\n0.675", "40\n1.35", "80\n2.7", "160\n5.4", "320\n10.8", "640\n21.6", "1280\n43.2", "2560\n86.4"))

plot_grid(a,b, ncol = 1, align = "v", rel_heights = c(5,2) )

a <- ggplot(filter(ryman_plot, stream == "Kachess"))+geom_tile(aes(x = outs, y = Nc, fill = (rl_effect)))+scale_fill_bam(midpoint = 1, name = "Ryman Laikre Effect", breaks = c(0, 0.25, 0.5, 0.75, 1, 1.25, 1.5, 1.75, 2))+theme_classic()+xlab("Number of Outplants")+ylab("Effective Number of Breeders\nin Captive Reared")+ggtitle("Kachess")+
  theme(axis.text.x = element_blank(), axis.title.x = element_blank())

b <- ggplot(filter(ryp2, stream == "Kachess"))+geom_tile(aes(x = as.factor(outs), y = 0, fill = (db)))+theme_classic()+xlab("Number of Outplants\nNumber of Adult Spawners")+ylab("")+scale_fill_viridis_c(name = "Demo Boost", trans = "log", breaks = c(1.1, 1.5, 2,3, 4, 6, 8))+
  theme(axis.text.y = element_blank(), axis.title.y = element_blank())+scale_x_discrete(labels = c("20\n0.675", "40\n1.35", "80\n2.7", "160\n5.4", "320\n10.8", "640\n21.6", "1280\n43.2", "2560\n86.4"))

plot_grid(a,b, ncol = 1, align = "v", rel_heights = c(5,2) )

a <- ggplot(filter(ryman_plot, stream == "SF_Tieton"))+geom_tile(aes(x = outs, y = Nc, fill = (rl_effect)))+scale_fill_bam(midpoint = 1, name = "Ryman Laikre Effect", breaks = c(0, 0.25, 0.5, 0.75, 1, 1.25, 1.5, 1.75, 2))+theme_classic()+xlab("Number of Outplants")+ylab("Effective Number of Breeders\nin Captive Reared")+ggtitle("SF Tieton")+
  theme(axis.text.x = element_blank(), axis.title.x = element_blank())

b <- ggplot(filter(ryp2, stream == "SF_Tieton"))+geom_tile(aes(x = as.factor(outs), y = 0, fill = (db)))+theme_classic()+xlab("Number of Outplants\nNumber of Adult Spawners")+ylab("")+scale_fill_viridis_c(name = "Demo Boost", trans = "log", breaks = c(1.01, 1.1, 1.2,1.5, 1.8))+
  theme(axis.text.y = element_blank(), axis.title.y = element_blank())+scale_x_discrete(labels = c("20\n0.675", "40\n1.35", "80\n2.7", "160\n5.4", "320\n10.8", "640\n21.6", "1280\n43.2", "2560\n86.4"))

plot_grid(a,b, ncol = 1, align = "v", rel_heights = c(5,2) )

Summary

A reasonable range of supplementation scenarios produces a wide range of demographic and genetic outcomes within and among the four populations. Strong reductions of within population diversity and increased inbreeding risk are predicted under some scenarios, however, genetic benefits can be realized under others. Similarly, demographic benefits vary strongly across populations. The wide range of outcomes is due to low effective and census population sizes for three of populations in question; even seemingly small supplementation efforts produce large numbers of potential adult spawners relative to the natural population. Importantly, in each of the three depressed populations, there are scenarios that provide substantial demographic benefit with little to no increase in genetic risks.

This result suggests that addressing uncertainties is a high conservation priority. These are outlined in the future directions section below.

Future Directions

Reduce Critical Uncertainties

Genotype Captive Reared Fish (High Priority)
We can remove a lot of uncertainty if we know the effective number of breeders contributing to the captive portion of the combined population (Ne(c)). In effect we can look at only one row of the Ryman-Laikre effects figures above, and choose the level of genetic risk (or benefit) to take by outplanting an appropriate number of individuals.

(Ne(c)) is very easy to calculate from the existing microsatellite panel used for the RapidResponse genetic stock identification by Abernathy Fish Science Center, or the bull trout GTseq panel. We just need to run out a few fin clips. (cost estimate coming)!

Parameterize Life cycle Model (High Priority)
As the left to right variation in the figures above demonstrate, genetic risks and demographic benefits vary strongly with the number of outplanted fish that ultimately survive to spawn. As we begin to observe these fish on the spawning grounds in the next few years we should have a much better idea of the impacts. We might also seek to groundtruth some of the values by increasing PIT tagging rates.

Adult Abundance (Low Priority)
My approach for estimating adult abundance from index reach spawning ground surveys may underestimates adult abundance. Local knowledge could improve these estimates, however I doubt error here is substantial enough to have a major impact on the results.

Consider More Complex Scenarios

Effective Population Size, Adjusted

Equation 1 from the original Ryman Laikre paper is often applied incorrectly by conservation/hatchery biologists because they fail to account for some additional issues in captive rearing programs, or fail to correctly interpret Ne(w):
(1) Removal of individuals from the wild means they will not contribute to the wild component (right hand term) of the combined captive wild system population size (Ne(t)). In other words removal of potential adult spawners reduces both \(N_{e(W)}\) and the absolute number of adult spawners in the wild.
(2) The Ne/N ratio (effective size to census size ratio), may vary between the captive and wild components. This is likely in our case due to increased survival. This may also be the case in our situation, if siblings cluster together in river, such that rescued fish are not representative of the overall population and leading to reduced Ne/N for the captive relative to the wild individuals.

We can modify equation 1 above to account for both of these effects following Waples et al 2016

\[ \frac{\alpha_W}{N_{e(T)}} = \frac{x^2}{\beta * N_C}+\frac{(1 -x)^2}{N_W - N_C} \tag{2} \]

Where \(\alpha\) is the Ne/N ratio for the wild (w) and captive (c) components, \(\beta\) is the ratio \(\alpha_c / \alpha_w\), \(N_C\) is the adult spawners from the captive portion.

For now, we can ignore this adjustment because we assume all rescued fish would have perished if not rescued, and we account for differences in the Ne/N ratio by explicitly varying both (and hopefully eventually measuring both directly). We can use equation 2 in the future to relax our assumptions and explore other scenarios:
(1) What is the effect of the supplementation if we “rescue” fish that would have survived in an isolated pool until it was reconnected? Similarly, what is the effect of the rescue - supplementation program, relative to a simple rescue program (just move the fish into the river)?
(2) What if we are near carrying capacity and outplanted fish compete with and displace wild fish, thereby reducing \(N_W\) (3) If we never collect the genetic data needed to estimate Ne(c) (effective number of breeders contributing to the captive fish), we can explore the effects of clustering among siblings using movement studies for juveniles (i.e. Bowerman and Budy studies)

Waples et al 2016, go further to provide equations of \(N_{e(T)}\) for many other scenarios that may be relevant.

Ongoing Program

The analysis presented here is restricted to the effects of the release of single cohort of juveniles. However, three cohorts have already been released and the program may continue to be proposed until underlying habitat limitations are addressed. We should also analyze the impact over the proposed lifespan of the program. This is more complex than it may appear, but fortunately there are many papers on this subject ( Waples and Do (1994), Wang and Ryman (2001), and Duchesne and Bernatchez (2002) ) See Fraser 2008 for a good summary.

Reintro

One clear positive result from this analysis is that provides some information to guide how many individuals should be replaced into donor populations during reintroduction, and if we collect genetic data this analysis could also inform how much genetic diversity we get out of the current approach to collecting juveniles.

# nt adjusted, ready to run if needed
# need to undo the factors here first
 ry2 <- ryman %>%
   mutate(Nc = as.numeric(as.character(Nc)),
          as = as.numeric(as.character(as)),
          alpha_w = Nw/n_spawn,
          beta = (Nc/as)/alpha_w,
          inverse_nt_adj = (( (x^2)/(as*beta) + ( ((1-x)^2) / n_spawn ))/ alpha_w),
          nt_adjust = 1/inverse_nt_adj,
          rl_effect_adj = nt_adjust/Nw)

ry3 <- 


ry2_plot <- ry2 %<>%
  mutate(beta_f = as.factor(beta), as_f = as.factor(as))
ggplot(filter(ry2_plot, stream == "Gold"))+geom_tile(aes(x = as, y = beta, fill = (rl_effect_adj)))+scale_fill_bam(midpoint = 1)+theme_classic()+xlab("Captive Reared Fish that Survive to Spawn")+ylab("Beta")+ggtitle("Gold Creek")

ggplot(filter(ry2_plot, stream == "Kachess"))+geom_tile(aes(x = as, y = Nc, fill = (rl_effect_adj)))+scale_fill_bam(midpoint = 1)+theme_classic()+xlab("Captive Reared Fish that Survive to Spawn")+ylab("Effective Number of Breeders in Captive Reared")+ggtitle("Kachess")

ggplot(filter(ry2_plot, stream == "SF_Tieton"))+geom_tile(aes(x = as, y = Nc, fill = (rl_effect_adj)))+scale_fill_bam(midpoint = 1)+theme_classic()+xlab("Captive Reared Fish that Survive to Spawn")+ylab("Effective Number of Breeders in Captive Reared")+ggtitle("SF Tieton")

ggplot(filter(ry2_plot, stream == "Ahtanum"))+geom_tile(aes(x = as, y = Nc, fill = (rl_effect_adj)))+scale_fill_bam(midpoint = 1)+theme_classic()+xlab("Captive Reared Fish that Survive to Spawn")+ylab("Effective Number of Breeders in Captive Reared")+ggtitle("Ahtanum")