Learn / Inside the pipeline / 11 · roll-up

Potential supporters: where to look next

A species interval backed by two of nine accessions raises the obvious question: are the other seven contradicting it, or just under-tested? The workflow answers with three ways an accession could plausibly join the supporting set:

Simple margin — its own longest ≥threshold year is within 5 years below the species interval. It's close; one more monitoring round might confirm it. Model point — a per-storage curve fit predicts its germination at the species interval would still meet its threshold. Model CI — even the lower confidence bound of that prediction clears it (the strongest of the three).

Report the union plus the disjoint breakdown (simple-only, model-only, CI-only, overlap), and — the part most pipelines skip — an audit file listing exactly which accession IDs fall in which bucket per species. Counts summarize; IDs let a curator walk to the freezer. Sanity-check the arithmetic: supporting + potential can never exceed total accessions.

Build it yourself
margin_years <- 5

potential <- acc_max %>%
  inner_join(species %>% select(Family, TaxonName, recollection_interval_years),
             by = c("Family", "TaxonName")) %>%
  left_join(glm_pred_at_interval,          # per-accession prediction at RCI
            by = c("Family", "TaxonName", "AcquisitionNum")) %>%
  mutate(
    supporting = acc_interval >= recollection_interval_years,
    pot_simple = !supporting &
                 acc_interval + margin_years >= recollection_interval_years,
    pot_model  = !supporting & pred_at_rci   >= threshold,
    pot_ci     = !supporting & pred_lo_at_rci >= threshold) %>%
  group_by(Family, TaxonName) %>%
  summarise(
    potential_union = n_distinct(AcquisitionNum[pot_simple | pot_model | pot_ci]),
    ids_union = paste(sort(AcquisitionNum[pot_simple | pot_model | pot_ci]),
                      collapse = "; "),           # the audit trail
    .groups = "drop")

stopifnot(all(species$supporting_accessions + potential$potential_union
              <= species$total_accessions))
The math behind this step: Accessions to species: the maximum, qualified
R5 vs R18: detecting seeds that freezing hurtsCensoring-honest notation and the publication sheet