Skip to content

Releases: vanvalenlab/deepcell-tracking

0.6.4

21 Dec 00:57
0adc52d
Compare
Choose a tag to compare

🚀 Features

Add support for ISBI inputs to the metrics package @msschwartz21 (#107)

This addition to the metrics package makes it possible to directly input ISBI style outputs into our metrics pipeline. This simplifies the process of benchmarking against competitor models which tend to output ISBI style tracks.

🐛 Bug Fixes

Implement correct usage of crop parameter in CellTracker @msschwartz21 (#108)
  • Corrects an error where the crop parameter was not being set during tracking and inference
  • Removes deprecated post processing functions from the CellTracker

🧰 Maintenance

REL: pin numpy and update deepcell-toolbox dependency @rossbar (#110)

A patch release to upper-bound numpy to prevent errors related to expired scalar deprecations. Bumps the deepcell-toolbox dependency as well, which already has more comprehensive fixes for this issue.

0.6.3

14 Oct 18:04
e79aace
Compare
Choose a tag to compare

🐛 Bug Fixes

Correct keys in `correct_shifted_divisions` @msschwartz21 (#105)

Different key names were used in correct_shifted_divisions which caused issues in some downstream analyses in the model-registry. This PR standardizes all keys in the metrics package to avoid confusion.

0.6.2

06 Oct 19:09
2252b28
Compare
Choose a tag to compare

🐛 Bug Fixes

Classify divisions that are +/- 1 frame as correct @msschwartz21 (#103)

Recent reviews of tracking predictions have identified a failure mode in the current metrics packages. Different segmentation predictions can sometimes lead to a cell dividing in one frame before or after the frame assigned to the division in the ground truth. Currently this leads to that division counting as both a false positive and a missed division. This PR introduces a new metrics function that identifies these events and corrects the metrics to classify this division as correct. Additionally a new metrics class for tracking (TrackingMetrics) has been introduced to coordinate running all of the necessary metrics functions.

In the current test split, applying the new metrics pipeline led to the following changes in metrics:

Metric Old New
Total divisions 181 181
Correct divisions 139 154
False negative division 27 13
False positive division 40 26
Mismatch division 15 14
Division Recall 0.84 0.92
Division Precision 0.78 0.86
Division F1 0.81 0.89
Mitotic branching correctness 0.67 0.8
Fraction missed divisions 0.15 0.07
Fix bug in calculation of fraction missed divisions @msschwartz21 (#102)

Closes #100

🧰 Maintenance

Bump to version 0.6.2 @msschwartz21 (#104)

0.6.1

03 Jun 23:56
ea01e75
Compare
Choose a tag to compare

🧰 Maintenance

Bump to 0.6.1 @msschwartz21 (#99)
Enable option for fixed size crops in get_image_features @vanvalen (#98)

What

Add a flag to get_image_features to allow for doing fixed sized crops rather than crop and resize.

Why

Crop and resize removes information about cell size, which is useful for cell tracking and also learning dynamic representations of cell behavior.

0.6.0

03 Jun 19:04
e30cbad
Compare
Choose a tag to compare

🚀 Features

Update metrics for evaluating tracking performance @msschwartz21 (#95)

This PR introduces several substantial changes

  • Reorganization of functions with the addition of two new modules: metrics and trk_io. Backwards compatible imports were maintained whenever possible.
    • load_trks, trk_folder_to_trks, save_trks, save_trk, save_track_data from utils to trk_io
    • match_nodes, contig_tracks from isbi_utils to utils
    • classify_divisions, calculate_summary_stats from isbi_utils to metrics
    • benchmark_division_performance deprecated in isbi_utils and renamed to benchmark_tracking_performance in metrics
  • Fixes bugs in how we built graphs of tracks and compared between ground truth and predictions
    • Originally we converted lineage data to isbi format prior to generating a graph. This intermediate step unintentionally removed any discontinuities that were present in a lineage. There is now a new function deepcell_tracking.utils.trk_to_graph that faithfully converts lineage data to a graph without any intermediate steps.
    • The use of a node_key generated by match_nodes unintentionally dropped lineages if more than one predicted lineage was mapped onto a single ground truth lineage. Instead of mapping cell ids when we create the graph, we instead map cell ids on the fly when we are comparing graphs which eliminates the risk of accidentally dropping lineages from consideration.
  • Introduces Association Accuracy as a new metric that evaluates how many edges in the tracking graph are correctly assigned. This score discounts edges involved with a division, but does detect discontinuities in lineages.
  • Introduces Target Effectiveness as a new metric that evaluates how many cells in a lineage are correctly assigned to the lineage.

🧰 Maintenance

Bump version to 0.6.0 @msschwartz21 (#97)

0.5.7

17 May 17:35
31d6a42
Compare
Choose a tag to compare

🧰 Maintenance

Drop support for python 3.6 and bump deepcell-toolbox requirement @msschwartz21 (#94)

Updates deepcell-toolbox to ~=0.11.2.

0.5.6

04 May 03:06
ec3fd4e
Compare
Choose a tag to compare

🐛 Bug Fixes

Add additional metrics to report in classify_divisions @msschwartz21 (#92)

Addresses #91 and bumps version to 0.5.6 for the next patch release after this PR is complete. I tested the new functionality in the model-registry and those updates can be seen in this branch: https://github.com/vanvalenlab/model-registry/compare/mrgn/tracking-evaluation. I added rounding after running this test, but decimals will now be truncated to 2 digits.

🧰 Maintenance

Bump copyright to 2022 and improve error message @msschwartz21 (#90)

0.5.5

13 Jan 03:20
Compare
Choose a tag to compare

🐛 Bug Fixes

Update `utils.trk_stats` to return a dictionary of stats as output @msschwartz21 (#89)

The trk_stats function originally printed stats, but did not return them to the user. This PR updates the function to return a dictionary of statistics and makes it possible to input X, y and lineages instead of loading the data from filename.

0.5.4

19 Nov 21:12
52974c7
Compare
Choose a tag to compare

🐛 Bug Fixes

Fix bug in `is_valid_lineage`; daughters can be \< parent. @willgraf (#88)

No need to check if the daughters are in all_cells, as we check that for each lineage. Just check that the daughter is in the lineage.

Don't return False as a shortcut, just warn and continue to the next label. This will enable all warnings to be shown.

0.5.3

18 Nov 05:57
0b6a369
Compare
Choose a tag to compare

🐛 Bug Fixes

Remove `pathlib` from `setup.py`; fix build issues @zverozabr (#86)

Fixes #85

🧰 Maintenance

Bump version to 0.5.3. @willgraf (#87)