Division of Nuclear Medicine

SimSET
News

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

Contents

 

Software releases:

 We are currently working on a new version of SimSET that will use  Angular Response Functions (ARFs) to improve both the accuracy and speed of SimSET SPECT simulations.  As part of this new version we will include a library of pre-computed ARFS for popular combinations of isotope/collimator/detector.    We will use the same format for these tables originally proposed by Song et al (Phys Med Biol, 50:8:1791, 2005) and used in the GATE implementation of ARFs (Descourt, Phys Med Biol 55:9:N253, 2010).  The calculation of  ARFs is very compute-resource intensive, which has limited their appeal.  We hope that a central resource of pre-computed tables will widen the appeal of the methods.  We plan to introduce the library in the Fall of 2019.

29 January 2014:  Version 2.9.2

Version 2.9.2 adds a more flexible implementation of user functions, simplified installation procedures, and a new positioning algorithm for block detectors.  In addition, we have greatly improved compatibility with 64-bit compilers.   See "What's New in 2.9.2" for details.

15 July 2011: Version 2.9.1

Version 2.9.1 adds some improvements to the block detector module introduced in version 2.9. See "What's New in 2.9.1" for details.

April 22, 2009: Version 2.9

Version 2.9 provides three major new features: block detectors, random coincidence modeling, and time-of-flight binning. See "What's New in 2.9" for details.

Jan 19, 2006: Version 2.6.2.6

Version 2.6.2.6 is a bug fix for 2.6.2.5. See the bug report below for details. Version 2.6.2.6 is available for downloading from our ftp site - check out the installation guide.

Jul 27, 2004: Version 2.6.2.5

Version 2.6.2.5 is a bug fix for 2.6.2.4. See the bug report below for details. Version 2.6.2.5 is available for downloading from our ftp site - check out the installation guide.

Sep 29, 2003: Version 2.6.2.4

Version 2.6.2.4 is a bug fix for 2.6.2.3. See the bug report below for details. Version 2.6.2.4 is available for downloading from our ftp site - check out the installation guide. We have also added some new attenuation materials to the attenuation table: LaBr3 and four plastics, low viscosity polycarbonate (polycarbonateLowVisc), NEMA standard polyethylene (polyethyleneNEMA), polymethyl methacrylate (polymethylMethacryl), and polystyrene fibers (polystyreneFibers).

Sep 9, 2002: Version 2.6.2.3

Version 2.6.2.3 is a bug fix for 2.6.2.1. It also has explicit support for Linux in the make file. See the bug report below for details. Version 2.6.2.3 is available for downloading from our ftp site - check out the installation guide.

Oct 15, 2001: Version 2.6.2.1

Version 2.6.2.1 is a bug fix for 2.6.2. See the bug report below for details.

Oct 3, 2001: Version 2.6.2

Version 2.6.2 contains several bug fixes for version 2.6 and two new efficiency features. See "What's New in 2.6.2" for details.

May 12, 2000: Version 2.6

Version 2.6 is a complete version upgrade with many new features. See "What's New in 2.6" for details.

October 12, 1998: Version 2.5.1

Version 2.5.1 is a bug fix for Version 2.5. See Bug reports and fixes. Version 2.5.1 may be downloaded from our ftp site - check out the installation guide.

 

October 5, 1998: 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.

More information on version 2.5 ...

 

[top of page]

 

Updates:

In general we will keep the archive on our server consistent with the changes you will find here. However, you may not want to reload the entire package for every update we send out. We will try to make single-file updates available through this page, as well as supplementary material.

 

17 January to February 1 2017 - New webpage added in the Resources section.

We are adding a library of list mode files as one of our Resources.


29 January 2014 - Version 2.9.2 released.

This software release increases compatibility with 64-bit processors and simpifies installation (see 2.9.2 release notice). Many source files were changed. Please go to the installation page to download.

 

15 July, 2011 - Version 2.9.1 released.

This software release increases the flexibility of the block detector feature (see 2.9.1 release notice). Many source files were changed. Please go to the installation page to download.

 

April 22, 2009 - Version 2.9 released.

This software release introduces several new features (see 2.9 release notice). Many source files were changed. Please go to the installation page to download.

 

