junifer 0.0.4.dev733__py3-none-any.whl → 0.0.4.dev781__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.
Files changed (37) hide show
  1. junifer/_version.py +2 -2
  2. junifer/api/tests/data/partly_cloudy_agg_mean_tian.yml +16 -0
  3. junifer/api/tests/test_cli.py +7 -13
  4. junifer/api/tests/test_functions.py +156 -102
  5. junifer/data/coordinates.py +1 -1
  6. junifer/data/masks.py +213 -54
  7. junifer/data/parcellations.py +91 -42
  8. junifer/data/template_spaces.py +33 -6
  9. junifer/data/tests/test_masks.py +127 -62
  10. junifer/data/tests/test_parcellations.py +66 -49
  11. junifer/data/tests/test_template_spaces.py +42 -7
  12. junifer/datagrabber/aomic/id1000.py +3 -0
  13. junifer/datagrabber/aomic/piop1.py +3 -0
  14. junifer/datagrabber/aomic/piop2.py +3 -0
  15. junifer/datagrabber/dmcc13_benchmark.py +3 -0
  16. junifer/datagrabber/hcp1200/hcp1200.py +3 -0
  17. junifer/markers/falff/tests/test_falff_parcels.py +3 -3
  18. junifer/markers/falff/tests/test_falff_spheres.py +3 -3
  19. junifer/markers/functional_connectivity/tests/test_crossparcellation_functional_connectivity.py +46 -45
  20. junifer/markers/functional_connectivity/tests/test_edge_functional_connectivity_parcels.py +34 -41
  21. junifer/markers/functional_connectivity/tests/test_edge_functional_connectivity_spheres.py +40 -56
  22. junifer/markers/functional_connectivity/tests/test_functional_connectivity_parcels.py +62 -74
  23. junifer/markers/functional_connectivity/tests/test_functional_connectivity_spheres.py +99 -89
  24. junifer/markers/reho/tests/test_reho_parcels.py +17 -11
  25. junifer/markers/temporal_snr/tests/test_temporal_snr_parcels.py +38 -37
  26. junifer/markers/temporal_snr/tests/test_temporal_snr_spheres.py +34 -38
  27. junifer/markers/tests/test_collection.py +38 -37
  28. junifer/markers/tests/test_ets_rss.py +29 -41
  29. junifer/markers/tests/test_parcel_aggregation.py +600 -511
  30. junifer/markers/tests/test_sphere_aggregation.py +209 -163
  31. {junifer-0.0.4.dev733.dist-info → junifer-0.0.4.dev781.dist-info}/METADATA +1 -1
  32. {junifer-0.0.4.dev733.dist-info → junifer-0.0.4.dev781.dist-info}/RECORD +37 -36
  33. {junifer-0.0.4.dev733.dist-info → junifer-0.0.4.dev781.dist-info}/AUTHORS.rst +0 -0
  34. {junifer-0.0.4.dev733.dist-info → junifer-0.0.4.dev781.dist-info}/LICENSE.md +0 -0
  35. {junifer-0.0.4.dev733.dist-info → junifer-0.0.4.dev781.dist-info}/WHEEL +0 -0
  36. {junifer-0.0.4.dev733.dist-info → junifer-0.0.4.dev781.dist-info}/entry_points.txt +0 -0
  37. {junifer-0.0.4.dev733.dist-info → junifer-0.0.4.dev781.dist-info}/top_level.txt +0 -0
@@ -1,22 +1,23 @@
1
1
  """Provide tests for sphere aggregation."""
2
2
 
3
3
  # Authors: Federico Raimondo <f.raimondo@fz-juelich.de>
4
+ # Synchon Mandal <s.mandal@fz-juelich.de>
4
5
  # License: AGPL
5
6
 
6
- import typing
7
7
  from pathlib import Path
8
- from typing import Dict
9
8
 
10
- import nibabel as nib
11
9
  import pytest
12
- from nilearn import datasets
13
- from nilearn.image import concat_imgs
14
10
  from nilearn.maskers import NiftiSpheresMasker
15
11
  from numpy.testing import assert_array_equal
16
12
 
17
- from junifer.data import load_coordinates, load_mask
13
+ from junifer.data import get_coordinates, get_mask
14
+ from junifer.datareader import DefaultDataReader
18
15
  from junifer.markers.sphere_aggregation import SphereAggregation
19
16
  from junifer.storage import SQLiteFeatureStorage
17
+ from junifer.testing.datagrabbers import (
18
+ OasisVBMTestingDataGrabber,
19
+ SPMAuditoryTestingDataGrabber,
20
+ )
20
21
 
21
22
 
22
23
  # Define common variables
@@ -36,51 +37,66 @@ def test_SphereAggregation_input_output() -> None:
36
37
 
37
38
  def test_SphereAggregation_3D() -> None:
38
39
  """Test SphereAggregation object on 3D images."""
39
- # Get the testing coordinates (for nilearn)
40
- coordinates, _, _ = load_coordinates(COORDS)
41
-
42
- # Get the oasis VBM data
43
- oasis_dataset = datasets.fetch_oasis_vbm(n_subjects=1)
44
- vbm = oasis_dataset.gray_matter_maps[0]
45
- img = nib.load(vbm)
46
-
47
- # Create NiftSpheresMasker
48
- nifti_masker = NiftiSpheresMasker(seeds=coordinates, radius=RADIUS)
49
- auto4d = nifti_masker.fit_transform(img)
50
-
51
- # Create SphereAggregation object
52
- marker = SphereAggregation(
53
- coords=COORDS, method="mean", radius=RADIUS, on="VBM_GM"
54
- )
55
- input = {"VBM_GM": {"data": img, "meta": {}, "space": "MNI"}}
56
- jun_values4d = marker.fit_transform(input)["VBM_GM"]["data"]
40
+ with OasisVBMTestingDataGrabber() as dg:
41
+ element_data = DefaultDataReader().fit_transform(dg["sub-01"])
42
+ # Create SphereAggregation object
43
+ marker = SphereAggregation(
44
+ coords=COORDS, method="mean", radius=RADIUS, on="VBM_GM"
45
+ )
46
+ sphere_agg_vbm_gm_data = marker.fit_transform(element_data)["VBM_GM"][
47
+ "data"
48
+ ]
49
+
50
+ # Compare with nilearn
51
+ # Load testing coordinates
52
+ testing_coords, _ = get_coordinates(
53
+ coords=COORDS, target_data=element_data["VBM_GM"]
54
+ )
55
+ # Extract data
56
+ nifti_spheres_masker = NiftiSpheresMasker(
57
+ seeds=testing_coords, radius=RADIUS
58
+ )
59
+ nifti_spheres_masked_vbm_gm = nifti_spheres_masker.fit_transform(
60
+ element_data["VBM_GM"]["data"]
61
+ )
57
62
 
