siibra 1.0a9__py3-none-any.whl → 1.0a14__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 (35) hide show
  1. siibra/VERSION +1 -1
  2. siibra/commons.py +44 -27
  3. siibra/configuration/factory.py +15 -16
  4. siibra/core/atlas.py +40 -16
  5. siibra/core/region.py +241 -38
  6. siibra/features/__init__.py +19 -8
  7. siibra/features/connectivity/functional_connectivity.py +1 -1
  8. siibra/features/connectivity/regional_connectivity.py +45 -3
  9. siibra/features/feature.py +65 -12
  10. siibra/features/image/image.py +3 -1
  11. siibra/features/tabular/bigbrain_intensity_profile.py +1 -1
  12. siibra/features/tabular/cell_density_profile.py +5 -3
  13. siibra/features/tabular/cortical_profile.py +79 -15
  14. siibra/features/tabular/gene_expression.py +111 -2
  15. siibra/features/tabular/layerwise_bigbrain_intensities.py +1 -1
  16. siibra/features/tabular/layerwise_cell_density.py +3 -1
  17. siibra/features/tabular/receptor_density_fingerprint.py +3 -1
  18. siibra/features/tabular/receptor_density_profile.py +3 -5
  19. siibra/features/tabular/regional_timeseries_activity.py +59 -10
  20. siibra/features/tabular/tabular.py +4 -2
  21. siibra/livequeries/bigbrain.py +34 -0
  22. siibra/retrieval/cache.py +14 -9
  23. siibra/retrieval/requests.py +30 -1
  24. siibra/volumes/parcellationmap.py +17 -21
  25. siibra/volumes/providers/__init__.py +1 -0
  26. siibra/volumes/providers/freesurfer.py +113 -0
  27. siibra/volumes/providers/neuroglancer.py +55 -25
  28. siibra/volumes/providers/nifti.py +14 -16
  29. siibra/volumes/sparsemap.py +4 -3
  30. siibra/volumes/volume.py +13 -15
  31. {siibra-1.0a9.dist-info → siibra-1.0a14.dist-info}/METADATA +1 -1
  32. {siibra-1.0a9.dist-info → siibra-1.0a14.dist-info}/RECORD +35 -34
  33. {siibra-1.0a9.dist-info → siibra-1.0a14.dist-info}/WHEEL +1 -1
  34. {siibra-1.0a9.dist-info → siibra-1.0a14.dist-info}/LICENSE +0 -0
  35. {siibra-1.0a9.dist-info → siibra-1.0a14.dist-info}/top_level.txt +0 -0
@@ -15,7 +15,7 @@
15
15
 
16
16
  from . import provider as _provider
17
17
 
18
- from ...commons import logger
18
+ from ...commons import logger, resample_img_to_img
19
19
  from ...retrieval import requests
20
20
  from ...locations import pointset, boundingbox as _boundingbox
21
21
 
@@ -108,11 +108,9 @@ class NiftiProvider(_provider.VolumeProvider, srctype="nii"):
108
108
  return bbox
109
109
 
110
110
  def _merge_fragments(self) -> nib.Nifti1Image:
111
- # TODO this only performs nearest neighbor interpolation, optimized for float types.
112
111
  bbox = self.get_boundingbox(clip=False, background=0.0)
113
112
  num_conflicts = 0
114
113
  result = None
115
-
116
114
  for loader in self._img_loaders.values():
117
115
  img = loader()
118
116
  if result is None:
@@ -120,25 +118,25 @@ class NiftiProvider(_provider.VolumeProvider, srctype="nii"):
120
118
  s0 = np.identity(4)
121
119
  s0[:3, -1] = list(bbox.minpoint.transform(np.linalg.inv(img.affine)))
122
120
  result_affine = np.dot(img.affine, s0) # adjust global bounding box offset to get global affine
123
- voxdims = np.asanyarray(bbox.transform(result_affine).shape, dtype="int")
121
+ voxdims = np.asanyarray(np.ceil(
122
+ bbox.transform(np.linalg.inv(result_affine)).shape
123
+ ), dtype="int")
124
124
  result_arr = np.zeros(voxdims, dtype=img.dataobj.dtype)
