Skip to content
Merged
Show file tree
Hide file tree
Changes from 34 commits
Commits
Show all changes
37 commits
Select commit Hold shift + click to select a range
e061f4c
Support array-type metadata fields.
tsalo Jan 17, 2025
ce5dea8
Try supporting lists of strings too.
tsalo Jan 17, 2025
d6b194a
Merge branch 'main' into list-metadata
tsalo Jan 17, 2025
144a492
Add test.
tsalo Jan 17, 2025
52d02d0
Update test_utils.py
tsalo Jan 17, 2025
7a546b6
Update stuff.
tsalo Jan 17, 2025
45bcc76
Merge branch 'main' into list-metadata
tsalo Jan 17, 2025
6c3f3e1
Update test_utils.py
tsalo Jan 17, 2025
7c50435
Merge branch 'main' into list-metadata
tsalo Jan 27, 2025
0460d7f
Merge branch 'main' into list-metadata
tsalo Jan 28, 2025
e1b1d9b
Merge branch 'main' into list-metadata
tsalo Feb 4, 2025
dc07c6f
Rename format_params to cluster_single_parameters.
tsalo Feb 4, 2025
e3ca352
Keep working.
tsalo Feb 4, 2025
6a5c09b
Merge branch 'main' into list-metadata
tsalo Feb 4, 2025
929bfab
Move cluster_single_parameters from cubids to utils.
tsalo Feb 4, 2025
c2265dd
Fix import.
tsalo Feb 4, 2025
71d5e73
Remove unused function.
tsalo Feb 4, 2025
3fde7ab
Update utils.py
tsalo Feb 4, 2025
10ce7c7
Update test_utils.py
tsalo Feb 4, 2025
9897b03
Update round_params too.
tsalo Feb 5, 2025
a318078
Update test.
tsalo Feb 5, 2025
ff4f5f8
Update.
tsalo Feb 5, 2025
0441113
Update.
tsalo Feb 5, 2025
6ede27a
Merge branch 'main' into list-metadata
tsalo Feb 5, 2025
aa3aa08
Merge branch 'main' into list-metadata
tsalo Feb 13, 2025
f109d70
Merge branch 'main' into list-metadata
tsalo Feb 21, 2025
d31bf32
Fix possible bug from #439.
tsalo Feb 21, 2025
e6d8d35
Merge branch 'main' into list-metadata
tsalo Feb 26, 2025
ed4c3cf
Allow ndarray metadata.
tsalo Mar 3, 2025
c8986f9
Add ImageOrientationPatientDICOM, remove Obliquity
tsalo Mar 3, 2025
b31ee74
Remove obliquity mentions.
tsalo Mar 3, 2025
f52a419
Merge branch 'main' into list-metadata
tsalo Mar 3, 2025
fbbdd26
Merge branch 'main' into list-metadata
tsalo Apr 3, 2025
35e1847
Merge branch 'main' into list-metadata
tsalo Apr 4, 2025
0034af1
Revert obliquity-related changes.
tsalo Apr 4, 2025
43171f1
Update test_bond.py
tsalo Apr 4, 2025
85348ea
Update example.rst
tsalo Apr 4, 2025
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 1 addition & 1 deletion cubids/constants.py
Original file line number Diff line number Diff line change
Expand Up @@ -29,12 +29,12 @@
"SliceEncodingDirection",
"DwellTime",
"FlipAngle",
"ImageOrientationPatientDICOM",
"MultibandAccelerationFactor",
"RepetitionTime",
"VolumeTiming",
"NumberOfVolumesDiscardedByScanner",
"NumberOfVolumesDiscardedByUser",
"Obliquity",
"VoxelSizeDim1",
"VoxelSizeDim2",
"VoxelSizeDim3",
Expand Down
4 changes: 0 additions & 4 deletions cubids/cubids.py
Original file line number Diff line number Diff line change
Expand Up @@ -307,7 +307,6 @@ def add_nifti_info(self):
the dataset using `datalad` before processing the files.

