Learn R Programming

adegenet (version 1.2-7)

Accessors: Accessors for adegenet objects

Description

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[loc=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.

Usage

nLoc(x, ...)
pop(x)
locNames(x, ...)
## S3 method for class 'genind':
locNames(x, withAlleles=FALSE, \dots)
## S3 method for class 'genpop':
locNames(x, withAlleles=FALSE, \dots)

Arguments

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

Value

  • A genind or genpop object.

encoding

UTF-8

Details

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.

Examples

Run this code
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)

Run the code above in your browser using DataLab