125
125
  result = nib.Nifti1Image(dataobj=result_arr, affine=result_affine)
126
126
 
127
- arr = np.asanyarray(img.dataobj)
128
- Xs, Ys, Zs = np.where(arr != 0)
129
- Xt, Yt, Zt, _ = np.split(
130
- (np.dot(
131
- np.linalg.inv(result_affine),
132
- np.dot(img.affine, np.c_[Xs, Ys, Zs, Zs * 0 + 1].T)
133
- ) + .5).astype('int'),
134
- 4, axis=0
135
- )
136
- num_conflicts += np.count_nonzero(result_arr[Xt, Yt, Zt])
137
- result_arr[Xt, Yt, Zt] = arr[Xs, Ys, Zs]
127
+ # resample to merge template and update it
128
+ resampled_img = resample_img_to_img(source_img=img, target_img=result)
129
+ arr = np.asanyarray(resampled_img.dataobj)
130
+ nonzero_voxels = arr != 0
131
+ num_conflicts += np.count_nonzero(result_arr[nonzero_voxels])
132
+ result_arr[nonzero_voxels] = arr[nonzero_voxels]
138
133
 
139
134
  if num_conflicts > 0:
140
135
  num_voxels = np.count_nonzero(result_arr)
141
- logger.warning(f"Merging fragments required to overwrite {num_conflicts} conflicting voxels ({num_conflicts / num_voxels * 100.:2.1f}%).")
136
+ logger.warning(
137
+ f"Merging fragments required to overwrite {num_conflicts} "
138
+ f"conflicting voxels ({num_conflicts / num_voxels * 100.:2.1f}%)."
139
+ )
142
140
 
143
141
  return result
144
142
 
@@ -20,6 +20,7 @@ from ..commons import MapIndex, logger, connected_components, siibra_tqdm
20
20
  from ..locations import boundingbox
21
21
  from ..retrieval import cache
22
22
  from ..retrieval.repositories import ZipfileConnector, GitlabConnector
23
+ from ..exceptions import InsufficientArgumentException, ExcessiveArgumentException
23
24
 
24
25
  from os import path, rename, makedirs
25
26
  from zipfile import ZipFile, ZIP_DEFLATED
@@ -390,7 +391,7 @@ class SparseMap(parcellationmap.Map):
390
391
  assert length == 1
391
392
  except AssertionError:
392
393
  if length > 1:
