petpvc

Partial Volume Correction in PET

https://github.com/ucl/petpvc

Science Score: 85.0%

This score indicates how likely this project is to be science-related based on various indicators:

  • CITATION.cff file
    Found CITATION.cff file
  • codemeta.json file
    Found codemeta.json file
  • .zenodo.json file
    Found .zenodo.json file
  • DOI references
    Found 3 DOI reference(s) in README
  • Academic publication links
    Links to: zenodo.org
  • Committers with academic emails
    5 of 15 committers (33.3%) from academic institutions
  • Institutional organization owner
    Organization ucl has institutional domain (www.ucl.ac.uk)
  • JOSS paper metadata
  • Scientific vocabulary similarity
    Low similarity (16.6%) to scientific vocabulary

Keywords

medical-imaging partial-volume-correction pet-mr positron-emission-tomography pvc

Keywords from Contributors

vtk neuroimaging workflow-engine
Last synced: 6 months ago · JSON representation ·

Repository

Partial Volume Correction in PET

Basic Info
  • Host: GitHub
  • Owner: UCL
  • License: apache-2.0
  • Language: C++
  • Default Branch: master
  • Homepage:
  • Size: 448 KB
Statistics
  • Stars: 59
  • Watchers: 26
  • Forks: 15
  • Open Issues: 11
  • Releases: 13
Topics
medical-imaging partial-volume-correction pet-mr positron-emission-tomography pvc
Created about 12 years ago · Last pushed about 1 year ago
Metadata Files
Readme License Citation

README.md

PETPVC

Build and ctest and recon_test_pack CIBuild Status Build status Codacy Badge DOI

PETPVC: toolbox for partial volume correction (PVC) in positron emission tomography (PET)

Publications

When using this toolbox, please include a reference to the paper: - PETPVC: a toolbox for performing partial volume correction techniques in positron emission tomography
BA Thomas, V Cuplov, A Bousse, A Mendes, K Thielemans, BF Hutton, K Erlandsson
Physics in Medicine and Biology 61 (22), 7975. DOI


Pre-built binaries

Binaries for Linux, Mac and Windows are provided in the 'Releases' section on Github. When running the Windows version, you must have installed the Visual C++ Redistributable Packages for Visual Studio 2019 (link). For 64-bit Windows, you might have to install both vcredist_x86.exe and vcredist_x64.exe.

Alternatively, PETPVC can also be installed via conda, see https://anaconda.org/conda-forge/petpvc.


Installation from source instructions

The following are required to build this software:

Building and installing

  • Ensure that ITK has been built successfully, with the ITKReview module (Module_ITKReview in CMake) enabled.
  • Clone this repository bash git clone https://github.com/UCL/PETPVC.git
  • Create a build directory bash mkdir BUILD
  • Change to the build directory bash cd BUILD
  • Run CMake bash cmake /path/to/repository
  • Build and install bash make make test make install ---

Usage

PVC methods

Although there are currently executables for every method, it is based to use petpvc which has options to specify the method and parameters. Type petpvc without arguments to get a usage message.

An example of running iterative Yang with a 6mm PSF:

petpvc -i <PET> -m <MASK> -o <OUTPUT> --pvc IY -x 6.0 -y 6.0 -z 6.0 [--debug] where <PET> is the PET image file, <MASK> is the 4-D mask image file and <OUTPUT> is the destination file for the PV-corrected image.

Warning: there are currently 2 options which seem the same: - -n: specifies the number of iterations for iterative Yang - -k: specifies the number of iterations for deconvolution methods such as Van Cittert and Richardson-Lucy.

Therefore, if you use RL only, you have to use the -k option. You can use both options with for instance IY+RL to first run iterative Yang followed by Richardson-Lucy for extra deconvolution.

Extras

In addition, there are some utilities that you might find useful: - pvc_simulate allows you to blur an image with a Gaussian (e.g. to simulate resolution effects) - some mask related tools


Notes on input and output files

The applications in this toolbox use ITK image readers and writers and can therefore accept common medical imaging formats such as Nifti, ANALYZE and Nrrd, and raw data with an associated meta-data header (mhd) file.

The tissue classification maps (referred to as mask files) can either be binary or probabilistic. All voxel values in a 3-D volume must be 0 <= x <= 1. The PVC applications expect the mask file to be input as a single 4-D volume, where each 3-D volume consists of a single segmented region.

The use of 4-D volumes facilitates the use of probabilistic segmentations during the PVC. In addition to the constraint that all voxels must be <= 1, The sum of a voxel location across the fourth dimension should be <= 1. Ideally it should be 1, which requires the background to be included as a segmented region.

Special cases where the inputs/outputs are different

Muller-Gartner (MG):

