Skip to content

Poi label names - #124

Merged
robert-graf merged 5 commits into
mainfrom
poi-label-names
Sep 22, 2026
Merged

robert-graf merged 5 commits into
mainfrom
poi-label-names

Conversation

@Hendrik-code

Copy link
Copy Markdown
Owner

No description provided.

Hendrik-code and others added 3 commits June 29, 2026 13:21
POI.copy(), _set_inplace(), POI_Global.to_other(), and calc_poi_average() dropped
the naming metadata (level_one_info, level_two_info, and with it info['label_name']),
and POI_Descriptor.copy() dropped its name<->id definition. Now every copy/derive
path preserves them, so names survive reorient/rescale/extract/map_labels/to_global/
average (all of which route through copy()). Verified preserved across those ops;
76 existing POI tests still pass.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
label_name now uses the nested form {region:{subregion:name,'name':group}} instead
of flat {'(1, 2)':'C2'}. Old flat files (and JSON string keys) are migrated on load
(normalize_label_name); saving always writes the new format (mrk.json export stays
byte-identical, fed from the nested dict). New accessors POI.label_name(region,
subregion) and POI.level_one_name(region) resolve custom names with priority over
level_two_info/level_one_info enum names (warning when a custom name diverges from a
given enum name); set_label_name/set_level_one_name write them. mrk/txt import and
join_left updated to the nested form. 89 POI tests + 8 new tests pass.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
unpack_poi_id now resolves a key part via level_one_info/level_two_info enum names
(when set) before the descriptor's definition, so poi[idx, 'level2name'] and
poi['level1name', 'level2name'] work for get/set/contains alongside ids and Enums.
Using an Enum key while the matching level_*_info is still 'Any' (unset) now emits a
warning (the .value is still used). 100 POI tests pass.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
@Hendrik-code Hendrik-code self-assigned this Aug 10, 2026
@Hendrik-code Hendrik-code added the enhancement New feature or request label Aug 10, 2026
@Hendrik-code Hendrik-code linked an issue Aug 10, 2026 that may be closed by this pull request
@robert-graf
robert-graf marked this pull request as ready for review September 22, 2026 10:50
@robert-graf
robert-graf self-requested a review September 22, 2026 10:51
@github-actions

Copy link
Copy Markdown

Benchmark comparison

Speed (wall time per call)

baseline a0edcd0 vs head a0edcd0 · python 3.11.16 · 5 repeats + 1 warmup

Showing the 5 most-changed measurements per case; the rest are collapsed. Rows with a baseline below 3 ms are tagged (noise) — runner jitter on those swamps any real change.

ct_3d — shape (73, 47, 73)

