siibra 1.0.1a1__py3-none-any.whl → 1.0.1a5__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 siibra might be problematic. Click here for more details.

Files changed (67) hide show
  1. siibra/VERSION +1 -1
  2. siibra/__init__.py +7 -16
  3. siibra/commons.py +19 -8
  4. siibra/configuration/configuration.py +5 -6
  5. siibra/configuration/factory.py +13 -8
  6. siibra/core/__init__.py +1 -1
  7. siibra/core/assignment.py +19 -7
  8. siibra/core/atlas.py +3 -3
  9. siibra/core/concept.py +4 -2
  10. siibra/core/parcellation.py +5 -5
  11. siibra/core/region.py +24 -25
  12. siibra/core/space.py +4 -6
  13. siibra/core/structure.py +2 -2
  14. siibra/explorer/url.py +2 -2
  15. siibra/features/anchor.py +3 -7
  16. siibra/features/connectivity/regional_connectivity.py +51 -40
  17. siibra/features/dataset/ebrains.py +1 -1
  18. siibra/features/feature.py +29 -20
  19. siibra/features/image/__init__.py +6 -3
  20. siibra/features/image/image.py +2 -4
  21. siibra/features/image/sections.py +81 -2
  22. siibra/features/image/volume_of_interest.py +8 -7
  23. siibra/features/tabular/__init__.py +1 -1
  24. siibra/features/tabular/bigbrain_intensity_profile.py +2 -1
  25. siibra/features/tabular/cell_density_profile.py +8 -9
  26. siibra/features/tabular/cortical_profile.py +6 -6
  27. siibra/features/tabular/gene_expression.py +34 -16
  28. siibra/features/tabular/layerwise_bigbrain_intensities.py +4 -3
  29. siibra/features/tabular/layerwise_cell_density.py +83 -24
  30. siibra/features/tabular/receptor_density_fingerprint.py +34 -9
  31. siibra/features/tabular/receptor_density_profile.py +1 -2
  32. siibra/features/tabular/regional_timeseries_activity.py +7 -7
  33. siibra/features/tabular/tabular.py +14 -7
  34. siibra/livequeries/allen.py +23 -22
  35. siibra/livequeries/bigbrain.py +239 -51
  36. siibra/livequeries/ebrains.py +13 -10
  37. siibra/livequeries/query.py +3 -3
  38. siibra/locations/__init__.py +17 -8
  39. siibra/locations/boundingbox.py +10 -8
  40. siibra/{experimental/plane3d.py → locations/experimental.py} +113 -13
  41. siibra/locations/location.py +17 -13
  42. siibra/locations/point.py +14 -19
  43. siibra/locations/pointcloud.py +57 -12
  44. siibra/retrieval/cache.py +1 -0
  45. siibra/retrieval/datasets.py +19 -13
  46. siibra/retrieval/repositories.py +10 -11
  47. siibra/retrieval/requests.py +26 -24
  48. siibra/vocabularies/__init__.py +1 -2
  49. siibra/volumes/__init__.py +4 -3
  50. siibra/volumes/parcellationmap.py +33 -17
  51. siibra/volumes/providers/freesurfer.py +4 -4
  52. siibra/volumes/providers/gifti.py +4 -4
  53. siibra/volumes/providers/neuroglancer.py +19 -22
  54. siibra/volumes/providers/nifti.py +6 -6
  55. siibra/volumes/providers/provider.py +3 -2
  56. siibra/volumes/sparsemap.py +19 -26
  57. siibra/volumes/volume.py +21 -28
  58. {siibra-1.0.1a1.dist-info → siibra-1.0.1a5.dist-info}/METADATA +37 -17
  59. siibra-1.0.1a5.dist-info/RECORD +80 -0
  60. {siibra-1.0.1a1.dist-info → siibra-1.0.1a5.dist-info}/WHEEL +1 -1
  61. siibra/experimental/__init__.py +0 -19
  62. siibra/experimental/contour.py +0 -61
  63. siibra/experimental/cortical_profile_sampler.py +0 -57
  64. siibra/experimental/patch.py +0 -98
  65. siibra-1.0.1a1.dist-info/RECORD +0 -84
  66. {siibra-1.0.1a1.dist-info → siibra-1.0.1a5.dist-info/licenses}/LICENSE +0 -0
  67. {siibra-1.0.1a1.dist-info → siibra-1.0.1a5.dist-info}/top_level.txt +0 -0