January 19, 2006 - We recommend installing version 2.6.2.6.

This is a bug fix for 2.6.2.5. Release 2.6.2.6 can be downloaded by following the instructions in the installation guide.

Alternatively, as only the DetCylinder.c file has been modified, it may be downloaded from

 http://depts.washington.edu/simset/downloads/updates/.

The new DetCylinder.c should be placed in the source directory, then make_all.sh should be run from the parent directory. This will create a new executable.

 

January 19, 2006 - New LbTypes.h for 64-bit computers.

This is a bug fix for 2.6.2.6. Some users have reported problems compiling and linking on 64-bit computers. We believe that a new version of LbTypes.h will fix this problem. It may be downloaded from

 http://depts.washington.edu/simset/downloads/updates/.

The new LbTypes.h should be placed in the source directory, then make_all.sh should be run from the parent directory. This will create a new executable.

July 27, 2004 - We recommend installing version 2.6.2.5.

This is a bug fix for 2.6.2.4

Sept 29, 2003 - We recommend installing version 2.6.2.4.

This is a bug fix for 2.6.2.3.

Sept 9, 2002 - We recommend installing version 2.6.2.3.

This is a bug fix for 2.6.2.1.

October 15, 2001 - We recommend installing version 2.6.2.1.

This is a bug fix for 2.6.2.

October 3, 2001 - Version 2.6.2 released.

This software release fixes several bugs from previous versions and introduces new features (see 2.6.2 release notice). Many source files were changed. Please go to the installation page to download.

 

May 26, 2000: Debugging error message should be ignored.

We left some debugging code turned on in the EmisList.c source file. In certain conditions a warning message is issued. This message can be ignored. In the new file, the debugging code is turned off. If you down load phg.2.6.tar.Z after May 26, you have the correct file. If not, you can down load the new source code file and recompile. Down load:

ftp://ftp:e-mail.address@animal.rad.washington.edu/phg_beta/updates/src/EmisList.c

May 18, 2000: Bug in attenuation table for modeling positron range

There was a bug in the data table for modeling positron range. The PHG detected this bug (a format error) and reports the error at run time. A new table has been generated. If you down load phg.2.6.tar.Z after May 20, you have the corrected table. If you down loaded before this, then you can grab the table from our updates directory and replace the existing copy in your phg.data. directory. Down load:

ftp://ftp:e-mail.address@animal.rad.washington.edu/phg_beta/updates/phg.data/phg_att_table .

February 18, 1999: Special note on Attenuation Modeling in 2.5.

The method of modeling attenuation materials changed dramatically with verson 2.5. Some materials disappeared and some new ones were added. Old attenuation files will still run, but the materials they map to will probably be changed. Follow this link for more information.

 

February 1, 1999: Removed potential core dump

Users of Linux reported a core dump occurred. The cause was failure to zero out a "closed" file variable. The code has been corrected. To install this update down load the file below into your "src" diretory and rebuild the PHG.

ftp://ftp:e-mail.address@animal.rad.washington.edu/phg_beta/updates/src/SubObj.c

 

February 1, 1999 - Removed bug preventing the creation of collimator history files

A bug in the file ColParams.h was preventing the creation of history files for photons passing through the collimator. A temporary fix has been provided below which allows the creation of collimator history files. To install this update down load the file below into your "src" directory and rebuild the PHG. Note that many files "#include" this header file so many files will be re-compiled.

ftp://ftp:e-mail.address@animal.rad.washington.edu/phg_beta/updates/src/ColParams.h.

 

January 19, 1999 - Added "tungsten" to material list

Users may now use tungsten in their simulations. There are several files involved, including SubObj.c which means that the phg will have to be recompiled. The other files are to be placed within the "phg.data" directory.

When you extract the "tar" archive you will get a directory named "updates". In this directory you will find the following files:

Copy the files from the phg.data directory into your PHG phg.data directory. Be sure not to overwrite the existing "coh.tables" sub-directory, only copy the new file, "tungsten.ad" into the existing phg.data/coh.tables directory. Copy the source code file SubObj.c into your PHG src directory.

