Skip to content

Releases: molpopgen/fwdpp

fwdpp 0.6.1

19 May 22:10
Compare
Choose a tag to compare

Maintenance release fixing the following two bugs:

  • A bug that resulted in the failure to transmit a mutation if it was on parental gamete 2 AND its position equalled the
    left edge of a recombinant interval has been fixed. The bug was issue
    134
    and it was fixed via PR
    135
    .
  • A bug in fwdpp::update_mutations was fixed via PR
    132
    .

The following features were added:

  • fwdpp::compact_mutations was added, which reorganizes data structures for better memory access, thus improving
    performance. When used appropriately, significant run time improvements are possible.

The following API issues were addressed:

  • The initialization of gamete counts in fwdpp::popbase is now independent of ploidy. PR 136.

fwdpp 0.6.0

14 Apr 22:19
Compare
Choose a tag to compare

This is a major release. Several new features, lots of code improvements. Too much to list here, so see the release notes.

fwdpp 0.5.7

22 Sep 21:11
Compare
Choose a tag to compare

This release has several API improvements. A big one is #55, which merges mutation and recombination into a single algorithm, improving performance in simulations where the probability that an offspring's copy of a region is both mutated and recombined is high.

Other changes:

  • License change from GPL2 to GPL3
  • The unit test suite is now compiled with warnings enabled. As a result, several warnings were silenced, including one
    introduced in PR55 that would have mattered!. PR63
  • API to KTfwd::sample_diploid was updated to removed an unused type as a result of PR54. PR63
  • Gametes can now be constructed from tuples. PR62
  • KTfwd::popgenmut, KTfwd::generalmut, and KTfwd::generalmut_vec may now be constructed from tuples. PR59
  • Travis build system now skips OS X builds, tries more GCC versions as well as C++11 and C++14.
    PR60 and PR61.
    We are skipping OS X because there have been stability problems with the Travis CI infrastructure for that platform.
    We would liked to have included Linux/clang tests for this release, but hit road blocks that we cannot reproduce on our
    local machines.
  • Population objects from sugar layer can now be constructed with pre-calculated diploids, gametes, and mutations.
    PR56.
  • Mutation and recombination are now merged into one path. See fwdpp/mutate_recombine.hpp. The entry points into the
    old API are marked deprecated. This addresses issue Issue 54 via pull request PR55.
  • Travis builds using miniconda now use -Wl,-rpath when linking to dependencies, solving run-time link errors during "make check" on OS X.

Many API fixes

17 Jul 18:49
Compare
Choose a tag to compare

This release addresses several lingering API issues in fwdpp. It also breaks API compatibility for multi-locus simulations, but it also makes them more flexible.

  • Issue #51 resolved.
  • API issue #50 resolved. The KTfwd::GSLrng_t is no longer copy-constructible.
  • API issue #48 is addressed. This is an API change breaking backwards compatilibity for multi-locus/region simulations. The new API allows more flexibility in modeling interlocus/region crossovers. The API for KTfwd::sample_diploid is changed for multi-locus/region sims. Two functions, KTfwd::make_poisson_interlocus_rec and KTfwd::make_binomial_interlocus_rec, return vectors of callbacks bound to the two new structs. commit
  • API issue #49 is addressed. The changes maintain compile-time API compatibility with previous library versions.
  • Refactored KTfwd::extensions::discrete_rec_model and KTfwd::extensions::discrete_mut_model to use PIMPL idiom and be
    default-constructible. commit
  • Extend concept of regions to multi-locus sims via extensions::bind_vec__drm and extensions::bind_vec::dmm. commit
  • extensions::discrete_mut_model::make_mut now takes a pointer to the generation, allowing a single point of binding rather than binding each generation. commit
  • Exceptions in namespace KTfwd::extensions changed from std::runtime_error to std::invalid_argument where appropriate.
  • Fix bug in examples/HOC_ind.cc affecting (improper) recycling of fixations during the simulation. commit
  • KTfwd::data_matrix is now based on std:int8_t instead of char.

Lots of updates. API change for fitness functions.

