NEWS.md
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.9remotes::install_github("grunwaldlab/poppr@main")
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/101
poppr()
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/111
plot
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 \bar{r}_d along genlight chromosomes.samp.ia
calculates \bar{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
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.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.poppr.msn
will draw a minimum spanning network for any distance matrix derived from your data set.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.