siibra 1.0a8__py3-none-any.whl → 1.0a11__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.
- siibra/VERSION +1 -1
- siibra/commons.py +75 -30
- siibra/configuration/factory.py +16 -17
- siibra/core/atlas.py +40 -16
- siibra/core/region.py +242 -39
- siibra/features/__init__.py +19 -8
- siibra/features/connectivity/functional_connectivity.py +1 -1
- siibra/features/connectivity/regional_connectivity.py +45 -3
- siibra/features/feature.py +63 -13
- siibra/features/image/image.py +3 -1
- siibra/features/tabular/bigbrain_intensity_profile.py +1 -1
- siibra/features/tabular/cell_density_profile.py +5 -3
- siibra/features/tabular/cortical_profile.py +79 -15
- siibra/features/tabular/gene_expression.py +110 -1
- siibra/features/tabular/layerwise_bigbrain_intensities.py +1 -1
- siibra/features/tabular/layerwise_cell_density.py +3 -1
- siibra/features/tabular/receptor_density_fingerprint.py +3 -1
- siibra/features/tabular/receptor_density_profile.py +3 -5
- siibra/features/tabular/regional_timeseries_activity.py +59 -10
- siibra/features/tabular/tabular.py +4 -2
- siibra/livequeries/bigbrain.py +34 -0
- siibra/locations/location.py +1 -1
- siibra/retrieval/cache.py +15 -10
- siibra/retrieval/repositories.py +2 -2
- siibra/retrieval/requests.py +30 -1
- siibra/volumes/parcellationmap.py +18 -22
- siibra/volumes/providers/__init__.py +1 -0
- siibra/volumes/providers/freesurfer.py +113 -0
- siibra/volumes/providers/neuroglancer.py +55 -25
- siibra/volumes/providers/nifti.py +14 -16
- siibra/volumes/sparsemap.py +1 -1
- siibra/volumes/volume.py +13 -15
- {siibra-1.0a8.dist-info → siibra-1.0a11.dist-info}/METADATA +1 -1
- {siibra-1.0a8.dist-info → siibra-1.0a11.dist-info}/RECORD +37 -36
- {siibra-1.0a8.dist-info → siibra-1.0a11.dist-info}/LICENSE +0 -0
- {siibra-1.0a8.dist-info → siibra-1.0a11.dist-info}/WHEEL +0 -0
- {siibra-1.0a8.dist-info → siibra-1.0a11.dist-info}/top_level.txt +0 -0
|
@@ -15,7 +15,14 @@
|
|
|
15
15
|
|
|
16
16
|
from . import provider as _provider
|
|
17
17
|
|
|
18
|
-
from ...commons import
|
|
18
|
+
from ...commons import (
|
|
19
|
+
logger,
|
|
20
|
+
MapType,
|
|
21
|
+
merge_meshes,
|
|
22
|
+
SIIBRA_MAX_FETCH_SIZE_GIB,
|
|
23
|
+
QUIET,
|
|
24
|
+
resample_img_to_img
|
|
25
|
+
)
|
|
19
26
|
from ...retrieval import requests, cache
|
|
20
27
|
from ...locations import boundingbox as _boundingbox
|
|
21
28
|
|
|
@@ -86,10 +93,11 @@ class NeuroglancerProvider(_provider.VolumeProvider, srctype="neuroglancer/preco
|
|
|
86
93
|
|
|
87
94
|
if len(self._fragments) > 1:
|
|
88
95
|
if fragment is None:
|
|
89
|
-
|
|
90
|
-
f"Merging
|
|
91
|
-
f"
|
|
96
|
+
logger.info(
|
|
97
|
+
f"Merging fragments [{', '.join(self._fragments.keys())}]. "
|
|
98
|
+
f"You can select one using `fragment` kwarg."
|
|
92
99
|
)
|
|
100
|
+
result = self._merge_fragments(resolution_mm=resolution_mm, voi=voi, **kwargs)
|
|
93
101
|
else:
|
|
94
102
|
matched_names = [n for n in self._fragments if fragment.lower() in n.lower()]
|
|
95
103
|
if len(matched_names) != 1:
|
|
@@ -157,45 +165,67 @@ class NeuroglancerProvider(_provider.VolumeProvider, srctype="neuroglancer/preco
|
|
|
157
165
|
np.asanyarray(img.dataobj), threshold=background, space=None
|
|
158
166
|
).transform(img.affine) # use the affine of the image matching fetch_kwargs
|
|
159
167
|
else:
|
|
160
|
-
|
|
168
|
+
resolution_mm = fetch_kwargs.get("resolution_mm")
|
|
169
|
+
if resolution_mm is None:
|
|
170
|
+
affine = frag.affine
|
|
171
|
+
shape = frag.shape[:3]
|
|
172
|
+
else:
|
|
173
|
+
scale = frag._select_scale(resolution_mm=resolution_mm)
|
|
174
|
+
affine = scale.affine
|
|
175
|
+
shape = scale.size[:3]
|
|
161
176
|
next_bbox = _boundingbox.BoundingBox(
|
|
162
177
|
(0, 0, 0), shape, space=None
|
|
163
|
-
).transform(
|
|
178
|
+
).transform(affine)
|
|
164
179
|
bbox = next_bbox if bbox is None else bbox.union(next_bbox)
|
|
165
180
|
return bbox
|
|
166
181
|
|
|
167
|
-
def _merge_fragments(
|
|
168
|
-
|
|
169
|
-
|
|
182
|
+
def _merge_fragments(
|
|
183
|
+
self,
|
|
184
|
+
resolution_mm: float = None,
|
|
185
|
+
voi: _boundingbox.BoundingBox = None,
|
|
186
|
+
**kwargs
|
|
187
|
+
) -> nib.Nifti1Image:
|
|
188
|
+
with QUIET:
|
|
189
|
+
bbox = self.get_boundingbox(
|
|
190
|
+
clip=False,
|
|
191
|
+
background=0,
|
|
192
|
+
resolution_mm=resolution_mm,
|
|
193
|
+
voi=voi
|
|
194
|
+
)
|
|
195
|
+
|
|
170
196
|
num_conflicts = 0
|
|
171
197
|
result = None
|
|
172
|
-
|
|
173
|
-
|
|
174
|
-
|
|
198
|
+
for frag_vol in self._fragments.values():
|
|
199
|
+
frag_scale = frag_vol._select_scale(
|
|
200
|
+
resolution_mm=resolution_mm,
|
|
201
|
+
bbox=voi,
|
|
202
|
+
max_bytes=kwargs.pop("maxbytes", NeuroglancerVolume.MAX_BYTES)
|
|
203
|
+
)
|
|
204
|
+
img = frag_scale.fetch(voi=voi)
|
|
175
205
|
if result is None:
|
|
176
206
|
# build the empty result image with its own affine and voxel space
|
|
177
207
|
s0 = np.identity(4)
|
|
178
208
|
s0[:3, -1] = list(bbox.minpoint.transform(np.linalg.inv(img.affine)))
|
|
179
209
|
result_affine = np.dot(img.affine, s0) # adjust global bounding box offset to get global affine
|
|
180
|
-
voxdims = np.asanyarray(
|
|
210
|
+
voxdims = np.asanyarray(np.ceil(
|
|
211
|
+
bbox.transform(np.linalg.inv(result_affine)).shape # transform to the voxel space
|
|
212
|
+
), dtype="int")
|
|
181
213
|
result_arr = np.zeros(voxdims, dtype=img.dataobj.dtype)
|
|
182
214
|
result = nib.Nifti1Image(dataobj=result_arr, affine=result_affine)
|
|
183
215
|
|
|
184
|
-
|
|
185
|
-
|
|
186
|
-
|
|
187
|
-
|
|
188
|
-
|
|
189
|
-
|
|
190
|
-
) + .5).astype('int'),
|
|
191
|
-
4, axis=0
|
|
192
|
-
)
|
|
193
|
-
num_conflicts += np.count_nonzero(result_arr[Xt, Yt, Zt])
|
|
194
|
-
result_arr[Xt, Yt, Zt] = arr[Xs, Ys, Zs]
|
|
216
|
+
# resample to merge template and update it
|
|
217
|
+
resampled_img = resample_img_to_img(source_img=img, target_img=result)
|
|
218
|
+
arr = np.asanyarray(resampled_img.dataobj)
|
|
219
|
+
nonzero_voxels = arr != 0
|
|
220
|
+
num_conflicts += np.count_nonzero(result_arr[nonzero_voxels])
|
|
221
|
+
result_arr[nonzero_voxels] = arr[nonzero_voxels]
|
|
195
222
|
|
|
196
223
|
if num_conflicts > 0:
|
|
197
224
|
num_voxels = np.count_nonzero(result_arr)
|
|
198
|
-
logger.warning(
|
|
225
|
+
logger.warning(
|
|
226
|
+
f"Merging fragments required to overwrite {num_conflicts} "
|
|
227
|
+
f"conflicting voxels ({num_conflicts / num_voxels * 100.:2.3f}%)."
|
|
228
|
+
)
|
|
199
229
|
|
|
200
230
|
return result
|
|
201
231
|
|
|
@@ -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(
|
|
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
|
-
|
|
128
|
-
|
|
129
|
-
|
|
130
|
-
|
|
131
|
-
|
|
132
|
-
|
|
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(
|
|
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
|
|
siibra/volumes/sparsemap.py
CHANGED
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
|
|
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 {
|
|
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.
|
|
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
|
-
|
|
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 =
|
|
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
|
|
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
|
-
|
|
691
|
-
|
|
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 =
|
|
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] =
|
|
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.
|
|
3
|
+
Version: 1.0a11
|
|
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=
|
|
1
|
+
siibra/VERSION,sha256=FkrBfNmMGsIgECPdtrQqgrSl5oiMXSJrUSM_-YKcX-E,7
|
|
2
2
|
siibra/__init__.py,sha256=01VIBU4L5NLBTNFoAUskc7brJ-8TanNwl1Ejtl47YGI,4463
|
|
3
|
-
siibra/commons.py,sha256=
|
|
3
|
+
siibra/commons.py,sha256=ke6CI3vzMHIveJE8Xw9xZ126JrMFqApUsA1hiOyP6ls,28813
|
|
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=
|
|
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=
|
|
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=
|
|
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,63 +21,64 @@ 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=
|
|
24
|
+
siibra/features/__init__.py,sha256=Jd19RXFBuVemhF6AtrhOG4luocYGauA0FjnaEZdyaa8,3970
|
|
25
25
|
siibra/features/anchor.py,sha256=cp5cu-tJceenbJESXLe3DXhmjtdhdyTN0KYOIXDkhmU,9068
|
|
26
|
-
siibra/features/feature.py,sha256=
|
|
26
|
+
siibra/features/feature.py,sha256=MXhUZtf_7qwqQuVnmNtqTMfLMvGyVaN8O0ilFqIwv9A,34359
|
|
27
27
|
siibra/features/connectivity/__init__.py,sha256=XU6w7kX6lN_fZLt0TFGqg39Z9FCfbcotSR79p-JhLV4,1161
|
|
28
|
-
siibra/features/connectivity/functional_connectivity.py,sha256=
|
|
29
|
-
siibra/features/connectivity/regional_connectivity.py,sha256=
|
|
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=
|
|
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=
|
|
41
|
-
siibra/features/tabular/cell_density_profile.py,sha256=
|
|
42
|
-
siibra/features/tabular/cortical_profile.py,sha256=
|
|
43
|
-
siibra/features/tabular/gene_expression.py,sha256=
|
|
44
|
-
siibra/features/tabular/layerwise_bigbrain_intensities.py,sha256=
|
|
45
|
-
siibra/features/tabular/layerwise_cell_density.py,sha256=
|
|
46
|
-
siibra/features/tabular/receptor_density_fingerprint.py,sha256=
|
|
47
|
-
siibra/features/tabular/receptor_density_profile.py,sha256=
|
|
48
|
-
siibra/features/tabular/regional_timeseries_activity.py,sha256=
|
|
49
|
-
siibra/features/tabular/tabular.py,sha256=
|
|
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=3NxSdPNFLKvug69hgduNnds4JQ4wnTeVMFkJq6fCBiY,9803
|
|
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
|
|
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
|
|
56
56
|
siibra/locations/boundingbox.py,sha256=5zNnGsMkZn1mLkmJQ_YDuVysf9hU6rZemfw-HJltsQM,15298
|
|
57
|
-
siibra/locations/location.py,sha256=
|
|
57
|
+
siibra/locations/location.py,sha256=I-nOsxH5sFST7uaU_oe14WdJNwe26g-RmEkYjbX-NA4,3993
|
|
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=
|
|
61
|
+
siibra/retrieval/cache.py,sha256=G4YV9rvh0F-awdLXILDU6CHYlzTgIKCuP1uD7tuNCpo,7832
|
|
62
62
|
siibra/retrieval/datasets.py,sha256=1epaeR_K6B2y8Nq92mMoWSrdjGT9Nx9CP8-xMdQy-h4,11031
|
|
63
|
-
siibra/retrieval/repositories.py,sha256=
|
|
64
|
-
siibra/retrieval/requests.py,sha256=
|
|
63
|
+
siibra/retrieval/repositories.py,sha256=M_rE7A0mW9-r4801wH9woQ07sH8Lj6o6UwdoYgjO0eA,30443
|
|
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=
|
|
72
|
-
siibra/volumes/sparsemap.py,sha256=
|
|
73
|
-
siibra/volumes/volume.py,sha256=
|
|
74
|
-
siibra/volumes/providers/__init__.py,sha256=
|
|
71
|
+
siibra/volumes/parcellationmap.py,sha256=qgr_dRFc4uo4bxiRMvIVLOdOOTL-7jOBzNHjMS3Yq-w,48489
|
|
72
|
+
siibra/volumes/sparsemap.py,sha256=aZfJVYGYGrkwZ0mn-MUzLNb6eP1FXtE_v-UdOb-Ut6s,22273
|
|
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=
|
|
77
|
-
siibra/volumes/providers/nifti.py,sha256=
|
|
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.
|
|
80
|
-
siibra-1.
|
|
81
|
-
siibra-1.
|
|
82
|
-
siibra-1.
|
|
83
|
-
siibra-1.
|
|
80
|
+
siibra-1.0a11.dist-info/LICENSE,sha256=xx0jnfkXJvxRnG63LTGOxlggYnIysveWIZ6H3PNdCrQ,11357
|
|
81
|
+
siibra-1.0a11.dist-info/METADATA,sha256=poLz-a3iIyoH9ai_twrre0YW-XZ-_xdbktFlQCekuMo,8432
|
|
82
|
+
siibra-1.0a11.dist-info/WHEEL,sha256=GJ7t_kWBFywbagK5eo9IoUwLW6oyOeTKmQ-9iHFVNxQ,92
|
|
83
|
+
siibra-1.0a11.dist-info/top_level.txt,sha256=NF0OSGLL0li2qyC7MaU0iBB5Y9S09_euPpvisD0-8Hg,7
|
|
84
|
+
siibra-1.0a11.dist-info/RECORD,,
|
|
File without changes
|
|
File without changes
|
|
File without changes
|