swcgeom 0.18.3__py3-none-any.whl → 0.19.1__py3-none-any.whl

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.

Potentially problematic release.


This version of swcgeom might be problematic. Click here for more details.

Files changed (62) hide show
  1. swcgeom/analysis/feature_extractor.py +22 -24
  2. swcgeom/analysis/features.py +18 -40
  3. swcgeom/analysis/lmeasure.py +227 -323
  4. swcgeom/analysis/sholl.py +17 -23
  5. swcgeom/analysis/trunk.py +23 -28
  6. swcgeom/analysis/visualization.py +37 -44
  7. swcgeom/analysis/visualization3d.py +16 -25
  8. swcgeom/analysis/volume.py +33 -47
  9. swcgeom/core/__init__.py +1 -6
  10. swcgeom/core/branch.py +10 -17
  11. swcgeom/core/branch_tree.py +3 -2
  12. swcgeom/core/compartment.py +1 -1
  13. swcgeom/core/node.py +3 -6
  14. swcgeom/core/path.py +11 -16
  15. swcgeom/core/population.py +32 -51
  16. swcgeom/core/swc.py +25 -16
  17. swcgeom/core/swc_utils/__init__.py +4 -6
  18. swcgeom/core/swc_utils/assembler.py +5 -12
  19. swcgeom/core/swc_utils/base.py +40 -31
  20. swcgeom/core/swc_utils/checker.py +3 -8
  21. swcgeom/core/swc_utils/io.py +32 -47
  22. swcgeom/core/swc_utils/normalizer.py +17 -23
  23. swcgeom/core/swc_utils/subtree.py +13 -20
  24. swcgeom/core/tree.py +61 -51
  25. swcgeom/core/tree_utils.py +36 -49
  26. swcgeom/core/tree_utils_impl.py +4 -6
  27. swcgeom/images/augmentation.py +23 -39
  28. swcgeom/images/contrast.py +22 -46
  29. swcgeom/images/folder.py +32 -34
  30. swcgeom/images/io.py +108 -126
  31. swcgeom/transforms/base.py +28 -19
  32. swcgeom/transforms/branch.py +31 -41
  33. swcgeom/transforms/branch_tree.py +3 -1
  34. swcgeom/transforms/geometry.py +13 -4
  35. swcgeom/transforms/image_preprocess.py +2 -0
  36. swcgeom/transforms/image_stack.py +40 -35
  37. swcgeom/transforms/images.py +31 -24
  38. swcgeom/transforms/mst.py +27 -40
  39. swcgeom/transforms/neurolucida_asc.py +13 -13
  40. swcgeom/transforms/path.py +4 -0
  41. swcgeom/transforms/population.py +4 -0
  42. swcgeom/transforms/tree.py +16 -11
  43. swcgeom/transforms/tree_assembler.py +37 -54
  44. swcgeom/utils/download.py +7 -14
  45. swcgeom/utils/dsu.py +12 -0
  46. swcgeom/utils/ellipse.py +26 -14
  47. swcgeom/utils/file.py +8 -13
  48. swcgeom/utils/neuromorpho.py +78 -92
  49. swcgeom/utils/numpy_helper.py +15 -12
  50. swcgeom/utils/plotter_2d.py +10 -16
  51. swcgeom/utils/plotter_3d.py +7 -9
  52. swcgeom/utils/renderer.py +16 -8
  53. swcgeom/utils/sdf.py +12 -23
  54. swcgeom/utils/solid_geometry.py +58 -2
  55. swcgeom/utils/transforms.py +164 -100
  56. swcgeom/utils/volumetric_object.py +29 -53
  57. {swcgeom-0.18.3.dist-info → swcgeom-0.19.1.dist-info}/METADATA +6 -5
  58. swcgeom-0.19.1.dist-info/RECORD +67 -0
  59. {swcgeom-0.18.3.dist-info → swcgeom-0.19.1.dist-info}/WHEEL +1 -1
  60. swcgeom-0.18.3.dist-info/RECORD +0 -67
  61. {swcgeom-0.18.3.dist-info → swcgeom-0.19.1.dist-info/licenses}/LICENSE +0 -0
  62. {swcgeom-0.18.3.dist-info → swcgeom-0.19.1.dist-info}/top_level.txt +0 -0
@@ -31,7 +31,7 @@ computations.
31
31
 
32
32
  import warnings
33
33
  from abc import ABC, abstractmethod
