These functions do conversion among different allelic data classes.
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)
an object of class "loci"
or "genind"
, a data
frame, a factor, or a vector of mode character.
the character(s) separating the alleles for each locus in the data file (a forward slash by default).
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.
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.
the ploidy level (see details).
a vector of charater strings giving the alleles to be treated as missing data.
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.
a logical value. If you are sure that all data in the
"loci"
object are SNPs, using checkSNP = FALSE
makes
it faster.
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
.
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.
read.loci
, genind
,
df2genind
for converting data frames to
"genind"
, alleles2loci
# 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