11 Apr 16:34
Compare
Choose a tag to compare
  • Added KTfwd::sugar::multiloc::locus_boundaries and simplified API in fwdpp/sugar/sampling.hpp, resolving #47.
  • Refactor namespace KTfwd::traits, resolving #46.
  • Streamline API for fitness functions, resolving #45.
  • Resolving #45 allows us to simplify how custom diploid types are defined. See @ref md_md_customdip
  • Test suite fixtures improved
  • All source files reformatted using clang-format
  • Build system generation of package version numbers improved
  • fwdpp/version.hpp added and is auto-generated by build system
  • fwdpp/sugar/matrix.hpp now included by fwdpp/sugar/sugar.hpp
  • Fix forwarding of constructor arguments during mutation recycling.
  • python_examples/fwdpp_pybind11.cc was updated to account for population type class hierarchy added in 0.5.3.

New sampling method

14 Dec 17:52
Compare
Choose a tag to compare
  • fwdpp/sugar/matrix.hpp was added, providing functions for returning diploid haplotype/genotype data as a 1-d array.
  • Functions in fwdpy/sugar/sampling.hpp are now more flexible with the integral types used to specify specific sets of diploids.
  • Fixed API bugs in KTfwd::sample_separate for the case of multi-locus/region simulations. These errors resulted in compilation failure, and therefore it was impossible for results to have been affected.

1/2 the RAM!!!

28 Oct 18:33
Compare
Choose a tag to compare
  • Streamline internal details of crossing over
  • Fix issue #43
  • KTfwd::change_neutral no longer tries to update extinct gametes.
  • Single-argument constructors marked explicit for types inheriting from KTfwd::popbase
  • Added an additional overload of KTfwd::infsites::operator()
  • The integer type stored by a gamete and used to index mutations was changed from std::size_t to std::uint32_t. This change halves RAM use and has no other side-effects other than limiting the number of possible mutations in a simulation to 2^32, which is too many to store on a typical cluster node anyways.

There are also several changes to the build setup and Travis CI:

  • Travis CI is now based on miniconda, taking advantage of bioconda/libsequence.
  • Travis CI now only tests GCC on OS X, as bioconda/libsequence is built with that compiler
  • "make" now makes fwdppConfig, all examples, and all unit tests, provided that dependencies are present. The examples and unit tests are not installed.
  • "make check" now runs the unit tests

Minor update

26 Aug 23:57
Compare
Choose a tag to compare

0.5.2

  • Documentation updates, finally! The tutorials, etc., have been brought up to date.
  • Missing include of cassert added to fwdpp/internal/recycle.hpp
  • Serialization code streamlined. Lots of redundant code was removed. The biggest changes are that std::runtime_error can be thrown from low-level functions. Also, KTfwd::serialize can now work with any stream type whose public interface is compatible with std::istream, and KTfwd::gzserialize is simply a convenience wrapper (it still works via an in-memory serialization).
  • Test suite refactored. The code has moved from unit/ to testsuite/, and attempts to better separate unit tests from
    integration tests. Further, fixtures are used to improve code reuse in testing.
  • operator== added to KTfwd::generalmut and KTfwd::generalmut_vec

Bug fix

11 Jul 21:47
Compare
Choose a tag to compare

This is a small bigfix release. There were performance improvements planned for this release,
but we will hold off in favor of getting this fix out.

  • Fix for #41 in v0.5.0 did not get applied to the experimental version of sample_diploid for multi-locus sims. That has been fixed.

Bug fix + new features

06 Jul 19:58
Compare
Choose a tag to compare
  • Example file examples/K_linked_regions_multilocus.cc added
  • Streamlined KTfwd::fwdpp_internal::multilocus_rec_mut
  • The sugar types KTfwd::singlepop, KTfwd::metapop, and KTfwd::multiloc were refactored to inerit from KTfwd::sugar::popbase.
  • Fixed error in KTfwd::multiloc where gametes were initialized with the incorrect count
  • KTfwd::gamete_data_sane_multiloc was added to fwdpp/debug.hpp
  • Issue #41 fixed. This issue affected simulations using the multi-locus API, and all simulations using that API need to be rerun. Sorry.
  • The experimental API to sample_diploid was made more flexible via a new header file, fwdpp/experimental/dispatch.hpp. * This addition allows better fine-tuning of "rules" classes
  • The experimental API now takes rvalue refrence (&&) instead of const reference (const &) for rules classes. This allows the rules to be written and be more idiomatic, avoiding use of mutable variables.
  • Add overload of KTfwd::haplotype_dependent_fitness::operator() for custom diploids