Releases: spinicist/riesling
Releases · spinicist/riesling
v1.03
- The 🐛 edition. Sadly some bugs to do with data ordering and subspace recon had slipped into v1.02. These have been fixed.
- The basis and channel dimensions in image space have been swapped, channels is now outermost, giving a further performance boost. The dimensions in the input data remain the same. Hence you do not need to reconvert any data to the RIESLING format, but you will need to regenerate sense maps created with v1.02.
- The PDHG algorithm implementation has been much improved. The regularizer operators are now all scaled to have a maximum eigenvalue of 1. You will still need to calculate the maximum eigenvalue of your encoding operator.
- New regularizers:
--tv2for second-order TV (normal TV + the Laplacian) which is fast alternative to TGV,--l1ito apply L1 regularization to the imaginary part only (i.e. the image should be real-valued). - A working implementation of ROVir.
- An option to change the gridding kernel width has been added back.
v1.02
- The 🫨 edition. RIESLING now includes:
- A solid implementation of the Primal Dual Hybrid Gradient algorithm. This gives much faster denoising and regularized reconstructions as long as you calculate an eigenvalue up front (see docs).
- 2D versions of all reconstruction tools and most operators. These have the same command names with a
2suffix. When using these, you should supply a 2D trajectory (no kz co-ordinate). This will then use a true 2D NUFFT. - Off-resonance correction. If you supply an off-resonance map in the input .h5 and use the
--tacqand--Ntarguments RIESLING will perform a time-segmented reconstruction. Useful for long acquisition spiral imaging. - An implementation of MERLIN. This is contained in a separate executable that is not compiled by default, enable BUILD_MERLIN to generate it.
- Note that the image space data order has changed, the spatial dimensions are now inner-most (i.e. channels and basis dimension have moved after the spatial dimensions). This simplifies some RIESLING internals.
v1.01
- The 🏎️ edition. RIESLING is now much faster due to multiple optimizations (judicious use of fast-math, gridding algorithm improvements, better and more widespread threading, and more besides). Many thanks to Martin Reinecke for suggestions.
- Completely new SENSE calibration algorithm based on NLINV. Sensitivities are now estimated and stored as kernels in k-space, and only inflated to full maps when required. The NLINV regularizer is used during calibration to ensure smooth maps.
- New low memory mode
--lowmem. This performs the SENSE and NUFFT operators sequentially for each channel and accumulates the result. Reduces the memory required for the oversampled grid to a single channel. The speed penalty is acceptable. - Experimental Direct Virtual Channel Combination
--decant, i.e. apply SENSE via convolution in k-space not multiplication in image space. This is much slower, but saves even more memory than--lowmem. - Virtual Conjugate Channels
--vccfor real-valued image reconstruction. Experimental. - The way FOV cropping and oversampling works has been refined. Now, the
--fov=x,y,zoption refers to the gridding FOV used during the reconstruction, and the oversampling is applied in addition to this. The--crop-fov=x,y,zoption is applied at the end (default is the nominal FOV). This makes some behind-the-scenes calculations much simpler. - Implemented the multi-channel version of Frank Ong's preconditioner. This speeds up convergence, but takes some time to calculate itself. Hence the single-channel is still the default. Specify
--precon=multiif you want to try it. - Multi-channel TV regularizer.
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-lsqandrecon-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 werelsmrandadmm). - The new
montagetool 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.
Release v0.10
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
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
Print out last HD5 error on writing
Release v0.7
Update docs and Matlab scripts