Learn R Programming

adegenet (version 1.4-2)

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

nInd(x, ...)
nLoc(x, ...)
pop(x)
indNames(x, ...)
## S3 method for class 'genind':
indNames(x, \dots)
locNames(x, ...)
## S3 method for class 'genind':
locNames(x, withAlleles=FALSE, \dots)
## S3 method for class 'genpop':
locNames(x, withAlleles=FALSE, \dots)
ploidy(x, ...)
## S3 method for class 'genind':
ploidy(x, \dots)
## S3 method for class 'genpop':
ploidy(x, \dots)
## S3 method for class 'genind':
other(x, \dots)
## S3 method for class 'genpop':
other(x, \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 returned unmodified. 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, unless the argument quiet is left to TRUE, its default value. 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
pop(nancycats) # get the populations
indNames(nancycats) # get the labels of individuals
locNames(nancycats) # get the labels of the loci
alleles(nancycats) # get the alleles

# let's isolate populations 4 and 8
temp <- nancycats@pop=="P04" | nancycats@pop=="P08"
obj <- nancycats[temp,]
obj

pop(obj)

# let's isolate two markers, fca23 and fca90
locNames(nancycats)

# they correspond to L2 and L7
nancycats$loc.fac
temp <- nancycats$loc.fac=="L2" | nancycats$loc.fac=="L7"
obj <- nancycats[,temp]
obj

obj$loc.fac
locNames(obj)

# or more simply
nancycats[loc=c("L2","L7")]
obj$loc.fac 
locNames(obj)

# 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