Skip to main content

Specialized Package for Extracting Image Features for Cardiac Amyloidosis Quantification on SPECT.

Project description

SpectQuant

PyPI PyPI status DOI:10.1007/978-3-319-76207-4_15 Maintainer PyPI license

SpectQuant is a specialized package designed for the feature extraction of special photon emission computer tomography (SPECT) data. It leverages advanced algorithms known from signal processing and methodologies to standardized results with the potential for scaled data mining.

Note: Package has been desigend particularly for assessing treatment response of cardiac amyloidosis.

Special Photon Emission Computer Tomography (SPECT) is an imaging technique that allows for the visualization of functional processes in the body. It involves the detection of gamma rays emitted by a radioactive tracer injected into the patient. The quantitative analysis of SPECT data is crucial for accurate diagnosis and research.

The key steps in the quantitative analysis of SPECT data include:

  1. Data Processing: Preprocessing the original data by correcting for False Positives, and normalized voxel scores accross images, and image size.
  2. Feature Extraction: Measuring the concentration of the tracer in different regions of the body.
  3. Visualization: Creating visual representations of the processed data to facilitate interpretation and quick validity assessment.

SUV (Standardized Uptake Value)

For determining the SUV Given a predefined 3D area $A$ (ROI = region of interest) of size $a \cdot a \cdot a$ and a predefined cubic kernel $\kappa$ (3D-window) of size $k \cdot k \cdot k$, the SUV peak is given by the cube (also of size $k \cdot k \cdot k$) at the location where the sum (or mean) of values in $\kappa$ is the highest.

$\forall \alpha_1, \alpha_2, \alpha_3 \in {0, \dots, a}$:

$$ \text{SUV}^{peak} = max\left(\frac{\sum_{\alpha_1, \alpha_2, \alpha_3}^a \kappa}{k \cdot k \cdot k}\right) $$

Essentially, the kernel tries every possible position for $\alpha_{{1,2,3}}$ from $1, \dots, a$ within area $A$ and yields the spot where the kernel $\kappa$ reaches is maximum sum. Then, the arithmetic average is taken from that by dividing by the number of voxels in $\kappa$. This concept alos applies to non-quibic ROIs.

TBR (Target to Blood/Background Ratio)

$$ \text{TBR {peak, mean, mode}} = \frac{\text{SUV {peak, mean, mode}}}{\text{SUV mean vena cava inferior}} $$

Retention Index

$$ \text{SUV retention index} = \left(\frac{\text{SUV peak cardiac}}{\text{SUV peak vertebral}}\right) \times \text{SUV peak paraspinal muscle} $$

Note: see the paper by Rettl et al.

UptakeVol

  1. Segmentation mask of the given ROI
  2. Dilation of segmentation mask by 10mm
  3. Thresholding the entire image: $\forall i \in {1, \dots, x}, j \in {1, \dots, y}, k \in {1, \dots, z}$:

$$ \text{thresholded SPECT} = \begin{cases} 0, & \text{if } \text{SPECT}[i, j, k] < \text{max(SPECT)} \cdot 0.4 \ 1, & \text{otherwise} \end{cases} $$

  1. If approach='threshold-bb', the dilated segmentation mask is used to contain the ROI within a 10mm range of the segmentation mask. The dilated segmentation is hence used as a bounding-box.

The 'threshold-bb' is well suited to ensure that no uptake of other structures exceeding the threshold are considered in the volume computation of the ROI:

Original SPECT Figure 1: Heatmap of original SPECT

Threshold Figure 2: Heatmap of thresholded SPECT with uptake outside the ROI.

Threshold-bb Figure 3: Heatmap of thresholded and 'bounded' SPECT with removed uptake outside the ROI.

SeptumVol

  1. Segmentation masks of the left ventricle (LV) and the right ventricle (RV) are loaded
  2. Both LV and RV are then enlarged equally in each direction by a dilation algorithm
  3. Dilated segmentation masks are then cut to avoid false positives in the IVS septum volume due to the dilation. The cut has been determined by the border voxels' index location of the original/undilated segmentation masks in the follwing ways:
    • The dilated LV mask is only cut on the
      • x-axis by the highest x-voxel index of the original RV segmentation mask
    • The dilated RV mask is cut on
      • x-axis: by the lowest x-voxel index of the original LV segmentation mask
      • z-axis: by the highest and lowest z-voxel index of the original LV segmentation mask

$$ {\widehat{RV}} \cup {\widehat{LV}} - {{RV} \cup {\widehat{LV}} + {LV} \cup {\widehat{RV}} } $$

  • ${\widehat{RV}}$ = set of voxels of dilated & cut right ventricle

  • ${\widehat{LV}}$ = set of voxels of dilated & cut left ventricle

  • ${RV}$ = set of voxels of right ventricle

  • ${LV}$ = set of voxels of left ventricle

IVS Volume Quantification Process

Figure 4: IVS Volume Quantification Process on CT with SPECT overlay showing the tracer uptake.

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

spectquant-0.1.20.tar.gz (30.0 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

spectquant-0.1.20-py3-none-any.whl (31.3 kB view details)

Uploaded Python 3

File details

Details for the file spectquant-0.1.20.tar.gz.

File metadata

  • Download URL: spectquant-0.1.20.tar.gz
  • Upload date:
  • Size: 30.0 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.1.0 CPython/3.9.6

File hashes

Hashes for spectquant-0.1.20.tar.gz
Algorithm Hash digest
SHA256 723827603ba3f7a54a70b37d2b90a362abfe461019910f345321a72557f59b16
MD5 32736d6beb87fd622fd5e98ac4219d71
BLAKE2b-256 22c8f62e5e245262e51523cc2dfbb3fdcbcc35b36e22fdb84fbd859038ead9d3

See more details on using hashes here.

File details

Details for the file spectquant-0.1.20-py3-none-any.whl.

File metadata

  • Download URL: spectquant-0.1.20-py3-none-any.whl
  • Upload date:
  • Size: 31.3 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.1.0 CPython/3.9.6

File hashes

Hashes for spectquant-0.1.20-py3-none-any.whl
Algorithm Hash digest
SHA256 e52c2c140d74161587c00e9c38909fb452d28691345c04cbb9cee981974697a5
MD5 fb58d926f85e70c6f4d7e68a067f06fe
BLAKE2b-256 064f64de130b4396e92db378324dbfa182a4cd91f1f6b82042c83326f3d064f5

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page