informloci() no longer throws an error with
quiet = TRUE (reported: @IdoBar, #266; fixed: @zkamvar, #267)usenames option from xcolor has been removed from
the algorithms and equations vignette.SEXP omp_test()== was
fixed to use inherits()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/issues/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)imsnread.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.tiesthreshold.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 labelingabootrecode_polyploidsmlg.table, the mlgsub argument will now subset by
name instead of index (fixed in #7).diss.dist can now be used with abootinfo_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
shufflepopbruvo.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.