393
- raise parcellationmap.ExcessiveArgumentException(
394
+ raise ExcessiveArgumentException(
394
395
  "One and only one of region_or_index, region, index can be defined for fetch"
395
396
  )
396
397
  # user can provide no arguments, which assumes one and only one volume present
@@ -416,7 +417,7 @@ class SparseMap(parcellationmap.Map):
416
417
  assert len(self) == 1
417
418
  volidx = 0
418
419
  except AssertionError:
419
- raise parcellationmap.InsufficientArgumentException(
420
+ raise InsufficientArgumentException(
420
421
  f"{self.__class__.__name__} provides {len(self)} volumes. "
421
422
  "Specify 'region' or 'index' for fetch() to identify one."
422
423
  )
@@ -458,7 +459,7 @@ class SparseMap(parcellationmap.Map):
458
459
  """
459
460
  Assign an image volume to this sparse map.
460
461
 
461
- Parameters:
462
+ Parameters
462
463
  -----------
463
464
  queryvolume: Volume
464
465
  the volume to be compared with maps
siibra/volumes/volume.py CHANGED
@@ -20,7 +20,7 @@ from .. import logger
20
20
  from ..retrieval import requests
21
21
  from ..core import space as _space, structure
22
22
  from ..locations import location, point, pointset, boundingbox
23
- from ..commons import resample_array_to_array, siibra_tqdm
23
+ from ..commons import resample_img_to_img, siibra_tqdm
24
24
  from ..exceptions import NoMapAvailableError, SpaceWarpingFailedError
25
25
 
26
26
  from nibabel import Nifti1Image
@@ -52,7 +52,9 @@ class Volume(location.Location):
52
52
  "neuroglancer/precompmesh",
53
53
  "neuroglancer/precompmesh/surface",
54
54
  "gii-mesh",
55
- "gii-label"
55
+ "gii-label",
56
+ "freesurfer-annot",
57
+ "zip/freesurfer-annot",
56
58
  ]
57
59
 
58
60
  SUPPORTED_FORMATS = IMAGE_FORMATS + MESH_FORMATS
@@ -86,7 +88,7 @@ class Volume(location.Location):
86
88
  assert srctype not in self._providers
87
89
  self._providers[srctype] = provider
88
90
  if len(self._providers) == 0:
89
- logger.debug(f"No provider for volume {self}")
91
+ logger.debug(f"No provider for volume {name}")
90
92
 
91
93
  def __hash__(self):
92
94
  return super().__hash__()
@@ -141,7 +143,7 @@ class Volume(location.Location):
141
143
  If the volume provider does not have a bounding box calculator.
142
144
  """
143
145
  fmt = fetch_kwargs.get("format")
144
- if fmt in self._providers:
146
+ if (fmt is not None) and (fmt not in self.formats):
145
147
  raise ValueError(
146
148
  f"Requested format {fmt} is not available as provider of "
147
149
  "this volume. See `volume.formats` for possible options."
@@ -157,7 +159,7 @@ class Volume(location.Location):
157
159
  bbox.minpoint._space_cached = self.space
158
160
  bbox.maxpoint._space_cached = self.space
159
161
  except NotImplementedError as e:
160
- print(str(e))
162
+ logger.info(e)
161
163
  continue
162
164
  return bbox
163
165
  raise RuntimeError(f"No bounding box specified by any volume provider of {str(self)}")
@@ -342,7 +344,7 @@ class Volume(location.Location):
342
344
  v1 = self.fetch(format=format, **fetch_kwargs)
343
345
  v2 = other.fetch(format=format, **fetch_kwargs)
344
346
  arr1 = np.asanyarray(v1.dataobj)
345
- arr2 = resample_array_to_array(np.asanyarray(v2.dataobj), v2.affine, arr1, v1.affine)
347
+ arr2 = np.asanyarray(resample_img_to_img(v2, v1).dataobj)
346
348
  pointwise_min = np.minimum(arr1, arr2)
347
349
  if np.any(pointwise_min):
348
350
  return from_array(
@@ -425,7 +427,7 @@ class Volume(location.Location):
425
427
  fwd_args = {k: v for k, v in kwargs.items() if k != "format"}
426
428
  for try_count in range(6):
427
429
  try:
428
- if fmt == "gii-label":
430
+ if fmt in ["gii-label", "freesurfer-annot", "zip/freesurfer-annot"]:
429
431
  tpl = self.space.get_template(variant=kwargs.get('variant'))
430
432
  mesh = tpl.fetch(**kwargs)
431
433
  labels = self._providers[fmt].fetch(**fwd_args)
@@ -676,7 +678,6 @@ def merge(volumes: List[Volume], labels: List[int] = [], **fetch_kwargs) -> Volu
676
678
  assert all(v.space == space for v in volumes), "Cannot merge volumes from different spaces."
677
679
 
678
680
  template_img = space.get_template().fetch(**fetch_kwargs)
679
- template_arr = np.asanyarray(template_img.dataobj)
680
681
  merged_array = np.zeros(template_img.shape, dtype='uint8')
681
682
 
682
683
  for i, vol in siibra_tqdm(
@@ -687,17 +688,14 @@ def merge(volumes: List[Volume], labels: List[int] = [], **fetch_kwargs) -> Volu
687
688
  disable=len(volumes) < 3
688
689
  ):
689
690
  img = vol.fetch(**fetch_kwargs)
690
- arr_resampled = resample_array_to_array(
691
- source_data=np.asanyarray(img.dataobj),
692
- source_affine=img.affine,
693
- target_data=template_arr,
694
- target_affine=template_img.affine
691
+ resampled_arr = np.asanyarray(
692
+ resample_img_to_img(img, template_img).dataobj
695
693
  )
696
- nonzero_voxels = arr_resampled > 0
694
+ nonzero_voxels = resampled_arr > 0
697
695
  if labels:
698
696
  merged_array[nonzero_voxels] = labels[i]
699
697
  else:
700
- merged_array[nonzero_voxels] = arr_resampled[nonzero_voxels]
698
+ merged_array[nonzero_voxels] = resampled_arr[nonzero_voxels]
701
699
 
702
700
  return from_array(
703
701
  data=merged_array,
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: siibra
3
- Version: 1.0a9
3
+ Version: 1.0a14
4
4
  Summary: siibra - Software interfaces for interacting with brain atlases
5
5
  Home-page: https://github.com/FZJ-INM1-BDA/siibra-python
6
6
  Author: Big Data Analytics Group, Forschungszentrum Juelich, Institute of Neuroscience and Medicine (INM-1)
@@ -1,16 +1,16 @@
1
- siibra/VERSION,sha256=xLmWoH0aS6jDodC8tSWPB0vEviS-FsfSSo1UsCLCklg,7
1
+ siibra/VERSION,sha256=WbSXoTCdjXhUGy1ETxp0o0n2LBufojSia_MjjoGVmVI,7
2
2
  siibra/__init__.py,sha256=01VIBU4L5NLBTNFoAUskc7brJ-8TanNwl1Ejtl47YGI,4463
3
- siibra/commons.py,sha256=kzGHJJN07fVRsFAe26mPrStXGFcdt5M-9diCrKNi1Cs,28449
3
+ siibra/commons.py,sha256=saHGFqOe2fYPhQJE6u0Ivo11F1jI9Irg8uL3_sliwN8,28820
4
4
  siibra/exceptions.py,sha256=bs79_vEK9Dz4TntJnD66L_bJ5Tt4Z0mO9GXQ4f9kNQE,1109
5
5
  siibra/configuration/__init__.py,sha256=-_Kuf0TfMEdFXiSCTAdcHUL_krA8-cxhJypSNNay53Q,752
6
6
  siibra/configuration/configuration.py,sha256=p2R0dxD8HdvrwHokXuTCrVgz9DvXmEmHkxRL_oT0VRI,7263
7
- siibra/configuration/factory.py,sha256=Ab1gdsDL6qcz_6LrSXBybsfOtyCc6BJiqhl_4oSDfsE,21110
7
+ siibra/configuration/factory.py,sha256=4IGayJJ47PXa9jdwnmcrPLeYa0Pmu1EJehG4LR-smbw,21110
8
8
  siibra/core/__init__.py,sha256=YQkeqGqpOT3aH-PPHeGb1kxSyMbgR3ZHqDCy2I0Zlsk,735
9
9
  siibra/core/assignment.py,sha256=pWkivLA54NrX3j21E_YxSX9_S70MrGuGq_6aQQ5IBB4,3819
10
- siibra/core/atlas.py,sha256=Fj5o4ehlh4BpCdu-LuT9im21_NioWMxhFbIApqF9Mxg,7865
10
+ siibra/core/atlas.py,sha256=XZ0vy6_l-kuiNF6KYs1PpTk2XwBK-aMY6cUKUnLYb3A,8299
11
11
  siibra/core/concept.py,sha256=zL220pIYmqWhEZNMo01p2o0IC37rjApdNd1_dPmbNvU,10496
12
12
  siibra/core/parcellation.py,sha256=iIESwMVg-YQLkCn7KSj8LZl1QDttMxJOVGoRv7DL2kU,13873
13
- siibra/core/region.py,sha256=hffsWYZ0lYHGLD7KAHOlmnIoCbnj9Q7x3BG_GU8FoYM,38661
13
+ siibra/core/region.py,sha256=2tDlrjoVKTz2dO4Y3Q2GAVPIWbZuDnGc04iEOPLPveM,44049
14
14
  siibra/core/space.py,sha256=TvOvcBKextuRrptdFKU-je6w5g5lqK0I_Wga73jd0zk,4517
15
15
  siibra/core/structure.py,sha256=cZFR_eyXt6j2KT6ohiOQFnjmntFVcvA4k2FpSinPzWI,4498
16
16
  siibra/experimental/__init__.py,sha256=s4bEYpMO4Ox-Xlx3FdnRUNKYs0mTHz5Hu4VnfNXpgxU,791
@@ -21,35 +21,35 @@ siibra/experimental/plane3d.py,sha256=Z1MnK3qjGvYLGgNcAimgCejBhAOzcwfF8cYyajTLrA
21
21
  siibra/explorer/__init__.py,sha256=9TYF4i5o3guwqDtsQ7mV6MLVmKQIFG0AwxN8PA_6ctw,781
22
22
  siibra/explorer/url.py,sha256=kxfrfz8v6gl_Z2Vu4jJkb54WYk8reFJxf3TXhJGu2VQ,6421
23
23
  siibra/explorer/util.py,sha256=8Ap0tnVFk1LOzD70o-EUbHk6HPLAG4SLaDrvrEzaJGk,2083
24
- siibra/features/__init__.py,sha256=_0iV-NiIqci9PkkYIzdm8Fl474HXYtzFw14VC9xrdOE,3428
24
+ siibra/features/__init__.py,sha256=Jd19RXFBuVemhF6AtrhOG4luocYGauA0FjnaEZdyaa8,3970
25
25
  siibra/features/anchor.py,sha256=cp5cu-tJceenbJESXLe3DXhmjtdhdyTN0KYOIXDkhmU,9068
26
- siibra/features/feature.py,sha256=3Pn4TBw9herGsFqKaGO2CUx5BO9vFYE03wPH0hJPIc0,32573
26
+ siibra/features/feature.py,sha256=bA3ME8Anc_rAa6g8cdagDFG5nfAOUud2t3YPinMPbwE,34492
27
27
  siibra/features/connectivity/__init__.py,sha256=XU6w7kX6lN_fZLt0TFGqg39Z9FCfbcotSR79p-JhLV4,1161
28
- siibra/features/connectivity/functional_connectivity.py,sha256=9xHu_GaODGP6Q0--hTf_tMjLtg1IKWI4qw78sZ9GQ5M,2120
29
- siibra/features/connectivity/regional_connectivity.py,sha256=zNohbWDBq7fWz7EDIZjFEDNwMgKnvDfkq9lLUKNfSDw,16736
28
+ siibra/features/connectivity/functional_connectivity.py,sha256=USnlse_qmThBxqINnv9EmecQewxuOvK3Mzy3DqbQBzc,2122
29
+ siibra/features/connectivity/regional_connectivity.py,sha256=uweR77YFQ27B3jzbHu854NRsqUj8aA9ISTz0r7lMe9U,18211
30
30
  siibra/features/connectivity/streamline_counts.py,sha256=ngl7xCiCUOyflyBvjZYa3ShOmtf21E5e0A_BeWfFtSQ,1064
31
31
  siibra/features/connectivity/streamline_lengths.py,sha256=0a09Dag-eRvs1KgHSU47I3xQwbgHICsDozhZyuNzQME,1067
32
32
  siibra/features/connectivity/tracing_connectivity.py,sha256=pyTMTLvkJL3ftk56s0AbT8dHexV4EyuTJ2yX27kLGfc,1083
33
33
  siibra/features/dataset/__init__.py,sha256=5h_wstfa3h35emL1qoKOtcFOiIjKZX9oIy-GwsChEyc,748
34
34
  siibra/features/dataset/ebrains.py,sha256=0cul8rtp6n1lCxTOfLL2AYCWx36q2ILezTXk2i44few,2544
35
35
  siibra/features/image/__init__.py,sha256=UIECVLwKYKeuCPNa4WcjcLDuNr_3JxCyiOQSjBRf36U,1013
36
- siibra/features/image/image.py,sha256=BOX7lx5w8sAgLVLp_pu1E8Kk2zbtEs420rCOL_BWvu0,3342
36
+ siibra/features/image/image.py,sha256=XJczatDzEvEbihq5I6hq5IuifN9avCbieRoVxdoZLpc,3384
37
37
  siibra/features/image/sections.py,sha256=d4TQSs6nIKQ5vgi89htERfWOMgnvOA9k4LhaXBMWNbE,961
38
38
  siibra/features/image/volume_of_interest.py,sha256=DIv9GNOptfungLddA_CfrrCfY8p36rbWCT9xkE6K66w,2654
39
39
  siibra/features/tabular/__init__.py,sha256=3DBwa8JtGd-npeOyyw6kJzcveKXadbqSATyJtTnY3-w,1176
40
- siibra/features/tabular/bigbrain_intensity_profile.py,sha256=Yt3wa8WWjA0F0uzmLwbamIthEmkEQovcRrof94Hr3dQ,2707
41
- siibra/features/tabular/cell_density_profile.py,sha256=YFC64ghEf5AfnyAALMdFE4ZAVbCsTOCFek2gNP6F83k,9245
42
- siibra/features/tabular/cortical_profile.py,sha256=euyAxi5C2Ths0fR93oM5B9oD9ej73dslVabDr4XH2Qo,9632
43
- siibra/features/tabular/gene_expression.py,sha256=r6XsmejxYVd0-pfZxHwu5QsA4ipZiEK_QE47J7agrk0,5035
44
- siibra/features/tabular/layerwise_bigbrain_intensities.py,sha256=051Jd78h-Ndva3vEW-Ch2sYnG6m1H2sRT6xDVX_tBWk,2118
45
- siibra/features/tabular/layerwise_cell_density.py,sha256=CJMcUeN_aawfCzZTLq4xKq-Kas5sHFNVNVL6bqhCOEc,4167
46
- siibra/features/tabular/receptor_density_fingerprint.py,sha256=oQAK2nk_zcxyySHdimdmNXjkgEwnMDszPqZlS5bcJA4,7186
47
- siibra/features/tabular/receptor_density_profile.py,sha256=bBAiLdbF2Lgnc8_33R2XoFQmyie96j5dQsBIkzXsRw0,3702
48
- siibra/features/tabular/regional_timeseries_activity.py,sha256=A2GiDVojuOaH73f4ql8BcHWW7uS2WqfQjL6svSydJEI,8251
49
- siibra/features/tabular/tabular.py,sha256=rZHCA71x6Trx2jOj1pBWZblmCc3jI3PzhMS-nxzMS-E,5210
40
+ siibra/features/tabular/bigbrain_intensity_profile.py,sha256=M2b5Qg75hrsy6CxnSRvdMq-wGjUOATMLt8b4OxfL1us,2706
41
+ siibra/features/tabular/cell_density_profile.py,sha256=kzjsOt_dM3dpvaBQlKZKlfvFjYpvwOpsF0WzNEERfos,9289
42
+ siibra/features/tabular/cortical_profile.py,sha256=Mvp_vobov8z7k0tgqNMRYPdaX3o2cGFvvkC58KQ9BKE,12469
43
+ siibra/features/tabular/gene_expression.py,sha256=Q3HKAv-twgXXo7eKbk8Ii_gUQOVJa-RwhyE0Gi88G_s,9827
44
+ siibra/features/tabular/layerwise_bigbrain_intensities.py,sha256=saUb1vzXX4zbmrZwrjpOx0VlPFLEJ9NXZjtouRz33oc,2117
45
+ siibra/features/tabular/layerwise_cell_density.py,sha256=eJxVq794rI7_Tb2K1f8x5j8jXrh_E7XzoXlQA1UVdTw,4209
46
+ siibra/features/tabular/receptor_density_fingerprint.py,sha256=iJMBoILm1vVq2jFP8RCvKyAXHtv00iVbgbuo-2RT3to,7228
47
+ siibra/features/tabular/receptor_density_profile.py,sha256=l8i6WICH1o_J_8wDjnqXdadQIR6Mdoz9VCmaYzuUd_4,3655
48
+ siibra/features/tabular/regional_timeseries_activity.py,sha256=HhdavuEFWWWTmBFNg50HdLipGsJBmqAY7mTVGo7oA0U,9949
49
+ siibra/features/tabular/tabular.py,sha256=pLRheZh8qXZHVQQDQ4RxjhLl7F_7ENoaKD3yW4Za__E,5253
50
50
  siibra/livequeries/__init__.py,sha256=yt5613mOZCxGVPG65oI9rmYrIS2L5BIgS1LT1fO2RTI,875
51
51
  siibra/livequeries/allen.py,sha256=OnjBepPvDA7_X1dQN3QC8pOEip_bG21qG0jkOss680k,13650
52
- siibra/livequeries/bigbrain.py,sha256=nXBYBTUmkYJBOymEgAHbmMjVCberVnCW8A36SKhGqxQ,6872
52
+ siibra/livequeries/bigbrain.py,sha256=-zPSQvivDzwGjWNqQHZDrQw7Z87cGrIk2SJJ-SSPW_g,8339
53
53
  siibra/livequeries/ebrains.py,sha256=QsIjBnjTme_bL5p9StXLnvGIZ2SJDKwORs4V0D1yR8M,5820
54
54
  siibra/livequeries/query.py,sha256=8npNqiovJpWioVe_vYof10y128E7sH0LJh62d7OJTSQ,1862
55
55
  siibra/locations/__init__.py,sha256=rp-a39N3mVTMMuQOP4j6C_R_uziMOaPkIKzTJZuLVUM,3316
@@ -58,26 +58,27 @@ siibra/locations/location.py,sha256=I-nOsxH5sFST7uaU_oe14WdJNwe26g-RmEkYjbX-NA4,
58
58
  siibra/locations/point.py,sha256=ZWIbKGdqjoNash53sqiKwbGNY4rQRf7OD3TkhTEimB0,12473
59
59
  siibra/locations/pointset.py,sha256=yW_aE0mW3Ji8XgcVqBmf3LEddLBgIgGwN-NVeV2tDLA,10957
60
60
  siibra/retrieval/__init__.py,sha256=pAJ2WsNk9tVY1RddmXzya1iFgJXJarO4TVCJTob1Ej0,1062
61
- siibra/retrieval/cache.py,sha256=h_zBqPdb0UKSc9EBdP9V731gQcpbaSvv2YjtwqzpuHU,7783
61
+ siibra/retrieval/cache.py,sha256=G4YV9rvh0F-awdLXILDU6CHYlzTgIKCuP1uD7tuNCpo,7832
62
62
  siibra/retrieval/datasets.py,sha256=1epaeR_K6B2y8Nq92mMoWSrdjGT9Nx9CP8-xMdQy-h4,11031
63
63
  siibra/retrieval/repositories.py,sha256=M_rE7A0mW9-r4801wH9woQ07sH8Lj6o6UwdoYgjO0eA,30443
64
- siibra/retrieval/requests.py,sha256=sQUJqk7mn9dPNzjgR-B6mBSsYhxL5ohgUCh6IbooRZ0,21664
64
+ siibra/retrieval/requests.py,sha256=7aqKIWZZy7aStBlZD8Ugi7Kyo7ZTJKl4gG46o8NXnoU,22540
65
65
  siibra/retrieval/exceptions/__init__.py,sha256=BUqXwKksbQsdwrnmIONgFbhwasnhN92BYQ6dqvxW9fY,875
66
66
  siibra/vocabularies/__init__.py,sha256=qwq01KzdTS7ck9rFxOZxNNYCP1GwqgxpK5u4T_w2aKo,1288
67
67
  siibra/vocabularies/gene_names.json,sha256=i-gnh753GyZtQfX_dWibNYr_d5ccDPHooOwsdeKUYqE,1647972
68
68
  siibra/vocabularies/receptor_symbols.json,sha256=F6DZIArPCBmJV_lWGV-zDpBBH_GOJOZm67LBE4qzMa4,5722
69
69
  siibra/vocabularies/region_aliases.json,sha256=T2w1wRlxPNTsPppXn0bzC70tNsb8mOjLsoHuxDSYm2w,8563
70
70
  siibra/volumes/__init__.py,sha256=8JDrNqKmPLcaiPEpHXbjGoFz2ezupLBS9rxdLxOjqfs,933
71
- siibra/volumes/parcellationmap.py,sha256=xum6-KJ3t-leSiiE_SV8ewsTgKshF9dT3kiA-Q9MlJ0,48646
72
- siibra/volumes/sparsemap.py,sha256=15jPeGVkWhxczy9YSHbk_iwy6-u6Ht716j2SnaIrpgg,22274
73
- siibra/volumes/volume.py,sha256=BAIz_iwjB6o3R7r5jvOHcojDcHXF-h7LsQI2lVnMwpg,25771
74
- siibra/volumes/providers/__init__.py,sha256=J3_qNlZEEmGAAp4itUN69L2zJHLgQf1sD6GdLYXWkx8,871
71
+ siibra/volumes/parcellationmap.py,sha256=qgr_dRFc4uo4bxiRMvIVLOdOOTL-7jOBzNHjMS3Yq-w,48489
72
+ siibra/volumes/sparsemap.py,sha256=L9kNfRzPeHiM-ta146eY86WYRhrh8lbI4rq3qgzxjMY,22324
73
+ siibra/volumes/volume.py,sha256=qMmRLi8LRrUdPJwFz8O5cEAaVTQWE4WSB-VfEjhfH14,25692
74
+ siibra/volumes/providers/__init__.py,sha256=gzHWZ8wtAI89H13e8Px2KSkSdiGbLvpO4btD8siOsFc,934
75
+ siibra/volumes/providers/freesurfer.py,sha256=uDKF97U79givztf_dKz47dHmB8kRbx89483DCoVlh40,4893
75
76
  siibra/volumes/providers/gifti.py,sha256=D1aEq740VjIaldw_iYCy0U-yZlUnJHMfTmCLmmNwX7s,6231
76
- siibra/volumes/providers/neuroglancer.py,sha256=rpnnhS-1a5pegIdeOjl6K4XrDs4OciNIwQY865XRPK8,26940
77
- siibra/volumes/providers/nifti.py,sha256=8HBIGCSznzTXEBTcqQxZwvQBvJ-8_FjAuLq_9Py8yBw,10526
77
+ siibra/volumes/providers/neuroglancer.py,sha256=DwgMejJkQqAEkfy_Nx4TvRuwbvcg33PyUtEZ_YisQWE,27784
78
+ siibra/volumes/providers/nifti.py,sha256=DB8EP2jEtp-bkSQTwJXSgA_nmJpqhUNnB4k6qbyDC2E,10455
78
79
  siibra/volumes/providers/provider.py,sha256=6Q-47h4pRHtAU3PYpoirnt80bKyzPxxZh02leQ23yQE,3673
79
- siibra-1.0a9.dist-info/LICENSE,sha256=xx0jnfkXJvxRnG63LTGOxlggYnIysveWIZ6H3PNdCrQ,11357
80
- siibra-1.0a9.dist-info/METADATA,sha256=HY1EApqiDaQsbOcx7v1H-M0DH8m3jsX1cnb00lofJ-g,8431
81
- siibra-1.0a9.dist-info/WHEEL,sha256=GJ7t_kWBFywbagK5eo9IoUwLW6oyOeTKmQ-9iHFVNxQ,92
82
- siibra-1.0a9.dist-info/top_level.txt,sha256=NF0OSGLL0li2qyC7MaU0iBB5Y9S09_euPpvisD0-8Hg,7
83
- siibra-1.0a9.dist-info/RECORD,,
80
+ siibra-1.0a14.dist-info/LICENSE,sha256=xx0jnfkXJvxRnG63LTGOxlggYnIysveWIZ6H3PNdCrQ,11357
81
+ siibra-1.0a14.dist-info/METADATA,sha256=18r8gJfzqz4ujV6IqivYuVBERmmYb4cRKiriDg1Z96A,8432
82
+ siibra-1.0a14.dist-info/WHEEL,sha256=y4mX-SOX4fYIkonsAGA5N0Oy-8_gI4FXw5HNI1xqvWg,91
83
+ siibra-1.0a14.dist-info/top_level.txt,sha256=NF0OSGLL0li2qyC7MaU0iBB5Y9S09_euPpvisD0-8Hg,7
84
+ siibra-1.0a14.dist-info/RECORD,,
@@ -1,5 +1,5 @@
1
1
  Wheel-Version: 1.0
2
- Generator: bdist_wheel (0.43.0)
2
+ Generator: setuptools (70.2.0)
3
3
  Root-Is-Purelib: true
4
4
  Tag: py3-none-any
5
5