Skip to content

Releases: villekf/OMEGA

v2.0.0

23 Oct 12:14
Compare
Choose a tag to compare

This is the official full release of version 2.0. Compared to the release candidate the biggest changes are the inclusion of ray-based projector for SPECT parallel hole reconstruction (projector_type = 1). Some bugs were also fixed. For a complete list of changes, see release notes. Below are some highlights for this release (includes the highlights of the previous RC):

  • Added (limited) support for Python
    • Only a subset of features are implemented
    • All core components have been implemented though
    • Supports only implementation 2 and the class object
    • Custom algorithms can be computed fully in the GPU by using ArrayFire arrays (OpenCL), PyTorch tensors (CUDA) or CuPy arrays (CUDA)
    • The OMEGA forward and/or backward projection operators thus accept ArrayFire arrays, PyTorch tensors or CuPy arrays
  • (CB)CT reconstructions are much more efficient now than before as long as GPU computing is used
  • Support for raw data format dropped
  • Added two new projectors for CT data
    • Projector type 4 is an interpolation-based GPU-only projector
    • Projector type 5 is the branchless distance-driven projector (GPU only)
    • Only supported by implementations 2 and 5
  • Added support for SPECT reconstruction
    • Supports also GATE projection data
    • Supports parallel hole collimators
    • Built-in support for hexagonal and circular holes for the detector-response function
    • Forward/backward projection class object is CPU (implementation 4) only in MATLAB/Octave, OpenCL and CUDA only in Python
    • Supported only by implementations 2 and 4
    • Rotation- and ray-based projectors
    • Ray-based projector does not officially support the class object yet
    • Ray-based projector was implemented by @saarlemo
  • Added support for hybrid projectors
  • New algorithms/priors and preconditioners
  • Almost complete code overhaul
  • Complete rework of the example-files
  • Changed coordinate system to be centered on origin

Documentation for the new release is available at https://omega-doc.readthedocs.io/en/latest/index.html

Included in this release are also the MATLAB toolbox file that you can use to easily install OMEGA in MATLAB. Note that you still need either manually build the mex-files or download the prebuilt ones. Additionally included are prebuilt mex and library files for MATLAB, Octave and Python, either in Linux or Windows. In all cases the MATLAB files were built with version 2023b, while Octave were built version 8.3. Windows version were built on Windows 10 using Visual Studio 2022, while Linux versions were built on Ubuntu 22.04 using g++ version 10.5.

It is recommended to manually build the necessary files whenever possible. In MATLAB/Octave, simply run install_mex (you may need to manually provide the location for ArrayFire, OpenCL, CUDA or ROOT) or run compile.py in Python. See details at https://omega-doc.readthedocs.io/en/latest/installation.html

Release candidate for v2.0

18 Jul 09:27
Compare
Choose a tag to compare
Pre-release

This is a release candidate for version 2.0. Due to this, the MATLAB toolbox-file is omitted and will be included in the final 2.0 release. However, pre-built binaries/library-files are included. There are separate packages for Linux and Windows and for Python, MATLAB and Octave. See the included readme for the optimal folder to extract the files, though any folder on path should suffice. Note that you can still manually build all the files as before. Despite being a pre-release, this version already has all the planned features except for additional SPECT projector. The current version includes only the rotation-based projector for SPECT, but the final release will also include a ray-based projector.

For a complete list of changes, see release notes. Below are some highlights for this release:

  • Added (limited) support for Python
    • Only a subset of features are implemented
    • All core components have been implemented though
    • Supports only implementation 2 and the class object
    • Custom algorithms can be computed fully in the GPU by using ArrayFire arrays (OpenCL), PyTorch tensors (CUDA) or CuPy arrays (CUDA)
    • The OMEGA forward and/or backward projection operators thus accept ArrayFire arrays, PyTorch tensors or CuPy arrays
  • (CB)CT reconstructions are much more efficient now than before as long as GPU computing is used
  • Support for raw data format dropped
  • Added two new projectors for CT data
    • Projector type 4 is an interpolation-based GPU-only projector
    • Projector type 5 is the branchless distance-driven projector (GPU only)
    • Only supported by implementations 2 and 5
  • Added support for SPECT reconstruction
    • Supports also GATE projection data
    • Supports parallel hole collimators
    • Built-in support for hexagonal and circular holes for the detector-response function
    • Forward/backward projection class object is CPU (implementation 4) only in MATLAB/Octave, OpenCL and CUDA only in Python
    • Supported only by implementations 2 and 4
    • Rotation-based projector
  • Added support for hybrid projectors
  • New algorithms/priors and preconditioners
  • Almost complete code overhaul
  • Complete rework of the example-files
  • Changed coordinate system to be centered on origin