Measurement baseline ms (median ±½·range) head ms (median ±½·range) Δ % p
poi_calc_centroids_nocrop 3.21 ±1.97 2.70 ±0.03 -16.0% 0.135
nii_fill_holes 3.25 ±0.08 2.91 ±0.11 -10.5% 0.000
nii_save 7.87 ±0.23 7.09 ±1.23 -9.8% 0.898
nii_rescale 24.58 ±0.81 22.68 ±0.78 -7.7% 0.012
nii_erode_msk 3.77 ±0.05 3.55 ±0.11 -6.0% 0.002
… 31 more measurements
Measurement baseline ms (median ±½·range) head ms (median ±½·range) Δ % p
nii_dilate_msk 70.17 ±1.73 66.37 ±1.40 -5.4% 0.022
nii_load_img 7.58 ±0.11 7.35 ±0.41 -3.0% 0.919
poi_calc_poi_from_subreg_vert 6.72 ±0.18 6.54 ±0.15 -2.7% 0.066
nii_resample_from_to 25.74 ±0.63 25.05 ±3.10 -2.7% 0.655
metric_voxels 250463.00 ±0.00 250463.00 ±0.00 +0.0% —
metric_labels 3.00 ±0.00 3.00 ±0.00 +0.0% —
metric_foreground_pct 14.51 ±0.00 14.51 ±0.00 +0.0% —
nii_pad_to 0.56 ±0.02 0.29 ±0.01 -48.1% (noise) 0.000
poi_reorient 0.36 ±0.10 0.19 ±0.01 -47.8% (noise) 0.022
nii_extract_label 0.33 ±0.01 0.18 ±0.01 -47.0% (noise) 0.000
nii_apply_crop 0.53 ±0.03 0.30 ±0.02 -44.0% (noise) 0.000
poi_map_labels 0.14 ±0.01 0.08 ±0.01 -41.8% (noise) 0.000
poi_rescale 0.17 ±0.02 0.11 ±0.03 -38.6% (noise) 0.006
poi_to_global 0.17 ±0.02 0.11 ±0.02 -37.3% (noise) 0.001
nii_reorient 0.56 ±0.03 0.37 ±0.03 -34.6% (noise) 0.000
nii_compute_crop 0.25 ±0.00 0.18 ±0.00 -27.0% (noise) 0.000
poi_resample_from_to 0.41 ±0.04 0.31 ±0.02 -25.8% (noise) 0.001
nii_unique 0.53 ±0.01 0.42 ±0.00 -20.1% (noise) 0.000
nii_get_array 0.03 ±0.00 0.02 ±0.01 -18.2% (noise) 0.445
poi_save 0.41 ±0.03 0.35 ±0.05 -15.7% (noise) 0.024
nii_map_labels 0.64 ±0.04 0.56 ±0.09 -12.5% (noise) 0.025
nii_volumes 1.18 ±0.01 1.04 ±0.01 -11.9% (noise) 0.000
nii_center_of_masses 1.08 ±0.02 0.95 ±0.00 -11.7% (noise) 0.000
nii_set_dtype 0.36 ±0.02 0.32 ±0.03 -11.1% (noise) 0.012
poi_calc_centroids 1.49 ±0.06 1.35 ±0.09 -10.0% (noise) 0.019
nii_filter_connected_components 2.87 ±0.05 2.58 ±0.06 -9.9% (noise) 0.000
nii_rescale_seg 1.99 ±0.04 1.80 ±0.05 -9.5% (noise) 0.000
poi_load 0.51 ±0.01 0.46 ±0.01 -9.5% (noise) 0.001
poi_local_to_global_arr 0.17 ±0.01 0.15 ±0.01 -8.3% (noise) 0.014
nii_get_connected_components 1.52 ±0.06 1.48 ±0.06 -2.9% (noise) 0.159
nii_load_seg 1.93 ±0.19 1.91 ±0.25 -1.2% (noise) 0.850

ct_2d — shape (73, 47, 1)

