A relationship triangle used to used to visualize the kappa coefficients of
between non-inbred individuals. Various annotations are available, including
points marking the most common relationships, contour lines for the kinship
coefficients, and shading of the unattainable region. The companion function
showInTriangle()
(which plots user-specified points onto the triangle) is
probably the most useful for end users.
ibdTriangle(
relationships = c("UN", "PO", "MZ", "S", "H,U,G", "FC"),
plotType = c("base", "ggplot2", "plotly"),
pch = 19,
cexPoint = 1.2,
cexText = 1.2,
cexAxis = cexText,
kinshipLines = numeric(),
shortLines = FALSE,
shading = "gray90",
xlim = c(0, 1),
ylim = c(0, 1),
axes = FALSE,
las = 1,
xlab = expression(kappa[0]),
ylab = expression(kappa[2]),
title = NULL,
mar = c(2.1, 2.1, 1, 1),
xpd = TRUE,
keep.par = TRUE,
cexLab = NULL,
...
)
NULL
if plotType = 'base'
; otherwise the plot object.
A character vector indicating the fixed relationships
points to be included in the plot. Valid entries are those in the label
column of basicRelationships.
Either "base" (default), "ggplot2" or "plotly". Abbreviations are allowed.
Symbol used for the relationship points (see par()
).
A number controlling the symbol size for the relationship points.
A number controlling the font size for the relationship labels.
A number controlling the font size for the axis labels.
A numeric vector (see Details).
A logical indicating if the kinship lines (if present) should be restricted to the interior of the triangle.
The shading colour for the unattainable region.
Graphical parameters; see par()
. (Base plot only.)
A logical: Draw surrounding axis box? Default: FALSE
.
Axis labels.
Main title (absent by default).
Graphical parameter; see par()
. For ggplot2, this is ignored
unless it is a ggplot2::margin() object.
A logical. If TRUE, the graphical parameters are not reset after plotting, which may be useful for adding additional annotation. (Base plot only.)
Deprecated; use cexAxis
instead.
Further arguments; currently not used.
For any pair of non-inbred individuals A and B, their genetic relationship can be summarized by the IBD coefficients \((\kappa_0, \kappa_1, \kappa_2)\), where \(\kappa_i\) = P(A and B share i alleles IBD at random autosomal locus). Since \(\kappa_0 + \kappa_1 + \kappa_2 = 1\), any relationship corresponds to a point in the triangle in the \((\kappa_0, \kappa_2)\)-plane defined by \(\kappa_0 \ge 0, \kappa_2 \ge 0, \kappa_0 + \kappa_2 \le 1\). The choice of \(\kappa_0\) and \(\kappa_2\) as the axis variables is done for reasons of symmetry and is not significant (other authors have used different views of the triangle).
As shown by Thompson (1976), points in the subset of the triangle defined by
\(4\kappa_0\kappa_2 > \kappa_1^2\) are
unattainable for pairwise relationships. By default this region in shaded in
a light grey colour, but this can be modified with the shading
argument.
The IBD coefficients are linearly related to the kinship coefficient
\(\varphi\) by the formula \(\varphi = 0.25\kappa_1 + 0.5\kappa_2.\) By indicating values for \(\varphi\) in the
kinshipLines
argument, the corresponding contour lines are shown in the
triangle plot. (Currently only when plotType = "base"
.)
E. A. Thompson (1975). The estimation of pairwise relationships. Annals of Human Genetics 39.
E. A. Thompson (1976). A restriction on the space of genetic relationships. Annals of Human Genetics 40.
showInTriangle()
, kappaIBD()
opar = par(no.readonly = TRUE) # store graphical parameters
ibdTriangle()
ibdTriangle(kinshipLines = c(0.25, 0.125), shading = NULL, cexText = 0.7)
ibdTriangle(kinshipLines = c(0.25, 0.125), shortLines = TRUE, pch = 15)
ibdTriangle(relationships = c("UN", "PO", "MZ", "S"),
xlab = "k0", ylab = "k2", las = 0, axes = TRUE, cexAxis =1.6)
par(opar) # reset graphical parameters
Run the code above in your browser using DataLab