Skip to content

Releases: harrispopgen/mushi

v1.1.1

31 Jan 22:08
407307b
Compare
Choose a tag to compare

Patch release to allow pypi publication, using forked sdist of prox-tv dependency.

What's Changed

Full Changelog: v1.1.0...v1.1.1

v1.1.0

31 Jan 09:10
a58d75a
Compare
Choose a tag to compare
  • Python 3.7 or higher is supported (previously only 3.7 was supported)
  • A few bug fixes
  • Improved code formatting and testing
  • Simplification of developer install and tools

Full Changelog: v1.0.2...v1.1.0

v1.0.2: Docstrings and doctests (#71)

05 Feb 04:08
27e3a84
Compare
Choose a tag to compare
  • Added extensive docstrings and doctests for generating API docs
  • No new features or breaking API changes, although a few helper methods are now private

v1.0.1

02 Feb 23:34
Compare
Choose a tag to compare

This small patch release simplifies kSFS instantiation when X is a 1D SFS vector (it is no longer necessary to specify mutation_types in this case).

The documentation has also been revised in various places.

v1.0.0

01 Feb 20:08
Compare
Choose a tag to compare

Summary

This major version release brings several new features and API changes to improve usability, and accommodate demography-only analyses.

  • Inference for demography and mush is now done with two independent methods: kSFS.infer_eta and kSFS.infer_mush. See API docs for details.
  • Inference of ancestral state misidentification rate, for both sample frequency and mutation type, obviates frequency masking, which has been removed.
  • More interpretable model selection based on trend penalties. A user can supply as many trend penalties as they wish. A trend penalty of order k will encourage order k polynomial pieces in the solution (e.g. k=0 for piecewise constant). Trend penalties of different orders can be combined to get mixed trends. See API docs on the the inference methods above for details.
  • Simplified simulation notebook and updated Quickstart (see docs).

Under the hood

  • Rewrite of mushi.optimization module with abstraction and inheritance to avoid a lot of duplicated code. Added a trend filtering optimizer class based on the recursive ADMM of Ramdas and Tibshirani (this serves as the prox operator in the outer optimization routine when fitting demography or mush). I was able to get this running quite fast by caching Cholesky decompositions and using the fast prox-tv module for dual variable updates. I find that about 20 iterations of ADMM are plenty (although the default is 100).
  • Consolidated SFS folding code into a function in the utils model
  • Introduced a frequency misidentification operator and a mutation type misidentification operator to our model of the expected kSFS, and misidentification rate r that is a learned parameter for eta inference, and a vector of rates for MuSH inference.
  • It is no longer necessary to specify the time grid for inference. If no grid is specified, a reasonable default grid is constructed based on the TMRCA under a constant history. To specify the grid, use the parameters pts and ta when running kSFS.infer_eta().
  • Dedicated loss function model mushi.loss_functions. Inference can be done using any loss function from this module.

v0.2.2: 63 true divide (#65)

23 Dec 03:22
24cc225
Compare
Choose a tag to compare

A second 1-character patch to squash a bug in plotting integer-valued folded SFS vectors

v0.2.1

18 Dec 00:26
40552ce
Compare
Choose a tag to compare

A tiny 1-character patch to squash a bug in folded SFS inference from integer-valued SFS vectors

v0.2.0

03 Sep 03:40
Compare
Choose a tag to compare

New feature: folded SFS

Thanks to work by @apragsdale, demographic history can be inferred from the folded SFS using reference-polarized data instead of ancestral-state-polarized data. See the new folded option for kSFS.infer_history() and kSFS.plot_total

patch

15 Jun 07:13
Compare
Choose a tag to compare

exclude docs, docsrc, etc. from package build

First release of package 🍄

15 Jun 05:36
Compare
Choose a tag to compare

First release of the mushi python package, and artifacts referenced in manuscript