Measurement baseline ms (median ±½·range) head ms (median ±½·range) Δ % p
nii_rescale 3.75 ±0.21 3.44 ±0.24 -8.3% 0.180
nii_dilate_msk 7.83 ±0.19 7.64 ±0.09 -2.5% 0.025
nii_resample_from_to 4.63 ±0.15 4.63 ±0.31 -0.1% 0.897
metric_voxels 3431.00 ±0.00 3431.00 ±0.00 +0.0% —
metric_labels 3.00 ±0.00 3.00 ±0.00 +0.0% —
… 30 more measurements
Measurement baseline ms (median ±½·range) head ms (median ±½·range) Δ % p
metric_foreground_pct 37.60 ±0.00 37.60 ±0.00 +0.0% —
poi_to_global 0.21 ±0.02 0.16 ±0.01 -26.8% (noise) 0.001
poi_reorient 0.38 ±0.01 0.30 ±0.02 -21.6% (noise) 0.000
nii_erode_msk 0.77 ±0.01 0.62 ±0.02 -20.3% (noise) 0.000
poi_calc_centroids 0.76 ±0.01 0.62 ±0.03 -18.2% (noise) 0.000
poi_calc_centroids_nocrop 0.89 ±0.05 0.73 ±0.03 -18.1% (noise) 0.000
nii_get_connected_components 0.61 ±0.27 0.50 ±0.03 -17.8% (noise) 0.189
nii_reorient 0.70 ±0.02 0.59 ±0.04 -16.4% (noise) 0.000
nii_map_labels 0.46 ±0.01 0.38 ±0.02 -16.0% (noise) 0.000
poi_rescale 0.22 ±0.00 0.19 ±0.01 -15.3% (noise) 0.000
nii_fill_holes 0.67 ±0.02 0.57 ±0.04 -15.2% (noise) 0.002
nii_filter_connected_components 0.71 ±0.05 0.60 ±0.02 -15.1% (noise) 0.004
nii_load_img 1.14 ±0.04 0.97 ±0.05 -14.9% (noise) 0.000
nii_rescale_seg 0.67 ±0.01 0.58 ±0.04 -13.7% (noise) 0.003
nii_extract_label 0.39 ±0.03 0.34 ±0.02 -12.4% (noise) 0.022
nii_center_of_masses 0.17 ±0.01 0.16 ±0.01 -10.9% (noise) 0.008
nii_compute_crop 0.13 ±0.01 0.12 ±0.01 -10.8% (noise) 0.259
poi_map_labels 0.18 ±0.01 0.16 ±0.01 -10.8% (noise) 0.078
nii_set_dtype 0.37 ±0.01 0.33 ±0.04 -10.7% (noise) 0.074
poi_save 0.47 ±0.02 0.43 ±0.02 -8.5% (noise) 0.015
poi_resample_from_to 0.57 ±0.03 0.53 ±0.09 -7.8% (noise) 0.589
nii_load_seg 1.27 ±0.17 1.18 ±0.03 -7.0% (noise) 0.413
poi_local_to_global_arr 0.19 ±0.01 0.17 ±0.01 -6.1% (noise) 0.019
poi_load 0.67 ±0.03 0.63 ±0.03 -5.3% (noise) 0.074
nii_volumes 0.24 ±0.01 0.23 ±0.01 -4.7% (noise) 0.075
nii_apply_crop 0.57 ±0.03 0.60 ±0.04 +4.4% (noise) 0.778
nii_pad_to 0.52 ±0.02 0.50 ±0.04 -3.8% (noise) 0.327
nii_get_array 0.01 ±0.00 0.01 ±0.00 +3.3% (noise) 0.556
nii_unique 0.12 ±0.01 0.11 ±0.01 -2.3% (noise) 0.848
nii_save 1.24 ±0.15 1.25 ±0.20 +0.9% (noise) 0.367

mri_3d — shape (68, 52, 67)

Measurement baseline ms (median ±½·range) head ms (median ±½·range) Δ % p
nii_filter_connected_components 3.24 ±0.16 2.91 ±0.12 -10.2% 0.003
poi_calc_poi_from_subreg_vert 6.20 ±0.06 5.72 ±0.08 -7.8% 0.000
poi_calc_centroids_nocrop 5.98 ±0.20 5.52 ±0.09 -7.6% 0.005
nii_load_img 6.17 ±0.05 5.86 ±0.10 -5.0% 0.002
nii_erode_msk 4.95 ±0.15 4.76 ±0.20 -3.9% 0.097
… 31 more measurements
Measurement baseline ms (median ±½·range) head ms (median ±½·range) Δ % p
nii_fill_holes 3.68 ±0.09 3.58 ±0.04 -2.9% 0.018
nii_dilate_msk 87.81 ±1.52 86.17 ±0.70 -1.9% 0.028
nii_save 6.58 ±0.13 6.53 ±0.23 -0.7% 0.250
nii_resample_from_to 24.03 ±0.40 23.94 ±0.54 -0.4% 0.690
nii_rescale 23.55 ±0.43 23.52 ±0.57 -0.1% 0.447
metric_voxels 236912.00 ±0.00 236912.00 ±0.00 +0.0% —
metric_labels 8.00 ±0.00 8.00 ±0.00 +0.0% —
metric_foreground_pct 18.21 ±0.00 18.21 ±0.00 +0.0% —
nii_map_labels 0.95 ±0.09 0.66 ±0.05 -30.7% (noise) 0.000
poi_calc_centroids 2.12 ±0.08 1.73 ±0.06 -18.2% (noise) 0.000
nii_pad_to 0.63 ±0.02 0.53 ±0.03 -16.2% (noise) 0.001
nii_load_seg 2.12 ±0.97 1.89 ±0.14 -10.5% (noise) 0.248
poi_map_labels 0.19 ±0.01 0.17 ±0.01 -9.7% (noise) 0.032
nii_get_connected_components 1.53 ±0.39 1.39 ±0.08 -9.6% (noise) 0.186
nii_compute_crop 0.27 ±0.13 0.25 ±0.02 -8.4% (noise) 0.312
poi_resample_from_to 0.52 ±0.08 0.48 ±0.02 -8.3% (noise) 0.092
poi_load 1.24 ±0.07 1.15 ±0.01 -7.7% (noise) 0.019
nii_set_dtype 0.46 ±0.01 0.42 ±0.03 -7.6% (noise) 0.059
poi_reorient 0.35 ±0.04 0.33 ±0.01 -6.8% (noise) 0.205
poi_rescale 0.20 ±0.02 0.19 ±0.01 -6.0% (noise) 0.193
poi_save 0.48 ±0.02 0.45 ±0.03 -5.8% (noise) 0.097
nii_extract_label 0.32 ±0.03 0.34 ±0.02 +4.9% (noise) 0.337
nii_get_array 0.03 ±0.00 0.04 ±0.00 +4.8% (noise) 0.133
nii_center_of_masses 1.11 ±0.04 1.16 ±0.02 +4.6% (noise) 0.243
poi_local_to_global_arr 0.18 ±0.00 0.17 ±0.01 -4.3% (noise) 0.140
nii_volumes 1.20 ±0.02 1.15 ±0.01 -4.2% (noise) 0.002
nii_reorient 0.73 ±0.03 0.70 ±0.02 -3.9% (noise) 0.056
poi_to_global 0.21 ±0.02 0.21 ±0.02 -2.7% (noise) 0.950
nii_unique 0.50 ±0.02 0.50 ±0.03 -1.2% (noise) 0.438
nii_apply_crop 0.58 ±0.01 0.59 ±0.05 +0.8% (noise) 0.493
nii_rescale_seg 2.03 ±0.04 2.01 ±0.05 -0.7% (noise) 0.814