@@ -1,19 +0,0 @@
1
- # Copyright 2018-2025
2
- # Institute of Neuroscience and Medicine (INM-1), Forschungszentrum Jülich GmbH
3
-
4
- # Licensed under the Apache License, Version 2.0 (the "License");
5
- # you may not use this file except in compliance with the License.
6
- # You may obtain a copy of the License at
7
-
8
- # http://www.apache.org/licenses/LICENSE-2.0
9
-
10
- # Unless required by applicable law or agreed to in writing, software
11
- # distributed under the License is distributed on an "AS IS" BASIS,
12
- # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13
- # See the License for the specific language governing permissions and
14
- # limitations under the License.
15
-
16
- from .plane3d import Plane3D
17
- from .contour import Contour
18
- from .cortical_profile_sampler import CorticalProfileSampler
19
- from .patch import Patch
@@ -1,61 +0,0 @@
1
- # Copyright 2018-2025
2
- # Institute of Neuroscience and Medicine (INM-1), Forschungszentrum Jülich GmbH
3
-
4
- # Licensed under the Apache License, Version 2.0 (the "License");
5
- # you may not use this file except in compliance with the License.
6
- # You may obtain a copy of the License at
7
-
8
- # http://www.apache.org/licenses/LICENSE-2.0
9
-
10
- # Unless required by applicable law or agreed to in writing, software
11
- # distributed under the License is distributed on an "AS IS" BASIS,
12
- # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13
- # See the License for the specific language governing permissions and
14
- # limitations under the License.
15
-
16
- from ..locations import point, pointcloud, boundingbox
17
-
18
- import numpy as np
19
-
20
-
21
- class Contour(pointcloud.PointCloud):
22
- """
23
- A PointCloud that represents a contour line.
24
- The only difference is that the point order is relevant,
25
- and consecutive points are thought as being connected by an edge.
26
-
27
- In fact, PointCloud assumes order as well, but no connections between points.
28
- """
29
-
30
- def __init__(self, coordinates, space=None, sigma_mm=0, labels: list = None):
31
- pointcloud.PointCloud.__init__(self, coordinates, space, sigma_mm, labels)
32
-
33
- def crop(self, voi: boundingbox.BoundingBox):
34
- """
35
- Crop the contour with a volume of interest.
36
- Since the contour might be split from the cropping,
37
- returns a set of contour segments.
38
- """
39
- segments = []
40
-
41
- # set the contour point labels to a linear numbering
42
- # so we can use them after the intersection to detect splits.
43
- old_labels = self.labels
44
- self.labels = list(range(len(self)))
45
- cropped = self.intersection(voi)
46
-
47
- if cropped is not None and not isinstance(cropped, point.Point):
48
- assert isinstance(cropped, pointcloud.PointCloud)
49
- # Identify contour splits are by discontinuouities ("jumps")
50
- # of their labels, which denote positions in the original contour
51
- jumps = np.diff([self.labels.index(lb) for lb in cropped.labels])
52
- splits = [0] + list(np.where(jumps > 1)[0] + 1) + [len(cropped)]
53
- for i, j in zip(splits[:-1], splits[1:]):
54
- segments.append(
55
- self.__class__(cropped.coordinates[i:j, :], space=cropped.space)
56
- )
57
-
58
- # reset labels of the input contour points.
59
- self.labels = old_labels
60
-
61
- return segments
@@ -1,57 +0,0 @@
1
- # Copyright 2018-2025
2
- # Institute of Neuroscience and Medicine (INM-1), Forschungszentrum Jülich GmbH
3
-
4
- # Licensed under the Apache License, Version 2.0 (the "License");
5
- # you may not use this file except in compliance with the License.
6
- # You may obtain a copy of the License at
7
-
8
- # http://www.apache.org/licenses/LICENSE-2.0
9
-
10
- # Unless required by applicable law or agreed to in writing, software
11
- # distributed under the License is distributed on an "AS IS" BASIS,
12
- # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13
- # See the License for the specific language governing permissions and
14
- # limitations under the License.
15
-
16
- from . import contour
17
- from ..locations import point
18
- from ..core import parcellation
19
-
20
- import numpy as np
21
-
22
-
23
- class CorticalProfileSampler:
24
- """Samples cortical profiles from the cortical layer maps."""
25
-
26
- def __init__(self):
27
- self.layermap = parcellation.Parcellation.get_instance(
28
- "cortical layers"
29
- ).get_map(space="bigbrain", maptype="labelled")
30
-
31
- def query(self, query_point: point.Point):
32
- q = query_point.warp(self.layermap.space)
33
- smallest_dist = np.inf
34
- best_match = None
35
- for layername in self.layermap.regions:
36
- vertices = self.layermap.fetch(region=layername, format="mesh")["verts"]
37
- dists = np.sqrt(((vertices - q.coordinate) ** 2).sum(1))
38
- best = np.argmin(dists)
39
- if dists[best] < smallest_dist:
40
- best_match = (layername, best)
41
- smallest_dist = dists[best]
42
-
43
- best_vertex = best_match[1]
44
- hemisphere = "left" if "left" in best_match[0] else "right"
45
- print(f"Best match is vertex #{best_match[1]} in {best_match[0]}.")
46
-
47
- profile = [
48
- (_, self.layermap.fetch(region=_, format="mesh")["verts"][best_vertex])
49
- for _ in self.layermap.regions
50
- if hemisphere in _
51
- ]
52
-
53
- return contour.Contour(
54
- [p[1] for p in profile],
55
- space=self.layermap.space,
56
- labels=[p[0] for p in profile],
57
- )
@@ -1,98 +0,0 @@
1
- # Copyright 2018-2025
2
- # Institute of Neuroscience and Medicine (INM-1), Forschungszentrum Jülich GmbH
3
-
4
- # Licensed under the Apache License, Version 2.0 (the "License");
5
- # you may not use this file except in compliance with the License.
6
- # You may obtain a copy of the License at
7
-
8
- # http://www.apache.org/licenses/LICENSE-2.0
9
-
10
- # Unless required by applicable law or agreed to in writing, software
11
- # distributed under the License is distributed on an "AS IS" BASIS,
12
- # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13
- # See the License for the specific language governing permissions and
14
- # limitations under the License.
15
-
16
- from ..volumes import volume
17
- from ..locations import pointcloud, boundingbox
18
- from ..commons import translation_matrix, y_rotation_matrix
19
-
20
- import numpy as np
21
- import math
22
- from nilearn import image
23
-
24
-
25
- class Patch:
26
-
27
- def __init__(self, corners: pointcloud.PointCloud):
28
- """Construct a patch in physical coordinates.
29
- As of now, only patches aligned in the y plane of the physical space
30
- are supported."""
31
- # TODO: need to ensure that the points are planar, if more than 3
32
- assert len(corners) == 4
33
- assert len(np.unique(corners.coordinates[:, 1])) == 1
34
- self.corners = corners
35
-
36
- @property
37
- def space(self):
38
- return self.corners.space
39
-
40
- def flip(self):
41
- """Flips the patch. """
42
- self.corners._coordinates = self.corners.coordinates[[2, 3, 0, 1]]
43
-
44
- def extract_volume(self, image_volume: volume.Volume, resolution_mm: float):
45
- """
46
- fetches image data in a planar patch.
47
- TODO The current implementation only covers patches which are strictly
48
- define in the y plane. A future implementation should accept arbitrary
49
- oriented patches.accept arbitrary oriented patches.
50
- """
51
- assert image_volume.space == self.space
52
-
53
- # Extend the 2D patch into a 3D structure
54
- # this is only valid if the patch plane lies within the image canvas.
55
- canvas = image_volume.get_boundingbox()
56
- assert canvas.minpoint[1] <= self.corners.coordinates[0, 1]
57
- assert canvas.maxpoint[1] >= self.corners.coordinates[0, 1]
58
- XYZ = self.corners.coordinates
59
- voi = boundingbox.BoundingBox(
60
- XYZ.min(0)[:3], XYZ.max(0)[:3], space=image_volume.space
61
- )
62
- # enforce the patch to have the same y dimensions
63
- voi.minpoint[1] = canvas.minpoint[1]
64
- voi.maxpoint[1] = canvas.maxpoint[1]
65
- patch = image_volume.fetch(voi=voi, resolution_mm=resolution_mm)
66
- assert patch is not None
67
-
68
- # patch rotation defined in physical space
69
- vx, vy, vz = XYZ[1] - XYZ[0]
70
- alpha = -math.atan2(-vz, -vx)
71
- cx, cy, cz = XYZ.mean(0)
72
- rot_phys = np.linalg.multi_dot(
73
- [
74
- translation_matrix(cx, cy, cz),
75
- y_rotation_matrix(alpha),
76
- translation_matrix(-cx, -cy, -cz),
77
- ]
78
- )
79
-
80
- # rotate the patch in physical space
81
- affine_rot = np.dot(rot_phys, patch.affine)
82
-
83
- # crop in the rotated space
84
- pixels = (
85
- np.dot(np.linalg.inv(affine_rot), self.corners.homogeneous.T)
86
- .astype("int")
87
- .T
88
- )
89
- # keep a pixel distance to avoid black border pixels
90
- xmin, ymin, zmin = pixels.min(0)[:3] + 1
91
- xmax, ymax, zmax = pixels.max(0)[:3] - 1
92
- h, w = xmax - xmin, zmax - zmin
93
- affine = np.dot(affine_rot, translation_matrix(xmin, 0, zmin))
94
- return volume.from_nifti(
95
- image.resample_img(patch, target_affine=affine, target_shape=[h, 1, w]),
96
- space=image_volume.space,
97
- name=f"Rotated patch with corner points {self.corners} sampled from {image_volume.name}",
98
- )
@@ -1,84 +0,0 @@
1
- siibra/VERSION,sha256=9ScdUIV7rZMdtIHh1xiZnvlgNqft2-RuTXdHqzbCywk,14
2
- siibra/__init__.py,sha256=I5Sc9l00TyrHE9M3zqYa-vuTTku8XrT1txyfdwmoJdo,4716
3
- siibra/commons.py,sha256=oZNGMp1O25S71Bn82jPZbI_a90HYJZqyv9Ad2kkq86g,27644
4
- siibra/exceptions.py,sha256=6MlXOadwXcCsceOE4lmy4fLJyAaBCCVvJF6BZlMYjU8,1371
5
- siibra/configuration/__init__.py,sha256=ArqQ_B8C_O61KA4Fk3ho8ksckbjLu-COOlPGiXyf8LE,752
6
- siibra/configuration/configuration.py,sha256=3ZI8ZksdpzGqGqYZq2Dj5y_jwpVaiXoWeDl4P2MGIl8,7263
7
- siibra/configuration/factory.py,sha256=l94pNXJGxLBJvrwGjLi09XZ8A9GEU4ipRaH0igUv7Zg,22627
8
- siibra/core/__init__.py,sha256=GFTX-RbJoM_EUSXsBcxl4meHoMMFBQUtqsn-Q_2HPMI,735
9
- siibra/core/assignment.py,sha256=WfpVaKXK58H4LXxMN1Wm2886h0h_8AeDRQ2wNIi2L70,3819
10
- siibra/core/atlas.py,sha256=lVQJSmIbwPvrQoXSj9OGz6Nub3FFUCU9PpCEdeFPc0w,8549
11
- siibra/core/concept.py,sha256=4vDpyYzcqffK2xB4zvELHOd_F6LaenI0sKo52PPGNW0,10889
12
- siibra/core/parcellation.py,sha256=RV6KVHojom0uXGIgISkVMw5hwKwaqKk5xr6-HnptgRQ,14480
13
- siibra/core/region.py,sha256=67Obqi4PT68CZzvK6GAtzShxXguhpWRXfjSHfBF13v8,44013
14
- siibra/core/space.py,sha256=ydOw0LIkX17Q1vjLbTRO_KkAoEqogwR_GadxI6oAqs0,4586
15
- siibra/core/structure.py,sha256=TC7nKU5phDt0I7uUlXS87Ihy98W0FiEfD3eiIPnrLVg,4498
16
- siibra/experimental/__init__.py,sha256=6yRLup4NclsScLviwlvNp4Uu4qWQ1ky2H7KS1qd06Q8,791
17
- siibra/experimental/contour.py,sha256=SoFwpUOZbnW8oVEJgEz5OoHIY-y6Bvga_NZI5IhmXpo,2453
18
- siibra/experimental/cortical_profile_sampler.py,sha256=JPj40JtWBQMNwJS9KcR_q9Uo98aTH58vgME3bAoHueI,2086
19
- siibra/experimental/patch.py,sha256=-CJIjvZYoaZUlwjVGxWjrAAVodeJeYklBA010D-iWJs,3809
20
- siibra/experimental/plane3d.py,sha256=v0KQnXlAAt_D8mSRcsW-oWQwq21Qz3FfRoVZoDfYqMA,10856
21
- siibra/explorer/__init__.py,sha256=XBAeYm4W3HlbWsKtt8gOwqE_FinIEY7RdA6Rg4Y275A,781
22
- siibra/explorer/url.py,sha256=ja5i-VkEMYwqhlQ-K5tEfnlYTcgMpPFYJCK7IV0d3Us,7069
23
- siibra/explorer/util.py,sha256=ul82TQZAULdupr4tJBACdkjlHm2mt8LJ9UpwNWGHYhE,2083
24
- siibra/features/__init__.py,sha256=FER6DMnkPhXSV1XMZWibZdyBwVhIgWYSUGYMEYEKb9c,3970
25
- siibra/features/anchor.py,sha256=sptZnJPTbkLAi5TWeY5Q1paDTa8YXI0Om5qztTjwwmI,9131
26
- siibra/features/feature.py,sha256=bREzxEKP0_7PJdjPhwHMl2X6wgcIq0CbiaNVvz8tq7A,35194
27
- siibra/features/connectivity/__init__.py,sha256=FkPf0vyrLo3ERxrDbsRHUd7FUgJyajD87NiiXIiXhmY,1161
28
- siibra/features/connectivity/functional_connectivity.py,sha256=9lQoOXv8lZUnyMduAbWABwDIkQC0QTI8V23yx0NjOBg,2122
29
- siibra/features/connectivity/regional_connectivity.py,sha256=RHK14xVF2rn4kJBIRHfJaJ42hjUlqndb4B5PTw6qdIo,18286
30
- siibra/features/connectivity/streamline_counts.py,sha256=JaAYf6-1S8NYhkE4lhshCSY__EQ5BFcL2i_XXdFfgrM,1064
31
- siibra/features/connectivity/streamline_lengths.py,sha256=QeuoW_ZDVa9dxCguaemj4Cq9CCPB8ur8_alhATto2-w,1067
32
- siibra/features/connectivity/tracing_connectivity.py,sha256=rkYgD8mOZzDp0STo5djhDqOaEdz-9j5EuLffXE0F01A,1083
33
- siibra/features/dataset/__init__.py,sha256=qRV_P0335b4LnSMiONRpSC4elGckp0FXmtJz_QQuVLA,748
34
- siibra/features/dataset/ebrains.py,sha256=2lyRVc4NleLuD_n2fPkRG8tNl7Ab6ZtCCR7evsk8Zng,2544
35
- siibra/features/image/__init__.py,sha256=KEwWl2tjyC8D9QinIKtswBVJ1_eGyelTA-iBqfSFLis,1013
36
- siibra/features/image/image.py,sha256=DQWM8giRaJ_XeOrD9CKUYOdASZ8N9oE-ZjTYxlj3We8,3585
37
- siibra/features/image/sections.py,sha256=XxZ5THbKIuRvCwA8f3COk2AgeWwXaR-Y9h14nNa3M-s,961
38
- siibra/features/image/volume_of_interest.py,sha256=Nfwagn_eqtc1TVD7VDEcItCR4n6qM5m_AbS2BF77ZIY,2654
39
- siibra/features/tabular/__init__.py,sha256=HA0LcTLvJG2tnYolu48Rn7vxhVHl1X98Pn-27s1XR7s,1176
40
- siibra/features/tabular/bigbrain_intensity_profile.py,sha256=aUuLpqVgHwzHG6ZCNUS9G4YbrxnWywaUynatFTXdao4,2708
41
- siibra/features/tabular/cell_density_profile.py,sha256=8dI7MZaAFwaLRR-xPstDAVi3X6z2E7D-ATNmJ2JyEkw,10819
42
- siibra/features/tabular/cortical_profile.py,sha256=Sod25RABEUlcC8Ct_r2Ujd6FjGbqhJHp0yOIBRAbYho,12542
43
- siibra/features/tabular/gene_expression.py,sha256=Gg6dkm8YX2TiR-zxDK8qhfwrvYRHh0Bef5b9sry5jsw,9827
44
- siibra/features/tabular/layerwise_bigbrain_intensities.py,sha256=8Doy4Mnitm-ODBepS2Nep3D1BeXx3lmmjHb-tJWyjVY,2117
45
- siibra/features/tabular/layerwise_cell_density.py,sha256=v2TDCCinOc_sOeTZP43zSVx_y8uJ_fbFVQ-XHtEx_ww,3783
46
- siibra/features/tabular/receptor_density_fingerprint.py,sha256=7Uc9j2QUijy-KeqzL8Tf3nfWz2eAv23Qk-Br_iA7_Mk,7354
47
- siibra/features/tabular/receptor_density_profile.py,sha256=zKHzHpavxo6ZWpGXiiW99XrP6yrdrhVKJmAKeXYFvIg,3725
48
- siibra/features/tabular/regional_timeseries_activity.py,sha256=J4sXJHrkLrLm3WaMcaWy3QgkA6-bGN_Jj1HmydjDejo,10027
49
- siibra/features/tabular/tabular.py,sha256=9qI9UicIRX-9FbA31S-KHuLDm-mPFkAeEfxmAfGTldw,5393
50
- siibra/livequeries/__init__.py,sha256=hToUNmyFq1UW5CxScHyBB-mSZ7kUK_w1Cvrk1OkZQf0,875
51
- siibra/livequeries/allen.py,sha256=wOmdS2PaRvK7FbBRNz2AxFAwyS86uw_qAVfwlW80JAo,14811
52
- siibra/livequeries/bigbrain.py,sha256=-eqNFAe43Lo-Yt_hOIDokU07G7fpwaqUiOrFrR1jpFc,8929
53
- siibra/livequeries/ebrains.py,sha256=KDLu9SPM35Qo46mOiSgxGUEsP2XzZbcYOAl9P_FwybU,5820
54
- siibra/livequeries/query.py,sha256=on7f-HSm8aqe8YbQucsvjBCvCo3kDv8I3I8TpDoWK2s,1849
55
- siibra/locations/__init__.py,sha256=mBwPNip68fu8J9M-1ZOMkQs75HmOad2wjXkJhGgiK-U,3343
56
- siibra/locations/boundingbox.py,sha256=wlVXVL6CAs7K6rhoe9QuV9zDjtLc146iMd2W6t2StRU,16370
57
- siibra/locations/location.py,sha256=CVawSj0QuKBHLogPtPGCWxeFSjfFGbGqe6RZf12m3iA,4361
58
- siibra/locations/point.py,sha256=hutOgQ4QiRrGd-utlZ75ynnzpRFBJcp47UU1rBXcVsg,12863
59
- siibra/locations/pointcloud.py,sha256=h91luJwN974qakhZyaz7bNNj4POjdX3uDyWOcYxdmqs,12361
60
- siibra/retrieval/__init__.py,sha256=E-UA8rDQZFGkHmAcmit6siONo7G2mH_Y0xgLlR1RfvY,1062
61
- siibra/retrieval/cache.py,sha256=rqXjWnMBI5RuxUEtC9QW7scZTArwdOQcM4EZveSX3D0,7832
62
- siibra/retrieval/datasets.py,sha256=kb9D0QNP3R9emc-ss2jwaVLyrWOt-kSjujf-UNZUhRQ,11031
63
- siibra/retrieval/repositories.py,sha256=7bfHXjbtnpE8oBj24-fxvQDZddGaH7O3g7CrtmN6_jI,29938
64
- siibra/retrieval/requests.py,sha256=mSXBPZaUSLuLpvN6WSTZF4ccdlmXFUfHbq7ijmSdxS4,23072
65
- siibra/retrieval/exceptions/__init__.py,sha256=sOuzPHh2xq1p55T0zAcrSW2B1wfwwYEXBOWIuCjGePE,875
66
- siibra/vocabularies/__init__.py,sha256=oxI4K9tBuFLo4WgRYmzog5IxOBi5Hyf9iBbkhZPhhoc,1288
67
- siibra/vocabularies/gene_names.json,sha256=i-gnh753GyZtQfX_dWibNYr_d5ccDPHooOwsdeKUYqE,1647972
68
- siibra/vocabularies/receptor_symbols.json,sha256=F6DZIArPCBmJV_lWGV-zDpBBH_GOJOZm67LBE4qzMa4,5722
69
- siibra/vocabularies/region_aliases.json,sha256=T2w1wRlxPNTsPppXn0bzC70tNsb8mOjLsoHuxDSYm2w,8563
70
- siibra/volumes/__init__.py,sha256=mZ7xrI-MsAXMctff2eFiM3-Dx_vX1PNdfYjgP0mZuN4,935
71
- siibra/volumes/parcellationmap.py,sha256=opdC2TphSVXWuzFpQMBOtLAYmxlNkQRoELe4KE-oTi4,50847
72
- siibra/volumes/sparsemap.py,sha256=LjTgqOua2NDgsFSNrC7NC2FwDp2FwPUfJPe_lwsBGUQ,17437
73
- siibra/volumes/volume.py,sha256=EAAaA2yu8Qu_-YGTy4LKp6Pw1qg6FdWSJc0hiujcr9M,32621
74
- siibra/volumes/providers/__init__.py,sha256=AHZCjutCqO4mnHxyykVjqxlz85jDqFWcSjsa4ciwc1A,934
75
- siibra/volumes/providers/freesurfer.py,sha256=zvBExeq34d8JwVqj2_HQ04865XwBqRAz5O4yNbNMsms,4893
76
- siibra/volumes/providers/gifti.py,sha256=vCuUCO5QzVBGVO-SmRNDYVoT70CXu_s7_p9F-TlEIro,6231
77
- siibra/volumes/providers/neuroglancer.py,sha256=9uMWCNYvqJxuQd0NVPWmc6aG3sZ3cxnpGra7j9sc7xQ,28716
78
- siibra/volumes/providers/nifti.py,sha256=jTNrq__phdd-nhQoKFhQU5s6je4p2UuUTMQvAunnPHE,10135
79
- siibra/volumes/providers/provider.py,sha256=9IkEJCYwUwr-rBpQuW1bGOUOEnlzQLXuA9e6WHKTOyM,3695
80
- siibra-1.0.1a1.dist-info/LICENSE,sha256=xx0jnfkXJvxRnG63LTGOxlggYnIysveWIZ6H3PNdCrQ,11357
81
- siibra-1.0.1a1.dist-info/METADATA,sha256=8krNAo5-9sNMyKfhzjseNoUtsF6UhqCsjbFa5FWXpiQ,9081
82
- siibra-1.0.1a1.dist-info/WHEEL,sha256=In9FTNxeP60KnTkGw7wk6mJPYd_dQSjEZmXdBdMCI-8,91
83
- siibra-1.0.1a1.dist-info/top_level.txt,sha256=NF0OSGLL0li2qyC7MaU0iBB5Y9S09_euPpvisD0-8Hg,7
84
- siibra-1.0.1a1.dist-info/RECORD,,