Skip to content
Draft
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
25 commits
Select commit Hold shift + click to select a range
2cfba0d
Fix Xenium data transformation scaling in prep function
ckmah Feb 24, 2025
dbc8e14
experimental/simpler dask bags implementation for point features
ckmah Feb 24, 2025
f8add44
Add experimental point features module with catalog decorator
ckmah Feb 25, 2025
e5d52f9
rename distance functions
ckmah Feb 25, 2025
7c2f698
simplify api for point features, now renamed to measure
ckmah Mar 23, 2025
df24a7b
add more point measures
ckmah Mar 23, 2025
00318e5
add untested shape measures
ckmah Mar 23, 2025
c7a1df0
wip image measures
ckmah Mar 23, 2025
169237e
add logger
ckmah Mar 24, 2025
b8c1ead
generalized dask parallel for labeled images
ckmah Mar 24, 2025
156e868
sklearn dep regression
ckmah Mar 31, 2025
8aacbf4
testing datasets, need to cleanup
ckmah Mar 31, 2025
0c7ffe4
Add pytest configuration and new optimized measurement functions
ckmah Jun 22, 2025
9cd8d69
Add benchmark SVG and JSON files for distance, polarity, moments, and…
ckmah Jul 26, 2025
da56fc3
feat: replace current implementation of features with experimental
ckmah Oct 30, 2025
3c6ff70
refactor: update dependencies and enable feature tests with synthetic…
ckmah Oct 30, 2025
e681e40
Initial plan
Copilot Nov 11, 2025
ed510a2
Initial setup: Fix scipy version constraint for Python 3.12 compatibi…
Copilot Nov 11, 2025
457b3fe
Refactor flux algorithm for sparse matrix storage and chunked writing
Copilot Nov 11, 2025
acbe0f7
Fix function name collision (radius parameter vs imported function)
Copilot Nov 11, 2025
3a9e0b0
Refactor flux to store results as Image2DModel instead of points
Copilot Nov 11, 2025
85b7e19
Fix multiscale image creation with adaptive scale factors
Copilot Nov 11, 2025
76eb897
Enhance flux computation with raster grid creation and SVD model trai…
ckmah Nov 12, 2025
7b3a033
replace test data with synthetic
ckmah Nov 13, 2025
18aa1d1
Merge pull request #192 from YeoLab/copilot/refactor-bt-tl-flux-algor…
ckmah Nov 16, 2025
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
The table of contents is too big for display.
Diff view
Diff view
  •  
  •  
  •  
4 changes: 4 additions & 0 deletions .cursor/rules/python-environment.mdc
Original file line number Diff line number Diff line change
@@ -0,0 +1,4 @@
---
description: Use the conda environment "bento-benchmarks" when running python and notebook scripts.
alwaysApply: false
---
3 changes: 2 additions & 1 deletion .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -146,4 +146,5 @@ requirements-dev.lock
profile.html
profile.json

