Skip to content

v1.1.0

Compare
Choose a tag to compare
@JoepVanlier JoepVanlier released this 17 May 16:01
· 3 commits to release/1.1 since this release

New features

  • Enabled adding KymoTrackGroup instances 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. See the kymotracking tutorial for more information.
  • Added 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 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.

Bug fixes

  • 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 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 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.

Improvements

  • Improve API description of the channel data in a default FdCurve.
  • 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.
  • Silenced false positive warnings about the optimization violating the bound constraints. Prior to this change, dwell time analysis would produce warnings about the optimizer exceeding bounds. These excursions beyond the bound are very small and have no effect on the model.
  • Parameters corresponding to Gaussian refinement are now preserved when two refined tracks are concatenated.
  • Set the minimum value for the Min length slider in the Kymotracking widget to 2.