-
Notifications
You must be signed in to change notification settings - Fork 95
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Merge branch 'master' into try-fix-algebra
- Loading branch information
Showing
73 changed files
with
4,104 additions
and
325 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
|
@@ -38,16 +38,16 @@ jobs: | |
strategy: | ||
matrix: | ||
include: | ||
- os: ubuntu-latest | ||
- os: ubuntu-24.04 | ||
compiler: gcc | ||
compiler_version: 9 | ||
# compiler_version: 9 | ||
cuda_version: "0" | ||
BUILD_FLAGS: "-DSTIR_OPENMP=ON" | ||
BUILD_TYPE: "Release" | ||
parallelproj: "ON" | ||
ROOT: "ON" | ||
ITK: "OFF" | ||
- os: ubuntu-latest | ||
- os: ubuntu-24.04 | ||
compiler: clang | ||
#compiler_version: | ||
cuda_version: "0" | ||
|
@@ -57,7 +57,7 @@ jobs: | |
ROOT: "OFF" | ||
# currently using ITK 5.2 which doesn't like clang 14 | ||
ITK: "OFF" | ||
- os: ubuntu-latest | ||
- os: ubuntu-24.04 | ||
compiler: gcc | ||
compiler_version: 10 | ||
cuda_version: "0" | ||
|
@@ -66,27 +66,28 @@ jobs: | |
parallelproj: "OFF" | ||
ROOT: "OFF" | ||
ITK: "ON" | ||
- os: ubuntu-latest | ||
- os: ubuntu-24.04 | ||
compiler: gcc | ||
compiler_version: 12 | ||
compiler_version: 14 | ||
cuda_version: "0" | ||
BUILD_FLAGS: "-DSTIR_OPENMP=ON -DCMAKE_CXX_STANDARD=20" | ||
BUILD_TYPE: "RelWithDebInfo" | ||
parallelproj: "ON" | ||
ROOT: "OFF" | ||
ITK: "ON" | ||
- os: ubuntu-latest | ||
- os: ubuntu-24.04 | ||
compiler: gcc | ||
compiler_version: 12 | ||
cuda_version: "12.1.0" | ||
# currently CUDA doesn't support gcc 14 yet | ||
compiler_version: 13 | ||
cuda_version: "12.6.1" | ||
BUILD_FLAGS: "-DSTIR_OPENMP=ON -DCMAKE_CXX_STANDARD=17" | ||
BUILD_TYPE: "Release" | ||
parallelproj: "ON" | ||
ROOT: "OFF" | ||
ITK: "ON" | ||
- os: macOS-latest | ||
compiler: gcc | ||
compiler_version: 11 | ||
# compiler_version: 11 | ||
cuda_version: "0" | ||
BUILD_FLAGS: "-DSTIR_OPENMP=OFF" | ||
parallelproj: "OFF" | ||
|
@@ -180,7 +181,7 @@ jobs: | |
echo CXX="$CXX" >> $GITHUB_ENV | ||
- if: matrix.cuda_version != '0' | ||
uses: Jimver/[email protected].11 | ||
uses: Jimver/[email protected].19 | ||
id: cuda-toolkit | ||
with: | ||
cuda: ${{ matrix.cuda_version }} | ||
|
@@ -234,13 +235,12 @@ jobs: | |
# brew install openblas | ||
# export OPENBLAS=$(brew --prefix openblas) | ||
#python -m pip install --no-cache-dir --no-binary numpy numpy # avoid the cached .whl! | ||
python -m pip install numpy | ||
python -m pip install numpy pytest | ||
;; | ||
(*) | ||
python -m pip install numpy | ||
python -m pip install numpy pytest | ||
;; | ||
esac | ||
python -m pip install pytest | ||
if test "${{matrix.parallelproj}}XX" == "ONXX"; then | ||
git clone --depth 1 --branch v1.7.3 https://github.com/gschramm/parallelproj | ||
|
@@ -255,13 +255,23 @@ jobs: | |
rm -rf parallelproj | ||
fi | ||
# Install ROOT (warning: currently only valid on Ubuntu) | ||
# Install ROOT (warning: brittle due to OS versions etc) | ||
if test "${{matrix.ROOT}}XX" == "ONXX"; then | ||
ROOT_file=root_v6.28.12.Linux-ubuntu20-x86_64-gcc9.4.tar.gz | ||
case ${{matrix.os}} in | ||
(ubuntu*) | ||
sudo apt install libtbb-dev libvdt-dev libgif-dev | ||
ROOT_file=root_v6.34.00.Linux-ubuntu24.04-x86_64-gcc13.2.tar.gz | ||
#root_v6.34.00.Linux-ubuntu24.10-x86_64-gcc14.2.tar.gz | ||
;; | ||
(macOS*) | ||
ROOT_file=https://root.cern/download/root_v6.34.00.macos-15.1-arm64-clang160.tar.gz | ||
;; | ||
esac | ||
wget https://root.cern/download/"$ROOT_file" | ||
tar -xzvf "$ROOT_file" | ||
rm "$ROOT_file" | ||
source root/bin/thisroot.sh | ||
echo ROOTSYS="$ROOTSYS" >> $GITHUB_ENV | ||
fi | ||
# we'll install some dependencies with shared libraries, so need to let the OS know | ||
|
@@ -303,7 +313,11 @@ jobs: | |
CMAKE_INSTALL_PREFIX=${GITHUB_WORKSPACE}/install | ||
# make available to jobs below | ||
echo CMAKE_INSTALL_PREFIX="$CMAKE_INSTALL_PREFIX" >> $GITHUB_ENV | ||
EXTRA_BUILD_FLAGS="-DBUILD_SWIG_PYTHON=ON -DPYTHON_EXECUTABLE=`which python`" | ||
if [ -n "$ROOTSYS" ]; then | ||
# make sure we find ROOT (and vdt, which is installed in the same place) | ||
EXTRA_BUILD_FLAGS=-DCMAKE_PREFIX_PATH:PATH="$ROOTSYS" | ||
fi | ||
EXTRA_BUILD_FLAGS="${EXTRA_BUILD_FLAGS} -DBUILD_SWIG_PYTHON=ON -DPython_EXECUTABLE=`which python`" | ||
EXTRA_BUILD_FLAGS="${EXTRA_BUILD_FLAGS} -DCMAKE_INSTALL_PREFIX=${CMAKE_INSTALL_PREFIX} -DCMAKE_BUILD_TYPE=${BUILD_TYPE}" | ||
EXTRA_BUILD_FLAGS="${EXTRA_BUILD_FLAGS} -DDOWNLOAD_ZENODO_TEST_DATA=ON" | ||
EXTRA_BUILD_FLAGS="${EXTRA_BUILD_FLAGS} -DDISABLE_STIR_LOCAL=OFF -DSTIR_LOCAL=${GITHUB_WORKSPACE}/examples/C++/using_STIR_LOCAL" | ||
|
@@ -321,6 +335,13 @@ jobs: | |
;; | ||
esac | ||
# Enable tmate debugging of manually-triggered workflows if the input option was provided | ||
- name: Setup tmate session if triggered | ||
#if: ${{ failure() }} | ||
uses: mxschmitt/action-tmate@v3 | ||
timeout-minutes: 30 | ||
if: ${{ github.event_name == 'workflow_dispatch' && inputs.debug_enabled == 'true' }} | ||
|
||
- name: build | ||
shell: bash | ||
env: | ||
|
@@ -330,12 +351,6 @@ jobs: | |
source ${GITHUB_WORKSPACE}/my-env/bin/activate | ||
cmake --build . -j 2 --config ${BUILD_TYPE}} --target install | ||
# Enable tmate debugging of manually-triggered workflows if the input option was provided | ||
- name: Setup tmate session if triggered | ||
uses: mxschmitt/action-tmate@v3 | ||
timeout-minutes: 15 | ||
if: ${{ github.event_name == 'workflow_dispatch' && inputs.debug_enabled == 'true' }} | ||
|
||
- name: ctest | ||
shell: bash | ||
env: | ||
|
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
|
@@ -62,6 +62,7 @@ Georg Schramm <[email protected]> <[email protected] | |
Georg Schramm <[email protected]> <[email protected]> | ||
Georg Schramm <[email protected]> <[email protected]> | ||
Nicole Jurjew <[email protected]> | ||
Nicole Jurjew <[email protected]> <[email protected]> | ||
Tahereh Niknejad <[email protected]> | ||
Tahereh Niknejad <[email protected]> <[email protected]> | ||
Sam D Porter <[email protected]> | ||
|
@@ -70,3 +71,4 @@ Matthew Strugari <[email protected]> | |
Matthew Strugari <[email protected]> <[email protected]> | ||
Imraj Singh <[email protected]> | ||
Imraj Singh <[email protected]> <[email protected]> | ||
Dimitra Kyriakopoulou <[email protected]> |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -1,6 +1,6 @@ | ||
repos: | ||
- repo: https://github.com/doublify/pre-commit-clang-format | ||
rev: '62302476' | ||
hooks: | ||
- id: clang-format | ||
files: \.(c|cc|cxx|cpp|cu|h|hpp|hxx|inl|txx)$ | ||
- repo: https://github.com/pre-commit/mirrors-clang-format | ||
rev: v14.0.6 | ||
hooks: | ||
- id: clang-format | ||
files: \.(c|cc|cxx|cpp|cu|h|hpp|hxx|inl|txx)$ |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -1,5 +1,9 @@ | ||
# Developer documentation: editor settings | ||
|
||
White-spaces and indentation with multiple developers are a pain. Please adhere to | ||
our white-space policy, which we try to enforce via [clang-format](https://clang.llvm.org/docs/ClangFormat.html). | ||
Check that site for integration with your editor/IDE. | ||
our white-space policy, which we enforce via [pre-commit](https://pre-commit.com/), including | ||
running of [clang-format](https://clang.llvm.org/docs/ClangFormat.html). | ||
See [git-hooks.md](git-hooks.md) for more information. | ||
|
||
Developer experience will be best if you set your editor/IDE to use the same settings, | ||
including versions of the formatters (`clang-format` in particular). |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,123 @@ | ||
<!DOCTYPE HTML> | ||
<html lang="en"> | ||
<head> | ||
<title>Summary of changes in STIR release 6.3</title> | ||
</head> | ||
|
||
<body> | ||
<h1>Summary of changes in STIR release 6.3</h1> | ||
|
||
|
||
<h2>Overall summary</h2> | ||
|
||
|
||
<h2>Patch release info</h2> | ||
|
||
|
||
<h2> Summary for end users (also to be read by developers)</h2> | ||
|
||
|
||
<h3>New functionality</h3> | ||
<ul> | ||
<li> | ||
The analytic Spline Reconstruction Technique (SRT) algorithm has been added in 2 different versions: for PET | ||
(inverting the 2D Radon transform) and for SPECT (inverting the 2D attenuated Radon transform). The latter | ||
allows quantitatively correct analytic reconstruction of SPECT data (after scatter correction). | ||
|
||
The reference for the implemented algorithms is:<br> | ||
Fokas, A. S., A. Iserles, and V. Marinakis. | ||
<cite>Reconstruction algorithm for single photon emission computed tomography and its numerical implementation.</cite> | ||
Journal of the Royal Society Interface* 3.6 (2006): 45-54. | ||
<br> | ||
The reference for the implementation is:<br> | ||
Dimitra Kyriakopoulou, <cite>Analytical and Numerical Aspects of Tomography</cite>, UCL PhD thesis, (not yet publically accessible) | ||
<br> | ||
<a href=https://github.com/UCL/STIR/pull/1420>PR #1420</a> | ||
</li> | ||
<li> | ||
<code>ScatterSimulation</code> can now downsample the scanner transaxially (crystals per ring) for <code>BlocksOnCylindrical</code>, | ||
scanners, which speeds up <code>ScatterEstimation</code> considerably. By default, downsampling the detectors per reading | ||
is disabled for backwards compatibility.<br> | ||
<a href=https://github.com/UCL/STIR/pull/1291>PR #1291</a> | ||
</li> | ||
<li> | ||
Data from GE Discovery MI systems in RDF9 should now be readable. TOF information on these scanners has also been added. | ||
However, projection data is currently still always returned as non-TOF (but list-mode data is read as TOF).<br> | ||
<a href=https://github.com/UCL/STIR/pull/1503>PR #1503</a> | ||
</li> | ||
<li> | ||
<tt>stir_timings</tt> has now an extra option to parse a par-file for a projector-pair. | ||
</li> | ||
<li> | ||
Added the ability to set a forward projector for mask projection in the <code>ScatterEstimation</code> class.<br> | ||
<a href=https://github.com/UCL/STIR/pull/1530>PR #1530</a> | ||
</li> | ||
<li> | ||
Duration in sinogram interfile/exam_info obtained from <tt>lm_to_projdata</tt> has the correct value if we unlist all the events. This is not true for ROOT files<br> | ||
<a href=https://github.com/UCL/STIR/pull/1519>PR #1519</a> | ||
</li> | ||
</ul> | ||
|
||
|
||
<h3>Changed functionality</h3> | ||
<ul> | ||
<li> | ||
Default ECAT scanner configurations updated to use a negative intrinsic tilt. | ||
</li> | ||
</ul> | ||
|
||
<h3>Bug fixes</h3> | ||
<ul> | ||
<li> | ||
Fixed a bug in the scatter estimation code (introduced in release 5.1.0) if input data is 3D and "cylindrical" (there was no bug for "blocksoncylindrical" data). | ||
The scatter estimation runs on data constructed via SSRB. However, the attenuation correction factors were incorrectly obtained with adding of oblique segments (as opposed to averaging). | ||
This resulted in intermediate images that had the wrong attenuation correction which were approximately num_segments times larger. This was compensated by the tail-fitting, but resulted in unexpected scale factors (scale factors were around 1/num_segments times what was expected). | ||
This means that if you used the "min/max scale factor" feature in the scatter estimate, you will have to adjust your threshold values. Expected scatter tail-fitting scale factors should now be restored to ~1-1.5 (depending on the amount of multiple and out-of-FOV scatter). | ||
See <a href="https://github.com/UCL/STIR/issues/1532">Issue #1532</a> for more detail. Fixed by using averaging functionality of SSRB instead of adding segments for attenuation correction factors. | ||
<a href=https://github.com/UCL/STIR/pull/1531>PR #1531</a> | ||
</li> | ||
</ul> | ||
|
||
<h3>Build system</h3> | ||
<ul> | ||
<li>Enable more diagnostics in CMake when finding CERN's ROOT (we used to silence them)<br> | ||
<a href=https://github.com/UCL/STIR/pull/1552>PR #1552</a> | ||
</li> | ||
</ul> | ||
|
||
<h3>Known problems</h3> | ||
<p>See <a href=https://github.com/UCL/STIR/labels/bug>our issue tracker</a>.</p> | ||
|
||
|
||
<H2>What is new for developers (aside from what should be obvious from the above):</H2> | ||
|
||
<h3>New functionality</h3> | ||
|
||
<li> | ||
<code>ProjDataInMemory</code> <code>read_from_file</code> method now returns a <code>ProjDataInMemory</code> object. | ||
</li> | ||
|
||
<h3>Changed functionality</h3> | ||
|
||
|
||
<h3>Bug fixes</h3> | ||
<ul> | ||
<li>Fixed minor incompatibility with gcc-14 and clang-18 buy adding an extra include file<br> | ||
<a href=https://github.com/UCL/STIR/pull/1552>PR #1552</a> | ||
</li> | ||
</ul> | ||
|
||
<h3>Other code changes</h3> | ||
|
||
|
||
<h3>Test changes</h3> | ||
|
||
|
||
<h4>C++ tests</h4> | ||
|
||
|
||
<h4>recon_test_pack</h4> | ||
|
||
</body> | ||
|
||
</html> |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Oops, something went wrong.