Recompile the PHG. You are now ready to use tungsten. Its ID is 21, you can verify that everything is operational by running the utility "makeindexfile". You should see tungsten listed as a material that is available. If you do not, recheck your steps for the installation. If you are still not successful, send us an E-mail.

ftp://ftp:e-mail.address@animal.rad.washington.edu/phg_beta/phg.2.5.1.tungsten.tar.Z.  

 

October 29, 1998: Placed "samples" in FTP directory

The "samples" directory was left out of the 2.5 release with the exception of a DHCI sample. We have put a separate tar file in the FTP directory for anyone wishing to get the samples. Users of older versions will not need to do this if they still have the old samples since no changes have been made. You can down load the samples via
ftp://ftp:e-mail.address@animal.rad.washington.edu/phg_beta/phg.2.5.1.samples.tar.Z.

 

[top of page]

 

 

Bug reports and fixes:

Below you will find entries for solutions we have provided to bugs in the PHG software. In general the most up-to-date archive will be available for downloading in its entirety via the installation page. If you only need to down load a few files to resolve a problem then you can find them here along with instructions on where to place them and what must be done to utilize them.

 

29 January 2014 - Known bugs in 2.9.2 release.

MatLab scripts for block detector input require at least one active element in a block.  Blocks without active elements should be input manually until this is fixed.

Randoms incompatible with dual-headed coincidence imaging (DHCI): in the process of testing the new block detector features we discovered that our current random coincidence software is incompatible with our DHCI implementation. Any simulations run with these two options together should not be trusted. We will probably release an update blocking this combination in the near future. Let us know if you would like to see it reinstated.

When starting multiple runs with random_seed = 0 (SimSET picks the seed) at the same time using a script, all the runs may start with the same random seed: it appears that the lag between runs must be greater than a second to ensure that different seeds will be selected. We suggest setting the seed manually for each run when doing multiple runs (e.g., random_seed = 1 for run 1, random_seed =2 for run 2, ...) or creating scripts that pause at least a second between run starts.


15 July 2011 - Known bugs in 2.9.1 release.

Randoms incompatible with dual-headed coincidence imaging (DHCI): in the process of testing the new block detector features we discovered that our current random coincidence software is incompatible with our DHCI implementation. Any simulations run with these two options together should not be trusted. We will probably release an update blocking this combination in the near future. Let us know if you would like to see it reinstated.

Segmentation errors: several users have reported segmentation errors running under 64-bit Linux systems. Such errors terminate SimSET runs before completion. We have fixed a few of these in version 2.9.1, but there are a few others we are still working on.They are often system/compiler dependent, making them harder to track down. We hope to release an update eliminating the others we know in the near future. Please report segmentation errors to us in the meantime.

LYSO coherent scatter table truncated: the LYSO coherent scatter table in our release package is truncated. Attempting to do a simulation with LYSO and coherent scatter turned on will cause an initialization failure. We suggest using LSO instead for the time being, which has attenuation characteristics close to those of LYSO. We need to fix some compile problems in the program we use to generate the tables, so it may be a while before we can distribute an updated LYSO table.

makeindexfile error when given a voxel location outside the object: in certain cases makeindexfile will try to modify a voxel outside the object axially. This can cause a segmentation error or problems with the object. We suggest that users take care that the coordinates given for a voxel lie within the object and check created objects using their image viewing software.

When starting multiple runs with random_seed = 0 (SimSET picks the seed) at the same time using a script, all the runs may start with the same random seed: it appears that the lag between runs must be greater than a second to ensure that different seeds will be selected. We suggest setting the seed manually for each run when doing multiple runs (e.g., random_seed = 1 for run 1, random_seed =2 for run 2, ...) or pausing at least a second between run starts.


Feel free to contact us at simset@washington.edu if you have questions about how these bugs might have affected your data.

 

January 2006 - All versions supporting cylindrical detectors - bug in the implementation of coherent scatter.

The bug resulted in the energy of the photon at the time of a coherent scatter being subtracted from the deposited energy. As a result, most photons that coherent scattered in the crystal were not detected: those that were registered too little energy. In simulations of point and uniform sources with a 2.5 cm thick cylindrical detector of BGO we found that the bug resulted in a 10-12% underestimation of events. Underestimation of scatter (in the object/phantom) and true events were approximately equal, and the shapes of profiles were similar to those with the bug fixed. BGO is has the highest coherent scatter fraction of the crystals currently supported by SimSET, so these effects represent an approximate upper limit.

