Skip to content

v0.4.0

Choose a tag to compare

@headmeister headmeister released this 24 Jul 22:00
· 106 commits to master since this release
c04704f

What's Changed

  • VisuCoreDiskSliceOrder=disk_reverse_slice_order raises `InvalidData… by @headmeister in #144
  • Test suite exercises zero real Bruker data: fixtures root at nonexist… by @headmeister in #145
  • JCAMPDX fixes brackets and par anchoring by @headmeister in #146
  • 3-D radial / CS fid mis-sized: RADIAL block count omits the parti… by @headmeister in #147
  • dim_type desynchronised from the data array (dEPI, SPECTROSCOPY, 2d… by @headmeister in #148
  • reordering fix ACQ_obj_order never applied: fid slice axis delive… by @headmeister in #149
  • k-space ordering BART reordering, sync docs by @headmeister in #150

Full Changelog: v0.3.0...v0.4.0

Potential breaking changes

This list covers behavior changed during the format-conformance remediation
work. Items marked breaking can alter returned arrays or raise a new,
intentional exception; items marked migration preserve the old API but
should prompt downstream code to move to the explicit replacement.

Data representation

  • Migration — PV360 rawdata.jobN: Dataset.data remains the historical
    decoded stream, but now emits FutureWarning because its meaning differs
    from FID .data. Use Dataset.raw for (sample, shot, receiver) data or
    Dataset.kspace for ordered Cartesian k-space.
  • New API: Dataset.raw, Dataset.kspace, and
    Dataset.to_kspace(bart=True) provide explicit raw/k-space representations.
    kspace is only available for FIDs and supported Cartesian PV360 jobs.
  • Breaking — FIDs: ACQ_obj_order is now applied, so multi-slice FID data
    is returned in object/slice order instead of acquisition order. Code that
    compensated manually must remove its extra permutation.
  • Breaking — 2dseq: RECO_transposition / VisuCoreTransposition now
    swaps the first two spatial axes for flagged frames. Historical consumers
    that applied this correction themselves must stop doing so.
  • Breaking — 2dseq: VisuCoreDiskSliceOrder=disk_reverse_slice_order is
    applied to the third encoded axis for 3-D data. Earlier releases rejected
    these volumes; code relying on the on-disk slice order must adjust.

Axis and random-access behavior

  • Breaking: dim_type is now kept rank-consistent with loaded data,
    including rawdata and traj. Code depending on missing/synthetic labels or
    previous misaligned indices must update its axis selection.
  • Breaking: mmap=True is explicitly unsupported for fid, traj, and
    rawdata, and raises UnsupportedDatasetType. It remains supported for
    2dseq; partial encoded-axis slices now return exactly the requested data.

Parsing and dataset discovery

  • Behavior change: JCAMP-DX versions are whitespace-normalized and record
    starts are line-anchored. Files previously rejected or crashed may now load.
  • Behavior change: passing a PV360 experiment directory now resolves the
    lowest-numbered rawdata.jobN when no fid or 2dseq exists.
  • Behavior change: d3proc is loaded as optional metadata for 2dseq and
    participates in legacy word-type/geometry fallback.

Metadata and helpers

  • New API: Dataset.frame_group_values returns VisuGroupDepVals
    metadata reshaped to broadcast against 2dseq data. Do not assume legacy
    flat echo-time or diffusion-matrix vectors are the preferred representation.
  • New API: Dataset.metadata exposes grouped, snake-case Visu and
    SUBJECT_* metadata. Existing dataset['ParameterName'] access is
    unchanged.
  • Breaking: utils.combine_channels now performs RSS as
    sqrt(sum(abs(data)**2)); complex callers that consumed the previous
    complex-square result will receive physically meaningful real magnitudes.

Scope removals and diagnostics

  • Breaking: TopSpin ser is no longer advertised by the load sweep and is
    intentionally unsupported.
  • Behavior change: direct construction of fid.orig, fid.spiral, and
    fid.navFid produces a companion-specific diagnostic directing callers to
    the parent FID's fid_companions mapping.
  • Behavior change: trajectory reports use a fallback filename rather than
    failing when no dataset id is available.