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.
- {lbm_suite2p_python-2.5.3/lbm_suite2p_python.egg-info → lbm_suite2p_python-2.5.7}/PKG-INFO +6 -6
- {lbm_suite2p_python-2.5.3 → lbm_suite2p_python-2.5.7}/lbm_suite2p_python/__init__.py +0 -9
- {lbm_suite2p_python-2.5.3 → lbm_suite2p_python-2.5.7}/lbm_suite2p_python/cellpose.py +16 -11
- {lbm_suite2p_python-2.5.3 → lbm_suite2p_python-2.5.7}/lbm_suite2p_python/cli.py +529 -529
- {lbm_suite2p_python-2.5.3 → lbm_suite2p_python-2.5.7}/lbm_suite2p_python/grid_search.py +24 -15
- {lbm_suite2p_python-2.5.3 → lbm_suite2p_python-2.5.7}/lbm_suite2p_python/postprocessing.py +12 -6
- lbm_suite2p_python-2.5.7/lbm_suite2p_python/run_lsp.py +2206 -0
- {lbm_suite2p_python-2.5.3 → lbm_suite2p_python-2.5.7}/lbm_suite2p_python/utils.py +12 -5
- {lbm_suite2p_python-2.5.3 → lbm_suite2p_python-2.5.7}/lbm_suite2p_python/zplane.py +296 -292
- {lbm_suite2p_python-2.5.3 → lbm_suite2p_python-2.5.7/lbm_suite2p_python.egg-info}/PKG-INFO +6 -6
- {lbm_suite2p_python-2.5.3 → lbm_suite2p_python-2.5.7}/lbm_suite2p_python.egg-info/SOURCES.txt +1 -2
- {lbm_suite2p_python-2.5.3 → lbm_suite2p_python-2.5.7}/lbm_suite2p_python.egg-info/requires.txt +4 -5
- {lbm_suite2p_python-2.5.3 → lbm_suite2p_python-2.5.7}/pyproject.toml +112 -127
- lbm_suite2p_python-2.5.7/tests/test_frame_count_aliases.py +317 -0
- lbm_suite2p_python-2.5.3/lbm_suite2p_python/cellpose_workflow.py +0 -483
- lbm_suite2p_python-2.5.3/lbm_suite2p_python/normcorre.py +0 -847
- lbm_suite2p_python-2.5.3/lbm_suite2p_python/run_lsp.py +0 -1410
- {lbm_suite2p_python-2.5.3 → lbm_suite2p_python-2.5.7}/LICENSE.md +0 -0
- {lbm_suite2p_python-2.5.3 → lbm_suite2p_python-2.5.7}/MANIFEST.in +0 -0
- {lbm_suite2p_python-2.5.3 → lbm_suite2p_python-2.5.7}/README.md +0 -0
- {lbm_suite2p_python-2.5.3 → lbm_suite2p_python-2.5.7}/lbm_suite2p_python/__main__.py +0 -0
- {lbm_suite2p_python-2.5.3 → lbm_suite2p_python-2.5.7}/lbm_suite2p_python/_benchmarking.py +0 -0
- {lbm_suite2p_python-2.5.3 → lbm_suite2p_python-2.5.7}/lbm_suite2p_python/conversion.py +0 -0
- {lbm_suite2p_python-2.5.3 → lbm_suite2p_python-2.5.7}/lbm_suite2p_python/default_ops.py +0 -0
- {lbm_suite2p_python-2.5.3 → lbm_suite2p_python-2.5.7}/lbm_suite2p_python/gui.py +0 -0
- {lbm_suite2p_python-2.5.3 → lbm_suite2p_python-2.5.7}/lbm_suite2p_python/merging.py +0 -0
- {lbm_suite2p_python-2.5.3 → lbm_suite2p_python-2.5.7}/lbm_suite2p_python/volume.py +0 -0
- {lbm_suite2p_python-2.5.3 → lbm_suite2p_python-2.5.7}/lbm_suite2p_python.egg-info/dependency_links.txt +0 -0
- {lbm_suite2p_python-2.5.3 → lbm_suite2p_python-2.5.7}/lbm_suite2p_python.egg-info/entry_points.txt +0 -0
- {lbm_suite2p_python-2.5.3 → lbm_suite2p_python-2.5.7}/lbm_suite2p_python.egg-info/top_level.txt +0 -0
- {lbm_suite2p_python-2.5.3 → lbm_suite2p_python-2.5.7}/setup.cfg +0 -0
- {lbm_suite2p_python-2.5.3 → lbm_suite2p_python-2.5.7}/tests/test_pipeline_parameters.py +0 -0
- {lbm_suite2p_python-2.5.3 → lbm_suite2p_python-2.5.7}/tests/test_refactored_pipeline.py +0 -0
- {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
|
+
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.
|
|
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.
|
|
15
|
-
|
|
16
|
-
Requires-Dist:
|
|
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,
|
|
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
|
|
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
|
|
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 ==
|
|
57
|
-
#
|
|
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
|
-
#
|
|
70
|
+
# legacy 3D TYX
|
|
66
71
|
data = arr[:]
|
|
67
72
|
else:
|
|
68
|
-
raise ValueError(f"Expected 3D or
|
|
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: {'
|
|
593
|
+
print(f" Data type: {'volumetric' if is_volumetric else 'planar'}")
|
|
589
594
|
|
|
590
595
|
# normalize planes to 0-indexed list
|
|
591
|
-
if
|
|
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
|