v1.2.1

26 Jun 10:22
Compare
Choose a tag to compare

This is simple bugfix release in preparation of the bigger v2.0 release coming most likely on July 2024. V2 will break some features, such as raw data format, which means that this will be the last release to support it. The precompiled mex-files for Windows and Linux for MATLAB and GNU Octave are included in separate mexFiles.zip file. If the prebuilt binaries don't work, you can still compile new ones with install_mex as before. A MATLAB package file is also available as before though it does not contain the precompiled mex-files.

Full list of fixes:

  • Fix CT projection data load when using binning values higher than 1
  • Compilation fixes for Octave on Windows
  • Implementation 2 (OpenCL) can now be used on Octave on Windows
    • This still requires manual building of ArrayFire with MinGW
  • Fix implementation 1 and 4 in Octave when using PET data
  • Some fixes for older MATLAB versions
  • Fix attenuation correction when using GATE MuMap actor
    • Fix errors caused by the above fix
  • Several fixes and enhancements for Voxelized_source/phantom_handles
    • The user can now manually select the row and column indices to crop
    • Lesion load when using PNG/TIFF/BMP images or DICOM data is now fixed
    • Errors regarding missing lesion data are now fixed
    • Cropping can now be disabled with source data as well
    • Both functions now output the original row/column/slice indices that are included in the cropped image
  • SaveInterfile/MetaImage functions now accept custom pixel/voxel size
  • Fix raw data load when store_raw_data was false, but use_raw_data was true
  • Allow the use of more, or less, image slices than twice the number of crystal rings - 1
  • Allow the use of mini blocks for GATE data
    • options.axial_multip can now be used to specify axial repetition with modules/submodules when R-sectors are already axially repeated
  • Implementation 4 is now usable when verbosity is set to 0
  • Compilation fixes for implementations 2 and 3

OMEGA v1.2.0

12 May 13:15
Compare
Choose a tag to compare

This is the official v.1.2.0 release of OMEGA.

For changes since v1.1.1, see release notes. The biggest change in this release is the addition of (cone or fan beam) transmission tomography (e.g. CT imaging) support.

A MATLAB toolbox package (OMEGA.-.Open-source.MATLAB.tomography.software.mltbx) is recommended for anyone using MATLAB. It will automatically add the necessary folders to the path and you can easily uninstall the package from the Add-On Manager.

Included are also precompiled mex-files for Linux (mexfiles_LINUX.7z) and Windows (mexfiles_WINDOWS.zip). However, you should use these ONLY if manual building fails.

OMEGA v1.1.1

29 Jan 08:37
Compare
Choose a tag to compare

A bug fix release for OMEGA. This release contains mainly several (major) fixes, but also some new features. Recommended for anyone using OMEGA. You need to re-run install_mex to use the updated mex-files.

For changes since v1.1.0, see release_notes.md.

A MATLAB toolbox package (OMEGA.-.Open-source.MATLAB.emission.tomography.software.mltbx) is recommended for anyone using MATLAB. It will automatically add the necessary folders to the path and you can easily uninstall the package from the Add-On Manager.

Included are also precompiled mex-files for Linux (mexfiles_LINUX.zip) and Windows (mexfiles_WINDOWS.zip). However, you should use these ONLY if manual building fails. Linux package now contains different versions for different MATLAB versions, compiled with the supported g++. This should avoid any errors with libstdc++.

XCAT data can be obtained from release v.1.1.0 below.

OMEGA v1.1.0

10 Nov 11:32
Compare
Choose a tag to compare

This is the official v1.1.0 release of OMEGA.

For changes since v1.0.0, see release_notes.md.

A MATLAB toolbox package (OMEGA.-.Open-source.MATLAB.emission.tomography.software.mltbx) is recommended for anyone using MATLAB. It will automatically add the necessary folders to the path and you can easily uninstall the package from the Add-On Manager.

Included are also precompiled mex-files for Linux (mexfiles_LINUX.zip) and Windows (mexfiles_WINDOWS.zip). However, you should use these ONLY if manual building fails.

Furthermore, if you are interested in replicating the mCT GATE simulations in the exampleGATE folder, you'll need the XCAT binary phantom files included in xcatdata.zip.

OMEGA v1.0.0

29 Oct 22:03
2ec7626
Compare
Choose a tag to compare

This is the official v1.0.0 release of OMEGA.

For changes since the last pre-release, see release_notes.md.

Example MAT-files can be found from: DOI

Beta release

29 Oct 13:47
Compare
Choose a tag to compare
Beta release Pre-release
Pre-release

Initial release of OMEGA. OMEGA_v0.9_source.zip contains only the source files with no non-GATE example mat-files.