mri_2d — shape (68, 52, 1)

Measurement baseline ms (median ±½·range) head ms (median ±½·range) Δ % p
nii_dilate_msk 10.71 ±0.33 10.14 ±0.20 -5.3% 0.019
nii_resample_from_to 4.49 ±0.10 4.39 ±0.11 -2.4% 0.100
nii_rescale 3.71 ±0.18 3.70 ±0.11 -0.3% 0.672
metric_voxels 3536.00 ±0.00 3536.00 ±0.00 +0.0% —
metric_labels 7.00 ±0.00 7.00 ±0.00 +0.0% —
… 30 more measurements
Measurement baseline ms (median ±½·range) head ms (median ±½·range) Δ % p
metric_foreground_pct 50.17 ±0.00 50.17 ±0.00 +0.0% —
nii_rescale_seg 0.55 ±0.02 0.69 ±0.05 +26.9% (noise) 0.001
poi_to_global 0.24 ±0.00 0.19 ±0.01 -21.8% (noise) 0.000
poi_resample_from_to 0.64 ±0.00 0.51 ±0.03 -21.4% (noise) 0.001
nii_apply_crop 0.62 ±0.06 0.50 ±0.05 -19.3% (noise) 0.026
poi_rescale 0.23 ±0.01 0.19 ±0.01 -18.2% (noise) 0.001
poi_local_to_global_arr 0.21 ±0.01 0.17 ±0.01 -17.1% (noise) 0.007
nii_save 1.20 ±0.02 1.00 ±0.10 -16.9% (noise) 0.015
poi_map_labels 0.20 ±0.01 0.17 ±0.01 -16.1% (noise) 0.001
poi_reorient 0.40 ±0.02 0.34 ±0.02 -14.4% (noise) 0.007
nii_load_seg 1.24 ±0.03 1.10 ±0.10 -11.6% (noise) 0.070
poi_load 1.18 ±0.05 1.05 ±0.02 -10.9% (noise) 0.001
poi_save 0.52 ±0.07 0.47 ±0.03 -8.7% (noise) 0.093
nii_set_dtype 0.33 ±0.02 0.35 ±0.01 +7.3% (noise) 0.013
nii_load_img 1.09 ±0.03 1.01 ±0.05 -7.2% (noise) 0.006
nii_unique 0.11 ±0.01 0.11 ±0.01 +6.6% (noise) 0.860
nii_center_of_masses 0.27 ±0.02 0.26 ±0.02 -5.9% (noise) 0.321
nii_filter_connected_components 0.74 ±0.11 0.70 ±0.09 -5.5% (noise) 0.483
nii_map_labels 0.44 ±0.04 0.42 ±0.03 -4.4% (noise) 0.604
nii_fill_holes 0.79 ±0.06 0.76 ±0.11 -3.7% (noise) 0.648
nii_compute_crop 0.12 ±0.01 0.13 ±0.02 +3.7% (noise) 0.549
nii_reorient 0.66 ±0.03 0.69 ±0.04 +3.3% (noise) 0.435
nii_erode_msk 0.92 ±0.06 0.89 ±0.04 -3.0% (noise) 0.073
nii_get_connected_components 0.57 ±0.01 0.58 ±0.05 +2.7% (noise) 0.201
nii_get_array 0.01 ±0.00 0.01 ±0.00 +2.7% (noise) 0.569
nii_extract_label 0.35 ±0.02 0.35 ±0.01 -0.8% (noise) 0.299
nii_volumes 0.31 ±0.01 0.31 ±0.02 +0.7% (noise) 0.836
nii_pad_to 0.48 ±0.02 0.48 ±0.02 -0.4% (noise) 0.506
poi_calc_centroids_nocrop 1.00 ±0.04 1.00 ±0.25 -0.3% (noise) 0.480
poi_calc_centroids 0.89 ±0.04 0.89 ±0.08 +0.3% (noise) 0.963

Gate: a measurement fails when the baseline is ≥ 1 ms, the median grows by ≥ 50%, and Welch's t-test gives p < 0.05. metric_* rows are context only.

Memory (peak RSS growth per call)

baseline a0edcd0 vs head a0edcd0 · python 3.11.16 · 5 repeats + 1 warmup · sampler proc-status, isolation fork · measurement floor ≈ 0.90 MiB

Showing the 5 most-changed measurements per case; the rest are collapsed. Rows with a baseline below 3 MiB are tagged (noise) — runner jitter on those swamps any real change.

ct_3d — shape (73, 47, 73)

Measurement baseline MiB (median ±½·range) head MiB (median ±½·range) Δ % p
nii_load_img 3.55 ±0.00 3.52 ±0.00 -0.9% —
nii_rescale_seg 6.18 ±0.00 6.22 ±0.00 +0.8% —
nii_set_dtype 5.36 ±0.00 5.40 ±0.00 +0.7% —
nii_pad_to 5.48 ±0.00 5.52 ±0.00 +0.7% —
nii_extract_label 5.48 ±0.00 5.52 ±0.00 +0.7% —
… 31 more measurements
Measurement baseline MiB (median ±½·range) head MiB (median ±½·range) Δ % p
nii_map_labels 5.55 ±0.00 5.59 ±0.00 +0.7% —
nii_apply_crop 5.92 ±0.00 5.96 ±0.00 +0.7% —
poi_calc_centroids_nocrop 6.04 ±0.00 6.08 ±0.00 +0.6% —
poi_calc_centroids 6.17 ±0.00 6.21 ±0.00 +0.6% —
nii_get_connected_components 6.67 ±0.00 6.71 ±0.00 +0.6% —
nii_filter_connected_components 6.98 ±0.00 7.02 ±0.00 +0.6% —
nii_fill_holes 6.40 ±0.00 6.44 ±0.00 +0.5% —
poi_calc_poi_from_subreg_vert 7.29 ±0.00 7.33 ±0.00 +0.5% —
nii_erode_msk 6.06 ±0.00 6.07 ±0.00 +0.2% —
poi_resample_from_to 5.51 ±0.00 5.52 ±0.00 +0.1% —
nii_reorient 5.95 ±0.00 5.96 ±0.00 +0.1% —
nii_dilate_msk 6.05 ±0.00 6.05 ±0.00 +0.1% —
nii_load_seg 6.05 ±0.00 6.06 ±0.00 +0.1% —
nii_rescale 6.40 ±0.00 6.41 ±0.00 +0.1% —
nii_resample_from_to 6.53 ±0.00 6.54 ±0.00 +0.1% —
nii_save 3.83 ±0.00 3.83 ±0.00 +0.1% —
nii_volumes 3.52 ±0.00 3.52 ±0.00 +0.0% —
nii_center_of_masses 3.21 ±0.00 3.21 ±0.00 +0.0% —
poi_reorient 3.89 ±0.00 3.89 ±0.00 +0.0% —
poi_to_global 3.14 ±0.00 3.14 ±0.00 +0.0% —
poi_local_to_global_arr 3.02 ±0.00 3.02 ±0.00 +0.0% —
metric_voxels 250463.00 ±0.00 250463.00 ±0.00 +0.0% —
metric_labels 3.00 ±0.00 3.00 ±0.00 +0.0% —
metric_foreground_pct 14.51 ±0.00 14.51 ±0.00 +0.0% —
nii_get_array 1.65 ±0.00 1.65 ±0.00 +0.0% (noise) —
nii_compute_crop 2.96 ±0.00 2.96 ±0.00 +0.0% (noise) —
nii_unique 2.90 ±0.00 2.90 ±0.00 +0.0% (noise) —
poi_rescale 2.61 ±0.00 2.61 ±0.00 +0.0% (noise) —
poi_save 1.46 ±0.00 1.46 ±0.00 +0.0% (noise) —
poi_map_labels 1.77 ±0.00 1.77 ±0.00 +0.0% (noise) —
poi_load 1.61 ±0.00 1.61 ±0.00 +0.0% (noise) —

ct_2d — shape (73, 47, 1)

Measurement baseline MiB (median ±½·range) head MiB (median ±½·range) Δ % p
nii_load_img 3.49 ±0.00 3.46 ±0.00 -0.9% —
nii_rescale_seg 6.11 ±0.00 6.16 ±0.00 +0.8% —
nii_set_dtype 5.30 ±0.00 5.34 ±0.00 +0.7% —
nii_pad_to 5.42 ±0.00 5.46 ±0.00 +0.7% —
nii_extract_label 5.42 ±0.00 5.46 ±0.00 +0.7% —
… 30 more measurements
Measurement baseline MiB (median ±½·range) head MiB (median ±½·range) Δ % p
nii_map_labels 5.48 ±0.00 5.52 ±0.00 +0.7% —
nii_apply_crop 5.86 ±0.00 5.89 ±0.00 +0.7% —
poi_calc_centroids_nocrop 6.04 ±0.00 6.08 ±0.00 +0.6% —
poi_calc_centroids 6.11 ±0.00 6.15 ±0.00 +0.6% —
nii_get_connected_components 6.61 ±0.00 6.65 ±0.00 +0.6% —
nii_filter_connected_components 6.92 ±0.00 6.96 ±0.00 +0.6% —
nii_fill_holes 6.34 ±0.00 6.38 ±0.00 +0.6% —
nii_erode_msk 6.00 ±0.00 6.01 ±0.00 +0.2% —
poi_resample_from_to 5.45 ±0.00 5.46 ±0.00 +0.1% —
nii_reorient 5.89 ±0.00 5.90 ±0.00 +0.1% —
nii_dilate_msk 5.98 ±0.00 5.99 ±0.00 +0.1% —
nii_load_seg 5.99 ±0.00 6.00 ±0.00 +0.1% —
nii_rescale 6.34 ±0.00 6.35 ±0.00 +0.1% —
nii_resample_from_to 6.46 ±0.00 6.47 ±0.00 +0.1% —
nii_save 3.77 ±0.00 3.77 ±0.00 +0.1% —
nii_volumes 3.46 ±0.00 3.46 ±0.00 +0.0% —
nii_center_of_masses 3.15 ±0.00 3.15 ±0.00 +0.0% —
poi_reorient 3.83 ±0.00 3.83 ±0.00 +0.0% —
poi_to_global 3.08 ±0.00 3.08 ±0.00 +0.0% —
metric_voxels 3431.00 ±0.00 3431.00 ±0.00 +0.0% —
metric_labels 3.00 ±0.00 3.00 ±0.00 +0.0% —
metric_foreground_pct 37.60 ±0.00 37.60 ±0.00 +0.0% —
nii_get_array 1.59 ±0.00 1.59 ±0.00 +0.0% (noise) —
nii_compute_crop 2.90 ±0.00 2.90 ±0.00 +0.0% (noise) —
nii_unique 2.84 ±0.00 2.84 ±0.00 +0.0% (noise) —
poi_rescale 2.54 ±0.00 2.54 ±0.00 +0.0% (noise) —
poi_local_to_global_arr 2.96 ±0.00 2.96 ±0.00 +0.0% (noise) —
poi_save 1.40 ±0.00 1.40 ±0.00 +0.0% (noise) —
poi_map_labels 1.71 ±0.00 1.71 ±0.00 +0.0% (noise) —
poi_load 1.55 ±0.00 1.55 ±0.00 +0.0% (noise) —

mri_3d — shape (68, 52, 67)

Measurement baseline MiB (median ±½·range) head MiB (median ±½·range) Δ % p
nii_load_img 3.55 ±0.00 3.52 ±0.00 -0.9% —
nii_rescale_seg 6.11 ±0.00 6.16 ±0.00 +0.8% —
nii_set_dtype 5.36 ±0.00 5.40 ±0.00 +0.7% —
nii_pad_to 5.42 ±0.00 5.46 ±0.00 +0.7% —
nii_extract_label 5.42 ±0.00 5.46 ±0.00 +0.7% —
… 31 more measurements
Measurement baseline MiB (median ±½·range) head MiB (median ±½·range) Δ % p
nii_map_labels 5.48 ±0.00 5.52 ±0.00 +0.7% —
nii_apply_crop 5.86 ±0.00 5.89 ±0.00 +0.7% —
poi_calc_centroids_nocrop 5.98 ±0.00 6.02 ±0.00 +0.7% —
poi_calc_centroids 6.11 ±0.00 6.15 ±0.00 +0.6% —
nii_get_connected_components 6.61 ±0.00 6.65 ±0.00 +0.6% —
nii_filter_connected_components 6.92 ±0.00 6.96 ±0.00 +0.6% —
nii_fill_holes 6.34 ±0.00 6.38 ±0.00 +0.6% —
poi_calc_poi_from_subreg_vert 7.29 ±0.00 7.33 ±0.00 +0.5% —
nii_erode_msk 6.00 ±0.00 6.01 ±0.00 +0.2% —
poi_resample_from_to 5.45 ±0.00 5.46 ±0.00 +0.1% —
nii_reorient 5.89 ±0.00 5.90 ±0.00 +0.1% —
nii_dilate_msk 5.98 ±0.00 5.99 ±0.00 +0.1% —
nii_load_seg 5.99 ±0.00 6.00 ±0.00 +0.1% —
nii_rescale 6.34 ±0.00 6.35 ±0.00 +0.1% —
nii_resample_from_to 6.46 ±0.00 6.47 ±0.00 +0.1% —
nii_save 3.77 ±0.00 3.77 ±0.00 +0.1% —
nii_volumes 3.46 ±0.00 3.46 ±0.00 +0.0% —
nii_center_of_masses 3.15 ±0.00 3.15 ±0.00 +0.0% —
poi_reorient 3.83 ±0.00 3.83 ±0.00 +0.0% —
poi_to_global 3.08 ±0.00 3.08 ±0.00 +0.0% —
metric_voxels 236912.00 ±0.00 236912.00 ±0.00 +0.0% —
metric_labels 8.00 ±0.00 8.00 ±0.00 +0.0% —
metric_foreground_pct 18.21 ±0.00 18.21 ±0.00 +0.0% —
nii_get_array 1.59 ±0.00 1.59 ±0.00 +0.0% (noise) —
nii_compute_crop 2.90 ±0.00 2.90 ±0.00 +0.0% (noise) —
nii_unique 2.84 ±0.00 2.84 ±0.00 +0.0% (noise) —
poi_rescale 2.54 ±0.00 2.54 ±0.00 +0.0% (noise) —
poi_local_to_global_arr 2.96 ±0.00 2.96 ±0.00 +0.0% (noise) —
poi_save 1.46 ±0.00 1.46 ±0.00 +0.0% (noise) —
poi_map_labels 1.71 ±0.00 1.71 ±0.00 +0.0% (noise) —
poi_load 1.55 ±0.00 1.55 ±0.00 +0.0% (noise) —

