Positron Emission Tomography (PET) is a medical imaging technique which is commonly used to map out metabolic activity in the body. Typically, a $\beta^+$-emitting (positron-emitting) radionuclide (such as ${}^{18}\textrm{F}$) attached to a glucose molecule is injected into the body where it is taken up by tissues in proportion to their metabolic activity. Positrons produced by the decay of the radionuclide usually travel less than 1 mm in human tissue before they bind with an electron, and quickly annihilate. Most of the positron-electron annihilations result in the emission of a back-to-back pair of 511 keV photons. These photon pairs leave the body and can be detected. Areas of the body where there is high metabolic activity – such as cancer cells or active regions in the brain – will be more intense emitters of these 511 keV photon pairs. In a PET scanner, arrays of scintillator+PMT detectors are used to measure the intensity of this radiation along well defined planes (referred to as slices) passing through the patient's body. Tomography is the process of reconstructing a three-dimensional image of positron emission intensity from these slices.
In this experiment, you will use PET to create a two-dimensional image of a sample box containing two positron sources of unknown strength at unknown locations.
![]() |
| (source: Wikipedia) |
In this experiment you will use positron emission tomography to identify the positions and relative intensities of two unknown positron emitters inside a sealed box. Specifically, your goals for this experiment include the following:
The last goal here represents a typical use case for PET scanning: a chemical called Fluorodeoxyglucose that contains Fluorine-18 is administered to a patient, which the body treats as regular glucose. Cells with rapid metabolisms (e.g. cancer) take in glucose much more rapidly than other tissues, and thus will end up with higher concentrations of beta-emitting ${}^{18}$F.
PET scans and other radioimaging techniques are often performed/overseen by medical physicists; for information on this career path look into the American Association of Physicists in Medicine or the University of Chicago Medical Physics Ph.D. Program. On another front, some relatively recent research has begun to look into PET imaging using Na22 laden nanoparticles. These have the upside of combining the (relatively) long 2.6 yr half-life of sodium-22 with the lesser bio-availability of nanoparticles. This both ensures that the radioactive material doesn't accumulate in the body and eliminates the need of on-site generation of radio-isotopes.
Note on safety: Some students have worried about being around multiple button sources in the lab for hours on end. From what I can tell, the risk is pretty much nonexistent for what we're working with. Occupational safety limits suggest that eating 400$\mu$C activity a year worth of sodium is the acceptable limit for exposure. Considering that students would have to crack open every single source we own and consume it to come close to that, they should be fine. Especially considering that it has a biological half-life of about 10 days.
To start out, you should do a bit of background research. Some suggested topics are the following:
The positron emitter that we will use in this experiment is sodium-22, which decays to an excited state of neon-22 by either electron capture or by positron emission. The neon later decays to its ground state by the emission of a 1.27 MeV gamma. (See Fig. 1.)
|
| Figure 1: Nuclear decay scheme for sodium-22. (Source: C. Michael Lederer, Jack M. Hollander, and Isadore Perlman, Table of Isotopes, 6th Edition, John Wiley & Sons, 1967.) |
The emitted positrons are slowed down and are captured by electrons in the source to form an electron-positron bound state called https://en.wikipedia.org/wiki/Positronium, a hydrogen-like “atom.” The ground state of positronium, which has a binding energy of 6.8 eV, has two possible configurations depending on the relative orientation of the electron and positron spins. The state with anti-parallel spins has net spin equal to 0, and is variously referred to as the singlet state, para-positronium, or, in spectroscopic notation, the state $1S^0$. This state decays into an even number of photons, with the most likely result being two back-to-back photons with equal energy and oppositely directed momentum. The state with parallel spins has net spin equal to 1, and is referred to as the triplet state, ortho-positronium, or the state $3S^1$. This state decays into odd numbers of photons, most commonly three.
For reasons having to do with the lifetime of the two states and with the likelihood of triplet states flipping into singlet states, the two photon decay is much more likely. Since the rest masses $m_0$ of the electron and positron are converted to energy in the annihilation process, each of the resulting two photons has energy $E = m_0c^2 = 511 \,\textrm{keV}$ , and are created simultaneously.
The photon pairs which PET detects are produced in the following manner. (Letters correspond to features illustrated in Fig. 2.)
Medical imaging PET scanners utilize a large number of gamma-ray detector pairs, typically arrayed in an annulus to produce high resolution scans. (See Fig. 3.) The reconstruction of an image from these scanners is can be somewhat computationally intensive, requiring the use of https://en.wikipedia.org/wiki/Tomographic_reconstruction#Reconstruction_algorithms. Furthermore, processing all of the signals from such a ring of detectors would be daunting to someone just learning how this technique works.
|
| Figure 3: PET scanner detector configuration. (Source: Wikipedia.) |
For the purposes of our experiment, we will use a single detector pair to create a two-dimensional image of a sample containing two sources. This simplified technique allows us to clearly illustrate the basic principles of PET while making use of a very simple tomographic reconstruction algorithm. The downside is that we are effectively collecting our individual scans in series (having to do one angle at a time) rather than parallel (using dozens of detectors). Nevertheless, a medical PET scanner operates on the same set of principles which apply to our scaled-down setup. A schematic of our PET scanner with the single pair of NaI+PMT detectors, a sample container and a sample guide is shown in Fig. 4.
The line connecting the two PMT+NaI detectors is the line of response (LoR). Positronium decays which occur anywhere along the LoR will produce back-to-back 511 keV gamma pairs. Some of these 511 keV gamma pairs will strike the two PMT+NaI detectors. If they are equidistant from the source, the two detectors will be hit by these decay gammas nearly simultaneously. Conducting a scan amounts to recording the rate of simultaneous hits at the two detectors as a function of position as the source is moved across the LoR along one of the source axes. This constitutes one slice of the sample. (See, for example, the x-axis slice corresponding to the blue lines in Fig. 5.) The source can then be rotated, for example by 90º, and the process repeated along the new y-axis (the red lines in Fig. 5) producing a new slice.
If the rate of coincident hits is measured at 5 equally spaced locations along each axis, we would create a grid as shown in Fig 4. If, for example, the sample contained two unequal strength sources at locations (X2, Y2) and (X4, Y4.5), then the slices would produce projected intensity profiles along each axis as shown.
Figure 5: An example of x- and y-axis intensity profiles for two unequal strength sources.
For the case of two or fewer sources, we can use the following algorithm to reconstruct a two-dimensional image from one-dimensional slices. If there are $m$ projections along the x-axis and $n$ projections along the y-axis, there will be a total of $m \times n$ intersection points. We can assign a value to each intersection point $A_{xy}(i,j) = I_x(i) * I_y(j)$ , where $i$ runs from 1 to $m$ and $j$ from 1 to $n$ , and where $I_x(i)$ and $I_y(j)$ are the measured intensities of the ith and jth projections along the x-axis and y-axis, respectively. Figure 6 shows a contour plot of the values of $A_{xy}(i,j)$ that would result from the x and y slices of Fig. 5.
Figure 6: The contour plot of the values of $A_{xy}(i,j)$ that would result from the X and Y slices of Fig. 4.
Note that the image reconstruction (Fig. 6) shows four sources instead of two. This is an example of an artifact called shadowing which is present to some degree in all tomographically-reconstructed images. More data and additional processing is needed to suppress the shadows and more clearly reveal the locations of the actual sources. For our simple sample containing only two sources, we need to add only one additional slice, taken at an angle different from the previous two. We choose to define a new axis called Z as shown in Fig. 7.
Figure 7: A third axis, called Z, is added to the grid at an angle to both X and Y.
It is necessary that the LoR's of the Z slice intersect with all of the intersections $A_{xy}(i,j)$ one (and only one) additional time. Accordingly, there are $q=m+n-1$ LoRs along the z-axis with measured intensities $I_Z(k)$. The value at each intersection point is now calculated as $A_{xyz}(i,j,k)$ = $A_{xy}(i,j)*I_z(k)$ where $k$ runs up to $i+j-1$ The resulting contour plot is shown in Fig. 8. Notice how the two shadows have been suppressed and the signals corresponding to the actual source locations have been enhanced.
Figure 8: The new contour plot of $A_{xyz}(i,j,k)$. Note that now only two sources appear instead of four.
If one were to try using this simple tomographic analysis method for more than two sources, you would need to continue adding more slices along new axes in order to suppress false signals caused by shadows. As a result, the computing requirements would quickly become unimaginable. For this reason, medical PET scans use much more sophisticated algorithms for image reconstruction. Even so, the computing requirements are still enormous, and are the primary cause of the high cost associated with this form of medical imaging.
A good introduction to the basic techniques we'll use for processing data is this handout on Tomographic Image Reconstruction, from the 41st American Association of Physicists in Medicine conference. We will use what is essentially a discretized version of an unfiltered backprojection operation, but reading further on what other options exist may be interesting.
Between 5-11 minutes of the following video also do a decent job of introducing our basic tomographic reconstruction technique.
We're still working on adapting material from an old version of this lab, so more info may be forthcoming.
A schematic of the apparatus is shown in Fig. 9. Individual components are described below.
The NaI(Tl)+PMT detectors are mounted in carriages. One detector is fixed in position (defined a $\theta = 0^\circ$ ) and the other is free to move around a circular track but should be set to 180º, directly opposite the fixed PMT. Anode signals from the PMTs are connected to the Red Pitaya for signal processing.
The Red Pitaya is a Field Programmable Gate Array (FPGA) that serves to process signals from the PMTs [A], send signals to control the motors via the Logic Level converter [C], and stop the motor at fixed positions determined by the Feedback Sensors [G]. We can access a Python program to let us interface with the Red Pitaya without needing sophisticated knowledge of its inner workings for now.
The motor driver acts both as a power supply for the motors as well as an interpreter for the incoming control signals from the Red Pitaya [B]. There are inputs that control the motor direction as well as one that will rotate a motor by a small angle for every individual pulse received from the Red Pitaya.
The clear acrylic disk will hold the sample that you are scanning for the various parts of this experiment. There is a motor beneath it that can rotate the sample, as well as a small brass flag that is used to ensure that the Feedback Sensors [G] are able to reset the platform to a consistent position.
This stage consists of another motor connected to a long worm gear, which holds the entire Sample Platform [E]. It translates the sample between the two detectors with better than mm precision thanks to the fine control from the Motor Driver [D].
There are three separate feedback sensors here: one photodetector that senses when the brass flag attached to Sample Platform [E] is aligned, and two switches that keep the linear stage from traveling too far in either direction. While the setup could operate without them, it would reliably resetting the position much more difficult to do.
==== Starting the experiment ==== Make sure that the electronics are wired as shown in Fig. 9, and turn on the high voltage (if not already on).
===== 4.2 Looking at signals on the oscilloscope =====
To start, it is a good idea to get an idea of the characteristics of the pulses from the PMTs. This can help you make better decisions about what voltages and coincidence times are reasonable during the experiment.
To this end, we've set up a Jupyter notebook that will let you pass the input signals from the Red Pitaya straight through to the outputs. There should be a link on your computer's desktop to a notebook named FPGA_Signal_Observation Make sure you use a 50 $\Omega$ terminator in either case to avoid distorting the signal. It may be easiest to just place one of the Na22 sources near the detector rather than trying to work with moving the platform at this point.
Upon running the notebook, you'll be presented with a screen like the following:
There are a lot of moving parts here, so we'll go through them one by one:
===== 4.3 Understanding system resolution =====
With any experiment it is important to understand the operating characteristics of your apparatus. In a PET scan, the goal is to determine – as well as possible – the location of $\beta^+$emitting radioactive sources by detecting the simultaneous emission of back-to-back 511 keV gammas. Do we really need to do this complicated tomography procedure, or do we have good enough timing and timing and spatial resolution to find the sources directly?
==== 4.3.1 Selecting the right signal ====
We could design our system to register a coincidence any time the signals from both detectors simultaneously differ from 0V, but in practice there are quite a few flaws with that plan.
To address this problem, we've coded the software on the Red Pitaya to limit its search for coincidences only to signals that exceed one voltage (the low threshold) without going past another value (the high threshold). One of your goals is to find a set of threshold values that filter out most signals that aren't due to the 511 keV gammas.
You'll be using the FPGA_Signal_Observation notebook for this again.
We'll use a Python script on the Red Pitaya that will let you see the pulses from the PMTs alongside the voltage thresholds you've selected for filtering. This, alongside your spectrometer, will allow you to determine the settings needed to filter out most spurious coincidences. You'll need to calibrate both channels, as the PMT responses might not necessarily be identical.
While the default settings will work, they aren't particularly optimized. You should adjust values to get a sense of how they affect the resulting coincidence counts, and record what you'll want to use in the future.
To make it more manageable to change settings, move the sample, and collect data using the Red Pitaya, we've developed a way for it to take in a list of commands and run them in order. They are:
ResetLateralResetRotationMoveDir is 1 for right and 0 for leftDist is the # of motor stepsRotateDir is 1 for counter-clockwise and 0 for clockwiseDist is the # of motor stepsScanTime is the time in secondsLOOPTimes is the number of times to repeatList is a list of commands to loop throughDon't worry, we don't expect you to be writing command lists from scratch. We've provided several to perform basic tasks, but it will be up to you to tweak the settings to do what you want.
To use these commands, you'll open up the FPGA PET Command Interpreter notebook linked on your computer's desktop.
Don't just run this notebook all at once, it needs you to input the file you'll use partway through.
In deciding how far apart to space one's measurements, several several factors need to be taken into consideration. Spreading out the scans too much will result in poor resolution of the location of the sources. More closely spaced scans will improve resolution, but at the cost of requiring more time to acquire the data as well as increased computing requirements. However an upper limit on how closely to space the scans can be set by measuring the spatial resolution of the detector system perpendicular to the LoR.
Using a single Na-22 button source translated orthogonally across the LoR as shown in Fig. 12, determine the spatial resolution of the system perpendicular to the LoR.
More specifically, you should try and determine:
Use the linearscan.json file as a template for this part of the lab
We'll briefly go through the behavior of the command interpreter notebook here:
Counts shows the number of coincidences that have been recorded in the active scan.Scan Time shows a progress bar for the current scan (not the entire run).After you've established how wide the signal distribution is from a single source, you should also empirically determine how close a pair of identical Na22 sources can be before the signal becomes indistinct from a single source.
- How close two sources can be before their signals are no longer distinct?
Again the linearscan.json file will serve as a basis for this part of the lab
Now that you've got a good idea of the limitations of the system, it's time to scan a known sample from multiple angles and use the data to try out our reconstruction techniques. Set up a configuration like the one shown below:
The specifics aren't critical, but you should measure out the positions of the sources beforehand so that you can calibrate your data reconstruction. The resulting plot of intensities versus position and angle is known as a sinogram because of the tendency of point sources to form sine curves in this format
Now you can use the Three.json file as a template for this part of the experiment
After you have a good idea of what parameters are needed to resolve our Na22 sources you'll move onto the core piece of the lab: scanning a sample with $\beta^+$ emitters in unknown locations. One such sample is shown below:
There should be four sample containers in the lab. By the end of the first day, you should set up a configuration for use by another lab group.
Samples will be rotated as follows:
It is suggested that you take a quick, low-resolution scan first to have some idea of what you're dealing with, and then to set up a longer scan to run overnight to capture fine details in the setup.
One other parameter we can control is the threshold voltage that the code will accept as a pulse. This code uses both an upper and lower limit. The lower limit helps us screen out spurious x-rays that all samples will emit, and the upper limit will help screen out 1.27 MeV gammas that are also emitted by the Na22 sources. This is similar to setting a region of interest in our spectrometer software, except it just ignores all pulses that don't meet the criteria.
You should experiment some with the threshold settings to make sure that the count rate is zero (or close to it) when no source is present, and that some coincidences are detected when a source is present
Currently, there is an issue where one of the PMTs has a bit of an offset voltage on its signal. As a result, setting the lower threshold too low can result in the software ignoring all pulses. If you see this occur, make a note of when it happens and make sure to keep the lower threshold above that value.
To create a 2-dimensional image from your data, we've created a Python script that will do the basic reconstruction, which can be accessed here:
There are instructions on how the code works and what it is doing at each step, and reading through it will be much more helpful than trying to run all of it at once.
You will be able to produce a few different sorts of plots with this code, and are free to modify it as needed.
Ultimately, you should identify the position of all sources within a sample as well as the relative intensities between them.
Each item below is graded on a 0-4 point scale. Full, partial and no credit correspond roughly to the following:
All rubric items carry the same weight. The final grade for the analysis will be assigned based on the average (on a 4.0 scale) over all rubric items.
| Item | Description |
| Calibration and Setup | Pulses due to $\beta^+$ annihilation are identified and characterized. Parameter choices for thresholds are recorded and the methodology for finding them is described. |
| Structured Investigations | Spatial resolution of point sources perpendicular to Line of Response (LoR) is investigated, with appropriate plots and/or fits. Spatial resolution between pairs of sources is investigated, with appropriate plots and/or fits. |
| PET Scan Data | Sinogram plots for single source, paired sources, and an unknown configuration. Relevant parameter values for all scans are documented. Parameter choices are (briefly) explained/justified. |
| Tomographic Reconstruction | Plots showing tomographic reconstructions for important configurations are created. Sources are identified in the reconstructions and locating methods are described. (relative) intensities are estimated and compared. Note that you are not expected to calculate uncertainties rigorously, as doing so for two dimensional functions is beyond the scope of the lab. |
Each item below is graded on a 0-4 point scale.
All rubric items carry the same weight. The final grade for the report will be assigned based on the average (on a 4.0 scale) over all rubric items.
| Item | Description |
| Presentation of Data | Presents plots of data as needed and uses them to support the narrative of the report. Properly labels plots, and makes presentation clean and clear. Uses error bars where appropriate. Includes captions that provide appropriate context. Presents all numerical values with appropriate units and significant figures. Clearly formats numbers, equations, tables, etc. |
| Data Handling | Describes how the raw data was processed including with uncertainties. Details fit functions and provides sample fits (if appropriate). Details other calculations/considerations and provides sample calculations or reasoning (if appropriate). |
| Discussion of Uncertainties | Identifies relevant sources of uncertainty in measured quantities, and quantifies values when possible. Describes how uncertainties were assessed and incorporated into the analysis. Identifies potential sources of systematic bias and describes how they are accounted for in the analysis or eliminated. |
| Presentation of Results | Final results are presented clearly. Data tables and plots are used where appropriate and are properly labeled and annotated. Measured and calculated quantities include units and uncertainties where appropriate. |
| Conclusions | Makes clear final conclusions that are fully supported by the experimental results and discusses the overall take-aways of the experiment appropriately. Properly accounts for or contextualizes measurement uncertainties and potential sources of systematic bias. |