Some users have reported problems installing SimSET on 64-bit computers. We believe that a new version of LbTypes.h fixes this problem. Users experiencing problems can download it separately from the updates directory.


Feel free to contact us at simset@washington.edu if you have questions about how this bug might have affected your data.

 

August 2004 - All previous versions - Bugs using history file feature. Bug in singles binning of data from cylindrical detectors. Bug in travel distance for time-of-flight measurements.

There were many bugs in the processing of standard history files. Usually the history files themselves were correctly formatted, but SimSET would not process them correctly (i.e., if you had your own history file processing software, you are probably unaffected). Most of these bugs created obvious errors, e.g., the program would get stuck in an infinite loop or create no output data. However, the first three listed below may have led some researchers to report biased results.

  1. When working with collimator or detector list-mode data, scatters in the collimator were ignored by the binning—the scatters-in-the-collimator information was not saved in the list-mode data. Now this information is combined into the number of scatters field. Scatters in the collimator cannot be distinguished from the scatters in the object in a standard history file, but can be if a custom history file is created. This error will have biased any work using standard collimator or detector history files to look at scatter.
  2. When using PHG list-mode data, if neither photon from a coincidence passed through the collimator to the detector, a previous coincidence would sometimes be recounted. This was a problem for cylindrical PET detectors at least, and may have affected other PET detectors as well. It appears to have been handled correctly for SPECT detectors and all collimators. DetPETPhotons was modified so that the number of detected photons is always zeroed out before processing the next coincidence. This may have biased any work using standard detector history files for PET.
  3. The detector angle was not saved in the collimator and detector list mode files. This is necessary for further SPECT and DHCI processing. Binned data was still produced, but the resulting sinograms were corrupt (usually obviously so). The detector angle is now saved in standard history files. Old SPECT and DHCI collimator and detector history files (those produced with previous code versions) can no longer be processed.
  4. The processing of history files would get stuck in an infinite loop. This resulted from the fact that the history files save data in single precision, but some logical comparisons were being performed on the data that required accuracy to seven decimal places. These comparisons were changed to require only 5 decimal place precision.
  5. Incorrect logic caused no events to be detected for some combinations of history file parameters. This has been corrected.
  6. A segmentation error occured when creating a collimator history file using DHCI. This was the result of a missed initialization and has been corrected.

An undocumented feature of SimSET is that the PET detectors can be set up to bin single photons as events. There was a bug in this process that has been addressed. If you wish to use this capability you should contact us as this feature remains undocumented.

SimSET keeps track of the travel distance for a photon starting from the decay or positron annihilation that created it. This information can be used to compute the time-of-flight difference in PET simulations. We discovered that the time-since-photon-creation, as computed for custom history files if requested, was off by two orders of magnitude as the distance is kept in cm but the speed-of-light constant used was expressed in m/sec. We changed the speed-of-light constant to cm/sec. This change will affect you only if you are using the time-since-photon-creation field from a photon history file or have modified SimSET to use or bin time-of-flight information.

September 29, 2003 - Versions 2.6.2-2.6.2.3 - Bug using tomograph file feature with SPECT collimators; Bug using custom history files with PET; Segmentation fault using coherent scatter on some systems; Screen output errors.

When using the tomograph file feature (which allows one to simulate multiple tomographs in a single run) in conjunction with SPECT geometric collimators (unc_spect), some collimator parameters were not properly updated from one colllimator to the next. Photons could be falsely rejected or accepted by the collimator. The size of this effect depended on how different the collimator parameters were--the larger the difference the more the errors. The tomograph file feature worked correctly for other collimators except for the screen output errors noted below.

When creating custom history files for PET simulations, the correct logic for outputting photons was not followed. This resulted in false coincidences being formed between photons from different decays. This bug did not affect standard history files. (Users specify the fields to be output to custom history files; standard history files output all the fields necessary to resume a SimSET run.)

On some systems (Linux systems are the ones we know to be affected) a segmentation fault occured when coherent scatter was turned on.

