6 research outputs found

    Anatomically informed image reconstruction for time of flight positron emission tomography

    Get PDF
    Positron emission tomography (PET) has an important role in disease diagnosis, drug development and patient management. PET images are accompanied with computed tomography (CT) or magnetic resonance (MR) to provide the complementary structural information. GE SIGNA PET/MR is the state-of-the-art clinical scanner that aims at combining time of flight-PET (TOF-PET) with anatomical and soft-tissue MR imaging. This work aims at modelling the mathematical and physical processes of TOF-PET data for the GE SIGNA PET/MR within an open-source software, software for tomographic image reconstruction (STIR). This work further examines the developments made to implement the acquisition model using typical (ordered subsets expectation maximisation (OSEM)) and advanced iterative algorithms (TOF-OSEM and TOF-kernelised expectation maximisation (TOF-KEM)). TOF-PET improves conventional PET imaging as it localises the event along the line of response (LOR) within a small region with an uncertainty which is calculated using the timing resolution of the detectors. It demonstrates robustness despite the presence of small errors, inconsistencies or patient motion in the acquired data. The GE SIGNA PET/MR have a timing resolution of 390 ps. The aim of this work is to exploit TOF-PET and further include the anatomical information from MR images to facilitate robust PET reconstructions. All the developments made in this thesis were compared with the vendor's reconstruction software (GE-toolbox). Real phantom and clinical datasets were used for the analysis. The calculated emission and data corrections using developments made in STIR were in excellent agreement with the GE-toolbox despite the absence of dead-time and decay effects within the current developments. Reconstructions using OSEM and TOF-OSEM algorithms demonstrated a good agreement with the GE-toolbox concerning quantitative, resolution and structural based analysis. TOF-KEM reconstructions demonstrated a slight improvement in quantification as compared to TOF-OSEM with STIR. The thesis demonstrates the first instance of real data reconstruction for TOF-PET data using TOF-OSEM and TOF-KEM algorithms. The developments made in this thesis provide a platform to investigate the effects of a novel reconstruction algorithm, TOF-KEM on the dose and scan time reduction using real clinical datasets

    FORMULATION, SYSTEMATIC OPTIMIZATION, IN VITRO, EX VIVO, AND STABILITY ASSESSMENT OF TRANSETHOSOME BASED GEL OF CURCUMIN

    Get PDF
    Objectives: The current work presents a formulation of curcumin-loaded transethosome (CRM-TE) in the form of a gel and its characterization.Methods: Thirteen formulations were prepared by varying the concentration of Phospholipon 90G as lipid, ethanol, and ratio of lipid: Span using Box- Behnken Design. The optimized formulation was characterized by vesicle size, entrapment efficiency, drug retention, drug permeation through skin, and morphology. Parameters of CRM-TE were compared to other vesicular systems that include liposomes, ethosomes, and transfersomes. Optimized CRM-TE was incorporated into gels, and comparative evaluation was performed. CRM-TE gel was kept at 5±3°C, 25±3°C, and 40±3°C for 180 days, further evaluated for entrapment efficacy and vesicle size.Results: CRM-TE showed 286.4 nm vesicle size, 61.2% entrapment efficiency, 19.8% drug retention, and 71.3% drug permeation at 24 h in the skin. It was found superior in terms of all the parameters as compared to other vesicular formulations. CRM-TE gel also exhibited best characteristics in terms of entrapment efficiency, drug retention, and drug permeation. CRM-TE gel exhibited better stability at 5±3°C in terms of vesicle size and entrapment efficiency as compared to other storage conditions.Conclusion: CRM-TE gel could offer efficient delivery of curcumin through topical route

    SIRF: Synergistic Image Reconstruction Framework

    Get PDF
    The combination of positron emission tomography (PET) with magnetic resonance (MR) imaging opens the way to more accurate diagnosis and improved patient management. At present, the data acquired by PET-MR scanners are essentially processed separately, but the opportunity to improve accuracy of the tomographic reconstruction via synergy of the two imaging techniques is an active area of research. In this paper, we present Release 2.1.0 of the CCP-PETMR Synergistic Image Reconstruction Framework (SIRF) software suite, providing an open-source software platform for efficient implementation and validation of novel reconstruction algorithms. SIRF provides user-friendly Python and MATLAB interfaces built on top of C++ libraries. SIRF uses advanced PET and MR reconstruction software packages and tools. Currently, for PET this is Software for Tomographic Image Reconstruction (STIR); for MR, Gadgetron and ISMRMRD; and for image registration tools, NiftyReg. The software aims to be capable of reconstructing images from acquired scanner data, whilst being simple enough to be used for educational purposes

    Design and Measurement of a Low-Energy Tunable Permanent Magnet Quadrupole Prototype

    No full text
    The 42 km long CLIC Drive Beam Decelerator (DBD) will decelerate beams of el ectrons from 2.4 GeV to 240 MeV. ASTeC in collaboration with CERN has developed a novel type of tunable permanent magnet quadrupole for the DBD. Two versions of the design were produced, for the high energy and low energy ends of DBD respectively. This paper outlines the design of low energy version which has a tuning range of 3.5-43 T/m. A prototype was built at Daresbury Laboratory in 2013, and extensive measurements were carried out at Daresbury Laboratory. The 42 km long CLIC Drive Beam Decelerator (DBD) will decelerate beams of electrons from 2.4 GeV to 240 MeV. ASTeC in collaboration with CERN has developed a novel type of tunable permanent magnet quadrupole for the DBD. Two versions of the design were produced, for the high-energy and low-energy ends of the DBD respectively. This paper outlines the design of the low-energy version, which has a tuning range of 3.5-43 T/m. A prototype was built at Daresbury Laboratory (DL) in 2013, and extensive magnetic measurements were carried out at DL

    SIRF: Synergistic Image Reconstruction Framework

    No full text
    The combination of positron emission tomography (PET) with magnetic resonance (MR) imaging opens the way to more accurate diagnosis and improved patient management. At present, the data acquired by PET-MR scanners are essentially processed separately, but the opportunity to improve accuracy of the tomographic reconstruction via synergy of the two imaging techniques is an active area of research. In this paper, we present Release 2.1.0 of the CCP-PETMR Synergistic Image Reconstruction Framework (SIRF) software suite, providing an open-source software platform for efficient implementation and validation of novel reconstruction algorithms. SIRF provides user-friendly Python and MATLAB interfaces built on top of C++ libraries. SIRF uses advanced PET and MR reconstruction software packages and tools. Currently, for PET this is Software for Tomographic Image Reconstruction (STIR); for MR, Gadgetron and ISMRMRD; and for image registration tools, NiftyReg. The software aims to be capable of reconstructing images from acquired scanner data, whilst being simple enough to be used for educational purposes. The most recent version of the software can be downloaded from http://www.ccppetmr.ac.uk/downloads and https://github.com/CCPPETMR/

    STIR Software for Tomographic Image Reconstruction

    No full text
    <h1>Summary of changes in STIR release 5.2.0</h1> <p>This version is 100% backwards compatible with STIR 5.0 as far as usage goes. However, there are changes in the output of scatter estimation and ECAT8 normalisation, see below for more information.</p> <h2>Overall summary</h2> <p>Of course, there is also the usual code-cleanup and improvements to the documentation. See also <a href="https://github.com/UCL/STIR/milestone/6">the 5.2 milestone on GitHub</a>.</p> <p>Overall code management and assistance by Kris Thielemans (UCL and ASC). Other main contributors were Daniel Deidda (NPL) and Markus Jehl (Positrigo).</p> <h2>Patch release info</h2> <ul> <li>5.2.0 released 30/10/2023</li> </ul> <h2>Summary for end users (also to be read by developers)</h2> <h3>Bug fixes</h3> <ul> <li>Scatter estimation was setting initial activity image to 1 at set-up, effectively ignoring the initial image, aside from geometric info.</li> <li>Setting SPECTUB resolution model with STIR python or SIRF divided slope by 10 in error. The problem did not occur when set using parameter file</li> </ul> <h3>Changed functionality</h3> <ul> <li>The ECAT8 normalisation (used for the Siemens mMR) code now takes the 4th component <em>axial effects</em> into account. These normalisation factors are therefore different (even up to ~10%). This gives improved axial uniformity in the images. The use of the axial effects can be switched off by adding setting <code>use_axial_effects_factors:=0</code> to the parameter file (see an example in <code>examples/Siemens-mMR/correct_projdata_no_axial_effects.par</code>), or the class member of the same name. In addition, the Siemens normalisation header is now read (using a new class <code>InterfileNormHeaderSiemens</code>) such that hard-coded variables for the Siemens mMR have been removed. Further testing of this functionality is still required however. <a href="https://github.com/UCL/STIR/pull/1182/">PR #1182</a>.</li> <li>Interfile header parsing now correctly identifies keywords that contain a colon by checking for <code>:=</code>.</li> <li>The <code>set_up()</code> method of the ray-tracing projection matrix now skips further processing if it was already called with data of the same characteristics. This will means that any cached data will be re-used, potentially leading to a speed-up when re-using it from Python. <a href="https://github.com/UCL/STIR/pull/1281/">PR #1281</a>.</li> </ul> <h3>New functionality</h3> <ul> <li><p>The <code>Discretised Shape3D</code> shape/ROI has now an extra value <code>label index</code>. For ROIs, this allows using a single volume with multiple ROIs encoded as labels, such as output by ITKSnap and many others. When used as a shape in <code>generate_image</code>, it could be used to extract a single ROI from such a label image. <a href="https://github.com/UCL/STIR/pull/1196/">PR #1196</a>.</p> </li> <li><p>Global variables in SPECTUB have been substituted by class members, such that multiple SPECTUB projectors can be used. <a href="https://github.com/UCL/STIR/pull/1169/">PR #1169</a>.</p> </li> <li><p>Global variables in PinholeSPECTUB have been substituted by class members, such that multiple PinholeSPECTUB projectors can be used. <a href="https://github.com/UCL/STIR/pull/1212/">PR #1212</a>.</p> </li> <li><p>Scatter estimation is now smoothed in axial direction for BlocksOnCylindrical scanners. <a href="https://github.com/UCL/STIR/pull/1172/">PR #1172</a>.</p> </li> <li><p><code>InverseSSRB</code> now works for BlocksOnCylindrical after a rewrite. <a href="https://github.com/UCL/STIR/pull/1172/">PR #1172</a>. /</p> </li> <li><p>Parallelised function <code>set_fan_data_add_gaps_help</code> across segments to reduce computation time. <a href="https://github.com/UCL/STIR/pull/1168/">PR #1168</a>.</p> </li> <li><p>New utility <code>SPECT_dicom_to_interfile</code> which reads a DICOM file with SPECT projection data and extracts the data and writes one or more Interfile 3.3 headers (still somewhat preliminary). <a href="https://github.com/UCL/STIR/pull/1182/">PR #1182</a>.</p> </li> <li><p>The new <code>stir_timings</code> utility is mostly useful for developers, but you could use it to optimise the number of OpenMP threads to use for your data. <a href="https://github.com/UCL/STIR/pull/1237/">PR #1237</a>.</p> </li> <li><p>New classes <code>SegmentIndices</code>, <code>ViewgramIndices</code> and <code>SinogramIndices</code>, used by <code>ProjData</code> related classes, as opposed to having to specify all the elements directly, e.g. in C++</p> <pre><code> auto sinogram = proj_data.get_sinogram(sinogram_indices);</code></pre> <p>This makes these functions more future proof, in particular for TOF. The older functions are now deprecated. Note that as <code>Bin</code> is now derived from <code>ViewgramIndices</code>, instantations of <code>Bin</code> can now be used to specify the indices as well in most places. There is still more work to do here, mostly related to the symmetries. <a href="https://github.com/UCL/STIR/pull/1273/">PR #1273</a>.</p> </li> </ul> <h4>Python (and MATLAB)</h4> <ul> <li>Examples use <code>stir.ProjData.read_from_file</code> as opposed to <code>stir.ProjData_read_from_file</code>. The former is supported since SWIG 3.0, and the <a href="https://swig.org/Doc4.1/Python.html#Python_nn20">default from SWIG 4.1</a>.</li> <li>Addition of <code>DetectionPosition</code> and <code>DetectionPositionPair</code>.</li> <li><code>bin.time_frame_num</code> is now no longer a function in Python, but acts like a variable (as the other <code>Bin</code> members).</li> <li>Addition of <code>RadionuclideDB</code></li> </ul> <h3>New examples</h3> <ul> <li><code>examples/python/construct_projdata_demo.py</code> illustrates constructing a <code>ProjDataInMemory</code></li> </ul> <h3>Changed functionality</h3> <ul> <li>Scatter estimation was resetting the activity image to 1 before each iteration. This led to cases where the reconstructed image (and therefore the scatter estimation) did not converge, especially when using a small number of sub-iterations. Now, the reconstructed image is continuouslu updated between scatter iterations by default. This should also allow users to use less sub-iterations, therefore saving some time for the scatter estimation. The old behaviour can be re-enabled by setting <code>restart_reconstruction_every_scatter_iteration</code> to true either via a parameter file or via the <code>set_restart_reconstruction_every_scatter_iteration()</code> function. <a href="https://github.com/UCL/STIR/pull/1160/">PR #1160</a>.</li> <li>energy resolution functions and keywords have now more documentation. <code>Scanner::check_consistency</code> also checks if the energy resolution is less than 20 (as it is FWHM/reference_energy). <a href="https://github.com/UCL/STIR/pull/1149/">PR #1149</a>.</li> <li>Errors now throw <code>std::runtime_error</code> instead of <code>std::string</code>. <a href="https://github.com/UCL/STIR/pull/1131/">PR #1131</a>.</li> <li>The parameter <code>use_view_offset</code> was removed from the <code>interpolate_projdata</code> functions. View-offset is now always taken into account. <a href="https://github.com/UCL/STIR/pull/1172/">PR #1172</a>.</li> <li>The info, warning and error calls are thread safe now (which makes them slower), and the logging output in <code>distributable.cxx</code> was changed from verbosity 2 (which is the STIR default) to verbosity 3. This is to reduce the default output during iterative reconstructions. <a href="https://github.com/UCL/STIR/pull/1243/">PR #1243</a>.</li> <li>The <code>Succeeded</code> class has a new method <code>bool succeeded()</code> enabling more concise code (avoiding the need for comparing with <code>Succeeded::yes</code> which is especially verbose in Python).</li> <li>The example files for the Siemens mMR now use lower min/max thresholds for the (single) scatter scale. This gives better results, see <a href="https://github.com/UCL/STIR/issues/1163/">Issue #1163</a>. <a href="https://github.com/UCL/STIR/pull/1279/">PR #1279</a>.</li> </ul> <h3>Deprecated functionality and upcoming changes to required tool versions</h3> <ul> <li>The following functions (previously used for upsampling the scatter estimate) have been made obsolete or replaced, and will be removed in STIR version 6.0.0: <code>interpolate_axial_position</code>, <code>extend_sinogram_in_views</code> and <code>extend_segment_in_views</code></li> <li>Constructors/functions in <code>ProjData</code> related classes that explicitly use <code>axial_pos_num</code>, <code>view_num</code> etc in their arguments are now deprecated, and should be replaced by their respective versions that use <code>SegmentIndices</code>, <code>ViewgramIndices</code> or <code>SinogramIndices</code>. The former will not be compatible with TOF information that will be introduced in version 6.0.0.</li> <li>Use of the AVW library to read Analyze files will be removed in 6.0, as this has not been checked in more than 15 years. Use ITK instead.</li> <li>GE VOLPET and IE support will be removed in 6.0, as we have no files to test this, and it's obsolete anyway.</li> <li>STIR version 6.0.0 will require C++ 14 (currently we require C++ 11, but already support C++ 20) and CMake 3.14.</li> </ul> <h3>Build system and dependencies</h3> <ul> <li>CMake 3.12 is now required on Windows.</li> <li>We now use CMake's <a href="https://gitlab.kitware.com/cmake/community/-/wikis/doc/tutorials/Object-Library">OBJECT library feature</a> for the registries. This avoids re-compilation of the registries for every executable and therefore speeds-up building time. Use of STIR in an external project is not affected as long as the recommended practice was followed. This is now documented in the User's Guide. <a href="https://github.com/UCL/STIR/pull/1141/">PR #1141</a>.</li> <li>The <code>error</code> and <code>warning</code> functions are now no longer included from <code>common.h</code> and need to be included manually when used (as was already the case for <code>#include "stir/info.h"</code>). <a href="https://github.com/UCL/STIR/pull/1192/">PR #1192</a>.</li> <li>add .h and .i as dependencies for SWIG generated wrappers to make sure they get rebuild. (Currently adding all .h files, which is too much, but CMake needs a fix before we can do this properly). <a href="https://github.com/UCL/STIR/pull/1218/">PR #1218</a>.</li> </ul> <h3>Changes for developers</h3> <ul> <li>moved all functionality in <code>CListEventCylindricalScannerWithDiscreteDetectors</code> to template class <code>CListEventScannerWithDiscreteDetectors</code> (templated in <code>ProjDataInfoT</code>). This enables re-use for generic/blocksoncylindrical scanners. <a href="https://github.com/UCL/STIR/pull/1222/">PR #1222</a>.</li> <li>rewritten <code>ProjDataInMemory</code> to avoid streams, causing a speed-up of some operations, and removing a limit of total size of 2GB. <a href="https://github.com/UCL/STIR/pull/1260/">PR #1260</a>.</li> </ul> <h3>Known problems</h3> <ul> <li>See <a href="https://github.com/UCL/STIR/labels/bug">our issue tracker</a>.</li> </ul> <h3>Minor (?) bug fixes</h3> <ul> <li>Small change in scatter simulation to how non-arccorrected bins are computed. Added a check in the construction of non-arccorrected projdata that the number of tangential bins is not larger than the maximum non-arccorrected bins. <a href="https://github.com/UCL/STIR/pull/1152/">PR #1152</a>.</li> <li><code>extend_segment_in_views</code> does not handle view offsets correctly and does not work for BlocksOnCylindrical scanners <a href="https://github.com/UCL/STIR/issues/1177/">issue #1177</a>. A new function <code>extend_segment</code> was added that works for Cylindrical and BlocksOnCylindrical and allows extension in tangential and axial direction as well. <a href="https://github.com/UCL/STIR/pull/1172/">PR #1172</a>.</li> <li><code>sample_function_on_regular_grid</code> did not handle offset correctly in all places <a href="https://github.com/UCL/STIR/issues/1178/">issue #1178</a>. <a href="https://github.com/UCL/STIR/pull/1172/">PR #1172</a>.</li> <li>Ray tracing projection for BlocksOnCylindrical scanner geometries contained a bug where some bins were swapped across oblique segments <a href="https://github.com/UCL/STIR/issues/1223/">issue #1223</a>. This sometimes lead to large artifacts in reconstructions. <a href="https://github.com/UCL/STIR/pull/1231/">PR #1231</a>.</li> </ul> <h3>Documentation changes</h3> <ul> <li>Updated the STIR developers guide, which was quite out-of-date w.r.t. C++ features etc.</li> </ul> <h3>recon_test_pack changes</h3> <ul> <li>Updated headers of most images and projection data to avoid warnings.</li> </ul> <h3>Other changes to tests</h3> <ul> <li><code>test_Scanner.cxx</code> tests for energy resolution, <a href="https://github.com/UCL/STIR/pull/1149/">PR #1149</a>.</li> <li>New file <code>test_interpolate_projdata</code>, <a href="https://github.com/UCL/STIR/pull/1141/">PR #1141</a>.</li> </ul>If you use this software, please cite it using the metadata from this file
    corecore