Skip to content

Releases: molpopgen/fwdpp

Point release

02 Dec 02:34
Compare
Choose a tag to compare

Includes #326, which adds runtime checking that genetic_map_unit objects with integer types have valid lengths.

Fix macOS builds

24 Nov 22:11
Compare
Choose a tag to compare

Same as 0.9.0, but with fixes to build on macOS.
Add macOS github action for CI.

Big release

24 Nov 17:29
Compare
Choose a tag to compare

Quite a big release, as it has been far too long. The details are collected under the 0.9.0 milestone.

Perhaps the coolest thing is the new manual, which we will be improving in the near future!

Two issues fixed

23 Apr 23:44
Compare
Choose a tag to compare

Another big release

12 Mar 20:32
Compare
Choose a tag to compare

See the change log for details in the docs.

This release greatly reduces RAM needs for tree sequence simplification.

Big release!

02 Jun 19:43
Compare
Choose a tag to compare

This release has a lot of big changes.

GitHub Issue 186 was fixed.
The "genome length" was not correctly accounted for in fwdpp::ts::mutate_tables. The
problem was fixed in this commit.

PR 187 Improves the performance of serializing
fwdpp::ts::table_collection objects. The output files are slightly bigger, but the IO is faster. This changes the
value of fwdpp::ts::TS_TABLES_VERSION from 1 to 2, and we retain the ability to read in "version 1" files.

PR 178 introduced several improvements related to tree sequence
recording, as well as cleaning up a variety of other, smaller, issues:

  • Added fwdpp::ts::generate_offspring, which is implemented in terms of fwdpp::mutate_recombine, and returns the
    data structures needed for edge recording after creating an offspring individual. This new function streamlines
    the API for "meiosis", with the same function applicable to fwdpp::slocuspop and fwdpp::mlocuspop objects.
  • The constructor for fwdpp::poptypes::mlocuspop is changed to require the locus boundaries. This change breaks
    API
    . The result is a much safer type.
  • Added fwdpp::GSLrng_mt as a typedef for a mersenne twister
  • Added fwdpp::zero_out_gametes, which is a convenience functions for a routine step needed each generation
  • Added fwdpp::mendel, which is a convenience function for a routine step needed each generation
  • Made updates to fwdpp::make_genetic_parameters, fixing the perfect forwarding and adding the ability to have
    custom replacements for the functionality of fwdpp::mendel.
  • The constructor of fwdpp::gamete_base taking an unsigned int is now marked explicit. (Having it non-expicit was a
    bone-headed error that made an initial bug in fwdpp::zero_out_gametes very difficult to track down. See this
    commit
    .
  • Adds example program wfmlts.cc
  • wfts.cc and wfmlts.cc now share a lot of common code, showing the power of a generic API.
  • Fixed a bug in lambda captures affecting some test suite fixtures. commit
  • Added a new test suite module that stress-tests fwdpp::ts::generate_offspring for the multi-locus case. The new test
    suite fixtures are also used as more/better unit tests of fwdpp::fwdpp_internal::multilocus_rec_mut.

Other changes:

  • fwdpp::multiplicative_diploid and fwdpp::additive_diploid constructors have been refactored to use strong types
    to distinguish trait from fitness calculations. Breaks API PR 175
  • Many types have been moved into the main library. Breaks API due to change of header names PR 176, PR 180
  • Added fwdpp::genetic_parameters. PR 177
  • Fixed issue 182
  • Fixed issue 181
  • Constructors for fwdpp::ts::table_simplifier and fwdpp::ts::table_collection marked explicit where appropriate.
  • Fixed error in return value of fwdpp::general_rec_variation::operator(), and fwdpp::mutate_recombine now explicitly
    tests for correct use of sentinel values. PR 184
  • The recycling machinery was moved from an internal namespace to the main namespace. The API was refactored in terms
    of strong types fwdpp::flagged_mutation_queue and fwdpp::flagged_gamete_queue. PR 185
  • Fixed bug in mutating tables where the genome length is not 1.0. Issue 186.

fwdpp 0.7.3

28 Nov 01:25
Compare
Choose a tag to compare
  • The return value of fwdpp::ts::table_simplifier::simplify has been changed to include a list of indexes to mutations
    that are preserved by simplification. This return value may be passed to a new overload of fwdpp::ts::make_mut_queue
    that avoids tree traversal entirely. This new overload can result in big speedups for simulations where ancestral
    samples are being recorded. However, it only applies for simulations where it is "ok" to keep fixations around.
    PR 167
  • fwdpp::sugar::popbase::mcounts_from_preserved_nodes added, mostly out of convenience, so that simulations doing
    tree sequence recording don't have to remember to create the extra variable.
  • operator==/!= are now inline for fwdpp::ts::edge, fwdpp::ts::node, fwdpp::ts::mutation_record, and
    fwdpp::ts::table_collection

Fix two bugs in ts::table_collection

13 Nov 16:11
Compare
Choose a tag to compare

This release fixes some issues with table_collection and changes the behavior of mutate_tables to avoid an expensive preprocessing step when the mutation rate is zero:

  • Resolve a serialization and comparison issue with fwdpp::ts::table_collection PR 165.
  • fwdpp::ts::mutate_tables now returns immediately if the mutation rate is not positive.

Tweaking the tree sequence API

12 Nov 02:01
Compare
Choose a tag to compare

Point release fixing some API and UI issues with tree sequence recording. Several documentation updates for
these functions, too.

  • fwdpp::ts::table_collection is now equality-comparable. PR 153
  • Stricter checking of sample list validity during simplification and tree traversal. PR 159
  • fwdpp::ts::marginal_tree now tracks number of samples. fwdpp::ts::generate_data_matrix no longer adds fixed variants
    to the output. PR 160
  • fwdpp::ts::flag_mutations_for_recycling has been refactored to allow for preserving selected fixations and limited
    fixation recording. PR 162

Tree sequence support

24 Oct 17:27
Compare
Choose a tag to compare

This is a major release, introducing namespace fwdpp::ts with support for tree sequence recording during simulations.
I owe Jerome Kelleher a big thanks for guiding me through some of the details related to several of the finer points of
the simplification algorithm as well as the tree traversal schemes from his 2016 paper describing msprime.

  • Support for tree sequences added PR 151 PR 152
  • fwdpp::data_matrix is moved into the main library. PR 118
  • fwdpp::data_matrix is refactored so that the contiguous dimension corresponds to variable sites.PR 142
  • Fitness models do a better job of validating input parameters.PR 140
  • Types in fwdpp::extensions now make their weight vectors viewable. PR 141
  • Various pull with some example programs were fixed PR 149
  • A debug namespace was added to the library. PR 150