pegas (version 0.12)

as.loci: Conversion Among Allelic Data Classes

Description

These functions do conversion among different allelic data classes.

Usage

as.loci(x, ...)
# S3 method for genind
as.loci(x, ...)
genind2loci(x)
# S3 method for data.frame
as.loci(x, allele.sep = "/|", col.pop = NULL, col.loci = NULL, ...)
loci2genind(x, ploidy = 2, na.alleles = c("0", "."), unphase = TRUE)
# S3 method for factor
as.loci(x, allele.sep = "/|", ...)
# S3 method for character
as.loci(x, allele.sep = "/|", ...)
loci2SnpMatrix(x, checkSNP = TRUE)

Arguments

x

an object of class "loci" or "genind", a data frame, a factor, or a vector of mode character.

allele.sep

the character(s) separating the alleles for each locus in the data file (a forward slash by default).

col.pop

specifies whether one of the column of the data file identifies the population; default NULL, otherwise an integer or a character giving the number or the name of the column.

col.loci

a vector of integers or of characters specifying the indices or the names of the columns that are loci. By default, all columns are taken as loci except the one labelled "population", if present or specified.

ploidy

the ploidy level (see details).

na.alleles

a vector of charater strings giving the alleles to be treated as missing data.

unphase

a logical value; by default, the genotypes are unphased before conversion (this should not be changed).

further arguments to be passed to or from other methods.

checkSNP

a logical value. If you are sure that all data in the "loci" object are SNPs, using checkSNP = FALSE makes it faster.

Value

An object of class c("loci", "data.frame") for as.loci and genind2loci; an object of class "genind" for loci2genind; an object of class "SnpMatrix" for loci2SnpMatrix.

Details

The main objectives of these functions is to provide easy conversion between the data structures of adegenet and pegas, so both packages can be used together smoothly. In addition, it is possible to create a "loci" object directly from a data frame, a vector, or a factor.

genind2loci(x) and as.loci(x) are the same if x is of class "genind".

The ploidy level specified in loci2genind can be a vector in which case it should be of length equal to the number of individuals and will be interpreted as giving the ploidy of each of them. Note that this is different from getPloidy which returns the ploidy level of each locus.

See Also

read.loci, genind, df2genind for converting data frames to "genind", alleles2loci

Examples

Run this code
# NOT RUN {
x <- c("A-A", "A-a", "a-a")
as.loci(x, allele.sep = "-")
# }
# NOT RUN {
require(adegenet)
data(nancycats)
x <- as.loci(nancycats)
y <- loci2genind(x) # back to "genind"
identical(nancycats@tab, y@tab)
identical(nancycats@pop, y@pop)
# }

Run the code above in your browser using DataCamp Workspace