Skip to content

Releases: spinicist/riesling

v1.00

23 Apr 16:55
Compare
Choose a tag to compare

Changelog

v1.00

  • I now consider RIESLING useable enough to declare version 1 🥂.
  • The trajectory scaling now matches BART (-M/2 to M/2 where M is matrix size).
  • The interface has been much simplified - input .h5 files are expected to have a dataset named "data" and commands take both input and output filenames. This removes the need to remember the specific dataset names and suffixes added by commands.
  • Useful commands have been renamed and reorganized to aid discoverability. The most important are recon-lsq and recon-rlsq, which are now named by the problem they solve (Least-Squares and Regularized Least-Squares respectively) instead of the particular algorithms used (previously they were lsmr and admm).
  • The new montage tool can create pretty montages from RIESLING datasets. These can be saved as PNGs or displayed in the terminal if you use KiTTY. Sadly, due to dependency issues, this command is not included in the Github downloads and you will need to compile on your local machine if you want to use it.
  • Some commands have been removed, in particular cg. The remaining commands have many advantages and maintaing all the different algorithms was costing considerable time.
  • Behind the scenes, this version can be considered the "preconditioned least-squares everywhere" release. The operator commands now use a few iterations of preconditioned LSMR to calculute the inverse NUFFT etc. in preference to Density Compensation. This approach was already used for SENSE calibration and I consider it the superior approach over Density Compensation. A discussion on this is welcome at ISMRM, especially if you provide a glass of riesling.
  • RIESLING now uses the DUCC FFT library instead of FFTW. This has comparable performance, no planning, and a much better multi-threading implementation.
  • New and improved regularizers including wavelets and TGV on the L2-norm of multi-channel images.

v0.12

  • A much improved ADMM implementation, including the residual balancing scheme from Wohlberg 2017. This shows much more robust convergence behaviour. The default number of inner iterations is now only 1, giving improved speed.
  • Implemented a version of PDHG that supports multiple regularizers. However, I prefer the improved ADMM implementation.
  • Implemented the NDFT (Non-uniform Discrete Fourier Transform). This is incredibly slow compared to the NUFFT, but revealed some small innacuracies in the NUFFT implementation. These have now been fixed.

v0.11

  • Fixed many bugs that crept into v0.10.
  • Functionality to write out residual k-space/images
  • Small but important tweaks to how the ADMM algorithm works including more sensible defaults.
  • Added a through-time TV regularizer option for ADMM.
  • Added a tool to calcuate a basis set from temporal images.

v0.10

  • The admm command now supports TGV regularization. The separate tgv command, which used the form of PDHG in the original paper, has hence been retired. The admm version is superior as it properly supports preconditioning.
  • The log is now saved into the output .h5 file for late reference.
  • Iterative algorithms now scale the data. This makes regularization parameters (λ) behave sensibly. The default is to calculate a scaling factor by perfomring an adjoint NUFFT, using Otsu's method to identify foreground signal, and then taking the median value. If --scale=bart is used then the BART scaling of 90th percentile is used. A pre-calculated factor can also be specified with --scale=X.
  • Improvements to loading/saving data from Python thanks to Martin Krämer.
  • A basis can now be specified for several plotting functions.
  • The FFT wisdom is now saved to a path that includes the hostname and executable name. This gives more consistent behaviour in networked environments with hetergeneous server hardware.
  • Added a maximum entropy regularizer.

Before

The changelog was only started for version 0.10.

v0.12

25 Aug 12:24
Compare
Choose a tag to compare

Changelog

v0.12

  • A much improved ADMM implementation, including the residual balancing scheme from Wohlberg 2017. This shows much more robust convergence behaviour. The default number of inner iterations is now only 1, giving improved speed.
  • Implemented a version of PDHG that supports multiple regularizers. However, I prefer the improved ADMM implementation.
  • Implemented the NDFT (Non-uniform Discrete Fourier Transform). This is incredibly slow compared to the NUFFT, but revealed some small innacuracies in the NUFFT implementation. These have now been fixed.

v0.11

  • Fixed many bugs that crept into v0.10.
  • Functionality to write out residual k-space/images
  • Small but important tweaks to how the ADMM algorithm works including more sensible defaults.
  • Added a through-time TV regularizer option for ADMM.
  • Added a tool to calcuate a basis set from temporal images.

v0.10

  • The admm command now supports TGV regularization. The separate tgv command, which used the form of PDHG in the original paper, has hence been retired. The admm version is superior as it properly supports preconditioning.
  • The log is now saved into the output .h5 file for late reference.
  • Iterative algorithms now scale the data. This makes regularization parameters (λ) behave sensibly. The default is to calculate a scaling factor by perfomring an adjoint NUFFT, using Otsu's method to identify foreground signal, and then taking the median value. If --scale=bart is used then the BART scaling of 90th percentile is used. A pre-calculated factor can also be specified with --scale=X.
  • Improvements to loading/saving data from Python thanks to Martin Krämer.
  • A basis can now be specified for several plotting functions.
  • The FFT wisdom is now saved to a path that includes the hostname and executable name. This gives more consistent behaviour in networked environments with hetergeneous server hardware.
  • Added a maximum entropy regularizer.

Before

The changelog was only started for version 0.10.

v0.11

17 May 09:18
Compare
Choose a tag to compare
  • Fixed many bugs that crept into v0.10.
  • Functionality to write out residual k-space/images
  • Small but important tweaks to how the ADMM algorithm works including more sensible defaults.
  • Added a through-time TV regularizer option for ADMM.
  • Added a tool to calcuate a basis set from temporal images.

Release v0.10

21 Apr 14:23
Compare
Choose a tag to compare

The ADMM command now supports TGV regularization and hence the separate TGV command has been removed. There are numerous other improvements described in the CHANGES.md file.

Release v0.9

18 Jan 14:39
Compare
Choose a tag to compare

Happy New Year, Happy New Release (Take 2)

This is a re-release of v0.9 using Ubuntu 20.02 and GCC 10 for the Linux build instead of 22.02 and GCC 11.

Release v0.8

07 Apr 12:52
Compare
Choose a tag to compare
Print out last HD5 error on writing

Release v0.7

13 Dec 22:01
Compare
Choose a tag to compare
Update docs and Matlab scripts

Release v0.6

06 Oct 16:39
Compare
Choose a tag to compare
Update CI Publish Ubuntu version

Release v0.5

30 Jul 16:49
Compare
Choose a tag to compare
Improve documentation of the data format.

Release v0.4

28 Jun 14:18
Compare
Choose a tag to compare
Release v0.4 Pre-release
Pre-release
Attempt to fix build version