58
- assert jun_values4d.ndim == 2
59
- assert_array_equal(auto4d.shape, jun_values4d.shape)
60
- assert_array_equal(auto4d, jun_values4d)
63
+ assert sphere_agg_vbm_gm_data.ndim == 2
64
+ assert_array_equal(
65
+ nifti_spheres_masked_vbm_gm.shape, sphere_agg_vbm_gm_data.shape
66
+ )
67
+ assert_array_equal(nifti_spheres_masked_vbm_gm, sphere_agg_vbm_gm_data)
61
68
 
62
69
 
63
70
  def test_SphereAggregation_4D() -> None:
64
71
  """Test SphereAggregation object on 4D images."""
65
- # Get the testing coordinates (for nilearn)
66
- coordinates, _, _ = load_coordinates(COORDS)
67
-
68
- # Get the SPM auditory data
69
- subject_data = datasets.fetch_spm_auditory()
70
- fmri_img = concat_imgs(subject_data.func) # type: ignore
71
-
72
- # Create NiftSpheresMasker
73
- nifti_masker = NiftiSpheresMasker(seeds=coordinates, radius=RADIUS)
74
- auto4d = nifti_masker.fit_transform(fmri_img)
75
-
76
- # Create SphereAggregation object
77
- marker = SphereAggregation(coords=COORDS, method="mean", radius=RADIUS)
78
- input = {"BOLD": {"data": fmri_img, "meta": {}, "space": "MNI"}}
79
- jun_values4d = marker.fit_transform(input)["BOLD"]["data"]
72
+ with SPMAuditoryTestingDataGrabber() as dg:
73
+ element_data = DefaultDataReader().fit_transform(dg["sub001"])
74
+ # Create SphereAggregation object
75
+ marker = SphereAggregation(
76
+ coords=COORDS, method="mean", radius=RADIUS, on="BOLD"
77
+ )
78
+ sphere_agg_bold_data = marker.fit_transform(element_data)["BOLD"][
79
+ "data"
80
+ ]
81
+
82
+ # Compare with nilearn
83
+ # Load testing coordinates
84
+ testing_coords, _ = get_coordinates(
85
+ coords=COORDS, target_data=element_data["BOLD"]
86
+ )
87
+ # Extract data
88
+ nifti_spheres_masker = NiftiSpheresMasker(
89
+ seeds=testing_coords, radius=RADIUS
90
+ )
91
+ nifti_spheres_masked_bold = nifti_spheres_masker.fit_transform(
92
+ element_data["BOLD"]["data"]
93
+ )
80
94
 
81
- assert jun_values4d.ndim == 2
82
- assert_array_equal(auto4d.shape, jun_values4d.shape)
83
- assert_array_equal(auto4d, jun_values4d)
95
+ assert sphere_agg_bold_data.ndim == 2
96
+ assert_array_equal(
97
+ nifti_spheres_masked_bold.shape, sphere_agg_bold_data.shape
98
+ )
99
+ assert_array_equal(nifti_spheres_masked_bold, sphere_agg_bold_data)
84
100
 
85
101
 
86
102
  def test_SphereAggregation_storage(tmp_path: Path) -> None:
@@ -92,124 +108,143 @@ def test_SphereAggregation_storage(tmp_path: Path) -> None:
92
108
  The path to the test directory.
93
109
 
