Skip to contents

Server logic for pedigree browser module handling focal animal selection (typed, pasted or uploaded, or set by clicking a diagram node), pedigree processing, filtering (focal trim and the Display Unknown IDs filter), the Diagram tab (edge style, names, twin connectors, PNG export), the twin/zygosity sidecar upload, and data export.

Usage

modPedigreeServer(id, studbook)

Arguments

id

character vector of length 1. Module namespace identifier.

studbook

reactive returning the cleaned studbook data from modInput.

Value

A list of reactive values:

  • pedigree - Filtered pedigree for display (respects trim/unknown settings)

  • analysisPedigree - The pedigree the other tabs analyze (focal-animal trim applied, no Display Unknown IDs filter, which affects only the table); appServer uses it, not pedigree, as the shared current pedigree

  • processedPedigree - Full pedigree with population, pedNum, gen columns

  • focalAnimals - Character vector of focal animal IDs

  • nAnimals - Count of animals in filtered pedigree

  • populationCount - Count of animals marked as population

  • isReady - Logical indicating if pedigree data is ready. With no studbook loaded, isReady() and nAnimals() halt with a silent req error instead of returning FALSE and 0

  • twinRelations - The validated twin/zygosity sidecar (NULL if none uploaded or invalid). It is validated against the filtered pedigree (focal trim applied, unknown IDs hidden); one id outside that pedigree fails the validation, an error notification is shown and the whole sidecar becomes NULL. Unlike the Diagram tab's own rendering, this is the raw, ungated reactive – not filtered by the "Show Twin Connectors" toggle – so callers outside this module (e.g. appServer) see the validated data regardless of that toggle's state (BL-N Slice 3).

Details

This module processes the studbook by: