Division of Nuclear Medicine

SimSET News -
What's new in version 2.5

[News] [Installation guide] [User guide] [Programmers' info] [Resources] [Contacts]


Last revised by:

Steven Vannoy

Revision date:

19 Feb 1999

What's new in Version 2.5 ?

Version 2.5 of the PHG is a significant upgrade. We have added a number of features that make the program more usable and greatly improve its modeling ability. We have attempted to maintain the format and style of the program so that the use of these new features will not require excessive upgrading effort. This document describes the differences between version 2.04, the last major release, and version 2.5. All features are thoroughly documented in the user guide so the explanations provided here will be brief. Users familiar with the PHG may find this document supplies adequate information for utilizing the new release.

 

  1. Detector modelling
  2. Coherent scatter
  3. PVI binning
  4. Multiple binning modalities
  5. Variable binning order
  6. More binning enhancements ...
  7. A new header format
  8. Custom history files
  9. Separate attenuation and activity voxels
  10. Line sources
  11. Better run-time reporting
  12. New utilities
  13. Consolidation of utilites and PHG executables

     

Detector Modelling

Version 2.5 models planar detectors for SPECT and Dual Headed Coincidence Imaging, (DHCI). These are full Monte Carlo implementations. To supplement the new detector modalities there are enhancements in the binning module documented below.

 

Coherent Scatter

We have implemented the modeling of coherent scatter within the PHG. This will apply to tracking photons through the object (body), through the PET collimator, and through the detector modules. Because the simulated SPECT Collimator is not based on a photon tracking model (it is based on a geometric model), we do not simulate coherent scatter for this process.

 

PVI Binning

The binning module has been enhanced to simulate Positron Volume Imaging, (PVI). We have implemented appropriate binning for 3DRP, SSRB, and MSRB algorithms.

 

Multiple Binning Modalities

The PHG has been enhanced to allow the user to specify multiple binning modalities for a single simulation. By creating multiple binning parameter files and specifying each one in the PHG parameter file, the user can bin data in a variety of different ways, (e.g., 3DRP and SSRB or MSRB) simultaneously in a single simulation.

 

Variable Binning Order

The previous version of the code binned data in a specific order with scatter varying most slowly and energy most quickly. Users who wanted their data in a different order had to re-order manually after the simulation. The PHG now orders the binned data according to the sequence the parameters appear in the binning parameters file.

 

More Binning Enhancements

A few miscellaneous enhancements have been made to the binning module. Previously, the data were accumulated according to the format specified for output, i.e., if the output format was double precision then the internal buffers were double precision; if the output format was single precision then the internal buffers where single precision. In most cases, single precision summing is not adequate and substantial roundoff error could accumulate. On the other hand, particularly in PVI, buffer sizes can get very large and double precision buffers may not be feasible. We have resolved this by adding a switch in the binning parameters to allow the user to control both the internal buffer size and the output size. Hence, the PHG can perform double precision summing with single precision output (the default choice), single precision summing and single precision output, or any other combination.

Better control over limits is provided. Previously each dimension had to have a bin count of at least one, and the limits (if applicable) specified in the file were applied as acceptance criteria regardless of whether the user wanted them or not. For example, even if the number of transaxial distance bins was one, if the minimum distance was -2.5 cm then all photons had to pass this criteriion to be accepted. There are cases where it would be convenient not to have to specify these limits, that is not discriminate photon acceptance according to a particular parameter. Now, by specifying a bin count of zero the minimum and maximum values are ignored. Also, the user can simply remove unwanted dimensions from the parameter file altogether. So if you routinely bin by transaxial distance and azimuthal angle, you can just remove the other entries in the file. This simplifies the file for the user at no functional expense.

New user routines have been added to the PhgUsrBin module for both PET and SPECT simulations. The new routines are called after a photon (coincidence) has been processed by the binning module, but before the images have been updated. All photon information and the computed indexes are passed to these routines. The user can change any parameter at this point to alter how the images are updated (or reject the photon).

 

A New Header!

The header format has been changed. This is always a tough decision because it tends to make old files difficult to access. However, with the changes above it became necessary. Fortunately, the new format is much more sophisticated and should allow us to add new features without making old files obsolete. With the new header a piece of code can specify what information is necessary to be in the header in order for it to work. If the information is there, regardless of what version created it, the operation can be applied.

 

Custom History Files

The current history files are often too large to use with very long simulations. Much of the data that is written to the history file is unwanted. The user can now specify which photon fields are written into the history file. They can also filter out photons based on minimum and maximum limits for appropriate fields.

 

Separate Attenuation and Activity Voxels

In the previous version the number of voxels for the activity object and the attenuation object were necessarily the same. This was very inefficient for simulations with a simple distribution for one object and a complex distribution for the other. The overall size of the two 'objects' remain the same, but the voxelization can be different.

 

Line Sources

The user can now specify "line source voxels" to get line-source modeling in addition to the current "point source voxels". The specified activity for the voxel is "distributed" along an infinitely thin line projected axially through the voxel.

 

Better Run-Time Reporting

More information has been added to the run-time reporting that is printed to the screen. This output should be adequate to fully characterize a simulation. For example, the user can tell how the data was binned, what the limits where, and what run-time options were set.

 

New Utilities

A number of new utilities have been added to facilitate analyzing the data.

 

  • Extracting 3D lines: "line3d" takes a three dimensional data set and extract a line 'through' the slice dimension. It asks the user for the number of slices, rows, and columns, as well as the row and column to use for the extraction. It then prints out the voxel value for each slice.
  • Reorder 3D: "reorder" allows the user to reorder 3D data. It does not have to be PHG data as long as there are 3 dimensions. The user can reorder them into whatever order is preferred.
  • Strip Header: "strip.header" simply removes a header from a file.
  • Extract Lines: "extract.lines" extracts a user specified number of lines from a text file.
  • Extract: "extract" extracts a user specified amount of data from a binary file. This is very useful for extracting 2D slices from a 3D file, or extracting 3D data from a 4D file, etc.
  • Collapse 3D: "collapse3D" collapses the most quickly varying dimension of a 3D file to produce a 2D file.
  • Collapse: "collapse" collapses either the most quickly varying, or the more slowly varying, dimension of a 2D data set.
  • Scale: "scale" scales one binary file to another by multiplying each value in file 2 by the ratio: sum(file1)/sum(file2). The contents of file2 are replaced with the scaled data.
  • Convert Header: "convert.header" converts an old (pre version 2.5) header to a v2.5 style header.

 

Consolidaton of Utilities and PHG Executables:

All SimSET utilities (inlcuding the PHG) are now consolidated under the control of a single "main" program contained in the file simset.c. Previously all of the utilities were in this format, while the PHG was separate. They have been combined to simplify things; hence, there is now only one make file. In addition, all source code has been moved into a single directory to simplify the file organization.

 

[top of page]