Metadata added to the JSON sidecars includes:
- Obliquity
- Voxel sizes (dimensions 1, 2, and 3)
- Matrix dimensions (sizes of dimensions 1, 2, and 3)
- Number of volumes (for 4D images)
Expand Down Expand Up @@ -346,7 +345,6 @@ def add_nifti_info(self):
continue

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

if "Obliquity" not in data.keys():
data["Obliquity"] = str(obliquity)
if "VoxelSizeDim1" not in data.keys():
data["VoxelSizeDim1"] = float(voxel_sizes[0])
if "VoxelSizeDim2" not in data.keys():
Expand Down
31 changes: 18 additions & 13 deletions cubids/data/config.yml
Original file line number Diff line number Diff line change
Expand Up @@ -16,9 +16,6 @@ derived_params:
# Number of volumes
NumVolumes:
suggest_variant_rename: yes
# Boolean indicating oblique acquisition
Obliquity:
suggest_variant_rename: yes
# String describing image orientation (e.g., LAS+)
ImageOrientation:
suggest_variant_rename: yes
Expand Down Expand Up @@ -67,8 +64,6 @@ derived_params:
suggest_variant_rename: yes
NumVolumes:
suggest_variant_rename: yes
Obliquity:
suggest_variant_rename: yes
VoxelSizeDim1:
tolerance: 0.001
precision: 3
Expand Down Expand Up @@ -113,8 +108,6 @@ derived_params:
suggest_variant_rename: yes
NumVolumes:
suggest_variant_rename: yes
Obliquity:
suggest_variant_rename: yes
VoxelSizeDim1:
tolerance: 0.001
suggest_variant_rename: yes
Expand Down Expand Up @@ -158,8 +151,6 @@ derived_params:
suggest_variant_rename: yes
NumVolumes:
suggest_variant_rename: yes
Obliquity:
suggest_variant_rename: yes
VoxelSizeDim1:
tolerance: 0.001
precision: 3
Expand Down Expand Up @@ -204,8 +195,6 @@ derived_params:
suggest_variant_rename: yes
NumVolumes:
suggest_variant_rename: yes
Obliquity:
suggest_variant_rename: yes
VoxelSizeDim1:
tolerance: 0.001
precision: 3
Expand Down Expand Up @@ -250,8 +239,6 @@ derived_params:
suggest_variant_rename: yes
NumVolumes:
suggest_variant_rename: yes
Obliquity:
suggest_variant_rename: yes
VoxelSizeDim1:
tolerance: 0.001
precision: 3
Expand Down Expand Up @@ -311,6 +298,9 @@ sidecar_params:
suggest_variant_rename: yes
FlipAngle:
suggest_variant_rename: yes
ImageOrientationPatientDICOM:
tolerance: 0.0001
suggest_variant_rename: yes
MultibandAccelerationFactor:
suggest_variant_rename: yes
NumberOfVolumesDiscardedByScanner:
Expand Down Expand Up @@ -350,6 +340,9 @@ sidecar_params:
suggest_variant_rename: yes
FlipAngle:
suggest_variant_rename: yes
ImageOrientationPatientDICOM:
tolerance: 0.0001
suggest_variant_rename: yes
MultibandAccelerationFactor:
suggest_variant_rename: yes
NumberOfVolumesDiscardedByScanner:
Expand Down Expand Up @@ -389,6 +382,9 @@ sidecar_params:
suggest_variant_rename: yes
FlipAngle:
suggest_variant_rename: yes
ImageOrientationPatientDICOM:
tolerance: 0.0001
suggest_variant_rename: yes
MultibandAccelerationFactor:
suggest_variant_rename: yes
NumberOfVolumesDiscardedByScanner:
Expand Down Expand Up @@ -428,6 +424,9 @@ sidecar_params:
suggest_variant_rename: yes
FlipAngle:
suggest_variant_rename: yes
ImageOrientationPatientDICOM:
tolerance: 0.0001
suggest_variant_rename: yes
MultibandAccelerationFactor:
suggest_variant_rename: yes
NumberOfVolumesDiscardedByScanner:
Expand Down Expand Up @@ -479,6 +478,9 @@ sidecar_params:
suggest_variant_rename: yes
FlipAngle:
suggest_variant_rename: yes
ImageOrientationPatientDICOM:
tolerance: 0.0001
suggest_variant_rename: yes
LabelingDistance:
tolerance: 0.1
suggest_variant_rename: yes
Expand Down Expand Up @@ -535,6 +537,9 @@ sidecar_params:
suggest_variant_rename: yes
FlipAngle:
suggest_variant_rename: yes
ImageOrientationPatientDICOM:
tolerance: 0.0001
suggest_variant_rename: yes
MultibandAccelerationFactor:
suggest_variant_rename: yes
NumberOfVolumesDiscardedByScanner:
Expand Down
5 changes: 0 additions & 5 deletions cubids/tests/test_bond.py
Original file line number Diff line number Diff line change
Expand Up @@ -352,7 +352,6 @@ def test_add_nifti_info_datalad(tmp_path):
summary_df = pd.read_table(summary_tsv)
l_cols = summary_df.columns.tolist()
assert "NumVolumes" not in l_cols
assert "Obliquity" not in l_cols

