Changelog (rough)¶
0.0.4-rc3¶
fwdpy.fdwpy.tidy_trajectories()removed.- C++ back-end and Cython class definition of
fwdpy.fwdpy.FreqSamplerrefactored. New version is much, much faster! fwdpy.fwdpy.FreqSampleris now able to output directly to SQLite database files. There is also a new member function called “fetch” that allows filtering of trajectories before returning them as a Pandas DataFrame object.- fwdpy.numeric_gsl added, providing a Cython (nogil) API to some numeric operations implemented in terms of the GSL
0.0.4 (through release candidate 2)¶
Changes to the Python side:
- “Evolve” functions are now much more generic due to fitness function objects and temporal sampler objects (see below)
- The application of temporal samplers is now consistent for all types of simulation (“pop-gen”, “quant-trait”, etc.)
- Added ability to use custom fitness functions!!! On the Python side,
these work via
fwdpy.fwdpy.SpopFitnessandfwdpy.fwdpy.MlocusFitness - Class names now more “Pythonic”. This will break existing scripts.
- Add fwdpy.demography module.
- Add
fwdpy.fwdpy.MlocusPop - Add
fwdpy.fwdpy.MlocusPopVec - Add concept of a temporal sampler via
fwdpy.fwdpy.TemporalSampler. - Add temporal sampler objects
fwdpy.fwdpy.NothingSampler,fwdpy.fwdpy.QtraitStatsSampler,fwdpy.fwdpy.PopSampler,fwdpy.fwdpy.VASampler,fwdpy.fwdpy.FreqSampler - Add function
fwdpy.fwdpy.apply_sampler() - Add
fwdpy.fwdpy.tidy_trajectories(), which really speeds up coercion of mutation frequency trajectories to a pandas DataFrame. - Add
fwdpy.fwdpy.hapmatrix()andfwdpy.fwdpy.genomatrix() - Added views of fixed mutations via
fwdpy.fwdpy.view_fixations() - Better Python3 compatibility
- Add support to serialize/deserialize
fwdpy.fwdpy.MlocusPop - Streamline implementation of the various
fwdpy.fwdpy.PopVecclasses. They no longer contain two containers, and they yieldfwdpy.fwdpy.PopTypeobjects upon iteration.
Changes to the Cython/C++ back end:
- diploid fitness now defaults to 1 instead of 0
- Bug fixed in get_gamete in views.pyx. This affected the output of almost all “views” functions except those viewing just mutations.
- cythonGSL is now required. We expect to use more GSL in this package, and so it makes sense to not reinvent the wheel.
- Massive reduction in code base
- Update to Cython 0.24.0
- Generic temporal samplers and fitness functions are now supported.
- Expose more fwdpp types for multi-locus/region simulations
- Expose fwdpp’s fitness function objects site_dependent_fitness, additive_diploid, and multiplicative_diploid. Call operators (e.g. operator()) are only exposed for custom diploids.
- More unit tests of sampling and “views”
- Update how samples are taken from populations, reflecting a bug fix in fwdpp 0.4.9 that made the Cython wrappers in this package incorrect.
- Population objects in types.hpp now have serialization/deserialization functions.
- Single-parameter constructors for population objects in types.hpp are now “explicit”.
0.0.3¶
- Change from std::thread to std::async for concurrency.
- The asynchronous futures allow for the same “evolve” function to be used in different contexts.
- The different contexts include calculating things from the population every “k” generation or doing nothing.
- These things are implemented as classes with call operators and a minimal set of API requirements.
- Fixed a bug in “mutation views”
- Better parameter checking for various “evolve” functions
- Source code re-organized so that all header files are installed