← Back to all sparks
I

ibdsim2

ANALYTICS
Velocity2.5

Simulation of Chromosomal Regions Shared by Family Members

A pedigree IBD simulator that absorbed its own web app and now optimises for dense marker panels.

statistical-geneticspedigree-analysissimulationr-packagesshiny
Current state
ibdsim2 simulates identity-by-descent sharing along chromosomes for arbitrary pedigrees, in both autosomal and X-chromosomal form, with downstream tools for segment statistics, pattern finding and distribution plots. Since 2.1.0 the Shiny front end lives inside the package and launches via launchApp() rather than sitting in a separate repository. The latest release is performance work, with profileSimIBD() substantially sped up for dense marker panels and ibdsim() skipping recombination in pedigree branches that cannot affect the result.
Where it's heading
Two long-running threads. One is the app as a first-class part of the package, which has been getting input validation, dependency checks and plotting fixes release after release, treating a research GUI as software to be maintained rather than a demo. The other is numerical care: the built-in recombination map was rebuilt in 2.3.0 with better chromosome endpoints and a thinning algorithm that cut it from about 38,000 points to 14,000 without losing accuracy, and IBD segment merging has been made consistent across the realised-coefficient functions. The maintainer flags repeatedly that seeded results may differ across versions, which is the right disclosure for a simulator used in published analyses.
Prediction
The recent work points at further speed on dense panels and continued hardening of app input handling, both of which have appeared in each of the last several releases. Nothing here signals a new modelling capability on the way.

Recent moves

  1. 11d ago

    profileSimIBD() sped up for dense marker panels; segment merging fixed

    Performance work aimed squarely at the dense marker panels that forensic and mapping users bring, plus a shortcut that skips recombination in pedigree branches which cannot affect the output. zeroIBD() now merges adjacent segments before applying length thresholds, continuing the same segment-merging consistency thread that 2.2.0 started. As before, the notes are explicit that seeded results may differ from earlier versions.

    View source ↗
  2. 8mo ago

    Segment-distribution merge argument, and function-valued parameters

    A small maintenance release: a merge argument on plotSegmentDistribution(), ids and skipRecomb accepting functions, documentation work, and an app crash on empty seed input downgraded to a warning. Incremental polish on surfaces the package already had.

    View source ↗
  3. 1y ago

    Built-in decode19 recombination map rebuilt, cutting 38k points to 14k

    The default genetic map is replaced with a version having more accurate physical chromosome endpoints and a better thinning algorithm, which is why it is flagged as breaking: results in megabase units shift slightly for everyone who relies on the default. Cutting the map to roughly a third of its points without losing accuracy is also part of the speed story the later releases continue.

    View source ↗
  4. 1y ago

    Consistent IBD segment merging across the realised-coefficient functions

    The merge argument on realisedKappa() and its siblings resolves segment merging that had been handled inconsistently and was producing unexpected results, which is a correctness fix dressed as an option. The app gains browser launching and automatic shutdown, part of the steady work of making the bundled GUI behave like a real application.

    View source ↗
  5. 1y ago

    Built-in pedigree labels revised; extra inbred examples added

    Housekeeping on the app's built-in pedigrees, renaming confusing entries, adding inbred examples and changing the startup pedigree, plus a haploDraw() fix for a stray empty plot. Visible to app users but not a capability change.

    View source ↗
  6. 1y ago

    The Shiny front end moves into the package and gains X-chromosomal simulation

    ⚡ SPARK

    The release that changes what ibdsim2 is: a simulation library with an external demo becomes a package that ships its own application. Every app-facing entry since, from input checks to dependency verification to plotting fixes, exists because of this decision.

    View source ↗