Published July 17, 2025
| Version 1.0.0
Dataset
Open
A Modified Orthogonal-Distance Ray-Tracer Method Applied to Dual Rotation PET Systems (raw data)
Authors/Creators
Description
This repository contains the dataset used to validate a novel projector, the Orthogonal-Distance Ray-Tracer Varying-Full Width at Half Maximum (OD-RT-VF). This projector was developed to model a shift-variant elliptical point-spread function (PSF) response, aiming to enhance image quality in a preclinical dual-rotation PET system.
The dataset is provided in the easyPET format, which includes:
- Header: Contains metadata about the acquisition, structured as a binary file.
-
- Version_binary,
- header,
- dates,
- otherinfo,
- acquisitionInfo,
- stringdata,
- systemConfigurations_info,
- energyfactor_info,
- peakMatrix_info
- The header is processed into a JSON format. e.g.
-
systemConfigurations_info = np.fromfile(binary_file, dtype='|S1', count=size_systemConfigurations[0]* 2).astype('|U1')
systemConfigurations_info = systemConfigurations_info.tolist()
systemConfigurations_info = ''.join(systemConfigurations_info)
systemConfigurations_info = json.loads(systemConfigurations_info)
-
- 7 or 8 arrays: stores the primary data. Motor angles, Detector IDs, Photon Energies and time of arrival
-
number_of_arrays = 7 # or 8 for simulations
reading_data = np.fromfile(binary_file,
dtype=[('stepbot', np.int16), ('steptop', np.int16),
('idA', np.int16),
('idB', np.int16),
('EA', np.int16), ('EB', np.int16), ('time', np.float64),
('time_b', np.float64)]) -
step_bot = round(header[1], 4) / header[2]
step_top = round(header[3], 4) / header[4]
topRange = header[5]
listMode = np.zeros((len(reading_data["stepbot"]), number_of_arrays))
listMode[:, 0] = reading_data["EA"] # energias A
listMode[:, 1] = reading_data["EB"] # energias B
listMode[:, 2] = reading_data["idA"] # id A
listMode[:, 3] = reading_data["idB"] # id b
if open_files_to_join:
# This dont change the data in the way to merge the acquisitions files in just one
listMode[:, 4] = (reading_data["stepbot"]) # *2 # bot angle remove factor of 2 because it is already saved that way
listMode[:, 5] = (reading_data["steptop"] ) # top_angle
else:
listMode[:, 4] = (reading_data["stepbot"]) * step_bot #*2 # bot angle remove factor of 2 because it is already saved that way
listMode[:, 5] = (reading_data["steptop"] * step_top - topRange / 2) # top_angle
listMode[:, 6] = reading_data["time"] # time
if Version_binary == "Version 3":
listMode[:, 7] = reading_data["time_b"] # time
If you are interested in the data but are unable to read it due to its non-conventional file format, we can provide a script upon request to facilitate access.
Files
Additional details
Identifiers
Funding
- Fundação para a Ciência e Tecnologia
- Use of a radioactive source as a new CT approach in the easyPET.3D system 2022.09701.BD
- Fundação para a Ciência e Tecnologia
- Intelligent scanning method for adaptive Positron Emission Tomography 2019.43964.BD
- Fundação para a Ciência e Tecnologia
- Assessment of easyPET performance: NEMA NU 4-2008 standards and animal model 2018.137800.BD
Dates
- Accepted
-
2025-01-07