Skip to content

Releases: grunwaldlab/poppr

poppr version 2.5.0 release candidate (rev. 1)

04 Sep 19:51
Compare
Choose a tag to compare

poppr 2.5.0 release candidate (revision 1)

This is a pre-release of poppr version 2.5.0.

It contains a major bug fix for those who deal with polyploid data and Bruvo's distance with either genome addition or genome loss corrections (details below). We have ensured that all the new functionality is tested accurately, but nevertheless, if you run into any major bugs or otherwise unexpected results, please open an issue at https://github.com/grunwaldlab/poppr/issues

Attached are the windows (poppr_2.5.0rcv1.zip) and OSX (poppr_2.5.0rcv1.tgz) binaries. You can install them by using:

# For OSX users
install.packages("https://github.com/grunwaldlab/poppr/releases/download/v.2.5.0rcv1/poppr_2.5.0rcv1.tgz", repos = NULL)

# For Windows users
install.packages("https://github.com/grunwaldlab/poppr/releases/download/v.2.5.0rcv1/poppr_2.5.0rcv1.zip", repos = NULL)

or you can use devtools (Requires a C compiler):

if (!require("devtools") install.packages("devtools", repos = "https://cran.rstudio.com")
devtools::install_github("grunwaldlab/poppr@v.2.5.0rcv1")

ALGORITHMIC CHANGE

  • Identified in #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.

DEPRECATION

  • The warning for a short repeat length vector for Bruvo's distance is
    deprecated and will become an error in the future

BUG FIX

  • A bug in read.genalex() where removed samples would have incorrect strata
    labels was fixed. Thanks to Hernán Dario Capador-Barreto for identifying it.
    See #147.

MISC

  • The internal plotting function for mlg.table now uses tidy evaluation for
    dplyr versions > 0.5.0
  • The package reshape2 was removed from imports and replaced with base functions
    (see #144 for details)

NEW IMPORTS

  • Due to the migration to dplyr version 0.7.0, poppr now imports the "!!"
    operator from the rlang package

release candidate for poppr version 2.5.0

04 Sep 04:33
Compare
Choose a tag to compare

poppr 2.5.0 release candidate

This is a pre-release of poppr version 2.5.0.

It contains a major bug fix for those who deal with polyploid data and Bruvo's distance with either genome addition or genome loss corrections (details below). We have ensured that all the new functionality is tested accurately, but nevertheless, if you run into any major bugs or otherwise unexpected results, please open an issue at https://github.com/grunwaldlab/poppr/issues

Attached are the windows (poppr_2.5.0.zip) and OSX (poppr_2.5.0.tgz) binaries. You can install them by using:

# For OSX users
install.packages("https://github.com/grunwaldlab/poppr/releases/download/v.2.5.0rc/poppr_2.5.0rc.tgz", repos = NULL)

# For Windows users
install.packages("https://github.com/grunwaldlab/poppr/releases/download/v.2.5.0rc/poppr_2.5.0rc.zip", repos = NULL)

or you can use devtools (Requires a C compiler):

if (!require("devtools") install.packages("devtools", repos = "https://cran.rstudio.com")
devtools::install_github("grunwaldlab/poppr@v.2.5.0rc")

ALGORITHMIC CHANGE

  • Identified in #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.

DEPRECATION

  • The warning for a short repeat length vector for Bruvo's distance is
    deprecated and will become an error in the future

MISC

  • The internal plotting function for mlg.table now uses tidy evaluation for
    dplyr versions > 0.5.0
  • The package reshape2 was removed from imports and replaced with base functions
    (see #144 for details)

NEW IMPORTS

  • Due to the migration to dplyr version 0.7.0, poppr now imports the "!!"
    operator from the rlang package

poppr version 2.4.1

14 Apr 20:37
Compare
Choose a tag to compare

Summary

This version of poppr includes several new features and bug fixes. Changes marked with [critical update] indicate changes that may affect the results of your analyses in certain conditions. Please see the full details of the changes at the bottom.

  • the new function jack.ia() will calculate index of association on random subsets of your data
  • mlg.table() plots gain the ability to add color by population (Fig 1, 2)
  • monomorphic loci, which gave the genotype accumulation curve an early plateau, are now
    filtered out by default in genotype_curve() [critical update]
  • snpclone and genlight objects will use distance-based methods for calculating MLGs by default
  • win.ia() now takes into account chromosomal coordinates [critical update]
  • a major bug in rraf() with by_pop = TRUE where frequencies for all but the first populations
    were wrong was fixed [critical update]
  • the calculation for psex() with method = "multiple" has been corrected [critical update]
  • several bugs involving read.genalex() have been fixed [critical update]
  • A corner case where fix_replen() would return the wrong repeats if they weren't in order has
    been fixed [critical update]

Figure 1

Fig 1

Figure 2

Fig 2

Installation

You can update as soon as it is on CRAN:

install.packages("poppr", repos = "https://cran.r-project.org")

For details, see the full list of changes below.


BUG FIX (version 2.4.1)

  • A corner case where repeat length vectors out of order would be erroneously
    subset with test_replen() and fix_replen() has been fixed. See
    #136 for details.
  • All functions that perform filtering will now run serially due to a bug on
    Fedora machines with at least two threads. Details can be found at
    #138.

NEW FUNCTIONS

  • 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.

NEW FEATURES

  • The function 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.
  • The function 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.

NOTABLE CHANGES

  • calculation of MLGs for snpclone and genlight objects will be performed via
    distance-based methods by default. This is in contrast to the previous behavior
    where individuals were assumed to have unique genotypes.
    see #125 for details.
  • An error will be thrown when attempting to use 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.
  • The calculation for 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 #101

BUG FIX

  • The error given when a genlight object is passed to poppr() now correctly
    identifies the substitute function as diversity_stats() and not diversity
    table (see #123).
  • GenAlEx files imported with duplicate loci will generate a warning telling the
    user that the duplicated loci have been renamed (usually to _1)
    (see #122).
  • Haplodiploids imported in genalex files will be properly treated
    (see #124).
  • read.genalex() will now implicitly check for the correct number of
    individuals in the data (see #128).
  • The function poppr() no longer throws an error if the sample > 0 and the
    data has no population (see #130).
  • A bug where round-robin allele frequencies calculated with by_pop = TRUE were
    inaccurate for all but the first population was fixed. For details, see
    #132.
  • A potential integer overflow was fixed in SEXP association_index_haploid.
    This was a ghost from #100.
  • PROTECT statements were placed around allocation statements. For details, see
    #133.

MISC

  • The documentation for bitwise.dist() clarifies the role of the
    differences_only flag (see #119).
  • Interruptions in C code is now handled gracefully via 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 #86)
  • Bruvo's distance now has complete tests for recursion as of commit 4e4fa40

poppr version 2.3.0

25 Nov 15:59
Compare
Choose a tag to compare

poppr 2.3.0

This version of poppr introduces the function bootgen2genind() that allows you to use aboot() with distance functions that explicitly expect "genind" objects:

aboot(myData, dist = myDist) # fails
aboot(myData, dist = function(x) myDist(bootgen2genind(x))) # works

There are other various bug fixes and improvements, which are listed below.

NEW FUNCTIONS

  • The function bootgen2genind() will help users take advantage of
    bootstrapping distance functions from other packages that require genind
    objects. For details, see #112 and
    #111

NEW FEATURES

  • There is now a plot parameter for the genotype curve to enable or suppress
    plotting.
  • Progress bars are now automatically suppressed when running non-interactively.
    to turn them on when running non-interactively, use
    options(poppr.debug = TRUE).
  • The progress bar for ia() and poppr() will now show estimated time. This
    is from dplyr's progress_estimated().

MISC

  • The hist argument in the ia() is deprecated in favor of plot.
  • The x axis for the 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).
  • The "show" method for genclone objects now delimits populations and strata
    by a comma, avoiding confusion with multi-word population names. Thanks to
    @knausb for the fix in #116.
  • Documentation for poppr.amova now contains a note about significance testing
    with the ade4 function randtest.amova.

BUG FIX

  • The subsetting methods will now properly handle mlgs when using sample names
    to subset genclone and snpclone objects. See
    #114 for details.
  • A plotting bug for mlg.table() was fixed so that the plots now show the
    maximum value.
  • Bugs with subsetting bootgen and bruvomat objects with no loci specified were
    fixed. See #118 for details.

poppr version 2.2.1

29 Aug 16:33
Compare
Choose a tag to compare

This is mainly a maintenance release. One major change is the poppr manual being converted to HTML. Some sections were removed.

BUG FIX

  • A problem exporting haploid sequence data to genalex format was fixed
    (see #108)
  • Data without population structure no longer throws an error in imsn()

NEW FEATURES

  • You can now specify layout parameters in imsn()
  • The *.msn functions will now take into account whether or not your data is set
    to collapsed MLGs. (see #107)

MISC

  • Errors from mlg.filter now make more sense.
    (see #109)
  • The vignette poppr_manual has been converted to HTML format.
    (see #113)

poppr version 2.2.0

13 Jun 16:05
Compare
Choose a tag to compare

NEW FUNCTIONS

  • incomp() will check your data to see if there are any incomparable samples.

NEW FEATURES

  • Threshold argument added to filter_stats()
    (see #94)
  • The pipe operator (%>%) is now exported from magrittr to make chaining
    commands easier.
  • mlg.filter() can now return multiple statistics.
  • The user can now control the size of the labels in the index of association
    plots with the labsize and linesize arguments in the plot method.
  • private_alleles() gains a drop argument.
  • recode_polyploids() can now take haplodiploid data.

BUG FIX

  • An issue that caused errors in the imsn() code output was fixed
    (see #93)
  • Caught bug where the mlg.filter() assignment method was using nei.dist()
    instead of diss.dist() when no distance was specified.
  • A bug that resulted in significantly negative values from bitwise.ia() with
    large sample sizes was fixed. Spotted by @knausb
    (see #100)
  • Fixed issue where plot_filter_stats() wasn't displaying the full range of
    MLGs
  • Color vectors are now correctly parsed when passed to msn functions
    (see #55) for details. Long color
    vectors are now accepted, albiet with warning.
  • An issue where mll.reset() did not reset non-MLG class objects in the mlg
    slot was fixed.

MISC

  • Documentation for mlg.filter() was clarified and updated with more examples.
  • The vignette "Migration from poppr version 1" has been removed.
  • Previously deprecated *hierarchy() functions have been removed.

poppr version 2.1.1

15 Mar 19:51
Compare
Choose a tag to compare

poppr 2.1.1

This is mainly a maintenance release, Perhaps the most important changes are:

  • documentation improvements
  • Expansion of rare allele correction methods for rraf()

Below is the official changelog from 2.1.0 -> 2.1.1

NEW FEATURES

  • imsn() now has collapsible side panels
  • nmll() and mll() will now handle genind and genlight objects
  • rraf() 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
    #81 for details.

MISC

  • mlg.filter() now defaults to using diss.dist()
  • default threshold for filter_stats() is now 1e+6
  • mlg.filter() now returns a list instead of a pairlist
  • the "hist" argument for poppr() is now deprecated in favor of "plot"
  • documentation improvements
  • the show method for snpclone objects now looks distinct from genlight
  • genlight objects no longer get passed to missingno() in filter_stats()
  • filter_stats() now returns invisibly when plot = TRUE; see
    #87 for details.

BUG FIX

  • When supplied an object with no strata, clonecorrect() will default to
    strata = NA.
  • read.genalex() will no longer fail if missing data is not coded as zero;
    see #84 for details
  • missingno() no longer removes genotypes AT specified threshold;
    see #90 for details

poppr version 2.1.0

08 Dec 06:51
Compare
Choose a tag to compare

poppr 2.1.0

IMPROVEMENTS

  • win.ia and samp.ia gain a significant speedup thanks to Jonah Brooks
    implementing the code in C.
  • The internal code for the genotype_curve has been implemented in C for a 10x
    increase in speed.

NEW FEATURES

  • poppr.msn, bruvo.msn, and plot_poppr_msn gain the ability to take
    character vectors for color palettes. See issue #55 for details.
  • plot_poppr_msn returns the modified graph.
  • All functions related to Bruvo's distance can now take a named vector of
    repeat lengths in any order. See issue #61 for details.
  • aboot gains the argument strata so that you can automatically convert genind
    to genpop.
  • genotype_curve can now take in loci objects from pegas.
  • You can now specify the maximum number of loci to analyze in 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
  • 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.

NEW FUNCTIONS

  • 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.

NEW TRADITIONALISTS

  • because we're through being cool.

MISC

  • Documentation for genclone and snpclone classes are more coherent.
  • Accessors added for internal MLG objects (for developers).
  • The genotype accumulation curve displays the iteration and locus number
    instead of a progress bar.
  • The genotype accumulation plot is now scaled from 0 to the number of observed
    mlgs.
  • Documentation for poppr.amova no longer references the "hierarchy" slot.

BUG FIX

  • Single locus data sets can now be read in with read.genalex. This was
    brought up in issue #58
    (Thanks to Nick Wong for spotting it).
  • A bug in informloci where the MAF argument wasn't being applied to P/A data
    has been fixed.
  • Printing of genclone objects with mixed ploidies previously reported
    erroneously due to a sorting error. This has been fixed.
  • Edge case where a missing cell in the genalex matrix was interpreted as a
    literal "NA" was fixed.
  • msn functions now return nodes that are correctly named. See Issue #66
    for details.

poppr version 2.0.2

19 Jul 20:57
Compare
Choose a tag to compare

poppr 2.0.2

BUG FIX

  • Definition of Hexp was fixed. It originally was mis-calculated, inflating the metric. It is now correctly calculated and documented. More information at issue #47

poppr version 2.0.1

15 Jul 18:06
Compare
Choose a tag to compare

poppr 2.0.1

BUG FIX

  • Memory leak with Bruvo's distance was fixed by @JonahBrooks in 90facb4 (issue #40)
  • Cutoff field now works for distances other than dissimilarity in imsn (issue #41)
  • Switching between data sets no longer shows an error in imsn
  • read.genealex can now correctly import missing data for diploids (issue #42)

NEW FEATURES

  • Startup message now tells you if poppr was compiled with OMP support.