← Back to all sparks
R

ribd

ANALYTICS
Velocity2.5

Pedigree-based Relatedness Coefficients

The pedsuite's coefficient engine: broadening what it computes, then making the plots publishable.

statistical-geneticspedigree-analysisrelatedness-coefficientsr-packagesdata-visualization
Current state
ribd computes relatedness coefficients from pedigrees, covering kinship, inbreeding, kappa, condensed and detailed identity coefficients, and two-locus versions of several of these, in autosomal and X-chromosomal form. The IBD triangle is now drawable in base graphics, ggplot2 or plotly, with an optional inset pedigree, and custom relationships can be placed on it. The most recent release is dominated by correctness work, fixing pair ordering and row alignment in coefficient tables and edge cases for pedigree lists, unrelated individuals and self-pairs.
Where it's heading
The arc runs from generality to presentation to precision. Early releases replaced narrow functions with general ones, most visibly when gKinship() absorbed generalisedKinship() and identityCoefs() superseded the separate autosomal and X-chromosomal identity functions in favour of an Xchrom argument. The middle stretch turned the IBD triangle into a proper plotting surface across three graphics systems. The current phase reads as consolidation, with the newest release listing six bug fixes against four features, several of them alignment errors in output tables, which is where a coefficient library most needs to be exactly right.
Prediction
The two new internal functions in the latest release, inbreedingContributions() and ancestralKinship(), are the kind of thing that surfaces publicly a release or two later, so expect them to become exported decomposition tools. The correctness push through pedigree lists and edge cases suggests the near-term focus stays on hardening rather than new coefficient families.

Recent moves

  1. 12d ago

    Custom relationships on the IBD triangle; six alignment and edge-case fixes

    Feature work is modest, with custom relationships in ibdTriangle() and two new internal decomposition functions, but the fix list is the substance: pair ordering in identityCoefs(), row alignment in coeffTable() both alone and when combining coefficient types, and edge cases in kappaIBD(), twoLocusKinship() and twoLocusIdentity(). Misaligned rows in a coefficient table are the kind of defect that produces confidently wrong answers, so this is consolidation work on the package's core output.

    View source ↗
  2. 1y ago

    kappaIBD() can skip across-component pairs on large pedigrees

    The acrossComps argument restricts computation to individuals in the same connected component, which the notes point at large pedigrees specifically, so this is a scale accommodation rather than a new coefficient. The plotly triangle keeps getting tweaked, continuing the presentation thread opened in 1.7.0.

    View source ↗
  3. 2y ago

    IBD triangle plots gain ggplot2 and plotly backends, plus inset pedigrees

    A plotType argument opens the package's signature plot to ggplot2 and plotly alongside base graphics, and showInTriangle() can inset the pedigree being described. New rendering backends for an existing plot rather than a new analysis, but for a package whose output is largely read visually it decides whether results land in a paper or a dashboard.

    View source ↗
  4. 3y ago

    Triangle line clipping, automatic plot margins, citation info

    Small plotting refinements and two fixes, one of them kappaIBD() misbehaving on ped lists with a two-element ids vector. The kind of release that tidies edges rather than moving anything.

    View source ↗
  5. 3y ago

    Two-locus functions overhauled; twoLocusInbreeding and ELR added

    The two-locus family is cleaned up and extended with twoLocusInbreeding(), realisedIbdVariance() and ELR(), the last implementing a published method from Egeland and Slooten. Column renames in coeffTable() make this breaking, and the same table's alignment is still being fixed four releases later.

    View source ↗
  6. 4y ago

    Identity coefficients unified behind identityCoefs() and an Xchrom argument

    The consolidation release: separate X-chromosomal functions are replaced by an Xchrom argument, generalisedKinship() gives way to the more general gKinship(), and identityCoefs() supersedes the condensed-identity pair while covering both autosomal and X cases. idcoefs() is removed outright because the package it depended on is no longer available, which is the less comfortable half of the same tidy-up.

    View source ↗