bruvo.between()
was fixed in a superficial
way to avoid an error on CRAN R-devel (@zkamvar,
https://github.com/grunwaldlab/poppr/pull/242).bruvo.between()
will calculate bruvo’s distances
between a query dataset and a reference dataset (@davefol, #223)blacklist
has been deprecated in favor of
exclude
for the following functions:
bruvo.msn()
, poppr.msn()
,
clonecorrect()
, poppr()
,
mlg.table()
, mlg.crosspop()
, and
popsub()
. It will be removed in the poppr version 2.10
(@zkamvar, #218)genind2genalex()
no longer converts diploid sequence
data to zeros on export This fixes #231 (@zkamvar, #233).bitwise.ia()
will no longer have integer overflows
early on Windows (@zkamvar, #235)read.genalex()
now can import columns with entirely “T”
alleles as “T” instead of “TRUE”. (See
https://github.com/grunwaldlab/poppr/issues/214 for details).{progressr}
package, which gives the user control over what should be displayed (or
not). For example, to get auditory updates instead of a progress bar,
you can use the “beepr” package and set
progressr::handlers("beepr")
. This will play an alert for
each step (~50) and a final sound. To suppress all progress bars
entirely, you can use progressr::handlers("void")
. These
progress bars have replaced the utils::txtProgressBar()
and
dplyr::progress_estimated()
bars.poppr()
function will no longer
contain factor columns for the population names or the file names. This
is due to R 4.0.0 changing behavior with the
stringsAsFactors
default in data.frame()
. (See
https://github.com/grunwaldlab/poppr/issue/212 for details).read.genalex()
now correctly parses strata when the
user imports data that contains duplicated data AND has some individuals
named as integers less than the number of samples in the data (prepended
by zeroes) (See https://github.com/grunwaldlab/poppr/pull/202).mlg.vector()
is now safer as it now uses a for loop
instead of a function with the out-of-scope operator
(<<-
) (see #205)shufflepop()
is now safer as it now uses a for loop
instead of a function with the out-of-scope operator
(<<-
) (see #205)distenv
slot, which will
store the environment where the distance function or matrix exists. This
is accompanied by an accessor of the same name (see #206)."mlg.filter<-"()
replacement methods will no longer
search the global environment when evaluating the distance function or
matrix (see #206).mlg.filter()
no longer assign objects to the
global environmentaboot()
documentation was updated to add the citation
and make clear its purpose and limitations.win.ia()
now has more consistent behavior with
chromosome structure and will no longer result in an integer overflow.
(see https://github.com/grunwaldlab/poppr/issues/179). Thanks to @MarisaMiller for the
detailed bug report.plot_filter_stats()
will plot stats if supplied a list
of thresholds.win.ia()
may result in slightly different results
because of two changes:
NA
if the first variant
starts beyond the first window.chromosome_buffer
argument for
win.ia()
has been permanently set to TRUE
and
deprecated as it is no longer used.poppr.amova()
will now handle genlight/snpclone
objects. See https://github.com/grunwaldlab/poppr/pull/185 for
details.
bitwise.dist()
now has two new options:
euclidean
and scale_missing
. When both of
these are set to TRUE
, the distance measured will be
Euclidean scaled for the amount of missing data in each comparison. This
matches the output of base R’s dist()
function at a
fraction of time and memory. See
https://github.com/grunwaldlab/poppr/pull/176 for details.
make_haplotypes()
is now a generic defined for both
genind and genlight.
genind2genalex()
will no longer write to
“genalex.csv” by default. Instead, it will warn the user and write to a
temporary file. See https://github.com/grunwaldlab/poppr/issues/175 for
details.
genind2genalex()
now has an overwrite
parameter set to FALSE
to prevent accidental overwriting of
files.
win.ia()
has a new argument
name_window
, which will give each element in the result the
designation of the terminal position of that window. Thanks to @MarisaMiller for the
suggestion!
pair.ia()
can now calculate p-values via
permutations. (See https://github.com/grunwaldlab/poppr/issues/180 for
details)
cutoff_predictor()
was added to the MLG vignettepoppr.amova()
has been
added.make_haplotypes()
will split your data into
pseudo-haplotypes for use in AMOVA-like analyses. This was a previously
internal function, but has been promoted to a user-facing function in
this version.
as.genambig()
will convert genind/genclone objects
to Polysat’s “genambig” class. Note that polysat must be installed for
this to work.
within = FALSE
or
filter = TRUE
without a user-supplied distance. This will
not have affect those with haploid or diploid data using
within = TRUE
. The dissimilarity distance is equivalent to
a squared euclidean distance for haploid genotypes, but not for any
higher ploidy. Those using filter = TRUE
without specifying
a distance should use a euclidean threshold. This should not be an issue
for those who simply want to group isolates with missing data, however
as a zero distance is the same for euclidean and dissimilarity. Thanks
goes to Patrick Meirmans for alerting me to this error.bitwise.dist()
was fixed. See https://github.com/grunwaldlab/poppr/issues/169 for
details.boot.ia()
is conceptually similar to
resample.ia()
, except it resamples with replacement.resample.ia()
now can resample individuals
weighted by their Psex value.imsn()
where custom MLGs would result in an
error was fixed. See https://github.com/grunwaldlab/poppr/issues/155 for
details.plot_poppr_msn()
where setting
scale.leg = FALSE
would result in a very small MSN plot was
fixed.mlg()
now works properly for snpclone and genlight
objects. See https://github.com/grunwaldlab/poppr/issues/155 for
details.plot_poppr_msn()
so
additional legends can be added if necessary.Identified in https://github.com/grunwaldlab/poppr/issues/139, Bruvo’s distance will now consider all possible combinations of ordered alleles in the calculation under the genome addition and loss models for missing data. This will affect those who have polyploid data that contain more than one missing allele at any genotype
To facilitate comparison, the global option old.bruvo.model, has been created. By default it is set to FALSE, indicating that poppr should use the ordered allele combinations. If the user wants to use the method considering unorderd allele combinations, they can set options(old.bruvo.model = TRUE)
It must be repeated that this does not affect haploid or diploid comparisons, those that use the infinite alleles model, or those who do not have more than one missing allele at any genotype.
test_replen()
and
fix_replen()
has been fixed. See
https://github.com/grunwaldlab/poppr/issues/136 for details.jack.ia()
will randomly jackknife your sample to a
specified n (default is the number of MLG), and calculate the index of
association over multiple iterations, giving a distribution of possible
values at a given sample size.mlg.table()
gains new parameters, “color”
and “background”. The “color” parameter will create a single barplot
with colors representing populations while the “background” parameter
will create a background plot showing the abundance of MLGs across
populations within the facets.win.ia()
will now take into consideration
chromosomal coordinates when constructing windows. It has additionally
acquired a new parameter chromosome_buffer
, which allows
the user to specify whether or not the window should be limited to
within chromosomes.mlg.crosspop()
with an object that has < 2
populations.genotype_curve()
will now remove monomorphic loci
before calculation by default as these loci misleadingly influence the
shape of the curve. This will change the shape of the curve if you have
monomorphic loci. This change IS optional via the drop and dropna
parameters, but it is not recommended to change these parameters.psex()
has changed to be more
accurate when using method = “multiple”. It also gains the ability to
use several values of G, one for each population. Documentation for
psex()
has also been improved. For details of the change,
see https://github.com/grunwaldlab/poppr/issues/101poppr()
now correctly identifies the substitute function as
diversity_stats()
and not diversity table (see
https://github.com/grunwaldlab/poppr/issues/123).read.genalex()
will now implicitly check for the
correct number of individuals in the data (see
https://github.com/grunwaldlab/poppr/issues/128).poppr()
no longer throws an error if the
sample > 0 and the data has no population (see
https://github.com/grunwaldlab/poppr/issues/130).SEXP association_index_haploid
. This was a ghost from
https://github.com/grunwaldlab/poppr/issues/100.bitwise.dist()
clarifies the role
of the differences_only
flag (see
https://github.com/grunwaldlab/poppr/issues/119).R_CheckUserInterrupt()
. The benefit is that long-running
calculations are interrupted near instantly, but at the cost of a few
more milliseconds of computation time. (see
https://github.com/grunwaldlab/poppr/issues/86)bootgen2genind()
will help users take
advantage of bootstrapping distance functions from other packages that
require genind objects. For details, see
https://github.com/grunwaldlab/poppr/issues/112 and
https://github.com/grunwaldlab/poppr/issues/111plot
parameter for the genotype curve to
enable or suppress plotting.options(poppr.debug = TRUE)
.ia()
and poppr()
will
now show estimated time. This is from dplyr’s
progress_estimated()
.hist
argument in the ia()
is
deprecated in favor of plot
.genotype_curve()
plot is now
numeric, allowing you to fit a smoothing function over the points
without having to use the hack geom_smooth(aes(group = 1))
.
This is thanks to Kara Woo for pointing this out on twitter
(https://twitter.com/kara_woo/status/783336540407685120).poppr.amova
now contains a note about
significance testing with the ade4 function
randtest.amova
.mlg.table()
was fixed so that the
plots now show the maximum value.imsn()
imsn()
incomp()
will check your data to see if there are any
incomparable samples.filter_stats()
(see
https://github.com/grunwaldlab/poppr/issues/94)%>%
) is now exported from
magrittr to make chaining commands easier.mlg.filter()
can now return multiple statistics.private_alleles()
gains a drop argument.recode_polyploids()
can now take haplodiploid
data.imsn()
code output
was fixed (see https://github.com/grunwaldlab/poppr/issues/93)mlg.filter()
assignment method was
using nei.dist()
instead of diss.dist()
when
no distance was specified.bitwise.ia()
with large sample sizes was fixed. Spotted by
@knausb (see
https://github.com/grunwaldlab/poppr/issues/100)plot_filter_stats()
wasn’t displaying
the full range of MLGsmll.reset()
did not reset non-MLG class
objects in the mlg slot was fixed.mlg.filter()
was clarified and
updated with more examples.*hierarchy()
functions have been
removed.imsn()
now has collapsible side panelsnmll()
and mll()
will now handle genind
and genlight objectsrraf()
now gives options for minor allele correction
encompassed in the internal function
rare_allele_correction()
. This extends also to
pgen()
and psex()
, which must correct minor
allele frequencies by default. See
https://github.com/grunwaldlab/poppr/issues/81 for details.mlg.filter()
now defaults to using
diss.dist()
filter_stats()
is now 1e+6mlg.filter()
now returns a list instead of a
pairlistpoppr()
is now deprecated in
favor of “plot”missingno()
in
filter_stats()
filter_stats()
now returns invisibly when plot = TRUE;
see https://github.com/grunwaldlab/poppr/issues/87 for details.clonecorrect()
will default to strata = NA
.read.genalex()
will no longer fail if missing data is
not coded as zero; see https://github.com/grunwaldlab/poppr/issues/84
for detailsmissingno()
no longer removes genotypes AT specified
threshold; see https://github.com/grunwaldlab/poppr/issues/90 for
detailswin.ia
and samp.ia
gain a significant
speedup thanks to Jonah Brooks implementing the code in C.genotype_curve
has been
implemented in C for a 10x increase in speed.poppr.msn
, bruvo.msn
, and
plot_poppr_msn
gain the ability to take character vectors
for color palettes. See issue #55
(https://github.com/grunwaldlab/poppr/issues/55) for details.plot_poppr_msn
returns the modified graph.aboot
gains the argument strata so that you can
automatically convert genind to genpop.genotype_curve
can now take in loci objects from
pegas.genotype_curve
.filter_stats
can now optionally plot a histogram in the
background.bruvo.dist
can now optionally return distance matrices
by locus. This is addresed in issue #60
(https://github.com/grunwaldlab/poppr/issues/60)aboot
can now handle matrices as previously specified
in the documentation.aboot
can now take custom functions to calculate
distance for genlight objects.poppr.amova
can now perform amova using the pegas
implementation.rrmlg
will calculate round-robin multilocus genotypes
for each locus.rraf
will calculate round-robin allele frequencies for
each locus.pgen
will calculate the probabilities of observed
genotypes.psex
will calculate the probability that an observed
genotype will be observed more than once by chance.poppr.amova
no longer references the
“hierarchy” slot.read.genalex
. This was brought up in issue #58 (Thanks to
Nick Wong for spotting it).informloci
where the MAF argument wasn’t being
applied to P/A data has been fixed.imsn
(issue #41)imsn
read.genealex
can now correctly import missing data for
diploids (issue #42)strata
. For maximum backwards compatibility,
all of the hierarchy methods still exist, but they are deprecated and
will print a warning with the proper function to use. If you were
accessing the hierarchy slot without using the *hierarchy()
methods, your code will fail as the hierarchy slot now should only
contain a formula object.Pram
containing SSR genotypes from
the Sudden Oak Death pathogen Phytophthora ramorum (Kamvar
et.al., 2015)index = "rbarD"
, default) or the classic
index of association (index = "Ia"
). If the user uses the
function ia
with the argument
valuereturn = TRUE
, then the resulting object can be
plotted with the plot function.poppr
will now plot all populations in a
single faceted plot instead of one plot per population.aboot
and bruvo.boot
will now be able to
utilize any function to generate trees (suggested in issue #18).include.ties
threshold
.poppr.amova
gains the ability to filter multilocus
genotypes before calculation.informloci
gains the argument “MAF”, which allows the
specification of a minor allele frequency cutoff in addition to the
cutoff argument. Examples have been updated.aboot
can now take genlight objects.poppr.msn
and plot_poppr_msn
can now take
genlight objects.plot_poppr_msn
now gives users the option to exclude
the legends.mlg.table
will no longer produce
one plot per population. It will now produce a single ggplot object for
all populations. Note that the bars are no longer colored by count.poppr
will no longer calculate “Hexp”. Instead,
Simpson’s index will be calumniated, but the old index can be retrieved
by using (N/(N - 1))*lambda.poppr
can now take any statistic that can be calculated
from a table of multilocus genotype counts.genind2genalex
gains the ability to selectively write
different strata.mlg.filter
will contract multilocus genotypes given a
genetic distance and threshold using one of three algorithms. It can
report statistics such as the multilocus genotypes returned, the number
of samples within each multilocus genotype, the thresholds at which
multilocus genotypes were collapsed, and the genetic distance matrix
that represents the new multilocus genotypes.filter_stats
will show you graphical output of all the
algorithms in mlg.filter
.cutoff_predictor
will predict the cutoff threshold from
mlg.filter
.bitwise.dist
can efficiently calculate absolute genetic
distance for genlight objects.mll
“multilocus lineages” is a new replacement for
mlg.vector
which gains the functionality of selecting the
multilocus genotype definition from the mlg slot.nmll
counts the number of multilocus lineagesmll.custom
allows the user to define custom multilocus
genotypes.mll.levels
allows the user to edit the names of custom
multilocus genotypes.poppr_has_parallel
will return TRUE
if
poppr was built with OpenMP parallel library.win.ia
calculates windows of {r}_d along genlight
chromosomes.samp.ia
calculates {r}_d for genlight object by
randomly sampling a user-defined number of SNPs.test_replen
will test repeat lengths of microsatellite
markers for consistency.fix_replen
will fix inconsistent repeat lengths for
microsatellite markers.diversity_stats
returns a matrix containing diversity
statistics. Defaults to 4 found in poppr
, but can be
extended to any statistic that can be calculated on a vector of MLG
counts.diversity_boot
will bootstrap a MLG matrix over the
statistics specified for get_stats
. Can also perform
rarefaction bootstrap.diversity_ci
will calculate and plot confidence
intervals for bootstrap resampling of an MLG matrix. This includes
rarefaction to the smallest sample size.imsn
provides an interactive shiny interface for
construction of minimum spanning networks.pair.ia
will calculate the index of association for
pairs of loci and plot heatmaps.fix_negative_branch
when only
one branch had a negative edge.diss.dist
where a single locus would
return an error.poppr.amova
where a single locus would
return an error due to repool_haplotypes
.plot_poppr_msn
to allow for easier
manipulation of node sizes and of labelingaboot
recode_polyploids
mlg.table
, the mlgsub argument will now subset by
name instead of index (fixed in #7).diss.dist
can now be used with aboot
info_table
will print a discrete scale as opposed to
colorbar when type = “ploidy”recode_polyploids
for details.diss.dist
now has options to return raw distances and a
matrix instead of a dist object.read.genalex
now has the option to import as a genclone
object. This is the default action.poppr.all
will be able to analyze lists of genind or
genclone objects.ia
now has the argument valuereturn which will return
the sampled data.[bruvo,poppr].msn
functions now give the user the
choice to show the graph.bruvo.boot
has a cleaner plot style.genclone
object is a new extension of the
genind
object from adegenet. This object contains slots
containing population hierarchies and multilocus genotype definitions
and will work with all analyses in adegenet and poppr.genclone
object utilizing
hierarchical formulae as arguments for simplification.setpop
will set the population of a
genclone
object utilizing model formulae regarding the
hierarchy slot.as.genclone
will automatically convert genind objects
to genclone objects.is.genclone
checks the validity of genclone
objects.poppr.amova
will run amova on any hierarchical level.
This also includes the feature to run amova on clone censored data sets.
It utilizes the ade4 version of amova.info_table
will calculate missing data per population
per locus or ploidy per individual per locus and gives the user the
option to visualize this as a heatmap.locus_table
will calculate diversity and evenness
statistics over all loci in a genind or genclone object.*.dist
functions will calculate Nei’s distance, Rogers’
Distance, Edwards’ Distance, Reynolds’ Distance, and Provestis’
Distance.aboot
will allow the user to create bootstrapped
dendrograms for ANY distance that can be calculated on genind or genpop
objects.plot_poppr_msn
will plot minimum spanning networks
produced with poppr.private_alleles
will give information about the
presence of private alleles within a genind or genclone object.recode_polyploids
will take in a polyploid
genind/genclone object (with missing alleles coded as extra zero-value
allele) and recode them to have frequencies relative to the observed
number of alleles.genotype_curve
will create a genotype accumulation
curve for increasing number of loci.mlg.id
will return a list indicating the samples
belonging to a specific multilocus genotype.mlg.matrix
is now calculated faster utilizing R’s
internal tabulating capabilities.poppr
will no longer return rounded
results, but rather is printed with three significant digits.ia
, poppr
shufflepop
bruvo.boot
function was not
shuffling the repeat lengths for each locus resulting in potentially
erroneous bootstrap support values. This has been fixed by implementing
an internal S4 class that will allow direct bootstrapping of the data
and repeat lengths together.bruvo.boot
or bruvo.dist
fixed.bruvo.boot
allow for ever so slightly faster
bootstrapping.bruvo.boot
on UPGMA trees has been
fixed.informloci
will remove phylogenetically
uninformative loci.read.genalex
will no longer insert an “X” in front of
loci with numeric names.bruvo.dist
.read.genind
.poppr_manual
now has cross-references to
different sections.poppr_manual
is quicker loading.getfile
has a new argument, “combine”, which will
automatically add the path to the list of files, so they can be read
without switching working directory.missingno
and
mlg.crosspop
will now be wrapped to 80 characters.poppr
will now be able to correctly recognize GenAlEx
files with both geographic and regional data.read.genalex
will be able to correctly distinguish
between SNP and AFLP data.read.genalex
can now correctly recognize regional
formatting without an extra column.read.genalex
will now be able to take in a file that is
formatted with both regional and geographic data.genind2genalex
can now export xy coordinates into the
GenAlEx format.poppr_manual
vignette now contains images of example
GenAlEx files.rootrot2.csv
is an example of a GenAlEx file formatted
with regional data.read.genalex
was removed.read.genalex
will now give a warning whenever the input
file is not comma delimited.poppr.msn
will draw a minimum spanning network for any
distance matrix derived from your data set.poppr.msn
,
diss.dist
, greycurve
, and a section discussing
how to export graphics.poppr
and ia
will now
display {r}_d instead of {r}_D.bruvo.boot
now has a dedicated quiet
argument.diss.dist
will produce a distance matrix based on
discreet distances.greycurve
will produce a grey scale adjusted to
user-supplied parameters. This will be useful for future minimum
spanning network functions.bruvo.msn
can now adjust the edge grey level to be
weighted toward either closely or distantly weighted individuals.bruvo.msn
will now return a list giving the user the
graph with all of the color, label, and weight properties so that they
can plot it themselves. The legend arguments are also returned.