lbm_suite2p_python 2.5.3__tar.gz → 2.5.7__tar.gz

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (34) hide show
  1. {lbm_suite2p_python-2.5.3/lbm_suite2p_python.egg-info → lbm_suite2p_python-2.5.7}/PKG-INFO +6 -6
  2. {lbm_suite2p_python-2.5.3 → lbm_suite2p_python-2.5.7}/lbm_suite2p_python/__init__.py +0 -9
  3. {lbm_suite2p_python-2.5.3 → lbm_suite2p_python-2.5.7}/lbm_suite2p_python/cellpose.py +16 -11
  4. {lbm_suite2p_python-2.5.3 → lbm_suite2p_python-2.5.7}/lbm_suite2p_python/cli.py +529 -529
  5. {lbm_suite2p_python-2.5.3 → lbm_suite2p_python-2.5.7}/lbm_suite2p_python/grid_search.py +24 -15
  6. {lbm_suite2p_python-2.5.3 → lbm_suite2p_python-2.5.7}/lbm_suite2p_python/postprocessing.py +12 -6
  7. lbm_suite2p_python-2.5.7/lbm_suite2p_python/run_lsp.py +2206 -0
  8. {lbm_suite2p_python-2.5.3 → lbm_suite2p_python-2.5.7}/lbm_suite2p_python/utils.py +12 -5
  9. {lbm_suite2p_python-2.5.3 → lbm_suite2p_python-2.5.7}/lbm_suite2p_python/zplane.py +296 -292
  10. {lbm_suite2p_python-2.5.3 → lbm_suite2p_python-2.5.7/lbm_suite2p_python.egg-info}/PKG-INFO +6 -6
  11. {lbm_suite2p_python-2.5.3 → lbm_suite2p_python-2.5.7}/lbm_suite2p_python.egg-info/SOURCES.txt +1 -2
  12. {lbm_suite2p_python-2.5.3 → lbm_suite2p_python-2.5.7}/lbm_suite2p_python.egg-info/requires.txt +4 -5
  13. {lbm_suite2p_python-2.5.3 → lbm_suite2p_python-2.5.7}/pyproject.toml +112 -127
  14. lbm_suite2p_python-2.5.7/tests/test_frame_count_aliases.py +317 -0
  15. lbm_suite2p_python-2.5.3/lbm_suite2p_python/cellpose_workflow.py +0 -483
  16. lbm_suite2p_python-2.5.3/lbm_suite2p_python/normcorre.py +0 -847
  17. lbm_suite2p_python-2.5.3/lbm_suite2p_python/run_lsp.py +0 -1410
  18. {lbm_suite2p_python-2.5.3 → lbm_suite2p_python-2.5.7}/LICENSE.md +0 -0
  19. {lbm_suite2p_python-2.5.3 → lbm_suite2p_python-2.5.7}/MANIFEST.in +0 -0
  20. {lbm_suite2p_python-2.5.3 → lbm_suite2p_python-2.5.7}/README.md +0 -0
  21. {lbm_suite2p_python-2.5.3 → lbm_suite2p_python-2.5.7}/lbm_suite2p_python/__main__.py +0 -0
  22. {lbm_suite2p_python-2.5.3 → lbm_suite2p_python-2.5.7}/lbm_suite2p_python/_benchmarking.py +0 -0
  23. {lbm_suite2p_python-2.5.3 → lbm_suite2p_python-2.5.7}/lbm_suite2p_python/conversion.py +0 -0
  24. {lbm_suite2p_python-2.5.3 → lbm_suite2p_python-2.5.7}/lbm_suite2p_python/default_ops.py +0 -0
  25. {lbm_suite2p_python-2.5.3 → lbm_suite2p_python-2.5.7}/lbm_suite2p_python/gui.py +0 -0
  26. {lbm_suite2p_python-2.5.3 → lbm_suite2p_python-2.5.7}/lbm_suite2p_python/merging.py +0 -0
  27. {lbm_suite2p_python-2.5.3 → lbm_suite2p_python-2.5.7}/lbm_suite2p_python/volume.py +0 -0
  28. {lbm_suite2p_python-2.5.3 → lbm_suite2p_python-2.5.7}/lbm_suite2p_python.egg-info/dependency_links.txt +0 -0
  29. {lbm_suite2p_python-2.5.3 → lbm_suite2p_python-2.5.7}/lbm_suite2p_python.egg-info/entry_points.txt +0 -0
  30. {lbm_suite2p_python-2.5.3 → lbm_suite2p_python-2.5.7}/lbm_suite2p_python.egg-info/top_level.txt +0 -0
  31. {lbm_suite2p_python-2.5.3 → lbm_suite2p_python-2.5.7}/setup.cfg +0 -0
  32. {lbm_suite2p_python-2.5.3 → lbm_suite2p_python-2.5.7}/tests/test_pipeline_parameters.py +0 -0
  33. {lbm_suite2p_python-2.5.3 → lbm_suite2p_python-2.5.7}/tests/test_refactored_pipeline.py +0 -0
  34. {lbm_suite2p_python-2.5.3 → lbm_suite2p_python-2.5.7}/tests/test_run_volume.py +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: lbm_suite2p_python
3
- Version: 2.5.3
3
+ Version: 2.5.7
4
4
  Summary: Light Beads Microscopy Pipeline using Suite2p
5
5
  License-Expression: BSD-3-Clause
6
6
  Project-URL: homepage, https://github.com/MillerBrainObservatory/LBM-Suite2p-Python
@@ -8,12 +8,12 @@ Keywords: Pipeline,Numpy,Microscopy,ScanImage,Suite2p,tiff
8
8
  Classifier: Development Status :: 3 - Alpha
