Skip to content

Commit

Permalink
release: release Pylake v1.1.0
Browse files Browse the repository at this point in the history
  • Loading branch information
JoepVanlier committed May 17, 2023
1 parent 2fcf570 commit 760f9c1
Show file tree
Hide file tree
Showing 3 changed files with 13 additions and 11 deletions.
20 changes: 10 additions & 10 deletions changelog.md
Original file line number Diff line number Diff line change
@@ -1,26 +1,26 @@
# Changelog

## v1.1.0 | t.b.d.
## v1.1.0 | 2023-05-17

#### New features

* Added [`DwelltimeModel.profile_likelihood()`](https://lumicks-pylake.readthedocs.io/en/latest/_api/lumicks.pylake.DwelltimeModel.html#lumicks.pylake.DwelltimeModel.profile_likelihood) for calculating profile likelihoods for dwell time analysis. These can be used to determine confidence intervals and assess whether the model has too many parameters (i.e., if a model with fewer components would be sufficient).
* Enabled adding [`KymoTrackGroup`](https://lumicks-pylake.readthedocs.io/en/v1.1.0/_api/lumicks.pylake.kymotracker.kymotrack.KymoTrackGroup.html) instances with tracks from different source kymographs. *Note that certain features (e.g., [`KymoTrackGroup.ensemble_msd()`](https://lumicks-pylake.readthedocs.io/en/v1.1.0/_api/lumicks.pylake.kymotracker.kymotrack.KymoTrackGroup.html#lumicks.pylake.kymotracker.kymotrack.KymoTrackGroup.ensemble_msd) and `KymoTrackGroup.ensemble_diffusion("ols")`) require that all source kymographs have the same pixel size and scan line times.* See the [kymotracking tutorial](https://lumicks-pylake.readthedocs.io/en/v1.1.0/tutorial/kymotracking.html#global-analysis) for more information.
* Added [`DwelltimeModel.profile_likelihood()`](https://lumicks-pylake.readthedocs.io/en/v1.1.0/_api/lumicks.pylake.DwelltimeModel.html#lumicks.pylake.DwelltimeModel.profile_likelihood) for calculating profile likelihoods for dwell time analysis. These can be used to determine confidence intervals and assess whether the model has too many parameters (i.e., if a model with fewer components would be sufficient). See the [population dynamics tutorial](https://lumicks-pylake.readthedocs.io/en/v1.1.0/tutorial/population_dynamics.html#profile-likelihood-based-confidence-intervals) for more information.
* Added functionality to split tracks in the Kymotracking widget.
* Added functionality to provide minimum and maximum observation times per data point to `DwelltimeModel` and `DwelltimeBootstrap`.
* Enabled adding `KymoTrackGroup`s with tracks from different source kymographs. *Note that certain features (e.g., `KymoTrackGroup.ensemble_msd()` and `KymoTrackGroup.ensemble_diffusion("ols")`) require that all source kymographs have the same pixel size and scan line times.*
* Added functionality to provide minimum and maximum observation times per data point to [`DwelltimeModel`](https://lumicks-pylake.readthedocs.io/en/v1.1.0/_api/lumicks.pylake.DwelltimeModel.html) and [`DwelltimeBootstrap`](https://lumicks-pylake.readthedocs.io/en/v1.1.0/_api/lumicks.pylake.population.dwelltime.DwelltimeBootstrap.html).

#### Bug fixes

* Fixed bug that could lead to mutability of `Kymo` and `Scan` through `.get_image()` or `.timestamps`. This bug was introduced in `0.7.2`. Grabbing a single color image from a `Scan` or `Kymo` using `.get_image()` returns a reference to an internal image cache. This numpy array was write-able and modifying data in the returned image would result in future calls to `.get_image()` returning the modified data rather than the original `Kymo` or `Scan` image. Timestamps obtained from `.timestamps` were similarly affected. These arrays are now returned non-writeable.
* Fixed a bug that would round the center of the window to the incorrect pixel when using `KymoTrack.sample_from_image()`. Pixels are defined with their origin at the center of the pixel, whereas this function incorrectly assumed that the origin was on the edge of the pixel. The effects of this bug are larger for small windows. For backward compatibility this bugfix is not enabled by default. To enable the bugfix specify `correct_origin=True` as a keyword argument to the method.
* Fixed a bug that would round the center of the window to the incorrect pixel when using [`KymoTrack.sample_from_image()`](https://lumicks-pylake.readthedocs.io/en/v1.1.0/_api/lumicks.pylake.kymotracker.kymotrack.KymoTrack.html#lumicks.pylake.kymotracker.kymotrack.KymoTrack.sample_from_image). Pixels are defined with their origin at the center of the pixel, whereas this function incorrectly assumed that the origin was on the edge of the pixel. The effects of this bug are larger for small windows. For backward compatibility this bugfix is not enabled by default. To enable the bugfix specify `correct_origin=True` as a keyword argument to the method.
* Fixed bug that could lead to mutability of [`Kymo`](https://lumicks-pylake.readthedocs.io/en/v1.1.0/_api/lumicks.pylake.kymo.Kymo.html) and [`Scan`](https://lumicks-pylake.readthedocs.io/en/v1.1.0/_api/lumicks.pylake.scan.Scan.html) through `.get_image()` or `.timestamps`. This bug was introduced in `0.7.2`. Grabbing a single color image from a [`Scan`](https://lumicks-pylake.readthedocs.io/en/v1.1.0/_api/lumicks.pylake.scan.Scan.html) or [`Kymo`](https://lumicks-pylake.readthedocs.io/en/v1.1.0/_api/lumicks.pylake.kymo.Kymo.html) using `.get_image()` returns a reference to an internal image cache. This numpy array was write-able and modifying data in the returned image would result in future calls to `.get_image()` returning the modified data rather than the original [`Kymo`](https://lumicks-pylake.readthedocs.io/en/v1.1.0/_api/lumicks.pylake.kymo.Kymo.html) or [`Scan`](https://lumicks-pylake.readthedocs.io/en/v1.1.0/_api/lumicks.pylake.scan.Scan.html) image. Timestamps obtained from `.timestamps` were similarly affected. These arrays are now returned non-writeable.
* Fixed a bug where we passed a `SampleFormat` tag while saving to `tiff` using `tifffile`. However, `tifffile` infers the `SampleFormat` automatically from the datatype of the `numpy` array it is passed. This produced warnings on the latest version of `tifffile` when running the benchmark.
* Ensure that the probability density returns zero outside its support for `DwelltimeModel.pdf()`. Prior to this change, non-zero values would be returned outside the observation limits of the dwelltime model.
* Fixed a bug where `DwelltimeModel.hist()` produces one less bin than requested with `n_bins`.
* Fixed a bug where `lk.dsdna_ewlc_odijk_distance()` erroneously returned a model where force is the dependent variable rather than distance. This bug was introduced in `0.13.2`. Note that `lk.ewlc_odijk_distance()` was unaffected. It was specifically the convenience function with DNA parameters that was affected.
* Ensure that the probability density returns zero outside its support for [`DwelltimeModel.pdf()`](https://lumicks-pylake.readthedocs.io/en/v1.1.0/_api/lumicks.pylake.DwelltimeModel.html#lumicks.pylake.DwelltimeModel.pdf). Prior to this change, non-zero values would be returned outside the observation limits of the dwelltime model.
* Fixed a bug where [`DwelltimeModel.hist()`](https://lumicks-pylake.readthedocs.io/en/v1.1.0/_api/lumicks.pylake.DwelltimeModel.html#lumicks.pylake.DwelltimeModel.hist) produces one less bin than requested with `n_bins`.
* Fixed a bug where [`lk.dsdna_ewlc_odijk_distance()`](https://lumicks-pylake.readthedocs.io/en/v1.1.0/_api/lumicks.pylake.dsdna_ewlc_odijk_distance.html) erroneously returned a model where force is the dependent variable rather than distance. This bug was introduced in `0.13.2`. Note that [`lk.ewlc_odijk_distance()`](https://lumicks-pylake.readthedocs.io/en/v1.1.0/_api/lumicks.pylake.ewlc_odijk_distance.html) was unaffected. It was specifically the convenience function with DNA parameters that was affected.

#### Improvements

* Improve API description of the channel data in a default `FdCurve`.
* Improve API description of the channel data in a default [`FdCurve`](https://lumicks-pylake.readthedocs.io/en/v1.1.0/_api/lumicks.pylake.fdcurve.FdCurve.html).
* Improved fitting performance dwell time analyses by implementing analytic gradient.
* Added lower and upper bounds when fitting dwell time models. This prevents numerical issues that occur when approaching these extremes. Prior to this change, over-parameterized models could encounter numerical issues due to divisions by (near) zero. After this change, amplitudes are constrained to stay between `1e-9` and `1.0 - 1e-9`, while lifetimes are constrained to remain between `1e-8` and `1e8`.
* Provided better initial guess for dwell time models with three or more components. Prior to this change, the dwelltime models involving three components or more would get an initial guess with an average lifetime beyond the mean of the observations.
Expand Down
2 changes: 2 additions & 0 deletions docs/api.rst
Original file line number Diff line number Diff line change
Expand Up @@ -77,10 +77,12 @@ FD Fitting
ewlc_marko_siggia_distance
ewlc_odijk_force
ewlc_odijk_distance
dsdna_ewlc_odijk_distance
twlc_force
twlc_distance
efjc_force
efjc_distance
ssdna_efjc_distance


Kymotracking
Expand Down
2 changes: 1 addition & 1 deletion lumicks/pylake/__about__.py
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
__title__ = "lumicks.pylake"
__version__ = "1.0.0"
__version__ = "1.1.0"
__summary__ = "Bluelake data analysis tools"
__url__ = "https://github.com/lumicks/pylake"

Expand Down

0 comments on commit 760f9c1

Please sign in to comment.