Skip to content

Commit 0034af1

Browse files
committed
Revert obliquity-related changes.
1 parent 35e1847 commit 0034af1

File tree

5 files changed

+25
-22
lines changed

5 files changed

+25
-22
lines changed

cubids/constants.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -29,12 +29,12 @@
2929
"SliceEncodingDirection",
3030
"DwellTime",
3131
"FlipAngle",
32-
"ImageOrientationPatientDICOM",
3332
"MultibandAccelerationFactor",
3433
"RepetitionTime",
3534
"VolumeTiming",
3635
"NumberOfVolumesDiscardedByScanner",
3736
"NumberOfVolumesDiscardedByUser",
37+
"Obliquity",
3838
"VoxelSizeDim1",
3939
"VoxelSizeDim2",
4040
"VoxelSizeDim3",

cubids/cubids.py

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -307,6 +307,7 @@ def add_nifti_info(self):
307307
the dataset using `datalad` before processing the files.
308308
309309
Metadata added to the JSON sidecars includes:
310+
- Obliquity
310311
- Voxel sizes (dimensions 1, 2, and 3)
311312
- Matrix dimensions (sizes of dimensions 1, 2, and 3)
312313
- Number of volumes (for 4D images)
@@ -345,6 +346,7 @@ def add_nifti_info(self):
345346
continue
346347

347348
# get important info from niftis
349+
obliquity = np.any(nb.affines.obliquity(img.affine) > 1e-4)
348350
voxel_sizes = img.header.get_zooms()
349351
matrix_dims = img.shape
350352
# add nifti info to corresponding sidecars​
@@ -356,6 +358,8 @@ def add_nifti_info(self):
356358
except Exception:
357359
print("Error parsing this sidecar: ", sidecar)
358360

361+
if "Obliquity" not in data.keys():
362+
data["Obliquity"] = str(obliquity)
359363
if "VoxelSizeDim1" not in data.keys():
360364
data["VoxelSizeDim1"] = float(voxel_sizes[0])
361365
if "VoxelSizeDim2" not in data.keys():

cubids/data/config.yml

Lines changed: 13 additions & 18 deletions
Original file line numberDiff line numberDiff line change
@@ -16,6 +16,9 @@ derived_params:
1616
# Number of volumes
1717
NumVolumes:
1818
suggest_variant_rename: yes
19+
# Boolean indicating oblique acquisition
20+
Obliquity:
21+
suggest_variant_rename: yes
1922
# String describing image orientation (e.g., LAS+)
2023
ImageOrientation:
2124
suggest_variant_rename: yes
@@ -64,6 +67,8 @@ derived_params:
6467
suggest_variant_rename: yes
6568
NumVolumes:
6669
suggest_variant_rename: yes
70+
Obliquity:
71+
suggest_variant_rename: yes
6772
VoxelSizeDim1:
6873
tolerance: 0.001
6974
precision: 3
@@ -108,6 +113,8 @@ derived_params:
108113
suggest_variant_rename: yes
109114
NumVolumes:
110115
suggest_variant_rename: yes
116+
Obliquity:
117+
suggest_variant_rename: yes
111118
VoxelSizeDim1:
112119
tolerance: 0.001
113120
suggest_variant_rename: yes
@@ -151,6 +158,8 @@ derived_params:
151158
suggest_variant_rename: yes
152159
NumVolumes:
153160
suggest_variant_rename: yes
161+
Obliquity:
162+
suggest_variant_rename: yes
154163
VoxelSizeDim1:
155164
tolerance: 0.001
156165
precision: 3
@@ -195,6 +204,8 @@ derived_params:
195204
suggest_variant_rename: yes
196205
NumVolumes:
197206
suggest_variant_rename: yes
207+
Obliquity:
208+
suggest_variant_rename: yes
198209
VoxelSizeDim1:
199210
tolerance: 0.001
200211
precision: 3
@@ -239,6 +250,8 @@ derived_params:
239250
suggest_variant_rename: yes
240251
NumVolumes:
241252
suggest_variant_rename: yes
253+
Obliquity:
254+
suggest_variant_rename: yes
242255
VoxelSizeDim1:
243256
tolerance: 0.001
244257
precision: 3
@@ -298,9 +311,6 @@ sidecar_params:
298311
suggest_variant_rename: yes
299312
FlipAngle:
300313
suggest_variant_rename: yes
301-
ImageOrientationPatientDICOM:
302-
tolerance: 0.0001
303-
suggest_variant_rename: yes
304314
MultibandAccelerationFactor:
305315
suggest_variant_rename: yes
306316
NumberOfVolumesDiscardedByScanner:
@@ -340,9 +350,6 @@ sidecar_params:
340350
suggest_variant_rename: yes
341351
FlipAngle:
342352
suggest_variant_rename: yes
343-
ImageOrientationPatientDICOM:
344-
tolerance: 0.0001
345-
suggest_variant_rename: yes
346353
MultibandAccelerationFactor:
347354
suggest_variant_rename: yes
348355
NumberOfVolumesDiscardedByScanner:
@@ -382,9 +389,6 @@ sidecar_params:
382389
suggest_variant_rename: yes
383390
FlipAngle:
384391
suggest_variant_rename: yes
385-
ImageOrientationPatientDICOM:
386-
tolerance: 0.0001
387-
suggest_variant_rename: yes
388392
MultibandAccelerationFactor:
389393
suggest_variant_rename: yes
390394
NumberOfVolumesDiscardedByScanner:
@@ -424,9 +428,6 @@ sidecar_params:
424428
suggest_variant_rename: yes
425429
FlipAngle:
426430
suggest_variant_rename: yes
427-
ImageOrientationPatientDICOM:
428-
tolerance: 0.0001
429-
suggest_variant_rename: yes
430431
MultibandAccelerationFactor:
431432
suggest_variant_rename: yes
432433
NumberOfVolumesDiscardedByScanner:
@@ -478,9 +479,6 @@ sidecar_params:
478479
suggest_variant_rename: yes
479480
FlipAngle:
480481
suggest_variant_rename: yes
481-
ImageOrientationPatientDICOM:
482-
tolerance: 0.0001
483-
suggest_variant_rename: yes
484482
LabelingDistance:
485483
tolerance: 0.1
486484
suggest_variant_rename: yes
@@ -537,9 +535,6 @@ sidecar_params:
537535
suggest_variant_rename: yes
538536
FlipAngle:
539537
suggest_variant_rename: yes
540-
ImageOrientationPatientDICOM:
541-
tolerance: 0.0001
542-
suggest_variant_rename: yes
543538
MultibandAccelerationFactor:
544539
suggest_variant_rename: yes
545540
NumberOfVolumesDiscardedByScanner:

