Modify the pedigree of 'linkdat' objects

Description

Functions to modify the pedigree of a 'linkdat' object.

Usage

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
swapSex(x, ids, verbose=TRUE)

swapAff(x, ids, newval=NULL)

addOffspring(x, father, mother, noffs, ids, sex=1, aff=1, verbose=TRUE) 

addDaughter(x, parent, id=NULL, aff=1, verbose=TRUE) 

addSon(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)

Arguments

x

A linkdat object

id, ids

Individual ID label(s). In addOffspring the (optional) ids argument is used to specify ID labels for the offspring to be created.

newval

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.

father, mother

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).

noffs

A single integer indicating the number of offspring to be created.

sex, aff

Integer vectors indicating the gender and affection statuses of the offspring to be created (recycled if less than noffs elements).

verbose

A logical: Verbose output or not.

parent

Integer ID of any pedigree member, which will be the father or mother (depending on its gender) of the new child.

keep

A character, either "available" (trimming the pedigree for unavailable members) or "affected" (trimming for unaffected members).

return.ids

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

new

a numeric containing new labels to replace those in old.

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.

Details

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.

Value

The modified linkdat object.

Author(s)

Magnus Dehli Vigeland

See Also

linkdat, nuclearPed

Examples

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
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)))

Want to suggest features or report bugs for rdrr.io? Use the GitHub issue tracker.