as.matrix
creates a matrix representing the given linkdat
object in standard LINKAGE format,
with marker annotations and other info attached as attributes.
restore_linkdat
is the reverse of as.matrix
.## S3 method for class 'linkdat':
as.matrix(x, include.attrs = TRUE, ...)
restore_linkdat(x, attrs = NULL)
linkdat
object. In restore_linkdat
: A numerical matrix in LINKAGE format.linkdat
info compatible with x
, in the format produced by as.matrix
.
If NULL, the attributes of x
itself are used.as.matrix
: A matrix with x$nInd
rows and 6 + 2*x$nMark
columns.
The 6 first columns describe the pedigree in LINKAGE format,
and the remaining columns contain marker alleles, using the internal (numerical) allel coding and 0 for missing alleles.
If include.attrs = TRUE
the matrix has the attributes markerattr
(a list of marker annotations),
available
(the availability vector) and model
(the disease model, if present).
restore_linkdat
: A linkdat object.linkdat
objects are created in paramlink, marker data are stored as a list of marker
objects. Each of these is
essentially a matrix with various attributes like allele frequencies, map info a.s.o.. This format works well for marker-by-marker
operations (e.g. likelihoods and LOD scores), but makes it somewhat awkward to operate "horizontally", i.e. individual-by-individual,
for instance if one wants to delete all genotypes of a certain individual, or rearrange the pedigree in some way.
It is therefore recommended to convert the linkdat
object to a matrix first, do the necessary manipulations on the matrix, and
finally use restore_linkdat
. Attributes are often deleted during matrix manipulation, so it may be necessary to store them in a
variable and feed them manually to restore_linkdat
using the attrs
argument.
With default parameters, restore_linkdat(as.matrix(x))
should reproduce x
exactly.linkdat
data(toyped)
x = linkdat(toyped, model=1)
y = restore_linkdat(as.matrix(x))
stopifnot(all.equal(x,y))
m = as.matrix(x)
Run the code above in your browser using DataLab