# now add nifti info
bod.add_nifti_info()
Expand All @@ -364,7 +363,6 @@ def test_add_nifti_info_datalad(tmp_path):
metadata = json.load(jsonr)
found_fields.update(metadata.keys())
assert "NumVolumes" in found_fields
assert "Obliquity" in found_fields
assert "ImageOrientation" in found_fields

# nifti_tsv_prefix = str(tmp_path / "nifti_tsvs")
Expand All @@ -373,7 +371,6 @@ def test_add_nifti_info_datalad(tmp_path):
# nifti_summary_df = pd.read_table(nifti_summary_tsv)
# nifti_l_cols = nifti_summary_df.columns.tolist()
# assert 'NumVolumes' in nifti_l_cols
# assert 'Obliquity' in nifti_l_cols
# assert 'ImageOrientation' in nifti_l_cols


Expand All @@ -396,7 +393,6 @@ def test_add_nifti_info_no_datalad(tmp_path):
metadata = json.load(jsonr)
found_fields.update(metadata.keys())
assert "NumVolumes" in found_fields
assert "Obliquity" in found_fields
assert "ImageOrientation" in found_fields

# tsv_prefix = str(tmp_path / "tsvs")
Expand All @@ -405,7 +401,6 @@ def test_add_nifti_info_no_datalad(tmp_path):
# summary_df = pd.read_table(summary_tsv)
# l_cols = summary_df.columns.tolist()
# assert 'NumVolumes' in l_cols
# assert 'Obliquity' in l_cols


# TODO: add tests that return an error for invalid merge
Expand Down
30 changes: 0 additions & 30 deletions cubids/tests/test_cubids.py
Original file line number Diff line number Diff line change
Expand Up @@ -449,21 +449,6 @@ def _test__get_param_groups(cubids_instance):
# Add assertions here


def _test_round_params(cubids_instance):
"""Test rounding parameters.
Parameters
----------
cubids_instance : CuBIDS
An instance of the CuBIDS class.
"""
param_group_df = pd.DataFrame({"param": [0.123456789]})
config = {"param": {"round": 3}}
modality = "bold"
rounded_params = cubids_instance.round_params(param_group_df, config, modality)
# Add assertions here


def _test_get_sidecar_metadata(cubids_instance):
"""Test getting sidecar metadata.
Expand All @@ -477,21 +462,6 @@ def _test_get_sidecar_metadata(cubids_instance):
# Add assertions here


def _test_format_params(cubids_instance):
"""Test formatting parameters.
Parameters
----------
cubids_instance : CuBIDS
An instance of the CuBIDS class.
"""
param_group_df = pd.DataFrame({"param": [0.123456789]})
config = {"param": {"format": "{:.2f}"}}
modality = "bold"
formatted_params = cubids_instance.format_params(param_group_df, config, modality)
# Add assertions here


def _test__order_columns(cubids_instance):
"""Test ordering columns.
Expand Down
Loading