9
9
  Classifier: Intended Audience :: Science/Research
10
10
  Classifier: Programming Language :: Python :: 3 :: Only
11
- Requires-Python: <3.12.10,>=3.12.7
11
+ Requires-Python: <3.14,>=3.12.7
12
12
  Description-Content-Type: text/markdown
13
13
  License-File: LICENSE.md
14
- Requires-Dist: mbo_utilities>=2.5.1
15
- Provides-Extra: suite2p
16
- Requires-Dist: suite2p_mbo>=2.0.1; extra == "suite2p"
14
+ Requires-Dist: mbo_utilities>=2.6.3
15
+ Requires-Dist: suite2p_mbo>=2.0.1
16
+ Requires-Dist: setuptools<81
17
17
  Provides-Extra: rastermap
18
18
  Requires-Dist: rastermap; extra == "rastermap"
19
19
  Provides-Extra: cellpose
@@ -22,7 +22,7 @@ Provides-Extra: torch
22
22
  Requires-Dist: torch>=2.7.0; extra == "torch"
23
23
  Requires-Dist: torchvision>=0.22.0; extra == "torch"
24
24
  Provides-Extra: all
25
- Requires-Dist: lbm_suite2p_python[cellpose,rastermap,suite2p,torch]; extra == "all"
25
+ Requires-Dist: lbm_suite2p_python[cellpose,rastermap,torch]; extra == "all"
26
26
  Dynamic: license-file
27
27
 
28
28
  <p align="center">
@@ -9,11 +9,6 @@ from lbm_suite2p_python.run_lsp import (
9
9
  generate_plane_dirname,
10
10
  )
11
11
 
12
- # Cellpose workflow exports
13
- from lbm_suite2p_python.cellpose_workflow import (
14
- redetect,
15
- enhance_summary_image,
16
- )
17
12
  from lbm_suite2p_python.cellpose import (
18
13
  train_cellpose,
19
14
  annotate,
@@ -81,7 +76,6 @@ from lbm_suite2p_python import (
81
76
  conversion,
82
77
  utils,
83
78
  postprocessing,
84
- normcorre,
85
79
  )
86
80
 
87
81
  try:
@@ -100,8 +94,6 @@ __all__ = [
100
94
  "generate_plane_dirname",
101
95
 
102
96
  # Cellpose / HITL Workflow
103
- "redetect",
104
- "enhance_summary_image",
105
97
  "train_cellpose",
106
98
  "annotate",
107
99
  "open_in_gui",
@@ -119,7 +111,6 @@ __all__ = [
119
111
  "conversion",
120
112
  "utils",
121
113
  "postprocessing",
122
- "normcorre",
123
114
 
124
115
  # Grid Search
125
116
  "grid_search",
@@ -37,9 +37,10 @@ def _compute_projection(
37
37
  Parameters
38
38
  ----------
39
39
  arr : array-like
40
- Input array (T, Y, X) for 3D or (T, Z, Y, X) for 4D.
40
+ Input array. mbo_utilities arrays are 5D TCZYX.
41
+ Legacy 4D TZYX and 3D TYX inputs are also supported.
41
42
  plane_idx : int, optional
42
- For 4D arrays, which z-plane to extract (0-indexed).
43
+ For volumetric arrays, which z-plane to extract (0-indexed).
43
44
  If None, uses all planes for 3D segmentation.
44
45
  method : str
45
46
  Projection method: 'max', 'mean', 'std', or 'percentile'.
@@ -53,19 +54,23 @@ def _compute_projection(
53
54
  """
54
55
  ndim = len(arr.shape)
55
56
 
56
- if ndim == 4:
57
- # (T, Z, Y, X)
57
+ if ndim == 5:
58
+ # 5D TCZYX: use channel 0
59
+ if plane_idx is not None:
60
+ data = arr[:, 0, plane_idx, :, :] # (T, Y, X)
61
+ else:
62
+ data = arr[:, 0, :, :, :] # (T, Z, Y, X)
63
+ elif ndim == 4:
64
+ # legacy 4D TZYX
58
65
  if plane_idx is not None:
59
- # extract single plane -> (T, Y, X)
60
66
  data = arr[:, plane_idx, :, :]
61
67
  else:
62
- # keep all planes -> (T, Z, Y, X)
63
68
  data = arr[:]
64
69
  elif ndim == 3:
65
- # (T, Y, X)
70
+ # legacy 3D TYX
66
71
  data = arr[:]
67
72
  else:
68
- raise ValueError(f"Expected 3D or 4D array, got {ndim}D")
73
+ raise ValueError(f"Expected 3D, 4D, or 5D array, got {ndim}D")
69
74
 
70
75
  # convert to numpy if lazy
71
76
  if hasattr(data, "compute"):
@@ -577,18 +582,18 @@ def cellpose(
577
582
 
578
583
  # get array info
579
584
  shape = arr.shape
580
- ndim = len(shape)
581
585
  num_planes = _get_num_planes(arr)
582
586
  num_frames = shape[0]
587
+ is_volumetric = num_planes > 1
583
588
 
584
589
  print(f"\nDataset info:")
585
590
  print(f" Shape: {shape}")
586
591
  print(f" Frames: {num_frames}")
587
592
  print(f" Planes: {num_planes}")
588
- print(f" Data type: {'4D volumetric' if ndim == 4 else '3D planar'}")
593
+ print(f" Data type: {'volumetric' if is_volumetric else 'planar'}")
589
594
 
590
595
  # normalize planes to 0-indexed list
591
- if ndim == 4:
596
+ if is_volumetric:
592
597
  planes_to_process = _normalize_planes(planes, num_planes)
593
598
  else:
594
599
  planes_to_process = [None] # single plane data