34
- from typing import Generic, Optional, TypeVar
34
+ from typing import Generic, TypeVar
35
35
 
36
36
  import numpy as np
37
37
  import numpy.typing as npt
@@ -98,7 +98,7 @@ class VolMCObject(VolObject, ABC):
98
98
  cache_volume: float | None = None
99
99
  cache_volume_n_samples: int = 0
100
100
 
101
- def __init__(self, *, n_samples: Optional[int] = None) -> None:
101
+ def __init__(self, *, n_samples: int | None = None) -> None:
102
102
  super().__init__()
103
103
  if n_samples is not None:
104
104
  warnings.warn(
@@ -113,17 +113,12 @@ class VolMCObject(VolObject, ABC):
113
113
  def sample(self, n: int) -> tuple[npt.NDArray[np.float32], float]:
114
114
  """Sample points.
115
115
 
116
- Parameters
117
- ----------
118
- n : int
119
- Number of points to sample.
120
-
121
- Returns
122
- -------
123
- points : ndarray
124
- Sampled points.
125
- volume : float
126
- Volume of the sample range.
116
+ Args:
117
+ n: Number of points to sample.
118
+
119
+ Returns:
120
+ points: Sampled points.
121
+ volume: Volume of the sample range.
127
122
  """
128
123
  raise NotImplementedError()
129
124
 
@@ -135,21 +130,17 @@ class VolMCObject(VolObject, ABC):
135
130
  def is_in(self, p: npt.NDArray[np.float32]) -> npt.NDArray[np.bool_]:
136
131
  """Is p in the object.
137
132
 
138
- Returns
139
- -------
140
- is_in : npt.NDArray[np.bool_]
141
- Array of shape (N,), if bounding box is `None`, `True` will
142
- be returned.
133
+ Returns:
134
+ is_in: Array of shape (N,).
135
+ If bounding box is `None`, `True` will be returned.
143
136
  """
144
137
  return np.array([self.inside(pp) for pp in p])
145
138
 
146
- def _get_volume(self, *, n_samples: Optional[int] = None) -> float:
139
+ def _get_volume(self, *, n_samples: int | None = None) -> float:
147
140
  """Get volume by Monte Carlo integration.
148
141
 
149
- Parameters
150
- ----------
151
- n_samples : int, default 1_000_000
152
- Number of samples
142
+ Args:
143
+ n_samples: Number of samples, default 1_000_000
153
144
  """
154
145
 
155
146
  # legacy
@@ -178,9 +169,7 @@ class VolMCObject(VolObject, ABC):
178
169
  class VolSDFObject(VolMCObject):
179
170
  """Volumetric SDF Object.
180
171
 
181
- Notes
182
- -----
183
- SDF must has a bounding box.
172
+ NOTE: SDF must has a bounding box.
184
173
  """
185
174
 
186
175
  def __init__(self, sdf: SDF, **kwargs) -> None:
@@ -294,10 +283,8 @@ class VolSphere(VolSDFObject):
294
283
  V = \frac{4}{3} * π * r^3
295
284
  \end{equation}
296
285
 
297
- Returns
298
- -------
299
- volume : float
300
- Volume.
286
+ Returns:
287
+ volume: volume of sphere.
301
288
  """
302
289
  return 4 / 3 * np.pi * radius**3
303
290
 
@@ -309,17 +296,12 @@ class VolSphere(VolSDFObject):
309
296
  V = π * h^2 * (3r - h) / 3
310
297
  \end{equation}
311
298
 
312
- Parameters
313
- ----------
314
- r : float
315
- radius of the sphere
316
- h : float
317
- height of the spherical cap
318
-
319
- Returns
320
- -------
321
- volume : float
322
- volume of the spherical cap
299
+ Args:
300
+ r: radius of the sphere
301
+ h: height of the spherical cap
302
+
303
+ Returns:
304
+ volume: volume of the spherical cap
323
305
  """
324
306
  return np.pi * h**2 * (3 * r - h) / 3
325
307
 
@@ -361,10 +343,8 @@ class VolFrustumCone(VolSDFObject):
361
343
  V = \frac{1}{3} * π * h * (r^2 + r * R + R^2)
362
344
  \end{equation}
363
345
 
364
- Returns
365
- -------
366
- volume : float
367
- Volume.
346
+ Returns:
347
+ volume: volume of frustum.
368
348
  """
369
349
  return (1 / 3) * np.pi * height * (r1**2 + r1 * r2 + r2**2)
370
350
 
@@ -386,10 +366,8 @@ class VolSphere2Intersection(VolSDFIntersection[VolSphere, VolSphere]):
386
366
  V = \frac{\pi}{12d} * (r_1 + r_2 - d)^2 (d^2 + 2d r_1 - 3r_1^2 + 2d r_2 - 3r_2^2 + 6 r_1r_2)
387
367
  \end{equation}
388
368
 
389
- Returns
390
- -------
391
- volume : float
392
- Intersect volume.
369
+ Returns:
370
+ volume: Intersect volume.
393
371
  """
394
372
 
395
373
  r1, r2 = obj1.radius, obj2.radius
@@ -440,10 +418,8 @@ class VolSphereFrustumConeIntersection(VolSDFIntersection[VolSphere, VolFrustumC
440
418
  ) -> float:
441
419
  r"""Calculate intersect volume of sphere and frustum cone.
442
420
 
443
- Returns
444
- -------
445
- volume : float
446
- Intersect volume.
421
+ Returns:
422
+ volume: Intersect volume.
447
423
  """
448
424
 
449
425
  h = frustum_cone.height()
@@ -1,6 +1,6 @@
1
- Metadata-Version: 2.2
1
+ Metadata-Version: 2.4
2
2
  Name: swcgeom
3
- Version: 0.18.3
3
+ Version: 0.19.1
4
4
  Summary: Neuron geometry library for swc format
5
5
  Author-email: yzx9 <pypi@yzx9.xyz>
6
6
  License: Apache-2.0
@@ -15,12 +15,12 @@ Requires-Dist: numpy>=1.22.3
15
15
  Requires-Dist: pandas>=1.4.2
16
16
  Requires-Dist: pynrrd>=1.1.0
17
17
  Requires-Dist: scipy>=1.9.1
18
- Requires-Dist: sdflit>=0.2.1
18
+ Requires-Dist: sdflit>=0.2.6
19
19
  Requires-Dist: seaborn>=0.12.0
20
20
  Requires-Dist: tifffile>=2022.8.12
21
- Requires-Dist: typing_extensions>=4.4.0
21
+ Requires-Dist: typing-extensions>=4.4.0
22
22
  Requires-Dist: tqdm>=4.46.1
23
- Requires-Dist: v3d-py-helper>=0.4.1
23
+ Requires-Dist: v3d-py-helper>=0.4.1; python_version < "3.13"
24
24
  Provides-Extra: all
25
25
  Requires-Dist: beautifulsoup4>=4.11.1; extra == "all"
26
26
  Requires-Dist: certifi>=2023.5.7; extra == "all"
@@ -28,6 +28,7 @@ Requires-Dist: chardet>=5.2.0; extra == "all"
28
28
  Requires-Dist: lmdb>=1.4.1; extra == "all"
29
29
  Requires-Dist: requests>=2.0.0; extra == "all"
30
30
  Requires-Dist: urllib3>=1.26.0; extra == "all"
31
+ Dynamic: license-file
31
32
 
32
33
  # SWCGEOM
33
34
 
@@ -0,0 +1,67 @@
1
+ swcgeom/__init__.py,sha256=7Hjtjg2r_dRP-oUmNX_Zza1NqV6703L0XnpuhKQ3wcs,939
2
+ swcgeom/analysis/__init__.py,sha256=1Bp93CxYzKqnTLzRdy8GpnhhBf6t8S2sgpEIhOJOj6w,945
3
+ swcgeom/analysis/feature_extractor.py,sha256=kCrsH5Df6KdocD8hKH_5SeLwdvEuWP09CbLUPaoFGdM,14787
4
+ swcgeom/analysis/features.py,sha256=vn_4sbwTY2muCXJqYEbQilxzSFhugaDlhips_Tt2vE8,6585
5
+ swcgeom/analysis/lmeasure.py,sha256=5B4ltZGvIJCHe1KDkxIvGWv2Ar4_oC5F67Q8n87CnOg,27840
6
+ swcgeom/analysis/sholl.py,sha256=6k7Ek6VxWJcGuTan98Ib18cjtpAzKulEeZds2kzyN6M,7043
7
+ swcgeom/analysis/trunk.py,sha256=q_Rdh0v-aimZKp1krji6B1lynZ7Rc9hYJhESGiLjFDY,5944
8
+ swcgeom/analysis/visualization.py,sha256=MXlBZG5mmoXwjHVcJfERVEYZveSkwTNweKBAIOb1dFM,6029
9
+ swcgeom/analysis/visualization3d.py,sha256=0PRhUOdYPl071xK5PaTl5HFrkOXfwyfHw-d3RD0W1zs,2932
10
+ swcgeom/analysis/volume.py,sha256=mUZRCY8KUdWZiMqZvP6_BlETLsb2_dotxC8vqu50450,5074
11
+ swcgeom/core/__init__.py,sha256=_iC91Q0nU7pUqydHON9hbelf4WY68uhNTRlAzS__CYk,1152
12
+ swcgeom/core/branch.py,sha256=xqGHtoZodId3lREaDHuHgpZruGsOddqA8hPMmlXmcLk,4651
13
+ swcgeom/core/branch_tree.py,sha256=uNkzcg5q99n-Wg3H7eCJQfOE6DP9m-FucCXaFCmBsdc,2443
14
+ swcgeom/core/compartment.py,sha256=QABZiXELtSnsg5u2M2yTOD-9aosg2KB3wRVQvm1ccpY,3851
15
+ swcgeom/core/node.py,sha256=HEFS7pTmGP7xlP0DfvOxbFPAGY87H7uW1exdKKeB6os,4302
16
+ swcgeom/core/path.py,sha256=tkYJttFv_mke9hc_2eqnPC5WJMicQC103W4-Xalo13I,5023
17
+ swcgeom/core/population.py,sha256=IhSZn_2ZKE8nqxpPhVGQU5hedcnkQMBCOCQnfTn5K9Q,10696
18
+ swcgeom/core/swc.py,sha256=AM-KQqVopVTnCpDfVRz6MsjT9Vr8wTEHeqz1aUXGq10,7416
19
+ swcgeom/core/tree.py,sha256=04_HM2lAI-sxQKmarSmXN0obHSD4WHaAPZr0f6nwI5E,13158
20
+ swcgeom/core/tree_utils.py,sha256=tfVDrhxbvGPNOzI4NifWNTzE7ckPWgCziStvYg2hU2A,7859
21
+ swcgeom/core/tree_utils_impl.py,sha256=XK86XX2rX6kq2x_gEjX2uIKHBuAq762C10blWiK2-MA,2156
22
+ swcgeom/core/swc_utils/__init__.py,sha256=oPXmYeFrlDm-rBXhU-5Y4TeKuq_2jbNWqh0_1v7pM3c,1233
23
+ swcgeom/core/swc_utils/assembler.py,sha256=4DahkrtqJKNyFhvrxQVLam1dwjznQ2anAl9X31Hd6LQ,1440
24
+ swcgeom/core/swc_utils/base.py,sha256=98J9R7rAZO685pzIJWfC66T8cfWzepf405cYXWzuuHQ,5273
25
+ swcgeom/core/swc_utils/checker.py,sha256=jCSGEgK9OuVV4ErOq2FStq4AJC4uFDAsnoYHwq-5a6A,3141
26
+ swcgeom/core/swc_utils/io.py,sha256=N90bRWZjtmUrnvlcwD_LTROJUs0OGnYDneGYF6jLnEs,6691
27
+ swcgeom/core/swc_utils/normalizer.py,sha256=LnPw00iiqWeacvXK0hf1_jvK3NkjvgOwrntSAHOaIDc,5576
28
+ swcgeom/core/swc_utils/subtree.py,sha256=kPB2_6DEX147mFNRy2viLqEOms8ypf6a7riLTu-qr_E,2530
29
+ swcgeom/images/__init__.py,sha256=gwBZzrsswJ2hyRQA72khFk2JPo1JfWko4-huuAYNCOU,705
30
+ swcgeom/images/augmentation.py,sha256=3ZWPRee3h1x1v_k2dDpAxCeUApvn2hu0TOPhTwuTe2g,4586
31
+ swcgeom/images/contrast.py,sha256=fLA8snaEJS-0dXkgitDmXepsMgpa4OE9MMGrU5YBz4M,2462
32
+ swcgeom/images/folder.py,sha256=YKJn5M090SKRVf-y5IG7sAmL6d8PsV2QeSquiuzFGHk,6847
33
+ swcgeom/images/io.py,sha256=0vwn1DqfKvXUClsQEseyptAJ4urqkkWyeeGYqtVr448,21011
34
+ swcgeom/transforms/__init__.py,sha256=nE4Uyn5vpYyNiMltTiNHDRkyjYbW6B4ToyZOxUj0TU0,1370
35
+ swcgeom/transforms/base.py,sha256=v1EIpL5Kxg2Q1AfzZ8wSkocjSWHpD9cTeBk8dSmzDRc,4951
36
+ swcgeom/transforms/branch.py,sha256=gWR3lmd5b0PWYypF4WRRQ25O5DSlXok4wfm3Ycmxnbs,7560
37
+ swcgeom/transforms/branch_tree.py,sha256=Sc9gV-BD-KCY0kchID5zs1bIb-XwP0COLsynFPeHbaE,2882
38
+ swcgeom/transforms/geometry.py,sha256=8_v1ifR3taO-hL71fObLOv1jPXu3H1yaeerXkvoNn2k,8140
39
+ swcgeom/transforms/image_preprocess.py,sha256=bp3TIzK8sRetFdoExqfGhFkRSeZ-mv4GQzfxX2otu5c,4296
40
+ swcgeom/transforms/image_stack.py,sha256=SBtyLBWlBxlnt_q2uMXHgQicX5LeDwiKpmf1A-rJRUM,7353
41
+ swcgeom/transforms/images.py,sha256=uYIAwfQqzJwvG_yddeZ0fLXzQQbhF_OrpJ11iFQSPxQ,6264
42
+ swcgeom/transforms/mst.py,sha256=5XW_9R7mKI9HZmKZseTyQbizyaTv_sRybCj_4LmMxfM,6395
43
+ swcgeom/transforms/neurolucida_asc.py,sha256=YR-ycJAUflMFS14gBmdV1wtiSUrY3dixX0FiKd9DPds,14675
44
+ swcgeom/transforms/path.py,sha256=tqwSd6FDcL-xahs1u4r2GdJCdXvpL5BxpTTyQZbIZfs,1738
45
+ swcgeom/transforms/population.py,sha256=I9FqiW5IGlpN8DlED_8JnUx3gm9Y1GlNyEni5W5rNGU,1457
46
+ swcgeom/transforms/tree.py,sha256=TzLYuY9LxjLKFOG34AtlH8S6aO1IcCuRJ0vJYCF5Iso,8237
47
+ swcgeom/transforms/tree_assembler.py,sha256=a46N_XYpyPHoEOVdhyztcilA5e64_pqLtdF__oWF4Rg,5374
48
+ swcgeom/utils/__init__.py,sha256=sduLt0_W5KfoatIQ5Sj26DndwiCQhpPVkZhUVi7akFE,1215
49
+ swcgeom/utils/debug.py,sha256=ZOYLfj32YDjSU1tJrtThWF2SROwYhG2z7j4Fq0q4Dsw,1046
50
+ swcgeom/utils/download.py,sha256=8h1dLJu4Z09g6NgMI-78E1co1ebmKBQoz2TBebTZG9w,4145
51
+ swcgeom/utils/dsu.py,sha256=cci0YXGlOmL1wjqJKyp6la8SuvgBQrEcfuwjLtsGv6o,2267
52
+ swcgeom/utils/ellipse.py,sha256=kKDHTe4ZrVq88HISLyztkEedwR36ItwffB9yOLGCnKQ,4227
53
+ swcgeom/utils/file.py,sha256=Rfn0SDHk0BzHxUIqjFgCPcSTRLADcW3SWAMyPfBe2FI,3080
54
+ swcgeom/utils/neuromorpho.py,sha256=V_L_AU1Jhtg4CCLz_oYfj1mvvFX29DQNDz2BFB8Oetk,19294
55
+ swcgeom/utils/numpy_helper.py,sha256=XrHuG5ac45LhBJyvTm5QsB8CKl-v2dhb4cStcX_Ut0I,2183
56
+ swcgeom/utils/plotter_2d.py,sha256=ZVMQsiTjoHr5FKJfh_DTcsyXTJH4tM0_Zdg5lxnNzJ0,4359
57
+ swcgeom/utils/plotter_3d.py,sha256=lMxvjq51Aj7yBuiw2KOfWkPZwkPHMkaFuORxt2qHaTo,1405
58
+ swcgeom/utils/renderer.py,sha256=ILl9k1sxKK_s2CoKVfJhMKxQrYub1sJvbw4qAX0Ld20,4799
59
+ swcgeom/utils/sdf.py,sha256=wqetIH-7j3TKalIdkgIf-w4CarElvFMFSMJqCPv8IIE,10966
60
+ swcgeom/utils/solid_geometry.py,sha256=YoGDTqCs9lCS8YXrHyKhuA34zOUcPGaRZP_LvjIGSQ8,4578
61
+ swcgeom/utils/transforms.py,sha256=gTT4G6AvmCg2JFDx45OjUQaa4eoWQjP8_iLvk2rE70o,9576
62
+ swcgeom/utils/volumetric_object.py,sha256=fbTU_4rebc7r1dlYNnIeHfLg-vKdXP0ohrINVhe8RRg,15307
63
+ swcgeom-0.19.1.dist-info/licenses/LICENSE,sha256=xx0jnfkXJvxRnG63LTGOxlggYnIysveWIZ6H3PNdCrQ,11357
64
+ swcgeom-0.19.1.dist-info/METADATA,sha256=7sq8aasLivq_AbuC3LxmFfom0CFvdsvI10QkqeK8jjg,2348
65
+ swcgeom-0.19.1.dist-info/WHEEL,sha256=CmyFI0kx5cdEMTLiONQRbGQwjIoR1aIYB7eCAQ4KPJ0,91
66
+ swcgeom-0.19.1.dist-info/top_level.txt,sha256=hmLyUXWS61Gxl07haswFEKKefYPBVJYlUlol8ghNkjY,8
67
+ swcgeom-0.19.1.dist-info/RECORD,,
@@ -1,5 +1,5 @@
1
1
  Wheel-Version: 1.0
2
- Generator: setuptools (75.8.0)
2
+ Generator: setuptools (78.1.0)
3
3
  Root-Is-Purelib: true
4
4
  Tag: py3-none-any
5
5
 
@@ -1,67 +0,0 @@
1
- swcgeom/__init__.py,sha256=7Hjtjg2r_dRP-oUmNX_Zza1NqV6703L0XnpuhKQ3wcs,939
2
- swcgeom/analysis/__init__.py,sha256=1Bp93CxYzKqnTLzRdy8GpnhhBf6t8S2sgpEIhOJOj6w,945
3
- swcgeom/analysis/feature_extractor.py,sha256=8hmwwWCZ8c_XcnmyY--vRygo-OAovIoMuVTHnixX8KA,14855
4
- swcgeom/analysis/features.py,sha256=NnFRUsMO7mPoBNLQ_kwSWHSfaV1BCOYTZz6VuG2Cfi8,6905
5
- swcgeom/analysis/lmeasure.py,sha256=RLhRIo3VOQFqisBDetP120SntWSTE2rJ-vL5l-QGT40,28688
6
- swcgeom/analysis/sholl.py,sha256=uGElY5hXILON8uHX9phGwFeKMjWCtA1GTeoyKStkSPE,7203
7
- swcgeom/analysis/trunk.py,sha256=f6oH2Xlpn76JjKNsC0DKFsnYGn4FP4YRucCeyUaGgjg,6147
8
- swcgeom/analysis/visualization.py,sha256=dioNW7Y596xhUPySkr-gbcCzLFm4PPsizKAjEXgAdyI,6216
9
- swcgeom/analysis/visualization3d.py,sha256=OIUEtxPZpwK8eDEuy8_ezh5x2oQishQ3-aj-dGselAY,3094
10
- swcgeom/analysis/volume.py,sha256=KLEqE5OWKckdw2qsI8Ugmxi-_jePnE9N9ZN6QFC07y8,5197
11
- swcgeom/core/__init__.py,sha256=s6hYMtFY5HKviiNkENlEy4o3taxN5Ogq04ceKQgGL6o,1223
12
- swcgeom/core/branch.py,sha256=xu5J12FjxXSNL3Q_Uiy5qLlMozfcdnkIDO-XyDB_CYg,4764
13
- swcgeom/core/branch_tree.py,sha256=jFDKkBgaTCT6C4ZsGdihxBp3xC2k9v6wxE43UGW2AuY,2424
14
- swcgeom/core/compartment.py,sha256=neoM4nyZxPnaHDnxr-T5xItrf6gqctbo8dOawlFQRlM,3850
15
- swcgeom/core/node.py,sha256=ZVhAQeadPNVpVd8LAVF5i7DWkGsjsigrUdMIUDUp8BY,4376
16
- swcgeom/core/path.py,sha256=_j9GP7fSaDUeUeFGXPaWDyq5BcQURzTCCh9iuQKiYWM,5065
17
- swcgeom/core/population.py,sha256=k-sIaYC-m2S82h-rJM0iocdFpQDKuEBuaw6_WNgI_0s,11039
18
- swcgeom/core/swc.py,sha256=SqJdj-auOBuxOoRxg33DFcigIx8_BuWfeHyWYBQY7xk,7384
19
- swcgeom/core/tree.py,sha256=Hq4KOFvEWcFqFvGC3D-1f_WKRu6p6P_hfJT5vOVGKXY,13150
20
- swcgeom/core/tree_utils.py,sha256=2cg3HBn7-6S_J64z9F12CLGVDarpn5epCk3icVWtgEY,8192
21
- swcgeom/core/tree_utils_impl.py,sha256=1G1qZA7kwWifol8h5cBsFuwh6YA0ZTfpzG5brGwBFs0,2178
22
- swcgeom/core/swc_utils/__init__.py,sha256=B-oJffxjFZIzIG_9Jh3uG6G_DHtqqkMxIOIU4A_dLEQ,1239
23
- swcgeom/core/swc_utils/assembler.py,sha256=lrW0vWFSpvL3PGjA80mCSR9XH3RHX2wLyZ1v4Tux4Gw,1470
24
- swcgeom/core/swc_utils/base.py,sha256=bjH8AOclIAXGecUVxDOrk9jD7NAq1OdkvXgIQLj6UP0,5312
25
- swcgeom/core/swc_utils/checker.py,sha256=xbzUjHPR5sMHRCA1f9MAd_4xUvyb5NRsJWSB7cPXSdw,3182
26
- swcgeom/core/swc_utils/io.py,sha256=Btyg0w5VsYL3LFBF59ADsWNbD3EthR4pKEBpThaJDDM,7047
27
- swcgeom/core/swc_utils/normalizer.py,sha256=egYdZAex8h1SninrWkkKpU9Tu9rmB9uaHwa3u4kasO0,5673
28
- swcgeom/core/swc_utils/subtree.py,sha256=Jgk39eguBIxhrz3AL1X6pzLfo0tXovNes51D7U4Qw9k,2569
29
- swcgeom/images/__init__.py,sha256=gwBZzrsswJ2hyRQA72khFk2JPo1JfWko4-huuAYNCOU,705
30
- swcgeom/images/augmentation.py,sha256=6YuQpuWaarc_bD0Pjz42eFreVjhA2qmeUEK84RBcc_g,4748
31
- swcgeom/images/contrast.py,sha256=f5EqJJ4tGcG46dm9pMeQm_cM1fYcIXC6qYjcOFxThTc,2741
32
- swcgeom/images/folder.py,sha256=-WpAvCBZ5qYfFZTWI1e-O7jAGLjm_PyZWV91fegP45E,7025
33
- swcgeom/images/io.py,sha256=dgu69iqb_Bkk8guLt5TYSOz-lG_WemEOFrRmoZsQTg8,21137
34
- swcgeom/transforms/__init__.py,sha256=nE4Uyn5vpYyNiMltTiNHDRkyjYbW6B4ToyZOxUj0TU0,1370
35
- swcgeom/transforms/base.py,sha256=l5DEZjZhjH23Axg8ozJTFzSmNNwIlTfm0XxAOIAQtlE,4696
36
- swcgeom/transforms/branch.py,sha256=L8O7CwLdY-q_b53vrKfA_nlePh5lKx2kA-foVtQd6sQ,7861
37
- swcgeom/transforms/branch_tree.py,sha256=i2w16ny70oWbJhq5mHX7wgEVGol1AYKB3P-N5Kh3z2I,2820
38
- swcgeom/transforms/geometry.py,sha256=xA9RN1oWRV0S1OVC_vxGZOq8CjGLERnlR5vM4_wvUG8,8008
39
- swcgeom/transforms/image_preprocess.py,sha256=lT5ceaE9IzJjq6vIFh0p1YzsyBYAtqz_ElqErvZvDdE,4243
40
- swcgeom/transforms/image_stack.py,sha256=Zc9p5MGt8zdkla-RnKdsF64NLgS7cfK9j2qG4ggiSgI,6720
41
- swcgeom/transforms/images.py,sha256=bPJwtwIcHVECHV0qQBVWRFzTWLKEf31V4TiRgjFrGn8,6139
42
- swcgeom/transforms/mst.py,sha256=spUuXjglCBnZmR6mIyCBJJGmQbfpx7hb1nndT3_iUG4,6832
43
- swcgeom/transforms/neurolucida_asc.py,sha256=0WyM9B5qpJ5hjVGKpO8atWpaUhJdLQ0lKMhcJkuOsfM,14699
44
- swcgeom/transforms/path.py,sha256=SqBPYvCnDc1yd8UCBwyelAXnduNAvJ16pWo9lMoZVI0,1670
45
- swcgeom/transforms/population.py,sha256=kayuwNs8jWTrHZ4sqoH9HUcLqR0OybJbGtb7HvpFIdw,1389
46
- swcgeom/transforms/tree.py,sha256=qlYISDuT7DlEQ2uaa1Y-vqb2rbs9JHr9Bays546XuCI,8152
47
- swcgeom/transforms/tree_assembler.py,sha256=rWm7D7tAhk9UkX1PL_QfXw2-98xlI7cF3IsIyW7eOzQ,5743
48
- swcgeom/utils/__init__.py,sha256=sduLt0_W5KfoatIQ5Sj26DndwiCQhpPVkZhUVi7akFE,1215
49
- swcgeom/utils/debug.py,sha256=ZOYLfj32YDjSU1tJrtThWF2SROwYhG2z7j4Fq0q4Dsw,1046
50
- swcgeom/utils/download.py,sha256=VNJCsXty3NrwPv9CzyA_OkHsEQj4LArkoAuPmW-NX6c,4237
51
- swcgeom/utils/dsu.py,sha256=tU_hBjSFBXiraJphB_qQ7Rt1pKNFUIbh0kvU_zJ1UaI,2016
52
- swcgeom/utils/ellipse.py,sha256=o8CZmEhJIy2bejDX2nr92H5vootuLoIkk-sSTG19cAo,3815
53
- swcgeom/utils/file.py,sha256=6P_jSfpUPulJ2PSHGr-maEZotLvM35egEmH4RRO022Y,3096
54
- swcgeom/utils/neuromorpho.py,sha256=AE3wlDckLFYI9MuQv4XlA0LYMLpGUm8OQLNnym-DQB4,19617
55
- swcgeom/utils/numpy_helper.py,sha256=wsY8-4naAOMfKQ2O-dVRcblM2NrezhjsUEfUzT2holk,2006
56
- swcgeom/utils/plotter_2d.py,sha256=ojhEUpMbP9-7XE64CNb4kVoUS6WoFrYlmqumbGr79go,4450
57
- swcgeom/utils/plotter_3d.py,sha256=6IU_Oyls5chq6ol30R4zp85oK_31yHB6vVp09D6pYGA,1458
58
- swcgeom/utils/renderer.py,sha256=aDp2HZRUe9GDNdslewLKh6OCTKfz8G_6c4AmK14EajQ,4801
59
- swcgeom/utils/sdf.py,sha256=C8uH9R2qMYeXgy1icHcaGQnjqQbU-0d6gWNw7tfge10,11156
60
- swcgeom/utils/solid_geometry.py,sha256=2c8MNCfvkF7HAhmLPQXvHF8uexoNJBeFh6Qa9n6M8CQ,2980
61
- swcgeom/utils/transforms.py,sha256=UKGeCv8O109mcBk1_opnwABLYVpmfF8sT_f5Mx5APSM,7538
62
- swcgeom/utils/volumetric_object.py,sha256=Y_rEAzeCozJWwXicerwRElwotTgQwHlz9TChzsG9J1I,15683
63
- swcgeom-0.18.3.dist-info/LICENSE,sha256=xx0jnfkXJvxRnG63LTGOxlggYnIysveWIZ6H3PNdCrQ,11357
64
- swcgeom-0.18.3.dist-info/METADATA,sha256=jAOt9X1yBoGfypR3HTr0NkiyoHpNPmuQ_rtoqJN1LSo,2301
65
- swcgeom-0.18.3.dist-info/WHEEL,sha256=In9FTNxeP60KnTkGw7wk6mJPYd_dQSjEZmXdBdMCI-8,91
66
- swcgeom-0.18.3.dist-info/top_level.txt,sha256=hmLyUXWS61Gxl07haswFEKKefYPBVJYlUlol8ghNkjY,8
67
- swcgeom-0.18.3.dist-info/RECORD,,