94
110
  """
95
- # Get the oasis VBM data
96
- oasis_dataset = datasets.fetch_oasis_vbm(n_subjects=1)
97
- vbm = oasis_dataset.gray_matter_maps[0]
98
- img = nib.load(vbm)
99
- uri = tmp_path / "test_sphere_storage_3D.sqlite"
100
-
101
- storage = SQLiteFeatureStorage(uri=uri, upsert="ignore")
102
- meta = {
103
- "element": {"subject": "sub-01", "session": "ses-01"},
104
- "dependencies": {"nilearn", "nibabel"},
105
- }
106
- input = {"VBM_GM": {"data": img, "meta": meta, "space": "MNI"}}
107
- marker = SphereAggregation(
108
- coords=COORDS, method="mean", radius=RADIUS, on="VBM_GM"
109
- )
110
-
111
- marker.fit_transform(input, storage=storage)
112
-
113
- features: Dict = typing.cast(Dict, storage.list_features())
114
- assert any(
115
- x["name"] == "VBM_GM_SphereAggregation" for x in features.values()
116
- )
117
-
118
- meta = {
119
- "element": {"subject": "sub-01", "session": "ses-01"},
120
- "dependencies": {"nilearn", "nibabel"},
121
- }
122
- # Get the SPM auditory data
123
- subject_data = datasets.fetch_spm_auditory()
124
- fmri_img = concat_imgs(subject_data.func) # type: ignore
125
- input = {"BOLD": {"data": fmri_img, "meta": meta, "space": "MNI"}}
126
- marker = SphereAggregation(
127
- coords=COORDS, method="mean", radius=RADIUS, on="BOLD"
128
- )
129
-
130
- marker.fit_transform(input, storage=storage)
131
- features: Dict = typing.cast(Dict, storage.list_features())
132
- assert any(
133
- x["name"] == "BOLD_SphereAggregation" for x in features.values()
134
- )
111
+ # Store 3D
112
+ with OasisVBMTestingDataGrabber() as dg:
113
+ element_data = DefaultDataReader().fit_transform(dg["sub-01"])
114
+ storage = SQLiteFeatureStorage(
115
+ uri=tmp_path / "test_sphere_storage_3D.sqlite", upsert="ignore"
116
+ )
117
+ marker = SphereAggregation(
118
+ coords=COORDS, method="mean", radius=RADIUS, on="VBM_GM"
119
+ )
120
+ marker.fit_transform(input=element_data, storage=storage)
121
+ features = storage.list_features()
122
+ assert any(
123
+ x["name"] == "VBM_GM_SphereAggregation" for x in features.values()
124
+ )
125
+
126
+ # Store 4D
127
+ with SPMAuditoryTestingDataGrabber() as dg:
128
+ element_data = DefaultDataReader().fit_transform(dg["sub001"])
129
+ storage = SQLiteFeatureStorage(
130
+ uri=tmp_path / "test_sphere_storage_4D.sqlite", upsert="ignore"
131
+ )
132
+ marker = SphereAggregation(
133
+ coords=COORDS, method="mean", radius=RADIUS, on="BOLD"
134
+ )
135
+ marker.fit_transform(input=element_data, storage=storage)
136
+ features = storage.list_features()
137
+ assert any(
138
+ x["name"] == "BOLD_SphereAggregation" for x in features.values()
139
+ )
135
140
 
136
141
 
137
142
  def test_SphereAggregation_3D_mask() -> None:
138
143
  """Test SphereAggregation object on 3D images using mask."""
139
- # Get the testing coordinates (for nilearn)
140
- coordinates, _, _ = load_coordinates(COORDS)
141
-
142
- # Get one mask
143
- mask_img, _, _ = load_mask("GM_prob0.2")
144
-
145
- # Get the oasis VBM data
146
- oasis_dataset = datasets.fetch_oasis_vbm(n_subjects=1)
147
- vbm = oasis_dataset.gray_matter_maps[0]
148
- img = nib.load(vbm)
149
-
150
- # Create NiftSpheresMasker
151
- nifti_masker = NiftiSpheresMasker(
152
- seeds=coordinates, radius=RADIUS, mask_img=mask_img
153
- )
154
- auto4d = nifti_masker.fit_transform(img)
155
-
156
- # Create SphereAggregation object
157
- marker = SphereAggregation(
158
- coords=COORDS,
159
- method="mean",
160
- radius=RADIUS,
161
- on="VBM_GM",
162
- masks="GM_prob0.2",
163
- )
164
- input = {"VBM_GM": {"data": img, "meta": {}, "space": "MNI"}}
165
- jun_values4d = marker.fit_transform(input)["VBM_GM"]["data"]
166
-
167
- assert jun_values4d.ndim == 2
168
- assert_array_equal(auto4d.shape, jun_values4d.shape)
169
- assert_array_equal(auto4d, jun_values4d)
144
+ with OasisVBMTestingDataGrabber() as dg:
145
+ element_data = DefaultDataReader().fit_transform(dg["sub-01"])
146
+ # Create SphereAggregation object
147
+ marker = SphereAggregation(
148
+ coords=COORDS,
149
+ method="mean",
150
+ radius=RADIUS,
151
+ on="VBM_GM",
152
+ masks="compute_brain_mask",
153
+ )
154
+ sphere_agg_vbm_gm_data = marker.fit_transform(element_data)["VBM_GM"][
155
+ "data"
156
+ ]
157
+
158
+ # Compare with nilearn
159
+ # Load testing coordinates
160
+ testing_coords, _ = get_coordinates(
161
+ coords=COORDS, target_data=element_data["VBM_GM"]
162
+ )
163
+ # Load mask
164
+ mask_img = get_mask(
165
+ "compute_brain_mask", target_data=element_data["VBM_GM"]
166
+ )
167
+ # Extract data
168
+ nifti_spheres_masker = NiftiSpheresMasker(
169
+ seeds=testing_coords, radius=RADIUS, mask_img=mask_img
170
+ )
171
+ nifti_spheres_masked_vbm_agg = nifti_spheres_masker.fit_transform(
172
+ element_data["VBM_GM"]["data"]
173
+ )
174
+
175
+ assert sphere_agg_vbm_gm_data.ndim == 2
176
+ assert_array_equal(
177
+ nifti_spheres_masked_vbm_agg.shape,
178
+ nifti_spheres_masked_vbm_agg.shape,
179
+ )
180
+ assert_array_equal(
181
+ nifti_spheres_masked_vbm_agg, nifti_spheres_masked_vbm_agg
182
+ )
170
183
 
171
184
 
172
185
  def test_SphereAggregation_4D_agg_time() -> None:
173
186
  """Test SphereAggregation object on 4D images, aggregating time."""
174
- # Get the testing coordinates (for nilearn)
175
- coordinates, _, _ = load_coordinates(COORDS)
176
-
177
- # Get the SPM auditory data
178
- subject_data = datasets.fetch_spm_auditory()
179
- fmri_img = concat_imgs(subject_data.func) # type: ignore
180
-
181
- # Create NiftSpheresMasker
182
- nifti_masker = NiftiSpheresMasker(seeds=coordinates, radius=RADIUS)
183
- auto4d = nifti_masker.fit_transform(fmri_img)
184
- auto_mean = auto4d.mean(axis=0)
185
-
186
- # Create SphereAggregation object
187
- marker = SphereAggregation(
188
- coords=COORDS, method="mean", radius=RADIUS, time_method="mean"
189
- )
190
- input = {"BOLD": {"data": fmri_img, "meta": {}, "space": "MNI"}}
191
- jun_values4d = marker.fit_transform(input)["BOLD"]["data"]
192
-
193
- assert jun_values4d.ndim == 1
194
- assert_array_equal(auto_mean.shape, jun_values4d.shape)
195
- assert_array_equal(auto_mean, jun_values4d)
196
-
197
- auto_pick_0 = auto4d[:1, :]
198
- marker = SphereAggregation(
199
- coords=COORDS,
200
- method="mean",
201
- radius=RADIUS,
202
- time_method="select",
203
- time_method_params={"pick": [0]},
204
- )
205
-
206
- input = {"BOLD": {"data": fmri_img, "meta": {}, "space": "MNI"}}
207
- jun_values4d = marker.fit_transform(input)["BOLD"]["data"]
208
-
209
- assert jun_values4d.ndim == 2
210
- assert_array_equal(auto_pick_0.shape, jun_values4d.shape)
211
- assert_array_equal(auto_pick_0, jun_values4d)
187
+ with SPMAuditoryTestingDataGrabber() as dg:
188
+ element_data = DefaultDataReader().fit_transform(dg["sub001"])
189
+ # Create SphereAggregation object
190
+ marker = SphereAggregation(
191
+ coords=COORDS,
192
+ method="mean",
193
+ radius=RADIUS,
194
+ time_method="mean",
195
+ on="BOLD",
196
+ )
197
+ sphere_agg_bold_data = marker.fit_transform(element_data)["BOLD"][
198
+ "data"
199
+ ]
200
+
201
+ # Compare with nilearn
202
+ # Load testing coordinates
203
+ testing_coords, _ = get_coordinates(
204
+ coords=COORDS, target_data=element_data["BOLD"]
205
+ )
206
+ # Extract data
207
+ nifti_spheres_masker = NiftiSpheresMasker(
208
+ seeds=testing_coords, radius=RADIUS
209
+ )
210
+ nifti_spheres_masked_bold = nifti_spheres_masker.fit_transform(
211
+ element_data["BOLD"]["data"]
212
+ )
213
+ nifti_spheres_masked_bold_mean = nifti_spheres_masked_bold.mean(axis=0)
212
214
 
215
+ assert sphere_agg_bold_data.ndim == 1
216
+ assert_array_equal(
217
+ nifti_spheres_masked_bold_mean.shape, sphere_agg_bold_data.shape
218
+ )
219
+ assert_array_equal(
220
+ nifti_spheres_masked_bold_mean, sphere_agg_bold_data
221
+ )
222
+
223
+ # Test picking first time point
224
+ nifti_spheres_masked_bold_pick_0 = nifti_spheres_masked_bold[:1, :]
225
+ marker = SphereAggregation(
226
+ coords=COORDS,
227
+ method="mean",
228
+ radius=RADIUS,
229
+ time_method="select",
230
+ time_method_params={"pick": [0]},
231
+ on="BOLD",
232
+ )
233
+ sphere_agg_bold_data = marker.fit_transform(element_data)["BOLD"][
234
+ "data"
235
+ ]
236
+
237
+ assert sphere_agg_bold_data.ndim == 2
238
+ assert_array_equal(
239
+ nifti_spheres_masked_bold_pick_0.shape, sphere_agg_bold_data.shape
240
+ )
241
+ assert_array_equal(
242
+ nifti_spheres_masked_bold_pick_0, sphere_agg_bold_data
243
+ )
244
+
245
+
246
+ def test_SphereAggregation_errors() -> None:
247
+ """Test errors for SphereAggregation."""
213
248
  with pytest.raises(ValueError, match="can only be used with BOLD data"):
214
249
  SphereAggregation(
215
250
  coords=COORDS,
@@ -231,12 +266,23 @@ def test_SphereAggregation_4D_agg_time() -> None:
231
266
  on="VBM_GM",
232
267
  )
233
268
 
234
- with pytest.warns(RuntimeWarning, match="No time dimension to aggregate"):
235
- input = {
236
- "BOLD": {
237
- "data": fmri_img.slicer[..., 0:1],
238
- "meta": {},
239
- "space": "MNI",
240
- }
241
- }
242
- marker.fit_transform(input)
269
+
270
+ def test_SphereAggregation_warning() -> None:
271
+ """Test warning for SphereAggregation."""
272
+ with SPMAuditoryTestingDataGrabber() as dg:
273
+ element_data = DefaultDataReader().fit_transform(dg["sub001"])
274
+ with pytest.warns(
275
+ RuntimeWarning, match="No time dimension to aggregate"
276
+ ):
277
+ marker = SphereAggregation(
278
+ coords=COORDS,
279
+ method="mean",
280
+ radius=RADIUS,
281
+ time_method="select",
282
+ time_method_params={"pick": [0]},
283
+ on="BOLD",
284
+ )
285
+ element_data["BOLD"]["data"] = element_data["BOLD"]["data"].slicer[
286
+ ..., 0:1
287
+ ]
288
+ marker.fit_transform(element_data)
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: junifer
3
- Version: 0.0.4.dev733
3
+ Version: 0.0.4.dev781
4
4
  Summary: JUelich NeuroImaging FEature extractoR
5
5
  Author-email: Fede Raimondo <f.raimondo@fz-juelich.de>, Synchon Mandal <s.mandal@fz-juelich.de>
6
6
  Maintainer-email: Fede Raimondo <f.raimondo@fz-juelich.de>, Synchon Mandal <s.mandal@fz-juelich.de>
@@ -1,5 +1,5 @@
1
1
  junifer/__init__.py,sha256=x1UR2jUcrUdm2HNl-3Qvyi4UUrU6ms5qm2qcmNY7zZk,391
2
- junifer/_version.py,sha256=tIgEwo3Tru6RrqPrJRNhyn8fYa0WPQ7N2K1bhKqn7YE,428
2
+ junifer/_version.py,sha256=DG1TQuA0pxGHQP7YoxTcX0i7VCt9fBbd9PHx3LLTXh0,428
3
3
  junifer/stats.py,sha256=sU5IZ2qFZWbzgSutQS_z42miIVItpSGmQYBn6KkD5fA,6162
4
4
  junifer/api/__init__.py,sha256=YILu9M7SC0Ri4CVd90fELH2OnK_gvCYAXCoqBNCFE8E,257
5
5
  junifer/api/cli.py,sha256=auw38tIH7ipTnaADM7on0or7zauY-BFII8nd-eRUEJs,13664
@@ -30,11 +30,12 @@ junifer/api/res/fsl/img2imgcoord,sha256=Zmaw3oJYrEltcXiPyEubXry9ppAq3SND52tdDWGg
30
30
  junifer/api/res/fsl/run_fsl_docker.sh,sha256=mRLtZo0OgDwleoee2MG6rYI37HVuGNk9zOADwcl97RA,1122
31
31
  junifer/api/res/fsl/std2imgcoord,sha256=-X5wRH6XMl0yqnTACJX6MFhO8DFOEWg42MHRxGvimXg,49
32
32
  junifer/api/tests/test_api_utils.py,sha256=zDRQiqFOaoO02FpzJCxEbZvsP4u4__Yr25e5k5MJwuI,2713
33
- junifer/api/tests/test_cli.py,sha256=hou8Jn31v0SfjAwf5zIqQEbA1nxvL6uvVZUjnghAG3k,8553
34
- junifer/api/tests/test_functions.py,sha256=VVciSskfgFdQMK2s8qh-5sURrGUz-wndRPepuTEfZOM,15567
33
+ junifer/api/tests/test_cli.py,sha256=X24TrEvSXnD8ysVMlaSHPsJPOOUPAzLxLgb3jCj1ahg,8461
34
+ junifer/api/tests/test_functions.py,sha256=mvxdaGHxPje-aQGS2fo95xjU7jOf8TYaTWqwFZ5T0oY,17215
35
35
  junifer/api/tests/test_parser.py,sha256=eUz2JPVb0_cxvoeI1O_C5PMNs5v_lDzGsN6fV1VW5Eg,6109
36
36
  junifer/api/tests/data/gmd_mean.yaml,sha256=Ohb_C5cfQMK-59U9O1ZhejXyBtzLc5Y4cv8QyYq2azg,330
37
37
  junifer/api/tests/data/gmd_mean_htcondor.yaml,sha256=f7NLv_KIJXTiPNFmOWl2Vw8EfwojhfkGtwbh5prbd6w,417
38
+ junifer/api/tests/data/partly_cloudy_agg_mean_tian.yml,sha256=nS8K_R1hEuV71Vv-i9SYjnDGAK2FClQqBiE4kOuQ_ys,313
38
39
  junifer/configs/__init__.py,sha256=r6BU6vW7FVapSD81j24QeQiZe1oKspsJJRRPjXnCk00,120
39
40
  junifer/configs/juseless/__init__.py,sha256=Ws98DvlLEMHfwW6BjmvHQmqTlFRDps9r4pLAfNjfEiM,149
40
41
  junifer/configs/juseless/datagrabbers/__init__.py,sha256=tqCLmelWqB1xfElvknnaJ5oVRPp9XVXtZLzIpxYIghg,452
@@ -49,10 +50,10 @@ junifer/configs/juseless/datagrabbers/tests/test_ixi_vbm.py,sha256=8jxpNZelXwpJG
49
50
  junifer/configs/juseless/datagrabbers/tests/test_ucla.py,sha256=e-jdvcZ9B0mka6_573JJU_cGwSaUV54U8X_n0UadtJY,3351
50
51
  junifer/configs/juseless/datagrabbers/tests/test_ukb_vbm.py,sha256=b9hjc1mgO--PSRC3id2EzzfE2yWNsuZ2UI47a6sfGZU,1025
51
52
  junifer/data/__init__.py,sha256=1E6JtzpnjjA0IutkJkarEik9NhCP9PPI6K0-37XDZVg,602
52
- junifer/data/coordinates.py,sha256=SG3nSDBoH5oDsvo6qjqg3X8rHK86vYQRa3bpfZ0e4zE,12833
53
- junifer/data/masks.py,sha256=81v3GhAf9lc_CobV9f6n_vMK1jWZCbeANmopa02XZOQ,17744
54
- junifer/data/parcellations.py,sha256=o10afxUnQXdClW2thFFz5mAED6ptMkvSVRaj0LxiwKc,63312
55
- junifer/data/template_spaces.py,sha256=fHuihkPCq816rhvI72Us57cSnEPqDf7gWpVZIhOkoMY,4862
53
+ junifer/data/coordinates.py,sha256=Y_-gGCvIqxjArGf-E6LmYzz6ZIbG0ugw5NjgIeirXuA,12850
54
+ junifer/data/masks.py,sha256=u_DDKg8bv0Fec_DwEc1Ledajy5yen3VT-ZblQT6cwaI,23473
55
+ junifer/data/parcellations.py,sha256=tWTrZE68K1X-_1kekRFhVmbrHX_lfSipjaPPjgy0etM,65220
56
+ junifer/data/template_spaces.py,sha256=V_rsSeyXk1TtOtPuDeRtJxDfr0YU08ZB0JLgXNT3DIE,5752
56
57
  junifer/data/utils.py,sha256=Jmbc7SLzy4nLP_zkWv_aJzb1MZ27tutJ98ifsECCamM,1295
57
58
  junifer/data/VOIs/meta/AutobiographicalMemory_VOIs.txt,sha256=9af38naeL18Tlt_gy_ep6vyTAxOB336JYjbo5FvP8PQ,686
58
59
  junifer/data/VOIs/meta/CogAC_VOIs.txt,sha256=Sr5_E712OLdeQRyUcDNM0wLBvZIyO6gc9Q7KkyJHX1A,398
@@ -78,27 +79,27 @@ junifer/data/masks/vickery-patil/CAT12_IXI555_MNI152_TMP_GS_GMprob0.2_clean_3mm.
78
79
  junifer/data/masks/vickery-patil/GMprob0.2_cortex_3mm_NA_rm.nii.gz,sha256=jfMe_4H9XEnArYms5bSQbqS2V1_HbLHTfI5amQa_Pes,8700
79
80
  junifer/data/tests/test_coordinates.py,sha256=BNkz9qFbnwAI0oVlIm_XrT-z4Vsia_rMtMVaoFXT6mU,4328
80
81
  junifer/data/tests/test_data_utils.py,sha256=_DaiC8K79gs9HFHxr-udNeE2YTM6JA0-1i-K2cqK9qA,1087
81
- junifer/data/tests/test_masks.py,sha256=wZ7nsY55on6LpJdRm7VXp1qqQQlENmSK6bNOgiMTE4M,14572
82
- junifer/data/tests/test_parcellations.py,sha256=aUq6t1s6yP_Sw-Ur8mZMkODYgE8VTQ36Y3l3UGprUdk,38001
83
- junifer/data/tests/test_template_spaces.py,sha256=EDsGYBAwjqjOANDNssXaaXPkNv9P658JRtCN2vUulf8,2258
82
+ junifer/data/tests/test_masks.py,sha256=cZmj6UZmuyqXI-8zMqAkuim6DWYecjaMCPo00cr_J5g,16160
83
+ junifer/data/tests/test_parcellations.py,sha256=ZEU1VHIK0AyxpclcJhG_0rQU0phaBU_dHP7Erfi3mN8,38222
84
+ junifer/data/tests/test_template_spaces.py,sha256=PJulN7xHpAcSOTY-UzTG_WPywZEBSlAZGiNG4gzk1_8,3144
84
85
  junifer/datagrabber/__init__.py,sha256=pZHJIY8nAlbVngsyRScE6a6GKbytiwjJB7SdJNqIbl4,680
85
86
  junifer/datagrabber/base.py,sha256=clErdDX5jz8LTjwPTQPCv3jfELCJ2vObg7ks8imAx8Y,6224
86
87
  junifer/datagrabber/datalad_base.py,sha256=dDaBiIePPP6-G4ycgBMxTcXxs4vkg-yDS3OBURK4VGs,10731
87
- junifer/datagrabber/dmcc13_benchmark.py,sha256=lZpGd_6mUmFPcaqERVWPHIzJq_h_muvh1ifwxj6qqdA,11387
88
+ junifer/datagrabber/dmcc13_benchmark.py,sha256=C1ZzeQV7NsdIL5HCkjcZjE6uvecqt6ZY244OfvKD-Zo,11521
88
89
  junifer/datagrabber/multiple.py,sha256=eXQIsvSNvD8GuEITjMaMoi1GwoeyWXXbQMRi-f2qgc4,4923
89
90
  junifer/datagrabber/pattern.py,sha256=uGobDTrRhq-XPNIz0z3eIeIzmNOYFajEXwa7OWqno5g,10720
90
91
  junifer/datagrabber/pattern_datalad.py,sha256=SyXhM0XQEF45poNaWyVAG054BSCYyqJ-JUwbRo05nyk,1653
91
92
  junifer/datagrabber/utils.py,sha256=-i5Pw7w72RO4SRapWYglIC0Lve8e8Mo3Gmu0z6A_PbY,3516
92
93
  junifer/datagrabber/aomic/__init__.py,sha256=R7yrRVBWsBW25CH0fw-KHpFwb_EC-MlPKDzssGfj5A0,281
93
- junifer/datagrabber/aomic/id1000.py,sha256=1n1u3Ro5BZam14hDwZpyU3bxyXVYDSjKdbVm0bVFwCs,5564
94
- junifer/datagrabber/aomic/piop1.py,sha256=kEdzzxauJ0ovb-xQLlBKx4Tu5ncP0vix_b6fAfNk4Ok,7584
95
- junifer/datagrabber/aomic/piop2.py,sha256=Wve4Pe3PKCEZofLmBQ3Q_7wiNal2aIcNJlRbusOnD2g,7203
94
+ junifer/datagrabber/aomic/id1000.py,sha256=Cfp55jGzillWJ_SSeSKF33Cacl5FvVEb80B2Ieooy3I,5698
95
+ junifer/datagrabber/aomic/piop1.py,sha256=wSqQUyHAoSf-1BPDQmBrowoRviFZznkox-iBWJ3NxOo,7718
96
+ junifer/datagrabber/aomic/piop2.py,sha256=SIegiR2ybC8Uok0KDhRauSwhVi21z5cyOJiI698-k90,7337
96
97
  junifer/datagrabber/aomic/tests/test_id1000.py,sha256=eejuGiNQdX_s_8klGROd8OD8O5OprQywWN6O-JU3jD4,4824
97
98
  junifer/datagrabber/aomic/tests/test_piop1.py,sha256=Trp905MCT4jhnCg1leP0PzpEVc_icoKJZrI0TwVCwSE,5578
98
99
  junifer/datagrabber/aomic/tests/test_piop2.py,sha256=KAMU8eoQbKV3n9qRWbpZ24g-qN9uzZ55ZlofcSB9BIA,5377
99
100
  junifer/datagrabber/hcp1200/__init__.py,sha256=zy4Qq1_m3vECEhioG-UDteco2b5cni_8xuElICaRtt4,189
100
101
  junifer/datagrabber/hcp1200/datalad_hcp1200.py,sha256=p5Bbg09qoM46km9eFSlspwLwOe6LMJFSIZ9NC9E2lmc,2432
101
- junifer/datagrabber/hcp1200/hcp1200.py,sha256=AQz4XJJsAnEYpYaJDdMlL2_jHavkpnBRleHGwQuLe68,6003
102
+ junifer/datagrabber/hcp1200/hcp1200.py,sha256=6lNk3wjd6elVFeiQfmU140fsNoZwKFQjipbhlf1KXMk,6134
102
103
  junifer/datagrabber/hcp1200/tests/test_hcp1200.py,sha256=KJ-Jq01l0a6TaboG898qjBdPTHG1E3PZtHCjJ7n-1X0,10765
103
104
  junifer/datagrabber/tests/test_base.py,sha256=TBv14m7JZCvF6OPKG2MesMI7MPm-BkCAzOHb1GmMrG8,3738
104
105
  junifer/datagrabber/tests/test_datagrabber_utils.py,sha256=08fdnXRehAhrWoNdMP_2Ecgam7a1uMbt1i0wIpderEg,2795
@@ -149,8 +150,8 @@ junifer/markers/falff/_junifer_falff.py,sha256=DAwimHqYrZ0EITXwceM5R8cQdGvy-wWjS
149
150
  junifer/markers/falff/falff_base.py,sha256=ywfPqMa11xSHiY1W-OeLrmK67WQx-9mRoXUV2gIZJOo,5698
150
151
  junifer/markers/falff/falff_parcels.py,sha256=xQu73cfYDQvOPqZv7HFmxy7YR1Apx0w3Qr2nzUMPFeU,5012
151
152
  junifer/markers/falff/falff_spheres.py,sha256=wQzNI_IAQMRiwZPB3shjd0wlbW-IKIXArMCQuVy8C4I,5543
152
- junifer/markers/falff/tests/test_falff_parcels.py,sha256=HjyL4VVvQdOewvszJQLLBLSDcJU8JUuvaOZ5DkkWQ4Y,3991
153
- junifer/markers/falff/tests/test_falff_spheres.py,sha256=tAIcArv4astm3_olc8Vqa0KK3Z4B8BWzKQhkJnVT-_A,4027
153
+ junifer/markers/falff/tests/test_falff_parcels.py,sha256=xvEJ9PPjvOfsmyYyEAiycj_35EOivEkLue5yPHSptCs,4009
154
+ junifer/markers/falff/tests/test_falff_spheres.py,sha256=E-Hsny-iH34TmWIMXEmq6j-q0qNpAYv-cwnxZDeMnlg,4040
154
155
  junifer/markers/functional_connectivity/__init__.py,sha256=Uq8aXpHJesedJNHEixpc4bn7VvYZMhf710jyiX45XlE,499
155
156
  junifer/markers/functional_connectivity/crossparcellation_functional_connectivity.py,sha256=YEtjAnmEF98DQm6HRtWqoTdupF4bU1-UKh9rRx1LY-E,5215
156
157
  junifer/markers/functional_connectivity/edge_functional_connectivity_parcels.py,sha256=z5iL8W1z2fDMxRIY_Exc99qnus_DVCPQ8aTnvfRrhp8,4339
@@ -158,33 +159,33 @@ junifer/markers/functional_connectivity/edge_functional_connectivity_spheres.py,
158
159
  junifer/markers/functional_connectivity/functional_connectivity_base.py,sha256=MKwngbj7pDVCxcJPZPrTAi7dh6hjak0McEonk20PkWI,5179
159
160
  junifer/markers/functional_connectivity/functional_connectivity_parcels.py,sha256=QBaJQfgSqxGlnD47LMHJQqXvPlZF5a79yVmmDFJg-WQ,3990
160
161
  junifer/markers/functional_connectivity/functional_connectivity_spheres.py,sha256=ZdMylng5uvlA4JDz-8giNeDh_hTWh4k2fuPx_HowfH0,4690
161
- junifer/markers/functional_connectivity/tests/test_crossparcellation_functional_connectivity.py,sha256=iW_YgN3Szk4dyFe5K3jnhHNvbl0ToXkSoHatYw5qwb8,2904
162
- junifer/markers/functional_connectivity/tests/test_edge_functional_connectivity_parcels.py,sha256=OrJbRpeX7Qb7qAcvOiE3jti4Cw9Hw5h8Wam3qPjTDsA,1991
163
- junifer/markers/functional_connectivity/tests/test_edge_functional_connectivity_spheres.py,sha256=AGrjz9cFCSiS2haBEnVT--4t89XkBUtg5c76JOtVgUM,2369
162
+ junifer/markers/functional_connectivity/tests/test_crossparcellation_functional_connectivity.py,sha256=0TOJhdjrD_96j80Yt4AmtOWxoQLDF_pdVW9mVHsm_uU,3142
163
+ junifer/markers/functional_connectivity/tests/test_edge_functional_connectivity_parcels.py,sha256=gXJHBm56TCwFMK7NGtO9PHOdyr0Ymlm0jByusfrBakE,1992
164
+ junifer/markers/functional_connectivity/tests/test_edge_functional_connectivity_spheres.py,sha256=FhlRqiKzk_W7v4Yc1pgyzUp6SKXu_9kq7dPc1GfkdXA,2197
164
165
  junifer/markers/functional_connectivity/tests/test_functional_connectivity_base.py,sha256=RmPTrG0uLKb5RgdHXUnH6lon60FxN1JCtr-dsTBaX28,522
165
- junifer/markers/functional_connectivity/tests/test_functional_connectivity_parcels.py,sha256=CN6buyF0hxqzQUefz0KBkQSndwSXoZ5ius-H-WGhslY,3210
166
- junifer/markers/functional_connectivity/tests/test_functional_connectivity_spheres.py,sha256=KOaMkLf7CEd1H8A92WpZAy6X6VNf6TADzYqsqXqvV4Q,4278
166
+ junifer/markers/functional_connectivity/tests/test_functional_connectivity_parcels.py,sha256=iV1HY2t0ywBjOn06SLBlfn3x2c3Yuopq8W4pPQyfdzQ,3096
167
+ junifer/markers/functional_connectivity/tests/test_functional_connectivity_spheres.py,sha256=wMK5GVcRz68zsCPMtTXxoG7H68Ab8wk9_bsrcyRz1R4,5090
167
168
  junifer/markers/reho/__init__.py,sha256=9IfeAxKEVgMWbhud-8T54Le07I4pR6A29sMKeFtvEPg,189
168
169
  junifer/markers/reho/_afni_reho.py,sha256=YZQAG8iPPOqYWZgnzbySLFbRKadL5WUYfaPbWAWHzEk,6444
169
170
  junifer/markers/reho/_junifer_reho.py,sha256=oATv5cBbc42HdxpKbeokuflKYrx6vitqjiVfS_f4Ibs,9279
170
171
  junifer/markers/reho/reho_base.py,sha256=04rQFivmeZx7EG9-fP00bp0rKruUAi8x_ngVoMSjSl4,4492
171
172
  junifer/markers/reho/reho_parcels.py,sha256=zOx6pYPqwNQ40H-0qZguWUTOGo9XQ1NLiA2OtSJn8LI,6142
172
173
  junifer/markers/reho/reho_spheres.py,sha256=xAnEVIV-5Hq9CbEkzcpoL2rlcU5SsifONib9BPJaVDA,6758
173
- junifer/markers/reho/tests/test_reho_parcels.py,sha256=7LmQaTYdYxHsV4SpmhUGklc6EFB0iMyw2GauRoB0H0M,3700
174
+ junifer/markers/reho/tests/test_reho_parcels.py,sha256=v3s52rZPeSgspL2vECpUCBp4dSuFh5_NKeEfBA6QQt0,3889
174
175
  junifer/markers/reho/tests/test_reho_spheres.py,sha256=Gj-q2NajtYVRacvTsexxCyAQrpMWBQ-GbdXZpiDujIU,3803
175
176
  junifer/markers/temporal_snr/__init__.py,sha256=gyJPT19xuig-og0yuzZZeRC_zX4ondcLf-wNKFDaGvs,243
176
177
  junifer/markers/temporal_snr/temporal_snr_base.py,sha256=T5VGhiEPtTaUpF7pE5mTZAy_O9vtgdZMtthSLncI0P4,4024
177
178
  junifer/markers/temporal_snr/temporal_snr_parcels.py,sha256=OLkA5YZoPwc0kfTyxS7LTT-j1jBDiwLgHm8ulFHQs7o,3299
178
179
  junifer/markers/temporal_snr/temporal_snr_spheres.py,sha256=VoxVA_b48Ppf7P6cxYq05WKdiqK9YteIFPbCPfOOyTM,4007
179
180
  junifer/markers/temporal_snr/tests/test_temporal_snr_base.py,sha256=KRln5ibLTJJQ_f3pnioATfwyhK5htGc2o2J7CPcoyfs,426
180
- junifer/markers/temporal_snr/tests/test_temporal_snr_parcels.py,sha256=-JzuTd-Q44tmKhEZ0m6KKxB_W2H74Cv5u9uVkI6NLQE,1626
181
- junifer/markers/temporal_snr/tests/test_temporal_snr_spheres.py,sha256=s1Px_lJ9wva4FYEGzyHL983k3xBRMtV41jVVTZdXT8c,1865
182
- junifer/markers/tests/test_collection.py,sha256=WWX6UAFOvMCE8q21ZnYZ9k79bR9b-tTg2wuexEhYSTY,6873
183
- junifer/markers/tests/test_ets_rss.py,sha256=YZNvkqiytpKK5Iw1TQPAY_9zePuaMqvaeHBZWq0pDSA,2685
181
+ junifer/markers/temporal_snr/tests/test_temporal_snr_parcels.py,sha256=a2EUGmAdyauFCxKnDxmr9vVguYLUfbxrzl8rExBnplk,1961
182
+ junifer/markers/temporal_snr/tests/test_temporal_snr_spheres.py,sha256=VSc7CrN8iWsI7099REwlBIjeQ3BlmVdXWs56ZLfYGbI,2094
183
+ junifer/markers/tests/test_collection.py,sha256=crFB7vjdkll9uuyQtKsTW6BlqSvvjfv5e6wxa8nkU-0,6812
184
+ junifer/markers/tests/test_ets_rss.py,sha256=fjFOBBIG_vaNblyDFFYhoYc0asWS1rQR0B02Feb_8Vw,2448
184
185
  junifer/markers/tests/test_marker_utils.py,sha256=SR3ADWI3uGv4ozYqVu-rMZnJVqP6JnjLBgo6qUm16Wk,1478
185
186
  junifer/markers/tests/test_markers_base.py,sha256=cbuCeMmjyFMP1ea6J6XRsBQo8CivQ41ooABiT1Snj2k,3076
186
- junifer/markers/tests/test_parcel_aggregation.py,sha256=fEqag0j2Mf11-sMBnMq2CIMt_fGoXFqdS-Ju5OZERQs,22374
187
- junifer/markers/tests/test_sphere_aggregation.py,sha256=jqnn8pJH2EBpoZeS5DbbDNkRVK1Sdp2VlJkuePdkAZ4,7875
187
+ junifer/markers/tests/test_parcel_aggregation.py,sha256=N0Nn42BF1apQkhntZikiU73b5clJkY2LThBv2YScJPg,26531
188
+ junifer/markers/tests/test_sphere_aggregation.py,sha256=Xu2vrZvaK0oCZqjuJGiC6Tl8jSOFwVl75U4geclpy14,9747
188
189
  junifer/onthefly/__init__.py,sha256=GG_Z5NgnVNph6CLPtGFI2HE_OIuVTZ874BOq72mA-ps,160
189
190
  junifer/onthefly/read_transform.py,sha256=8ia2QktWpVhPDD20bKywuVHPU1Ys2Wyc_HvKyyRTcVo,4309
190
191
  junifer/onthefly/tests/test_read_transform.py,sha256=D2C3IpXQHdsJSF07v8rEwGntLGXjZOserlRhebJUAVM,4719
@@ -247,10 +248,10 @@ junifer/utils/logging.py,sha256=furcU3XIUpUvnpe4PEwzWWIWgmH4j2ZA4MQdvSGWjj0,9216
247
248
  junifer/utils/tests/test_fs.py,sha256=WQS7cKlKEZ742CIuiOYYpueeAhY9PqlastfDVpVVtvE,923
248
249
  junifer/utils/tests/test_helpers.py,sha256=k5qqfxK8dFyuewTJyR1Qn6-nFaYNuVr0ysc18bfPjyU,929
249
250
  junifer/utils/tests/test_logging.py,sha256=l8oo-AiBV7H6_IzlsNcj__cLeZBUvgIGoaMszD9VaJg,7754
250
- junifer-0.0.4.dev733.dist-info/AUTHORS.rst,sha256=rmULKpchpSol4ExWFdm-qu4fkpSZPYqIESVJBZtGb6E,163
251
- junifer-0.0.4.dev733.dist-info/LICENSE.md,sha256=MqCnOBu8uXsEOzRZWh9EBVfVz-kE9NkXcLCrtGXo2yU,34354
252
- junifer-0.0.4.dev733.dist-info/METADATA,sha256=k3yrPJ0o7e_weVABaPHO7Q_cl65HeeXMizcqiEEepiA,8235
253
- junifer-0.0.4.dev733.dist-info/WHEEL,sha256=GJ7t_kWBFywbagK5eo9IoUwLW6oyOeTKmQ-9iHFVNxQ,92
254
- junifer-0.0.4.dev733.dist-info/entry_points.txt,sha256=DxFvKq0pOqRunAK0FxwJcoDfV1-dZvsFDpD5HRqSDhw,48
255
- junifer-0.0.4.dev733.dist-info/top_level.txt,sha256=4bAq1R2QFQ4b3hohjys2JBvxrl0GKk5LNFzYvz9VGcA,8
256
- junifer-0.0.4.dev733.dist-info/RECORD,,
251
+ junifer-0.0.4.dev781.dist-info/AUTHORS.rst,sha256=rmULKpchpSol4ExWFdm-qu4fkpSZPYqIESVJBZtGb6E,163
252
+ junifer-0.0.4.dev781.dist-info/LICENSE.md,sha256=MqCnOBu8uXsEOzRZWh9EBVfVz-kE9NkXcLCrtGXo2yU,34354
253
+ junifer-0.0.4.dev781.dist-info/METADATA,sha256=5YfE1jEOLMBw69X5dZwvZYOzv5V8i7PTJVZJ3dht7oQ,8235
254
+ junifer-0.0.4.dev781.dist-info/WHEEL,sha256=GJ7t_kWBFywbagK5eo9IoUwLW6oyOeTKmQ-9iHFVNxQ,92
255
+ junifer-0.0.4.dev781.dist-info/entry_points.txt,sha256=DxFvKq0pOqRunAK0FxwJcoDfV1-dZvsFDpD5HRqSDhw,48
256
+ junifer-0.0.4.dev781.dist-info/top_level.txt,sha256=4bAq1R2QFQ4b3hohjys2JBvxrl0GKk5LNFzYvz9VGcA,8
257
+ junifer-0.0.4.dev781.dist-info/RECORD,,