cubids/tests/test_bond.py

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -352,6 +352,7 @@ def test_add_nifti_info_datalad(tmp_path):
352352
summary_df = pd.read_table(summary_tsv)
353353
l_cols = summary_df.columns.tolist()
354354
assert "NumVolumes" not in l_cols
355+
assert "Obliquity" not in l_cols
355356

356357
# now add nifti info
357358
bod.add_nifti_info()
@@ -363,6 +364,7 @@ def test_add_nifti_info_datalad(tmp_path):
363364
metadata = json.load(jsonr)
364365
found_fields.update(metadata.keys())
365366
assert "NumVolumes" in found_fields
367+
assert "Obliquity" in found_fields
366368
assert "ImageOrientation" in found_fields
367369

368370
# nifti_tsv_prefix = str(tmp_path / "nifti_tsvs")
@@ -371,6 +373,7 @@ def test_add_nifti_info_datalad(tmp_path):
371373
# nifti_summary_df = pd.read_table(nifti_summary_tsv)
372374
# nifti_l_cols = nifti_summary_df.columns.tolist()
373375
# assert 'NumVolumes' in nifti_l_cols
376+
# assert 'Obliquity' in nifti_l_cols
374377
# assert 'ImageOrientation' in nifti_l_cols
375378

376379

@@ -393,6 +396,7 @@ def test_add_nifti_info_no_datalad(tmp_path):
393396
metadata = json.load(jsonr)
394397
found_fields.update(metadata.keys())
395398
assert "NumVolumes" in found_fields
399+
assert "Obliquity" in found_fields
396400
assert "ImageOrientation" in found_fields
397401

398402
# tsv_prefix = str(tmp_path / "tsvs")
@@ -401,7 +405,7 @@ def test_add_nifti_info_no_datalad(tmp_path):
401405
# summary_df = pd.read_table(summary_tsv)
402406
# l_cols = summary_df.columns.tolist()
403407
# assert 'NumVolumes' in l_cols
404-
408+
# assert 'Obliquity' in l_cols
405409

406410
# TODO: add tests that return an error for invalid merge
407411

docs/example.rst

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -152,7 +152,7 @@ Adding NIfTI Information to JSON Sidecars
152152

153153
Next, we seek to add more image parameters to our sidecars so that we can better define our Entity Sets.
154154
Historically, only a subset of parameters in the NIfTI image header have been included in a BIDS sidecar...
155-
Parameters such as image dimensions, number of volumes, and voxel sizes —
155+
Parameters such as image dimensions, number of volumes, image obliquity, and voxel sizes —
156156
all important data that can change how our pipelines will eventually run!
157157

158158
To add them to the sidecar metadata, run:
@@ -317,7 +317,7 @@ This command will produce four tables that describe the dataset's heterogeneity
317317
By first examining ``v0_summary.tsv`` users are given the opportunity to conduct metadata
318318
quality assurance (QA).
319319
The file can help identify instances of incomplete, incorrect, or unusable parameter groups,
320-
based on acquisition fields such as dimension and voxel sizes, number of volumes, and more.
320+
based on acquisition fields such as dimension and voxel sizes, number of volumes, obliquity,and more.
321321

322322
.. warning::
323323

0 commit comments

Comments
 (0)