When using the tomograph file feature with SPECT, the detector and collimator parameters were incorrectly reported in the screen output. Except as noted above, the correct parameters were used in the simulation.

September 9, 2002 - Versions 2.6, 2.6.2, 2.6.2.1, and 2.6.2.2 - Bug using cylindrical detectors; Screen output errors.

We have discovered a bug in the cylindrical detector module. This bug results in small positioning errors for the detected position of photons. Photons should be positioned at the energy-weighted centroid of detector interactions at the end of the detector module. In the cylindrical detector, the energy-weighted centroid was correctly computed, but the photon position was never updated. As a result, the photons position leaving the detector module was either the point of absorption or the point of the last interaction in the detector. This error results in a visible broadening of the point spread function (PSF) when data from version 2.6.2.1 or 2.6.2.2 is compared to data from version 2.6.2.3. In a 3 cm deep BGO detector the broadening is very slight. However, in a 2 cm NaI detector the PSF broadening is substantial.

The last few versions of SimSET have also printed out obviously erroneous elapsed- and cpu-time measurements on some systems. We believe we have fixed these now. Please let us know if you have problems.

If you are simulating PET using cylindrical detectors you should definitely install version install 2.6.2.3.

October 15, 2000 - Version 2.6 and 2.6.2 -> Bug using planar detectors with the UNC Collimator

We have discovered a bug in the planar detector module. This bug will only affect SPECT simulations in which the UNC collimator is also used. Photons were inaccurately converted to the detector coordinate system. The resulting sinograms were obviously corrupt: it is unlikely users have used the corrupt data.

If you have not yet installed version 2.6.2, you should install 2.6.2.1. If you have installed 2.6.2, the bug can be fixed by simply downloading the source file below and recompiling/relinking.

ftp://ftp@animal.rad.washington.edu/phg_beta/updates/src/DetPlanar.c

October 3, 2001 - Upgrade to version 2.6.2 fixes several bugs

The latest software release fixes several bugs from previous versions and introduces new features (see 2.6.2 release notice). Many source files were changed. Please go to the installation page to download.

We have had reports that the multiple binning files feature is misfunctioning intermittently. We have not yet determined under what circumstances this occurs. We suggest using the new tomograph file feature instead until we have tracked down the problem.

 

December 19, 2000 - Version 2.6 -> Bug in Cylindrical Detector With Multiple Layers

We have discovered a bug in the cylindrical detector module. This bug will only affect simulations in which there is a multi-layer detector. If you have defined a multi-layer detector and the layers are not the same dimension axially, then this bug will most likely occur. In discovering this bug, the software detected a calculation error and aborted the simulation. It is possible that the bug would affect your simulation without reporting any problems.

To fix the bug, simply download the source file below and recompile. Note that there is another bug reported below requiring you to download a file and recompile, you may wish to down load all of the new files at once.

ftp://ftp@animal.rad.washington.edu/phg_beta/updates/src/DetCyl.c

 

December 19, 2000 - Version 2.6 -> Bug in Pet Collimator Parameter Reporting

We have discovered a bug in the PET collimator module which causes the program to print out garbage information regarding the collimator setup. This is the output that is sent to the screen at the beginning of the simulation. The internal parameters are correct, it is only the reporting that is invalid.

ftp://ftp@animal.rad.washington.edu/phg_beta/updates/src/Collimator.c

September 9, 1999 - Version 2.5.1 -> Bug in Collimator to Detector Interaction

We have discovered a that problem exists whenever the collimator and detector modules are both used. In certain situations, the detector module will accept events twice. This occurs when the collimator rejects an event just after both the collimator and detector accepted an event. Even though the collimator rejects the event, the detector module will re-bin the previously accepted event. This will occur with any of the collimator or detector modules in both SPECT and PET modality. To fix this problem, download the file EmisList.c and recompile.

ftp://ftp@animal.rad.washington.edu/phg_beta/updates/src/EmisList.c

April 9, 1999 - Version 2.5.1 -> Bug in BGO interaction tables

We have discovered that the values in the BGO interaction tables are incorrect. New tables are now available. To use them, simply copy them to the phg.data and phg.data/coh.tables directory respectively and then re-run your simulations.

