Mushi

Latest version: v1.1.1

Safety actively analyzes 619647 Python packages for vulnerabilities to keep your Python projects secure.

Scan your dependencies

Page 1 of 2

1.1.1

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

What's Changed
* Use forked prox-tv sdist by WSDeWitt in https://github.com/harrispopgen/mushi/pull/77


**Full Changelog**: https://github.com/harrispopgen/mushi/compare/v1.1.0...v1.1.1

1.1.0

- 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**: https://github.com/harrispopgen/mushi/compare/v1.0.2...v1.1.0

1.0.2

- Added extensive docstrings and doctests for generating [API docs](https://harrispopgen.github.io/mushi/index.html)
- No new features or breaking API changes, although a few helper methods are now private

1.0.1

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.

1.0.0

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](https://harrispopgen.github.io/mushi) 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](https://harrispopgen.github.io/mushi) on the the inference methods above for details.
- Simplified simulation notebook and updated Quickstart (see [docs](https://harrispopgen.github.io/mushi)).

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.

0.2.2

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

Page 1 of 2

© 2024 Safety CLI Cybersecurity Inc. All Rights Reserved.