Th main focus of this version is an overhaul of the IBD triangle plots, and implementing such plots also in `ggplot2`

and `plotly`

.

`ibdTriangle()`

and`showInTriangle()`

gain an argument`plotType`

, with permitted values “base” (default), “ggplot2” and “plotly”.`ibdTriangle()`

now supports graphic parameters`las`

,`mar`

and`title`

. (These work for base plots and also`ggplot2`

.)`showInTriangle()`

has a new argument`ped`

, for adding an inset pedigree in the top right corner.Improved handling of labels in

`showInTriangle()`

.New dataset

`basicRelationships`

, which is called by`ibdTriangle()`

.In

`kinship(x, ids)`

,`ids`

is no longer restricted to length 2.Improve documentation of

`kappaIBD()`

.

`kinship(x)`

now catches duplicated ID labels across components when`x`

is a pedlist.

`ibdTriangle()`

gains argument`shortLines`

, restricting kinship lines to the interior of the triangle.`ibdDraw()`

now automatically calculates sensible plot margins.Add citation info.

`kappaIBD(x, ids, simplify = TRUE)`

now works as intended when`x`

is a ped list and`ids`

has length 2.Fixed printing of two-locus kinship patterns in

`twoLocusIBD(..., verbose = TRUE)`

.

- In the output of
`coeffTable()`

several columns have been renamed.

New function

`twoLocusInbreeding()`

.New function:

`realisedIbdVariance()`

.New function

`ELR()`

, implementing method of Egeland & Slooten (2016).All two-locus functions have been cleaned up and improved, and new examples have been added.

Check that the input vector to

`detailed2condensed()`

has sum 1 (#14).Fixed edge-case bug in

`twoLocusIdentity()`

(#9).

The function

`idcoefs()`

was removed, since it relied on the no-longer-available package`identity`

.The deprecated

`kinshipX()`

,`inbreedingX()`

and`kappaIbdX()`

were removed, and replaced with an argument`Xchrom`

in`kinship()`

,`inbreeding()`

and`kappaIBD()`

.The function

`generalisedKinship()`

has been replaced with the much more versatile`gKinship()`

(see below).

New function

`identityCoefs()`

for computing condensed and detailed identity coefficients (“Jacquard coefficients”). Both autosomal and X-chromosomal versions are supported. This function supersedes`condensedIdentity()`

and`condensedIdentityX()`

, which will continue to exist, nonetheless.`condensedIdentity()`

gains arguments`simplify`

and`self`

, to match the new`identityCoefs()`

.Computation of identity coefficients by MERLIN (via the “–extended” feature) is implemented in

`identityCoefs()`

with the option`method = "merlin"`

. Note that MERLIN rounds the output to 3 decimals, reducing its utility somewhat.New function

`gKinship()`

for computing generalised kinship coefficients. Several algorithms are implemented, supporting various flavours (random vs. deterministic; distinct vs. non-distinct groups; autosomal vs. X).New container class

`gip`

for generalised IBD patterns. Includes a print method.New function

`coeffTable()`

collecting various pedigree coefficients in a single table.New function

`kin2deg()`

computing the degree of relatedness, as used e.g. by the software KING.

- Fixed bug in
`kinship(x, ids)`

affecting pedigrees in nonstandard order.

`kinship()`

now accepts a list of pedigrees as input.

The README has been rewritten and substantially expanded.

`kappaIBD()`

now accepts ped lists as input.In

`inbreeding()`

the argument`id`

is renamed to`ids`

and accepts vectors of length > 1.

New function

`ibdDraw()`

for illustrating IBD patterns in a pedigree. IBD alleles are represented as coloured dots or as letters.New function

`ibdTriangle()`

, which replaces`forrel::IBDtriangle()`

.`constructPedigree()`

now gives a textual description of the (usually double-half-cousin-like) pedigree it produces.

New function

`constructPedigree()`

, which constructs a pedigree yielding a prescribed set of IBD coefficients. This implements the algorithm described in https://doi.org/10.1007/s00285-020-01505-x.`kinship()`

gains a new argument`ids`

, which is handy when you only want the kinship coefficient between two individuals (and not the whole kinship matrix)Similarly,

`inbreeding()`

gains the argument`id`

for computing the inbreeding coefficient of a single individual.

- This is a minor release, resolving a CRAN request to fix a documentation issue.

- Initial CRAN release