ftp://ftp@animal.rad.washington.edu/phg_beta/updates/phg.data/phg_att_table

ftp://ftp@animal.rad.washington.edu/phg_beta/updates/phg.data/coh.tables/BGO.ad  

 

March 18, 1999 - Version 2.5.1 -> Bug in custom history files

An error was discovered in the code for creating custom history files. The code failed to properly count the number of photons accepted by the history module. This erroneous value was written to the history file header. The actual photon data was not corrupt in any way, the only error was in the header regarding the number of photons in the file. The bug can be removed by downloading ftp://ftp@animal.rad.washington.edu/phg_beta/updates/src/PhoHFile.c into your "src" directory and recompiling.

 

March 8, 1999 - Version 2.5.1 -> Bug in scatter tables, affects all simulations to some degree

An error was discovered in the default interaction tables distributed with and used by SimSET. These tables are used to model photoelectric absorption, Compton scatter, and coherent scatter. The table entries for the probability of scatter given an interaction and the probability of Compton scatter given a scatter interaction were incorrect for all materials containing more than one element. This includes all human tissues. The attenuation coefficients, which determine the overall probability of interactions, were unaffected by the error. The angular distribution data tables, which are used to determine scatter angles, were also unaffected. The error was introduced with the implementation of coherent scatter in version 2.5 and above, and will affect simulations performed with that software.

The erroneous table values corresponded to the values for the highest Z (atomic nnumber) element present in the material, rather than a properly weighted average. In general, this means that scatter was underestimated relative to photoelectric absorption and coherent scatter was overestimated relative to Compton scatter. The errors were largest where photoelectric absorption is large: at low energy and high Z.

Fortunately, the errors in the tables were such that many simulations will be either unaffected or only slightly affected. In particular, the errors were probably negligible for all simulations of 511 keV photons. The errors were larger for lower energy photons, but generally less than 10% in NaI at 140 keV (and smaller still in tissue materials). Much larger errors may occur in composite materials at lower energy (when simulating 201Tl, for example).

The interaction values for all materials were recalculated with proper weighting for composite materials, and we believe the values are now correct. We thank you for your patience and apologize for any inconvenience our mistake may cause you.

You can down load the files directly via: ftp://ftp@animal.rad.washington.edu/phg_beta/updates/phg.2.5.1.scatter.bug.tar.z

You will need to recompile the code because the update contains a new version of "SubObj.c". This version of SubObj.c will dynamically process the materials list making it unnecessary to recompile when addingnew materials. This is the last time you will need to recompile to add a new material to the attenuation material list.

Finally, note that this update does not include the detector solution provided below, if you have not down loaded that update, please do so at this time and recompile everything together.

 

February 19, 1999: Version 2.5.1 -> Bug in Planar Detector Module

A error was found in the planar detector module. The code failed to update the "Z" coordinate of a photon as it traveled through the detector. For SPECT simulations this error has a minor effect because of the collimator and relatively thin detectors. For some DHCI simulations the error can be quite significant.

The following file should replace the existing version in "2.5/phg/src", you will need to recompile the PHG in order to remove the error: DetPlanar.c

 

October 12, 1998: Version 2.5 -> Fix yields Version 2.5.1

[1] A line in the binning module initialization routine created a "divide by zero" fault when 3D binning was not being performed. This error did not corrupt the simulation but some systems would abort when the fault occured. It was also possible for a divide by zero to ccur during binning, but this scenario was very unlikely. The following file should replace the existing version in "2.5/phg/src", you will need to recompile the PHG in order to remove the error: PhgBin.c

[2] The data file for modeling coherent scatter in "lung" was truncated in the release archive. A non-truncated file is necessary for performing coherent scatter modelling. The following file should replace the existing data file in the directory "2.5/phg.data/coh.tables" lung.ad. You do not need to recompile, the data files are read each time a simulation is run.

 

August 10, 1998: Version 2.5 Alpha

This version of the PHG was only released to users who required the new features implemented in version 2.5. All who received this bug should have been notified directly. The bug was a major problem corrupting simulation results under specific, yet quite ordinary, circumstances. Full Report

 

[top of page]

  
Last revised by:
Revision date:
29 January 2014