Skip to content

Using Biograph PET data

villekf edited this page Mar 4, 2021 · 1 revision

Biograph data

Main-files for the Biograph scanners mCT and Vision are available. All the detector parameters as well as sinogram settings are set correctly for the scanners.

For mCT supported are 64-bit list-mode data, 32-bit list-mode data, UNCOMPRESSED sinograms and GATE data. For Vision 64-bit list-mode data, UNCOMPRESSED sinograms and GATE data.

The mex-files used to load the list-mode data are provided as a closed-source release ONLY, i.e. the source code for these files is not available. These mex-files are stored in the biograph-folder where you can find mex-files for Windows and Linux (no Mac support). Included are files for MATLAB only, Octave files are available only on request. For MATLAB, version 2015a or newer should work. It is recommended to delete the version that you do not need. For MATLAB the files have an ending mexw64 (Windows) and mexa64 (Linux). list2sinogram corresponds to mCT while visionToSinogram to Vision.

When using list-mode or sinogram data, you will be prompted for the location of the files. For list-mode data, the data can be either .ptd or .l files. For sinograms, either .ptd or .s. Furthermore, the location of the mex-file needs to be on MATLAB path in order to use list-mode data. Sinogram data is not affected.

TOF data is supported with both scanners, but only with the default mashed values. For mCT that is 13 bins and for Vision 33 bins. TOF is enabled by default in the main-files. Note that if you are using GATE data, then the TOF data will be different from the actual measured one since there is no mashing performed for the GATE TOF data and thus no TOF offset is needed. If you are using GATE data, change the TOF offset value to zero.

Sinogram gap filling

mCT and Vision both include pseudo detectors by default and mCT also pseudo rings. While these are not compulsory in OMEGA (you can reconstruct the data successfully even without pseudo detectors and/or rings) you can still use them as they are used by the scanner itself (mCT uses both, Vision only detectors). Since these detectors do not actually collect any counts they will cause gaps in the sinogram. How these gaps are filled depends on your mashing factor and whether normalization is applied.

In mCT, the mashing factor of 2 is applied which is also default in OMEGA. This causes many of the pseudo detectors to lose their "zero" counts. Furthermore, in clinical setting, this mashed sinogram is multiplied with the normalization matrix (e.g. precorrection of the data) to obtain the corrected sinogram. In this case, there are only a few gaps compared to case without mashing. Pseudo rings are assumed to be fixed by the normalization which takes into account the pseudo detectors and/or rings.

While the above method is the one used by the scanner itself, it is not the only way to do gap filling in OMEGA. OMEGA supports gap filling also without normalization data and without any mashing. In this case, however, the results are mostly likely not the same as obtained with the method used by the scanner itself.

The gap filling can be performed by two different methods, MATLAB's built-in function fillmissing or by using a function from the Mathworks file exchange inpaint_nans. fillmissing is currently unavailable in Octave. If you are using the method used by the scanner itself, the method used should not make a difference. If you are using unmashed data without normalization, inpaint_nans might provide slightly better results.

Currently, the normalization data output by the scanner is not supported. In order to apply normalization correction, you need to simulate one in GATE. For request I can also send a download link to mCT normalization file obtained from simulations and constructed with OMEGA, that removes almost all artifacts.

Vision handles things differently, for example by having significant mashing, which is not applied in OMEGA. In OMEGA, Vision data should be, for the moment, reconstructed with the default values input into the main-file.

Raw data does not support pseudo detectors or rings and as such will never use them even if they are selected.

Clone this wiki locally