Accessors {adegenet} | R Documentation |
An accessor is a function that allows to interact with slots of an
object in a convenient way. Several accessors are available for genind or
genpop objects. The operator "$" and "$<-" are used to
access the slots, being equivalent to "@" and "@<-".
The operator "[" can be used to access components of the matrix slot
"@tab", returning a genind or genpop
object. This syntax is the same as for a matrix; for instance:
- "obj[,]" returns "obj"
- "obj[1:10,]" returns an object with only the first 10 genotypes (if
"obj" is a genind) or the first 10 populations (if
"obj" is a genpop) of "obj"
- "obj[1:10, 5:10]" returns an object keeping the first 10 entities and
the alleles 5 to 10.
- "obj[nloc=c("L1","L3")]" returns an object keeping only the loci
specified in the loc
argument (using generic names, not true
names; in this example, only the first and the third locus would be
retained)
- "obj[1:3, drop=TRUE]" returns the first 3 genotypes/populations of
"obj", but retaining only alleles that are present in this subset (as
opposed to keeping all alleles of "obj", which is the default
behavior).
The argument treatOther
handles the treatment of objects in the
@other
slot (see details). The argument drop
can be set
to TRUE to drop alleles that are no longer represented in the subset.
nLoc(x, ...) pop(x) locNames(x, ...) ## S4 method for signature 'genind': locNames(x, withAlleles=FALSE, ...) ## S4 method for signature 'genpop': locNames(x, withAlleles=FALSE, ...)
x |
a genind or a genpop object. |
withAlleles |
a logical indicating whether the result should be of the form [locus name].[allele name], instead of [locus name]. |
... |
further arguments to be passed to other methods (currently not used). |
The "[" operator can treat elements in the @other
slot as
well. For instance, if obj@other$xy
contains spatial
coordinates, the obj[1:3,]@other$xy
will contain the spatial
coordinates of the genotypes (or population) 1,2 and 3. This is
handled through the argument treatOther
, a logical defaulting
to TRUE. If set to FALSE, the @other
component is not
returned.
Note that only matrix-like, vector-like and lists can be proceeded in
@other
. Other kind of objects will issue a warning an be
returned as they are.
The drop
argument can be set to TRUE to retain only alleles
that are present in the subset. To achieve better control of
polymorphism of the data, see isPoly
.
@pop
slot of an
object. The content of @pop
and @pop.names
is updated
automatically.Thibaut Jombart t.jombart@imperial.ac.uk
data(nancycats) nancycats nancycats$pop # let's isolate populations 4 and 8 temp <- nancycats@pop=="P04" | nancycats@pop=="P08" obj <- nancycats[temp,] obj truenames(obj)$pop # let's isolate two markers, fca23 and fca90 nancycats$loc.names # they correspond to L2 and L7 temp <- nancycats$loc.fac=="L2" | nancycats$loc.fac=="L7" obj <- nancycats[,temp] obj obj$loc.fac obj$loc.names # or more simply nancycats[loc=c("L2","L7")] obj$loc.fac obj$loc.names # using 'drop': truenames(nancycats[1:2])$tab truenames(nancycats[1:2, drop=TRUE])$tab # illustrate how 'other' slot is handled colonies <- genind2genpop(nancycats) colonies@other$aChar <- "This will not be proceeded" colonies123 <- colonies[1:3] colonies colonies@other$xy # illustrate pop obj <- nancycats[sample(1:100,10)] obj$pop obj$pop.names pop(obj) pop(obj) <- rep(c('b','a'), each=5) obj$pop obj$pop.names pop(obj) # illustrate locNames locNames(obj) locNames(obj, withAlleles=TRUE)