mri_2d — shape (68, 52, 1)

Measurement baseline MiB (median ±½·range) head MiB (median ±½·range) Δ % p
nii_load_img 3.55 ±0.00 3.52 ±0.00 -0.9% —
nii_rescale_seg 6.11 ±0.00 6.16 ±0.00 +0.8% —
nii_set_dtype 5.36 ±0.00 5.40 ±0.00 +0.7% —
nii_pad_to 5.42 ±0.00 5.46 ±0.00 +0.7% —
nii_extract_label 5.42 ±0.00 5.46 ±0.00 +0.7% —
… 30 more measurements
Measurement baseline MiB (median ±½·range) head MiB (median ±½·range) Δ % p
nii_map_labels 5.48 ±0.00 5.52 ±0.00 +0.7% —
nii_apply_crop 5.86 ±0.00 5.89 ±0.00 +0.7% —
poi_calc_centroids_nocrop 6.04 ±0.00 6.08 ±0.00 +0.6% —
poi_calc_centroids 6.11 ±0.00 6.15 ±0.00 +0.6% —
nii_get_connected_components 6.61 ±0.00 6.65 ±0.00 +0.6% —
nii_filter_connected_components 6.92 ±0.00 6.96 ±0.00 +0.6% —
nii_fill_holes 6.34 ±0.00 6.38 ±0.00 +0.6% —
nii_erode_msk 6.00 ±0.00 6.01 ±0.00 +0.2% —
poi_resample_from_to 5.45 ±0.00 5.46 ±0.00 +0.1% —
nii_reorient 5.89 ±0.00 5.90 ±0.00 +0.1% —
nii_dilate_msk 5.98 ±0.00 5.99 ±0.00 +0.1% —
nii_load_seg 5.99 ±0.00 6.00 ±0.00 +0.1% —
nii_rescale 6.34 ±0.00 6.35 ±0.00 +0.1% —
nii_resample_from_to 6.46 ±0.00 6.47 ±0.00 +0.1% —
nii_save 3.77 ±0.00 3.77 ±0.00 +0.1% —
nii_volumes 3.46 ±0.00 3.46 ±0.00 +0.0% —
nii_center_of_masses 3.15 ±0.00 3.15 ±0.00 +0.0% —
poi_reorient 3.83 ±0.00 3.83 ±0.00 +0.0% —
poi_to_global 3.08 ±0.00 3.08 ±0.00 +0.0% —
metric_voxels 3536.00 ±0.00 3536.00 ±0.00 +0.0% —
metric_labels 7.00 ±0.00 7.00 ±0.00 +0.0% —
metric_foreground_pct 50.17 ±0.00 50.17 ±0.00 +0.0% —
nii_get_array 1.59 ±0.00 1.59 ±0.00 +0.0% (noise) —
nii_compute_crop 2.90 ±0.00 2.90 ±0.00 +0.0% (noise) —
nii_unique 2.84 ±0.00 2.84 ±0.00 +0.0% (noise) —
poi_rescale 2.54 ±0.00 2.54 ±0.00 +0.0% (noise) —
poi_local_to_global_arr 2.96 ±0.00 2.96 ±0.00 +0.0% (noise) —
poi_save 1.46 ±0.00 1.46 ±0.00 +0.0% (noise) —
poi_map_labels 1.71 ±0.00 1.71 ±0.00 +0.0% (noise) —
poi_load 1.55 ±0.00 1.55 ±0.00 +0.0% (noise) 0.178

Gate: a measurement fails when the baseline is ≥ 1 MiB, the median grows by ≥ 50%, and Welch's t-test gives p < 0.05. metric_* rows are context only.

@robert-graf
robert-graf merged commit 9f078ac into main Sep 22, 2026
6 checks passed
@robert-graf
robert-graf deleted the poi-label-names branch September 22, 2026 11:27
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

enhancement New feature or request

Projects

None yet

Development

Successfully merging this pull request may close these issues.

Make POI names first level support

2 participants