The Muller-Gartner correction requires only the grey matter and white matter masks. Technically, the CSF space should be included as a third region, but the contribution of this region is assumed to be zero. The MG application still requires a 4-D mask volume, where the first volume is grey matter and the second is white matter. The order is important. The 4-D mask file can contain more than two 3-D volumes, but these will be ignored by the MG PVC.

Geometric Transfer Matrix (GTM) method:

GTM cannot produce an image. The output of the GTM is a comma-separated value (CSV) file of regional mean values. The order of the mean values for each region is written in the same order as they appear in the fourth dimension of the mask file.

Single Target Correction (STC) method:

The STC method corrects a single region. The mask image should be a 3-D volume, where each voxel in the target region should be 1. All other voxels should be 0.

Owner

  • Name: University College London
  • Login: UCL
  • Kind: organization
  • Email: rc-softdev@ucl.ac.uk

Citation (CITATION.cff)

cff-version: 1.2.0
title: PETPVC PET Partial Volume Correction
message: >-
  If you use this software, please cite it using the
  metadata from this file.
type: software
authors:
    - family-names: Thomas
      given-names:  Benjamin
      orcid:        'https://orcid.org/0000-0002-9784-1177'
      affiliation:  University College London
    - family-names: Thielemans
      given-names:  Kris
      orcid:        'https://orcid.org/0000-0002-5514-199X'
      affiliation:   University College London
identifiers:
    - type: doi
      value: 10.1088/0031-9155/61/22/7975
repository-code: 'https://github.com/UCL/PETPVC'
keywords:
  - pet
  - spect
  - medical imaging
  - partial volume correction
  - open-source software
license: Apache-2.0

GitHub Events

Total
  • Issues event: 13
  • Watch event: 5
  • Issue comment event: 18
  • Push event: 4
  • Pull request event: 6
  • Fork event: 3
  • Create event: 1
Last Year
  • Issues event: 13
  • Watch event: 5
  • Issue comment event: 18
  • Push event: 4
  • Pull request event: 6
  • Fork event: 3
  • Create event: 1

Committers

Last synced: 9 months ago

All Time
  • Total Commits: 168
  • Total Committers: 15
  • Avg Commits per committer: 11.2
  • Development Distribution Score (DDS): 0.554
Past Year
  • Commits: 14
  • Committers: 1
  • Avg Commits per committer: 14.0
  • Development Distribution Score (DDS): 0.0
Top Committers
Name Email Commits
Ben Thomas b****s@u****k 75
bathomas u****n 36
Kris Thielemans k****s@u****k 34
Kris Thielemans k****s@g****m 4
Unknown B****s 4
Ghislain Antony Vaillant g****l@g****m 3
Ashley Gillman a****n@c****u 2
b.a.thomas@ucl.ac.uk 7****0 2
vesna cuplov v****v@u****k 2
Chris Markiewicz e****s@g****m 1
Codacy Badger b****r@c****m 1
Ben Thomas b****s@u****k 1
Matias Fernandez Paton 7****Z@i****s 1
Unknown b****s@c****v 1
bathomas b****s@c****e 1
Committer Domains (Top 20 + Academic)

Issues and Pull Requests

Last synced: 6 months ago

All Time
  • Total issues: 69
  • Total pull requests: 38
  • Average time to close issues: 5 months
  • Average time to close pull requests: 7 days
  • Total issue authors: 41
  • Total pull request authors: 7
  • Average comments per issue: 2.51
  • Average comments per pull request: 0.76
  • Merged pull requests: 37
  • Bot issues: 0
  • Bot pull requests: 0
Past Year
  • Issues: 7
  • Pull requests: 3
  • Average time to close issues: 27 days
  • Average time to close pull requests: 34 minutes
  • Issue authors: 7
  • Pull request authors: 1
  • Average comments per issue: 2.0
  • Average comments per pull request: 0.0
  • Merged pull requests: 3
  • Bot issues: 0
  • Bot pull requests: 0
Top Authors
Issue Authors
  • KrisThielemans (10)
  • bathomas (9)
  • mattvan83 (3)
  • ubersexualShupeng (3)
  • nanditajo (2)
  • alexsavio (2)
  • anbai106 (2)
  • rullator (2)
  • rijobro (2)
  • BWWwustl (2)
  • Bahri-M-A (2)
  • Riiiico (1)
  • ghost (1)
  • pradeepthiyyagura (1)
  • aabdalle (1)
Pull Request Authors
  • bathomas (23)
  • KrisThielemans (11)
  • ghisvail (3)
  • ashgillman (2)
  • codacy-badger (1)
  • mfdezp11 (1)
  • effigies (1)
Top Labels
Issue Labels
question (6) bug (4) enhancement (4) nice-to-have (3) help wanted (2) wontfix (1) upstream_problem (1)
Pull Request Labels
enhancement (3)

Dependencies

Dockerfile docker
  • alpine 3.16 build