← Back to all sparks
R

RNiftyReg

INFRA · APIS
Velocity0.0

Image Registration Using the 'NiftyReg' Library

Medical image registration, maintained with unusual care for other people's conventions.

medical-imagingimage-registrationneuroimaginginteroperabilitymaintenance
Current state
RNiftyReg wraps the NiftyReg C++ library for linear and non-linear registration of medical images in R. The releases in the window are all corrections rather than features: a serialisation bug in saveTransform(), a C++20 comparison warning, and a removed class member flagged by a compiler pre-release. The substantive item is 2.8.4, which fixed an image-flip bug when importing FSL-FLIRT transforms.
Where it's heading
The package is stable and the maintenance work is characteristically about interoperability, correctly interpreting transforms written by other toolchains and staying clean against evolving C++ standards and compilers. The FLIRT flip fix is the clearest example: it required knowing an undocumented quirk of how another tool handles images with positive-determinant xforms. Several fixes originate from CRAN's compiler checks, and 2.8.5 finally retired a README section about upgrading from a release line now over ten years old.
Prediction
Expect continued small releases tracking compiler and standards changes, with feature work arriving only if the underlying NiftyReg library moves.

Recent moves

  1. 5mo ago

    saveTransform() returns the serialised object instead of erroring

    Fixes single-argument saveTransform() to behave as documented, and avoids a C++20 comparison warning. Also drops a README upgrade section for a release line ten years gone, which is a fair marker of how settled the package is.

    View source ↗
  2. 1y ago

    FSL-FLIRT transform import no longer flips images

    Handles the FLIRT quirk of flipping images whose xforms have positive determinant, which could silently mis-apply transforms between LAS and RAS oriented images. The substantive fix in the window, and a good illustration of where this package's real work sits.

    View source ↗
  3. 2y ago

    Removed a class method referencing a nonexistent data member

    A correctness fix surfaced by an LLVM pre-release and reported through CRAN's compiler checks. Routine upkeep against moving toolchains.

    View source ↗
  4. 2y ago

    asAffine() convenience method added for niftyregRDS objects

    Adds a small conversion method and ensures loadTransform() results carry the affine class. Ergonomic tidying of the transform object contract.

    View source ↗