notebooks/
notebooks/
uv.lock
366 changes: 366 additions & 0 deletions benchmark_20250715_054017-distance-benchmarks.svg
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
366 changes: 366 additions & 0 deletions benchmark_20250716_013043-polarity-benchmarks.svg
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
366 changes: 366 additions & 0 deletions benchmark_20250716_015649-compare-measures-benchmark.svg
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
372 changes: 372 additions & 0 deletions benchmark_20250717_050826.svg
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
366 changes: 366 additions & 0 deletions benchmarks/benchmark_20250711_071602-distance-benchmarks.svg
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
366 changes: 366 additions & 0 deletions benchmarks/benchmark_20250711_071935-polarity-benchmarks.svg
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
366 changes: 366 additions & 0 deletions benchmarks/benchmark_20250711_072423-moments-benchmarks.svg
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
354 changes: 354 additions & 0 deletions benchmarks/benchmark_20250711_073051-ripley-benchmarks.svg
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added benchmarks/benchmark_scaling_analysis.pdf
Binary file not shown.
Binary file added benchmarks/benchmark_scaling_analysis.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added benchmarks/benchmark_summary.pdf
Binary file not shown.
Binary file added benchmarks/benchmark_summary.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
192 changes: 192 additions & 0 deletions benchmarks/distance_benchmarks.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,192 @@
{
"machine_info": {
"node": "clarencesair15.lan",
"processor": "arm",
"machine": "arm64",
"python_compiler": "Clang 18.1.8 ",
"python_implementation": "CPython",
"python_implementation_version": "3.10.16",
"python_version": "3.10.16",
"python_build": [
"main",
"Dec 5 2024 14:20:01"
],
"release": "25.0.0",
"system": "Darwin",
"cpu": {
"python_version": "3.10.16.final.0 (64 bit)",
"cpuinfo_version": [
9,
0,
0
],
"cpuinfo_version_string": "9.0.0",
"arch": "ARM_8",
"bits": 64,
"count": 8,
"arch_string_raw": "arm64",
"brand_raw": "Apple M2"
}
},
"commit_info": {
"id": "0c7ffe4e7b5e034359cae64e42fb8fd8368a15d7",
"time": "2025-06-21T19:36:51-07:00",
"author_time": "2025-06-21T19:36:51-07:00",
"dirty": true,
"project": "bento-tools",
"branch": "daskify-features"
},
"benchmarks": [
{
"group": "distance-benchmarks",
"name": "test_benchmark_distance_stats[small]",
"fullname": "tests/_test_measure_points.py::TestMeasurePoints::test_benchmark_distance_stats[small]",
"params": {
"test_data": "small"
},
"param": "small",
"extra_info": {
"dataset": "small",
"shapes": 100,
"points": 10000
},
"options": {
"disable_gc": false,
"timer": "perf_counter",
"min_rounds": 5,
"max_time": 1.0,
"min_time": 5e-06,
"warmup": false
},
"stats": {
"min": 0.10049245800473727,
"max": 0.10291875000984874,
"mean": 0.10180978320131544,
"stddev": 0.0007884340894950401,
"rounds": 10,
"median": 0.10188045849645277,
"iqr": 0.0011418740032240748,
"q1": 0.10101054199913051,
"q3": 0.10215241600235458,
"iqr_outliers": 0,
"stddev_outliers": 5,
"outliers": "5;0",
"ld15iqr": 0.10049245800473727,
"hd15iqr": 0.10291875000984874,
"ops": 9.82223877269861,
"total": 1.0180978320131544,
"data": [
0.10215241600235458,
0.10189924998849165,
0.10291875000984874,
0.10049245800473727,
0.1028569579939358,
0.10213604199816473,
0.10177120800653938,
0.10099854100553785,
0.1018616670044139,
0.10101054199913051
],
"iterations": 1
}
},
{
"group": "distance-benchmarks",
"name": "test_benchmark_distance_stats[medium]",
"fullname": "tests/_test_measure_points.py::TestMeasurePoints::test_benchmark_distance_stats[medium]",
"params": {
"test_data": "medium"
},
"param": "medium",
"extra_info": {
"dataset": "medium",
"shapes": 5000,
"points": 500000
},
"options": {
"disable_gc": false,
"timer": "perf_counter",
"min_rounds": 5,
"max_time": 1.0,
"min_time": 5e-06,
"warmup": false
},
"stats": {
"min": 5.321530457993504,
"max": 7.6548305000033,
"mean": 5.981697291397722,
"stddev": 0.9696160687053067,
"rounds": 5,
"median": 5.606947291991673,
"iqr": 1.0349827917525545,
"q1": 5.351495551498374,
"q3": 6.3864783432509284,
"iqr_outliers": 0,
"stddev_outliers": 1,
"outliers": "1;0",
"ld15iqr": 5.321530457993504,
"hd15iqr": 7.6548305000033,
"ops": 0.1671766308599567,
"total": 29.908486456988612,
"data": [
5.321530457993504,
5.361483915999997,
5.963694291000138,
5.606947291991673,
7.6548305000033
],
"iterations": 1
}
},
{
"group": "distance-benchmarks",
"name": "test_benchmark_distance_stats[large]",
"fullname": "tests/_test_measure_points.py::TestMeasurePoints::test_benchmark_distance_stats[large]",
"params": {
"test_data": "large"
},
"param": "large",
"extra_info": {
"dataset": "large",
"shapes": 20000,
"points": 2000000
},
"options": {
"disable_gc": false,
"timer": "perf_counter",
"min_rounds": 5,
"max_time": 1.0,
"min_time": 5e-06,
"warmup": false
},
"stats": {
"min": 20.47703000000911,
"max": 21.48616591600876,
"mean": 20.909154683400992,
"stddev": 0.3951987963373529,
"rounds": 5,
"median": 20.972402667001006,
"iqr": 0.5511462290087366,
"q1": 20.57364193774265,
"q3": 21.124788166751387,
"iqr_outliers": 0,
"stddev_outliers": 2,
"outliers": "2;0",
"ld15iqr": 20.47703000000911,
"hd15iqr": 21.48616591600876,
"ops": 0.04782594108378103,
"total": 104.54577341700497,
"data": [
21.48616591600876,
20.972402667001006,
20.47703000000911,
20.605845916987164,
21.00432891699893
],
"iterations": 1
}
}
],
"datetime": "2025-07-11T07:19:26.144016+00:00",
"version": "5.1.0"
}
Binary file added benchmarks/distance_benchmarks_plot.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading