Functions to modify the pedigree of a 'linkdat' object.
swapSex(x, ids, verbose = TRUE)swapAff(x, ids, newval = NULL)
addOffspring(
x,
father,
mother,
noffs,
ids = NULL,
sex = 1,
aff = 1,
verbose = TRUE
)
addSon(x, parent, id = NULL, aff = 1, verbose = TRUE)
addDaughter(x, parent, id = NULL, aff = 1, verbose = TRUE)
addParents(x, id, father, mother, verbose = TRUE)
removeIndividuals(x, ids, verbose = TRUE)
branch(x, id)
trim(x, keep = c("available", "affected"), return.ids = FALSE, verbose = TRUE)
relabel(x, new, old)
A linkdat
object
A logical: Verbose output or not.
A numeric, indicating affection status values for the
ids
individuals: 1=unaffected, 2=affected, 0=unknown. If NULL, the
affection statuses are swapped 1 <-> 2, hence the main use of the
newval
argument is to assign 0's.
Integers indicating the IDs of parents. If missing, a new founder individual is created (whose ID will be 1+the largest ID already in the pedigree).
A single integer indicating the number of offspring to be created.
Integer vectors indicating the gender and affection statuses
of the offspring to be created (recycled if less than noffs
elements).
Integer ID of any pedigree member, which will be the father or mother (depending on its gender) of the new child.
Individual ID label(s). In addOffspring
the (optional)
ids
argument is used to specify ID labels for the offspring to be
created.
A character, either 'available' (trimming the pedigree for unavailable members) or 'affected' (trimming for unaffected members).
A logical. If FALSE, the trimmed pedigree is returned as a
new linkdat
object. If TRUE, a vector containing the IDs of
'removable' individuals is returned
a numeric containing new labels to replace those in old
.
a numeric containing ID labels to be replaced by those in
new
. If missing, old
is set to x$orig.ids
, i.e. all
members in their original order.
The modified linkdat
object.
When removing an individual, all descendants are also removed as well as founders remaining without offspring.
The branch()
function extracts the pedigree subset consisting of all
descendants of id
, including id
itself and all relevant
spouses.
# NOT RUN {
x = linkdat(toyped)
# To see the effect of each command below, use plot(x) in between.
x = addParents(x, id=2, father=5, mother=6)
x = swapSex(x, c(1,5))
x = swapSex(x, c(2,6))
x = addOffspring(x, mother=6, noffs=2, id=c(7,10))
x = removeIndividuals(x, 3)
x = swapAff(x, c(4,10))
stopifnot(setequal(x$orig.ids, c(1,2,4,5,6,7,10,11)))
# Trimming a pedigree
x = linkdat(dominant)
x_affectedOnly = trim(x, keep='affected')
unavail = trim(x, keep='available', return.ids=TRUE)
nonaff = trim(x, keep='affected', return.ids=TRUE)
stopifnot(setequal(unavail, c(5, 19:23)), setequal(nonaff, c(6:7, 12:13, 19:23)))
# }
Run the code above in your browser using DataLab