ENHANCE-PET / FALCON

FALCON is a Python-based software application designed to facilitate PET motion correction, both for head and total-body scans. Our program is built around the fast 'greedy' registration toolkit, which serves as the registration engine. With FALCON, users can enjoy a streamlined experience for implementing motion correction.
GNU General Public License v3.0
36 stars 6 forks source link
brain-pet-motion-correction data-driven-pet-motion-correction falcon motion-correction pet-imaging total-body-pet-motion-correction

πŸ¦… FALCON 2.0: PET Motion Correction: Any Tracer, Any Region.

PyPI version Documentation Status Monthly Downloads Daily DownloadsDiscord YouTube

FALCON V2 (Fast Algorithms for motion correction) is an advanced, fully-automatic tool for motion correction in dynamic total-body or whole-body PET imaging. Designed with flexibility and reliability at its core, it's now even more versatile, capable of operating across various operating systems and architectures. πŸš€

Shows an illustrated MOOSE story board adopted to different themes

🌟 Major Features

❀️ Citations

If you find FALCON useful, please cite the following publications:

Star History 🀩

Star History Chart

πŸš€ FALCON's motion correction in action

Shows an illustrated MOOSE story board adopted to different themes

In this analysis, we are examining the mean image of 20 dynamic frames of a 68Ga-PSMA study both before and after motion correction. By comparing the two mean images, we can clearly see the significant improvement that results from motion correction. The mean image after motion correction appears noticeably sharper and more defined than the one before correction.

πŸ›  Installation Guide

Virtual Environment Setup

Creating a virtual environment is highly recommended to avoid any potential conflicts with other Python packages.

Installing FALCON V2

With your virtual environment activated, install FALCON V2 using pip:

pip install falconz # stable recommended version

πŸš€ Usage

FALCON supports DICOM, Nifti, Analyze, and Metaimage file formats, whether it's a single 4D image or multiple 3D images. Simply specify the directory where the files are located and indicate the registration type. FALCON will take care of the rest.

To use FALCON, use the following syntax:

falconz -d path_to_4d_images -r <rigid | affine | deformable> -i <number_of_iterations_per_level> -sf <starting_frame_from_which_moco_should_be_performed> -rf <reference_frame>

Here's an example of using FALCON in Pro mode:

falconz -d /Documents/Sub001 -r deformable -i 100x50x25 -sf 0 -rf -1

In this example, FALCON is performing deformable registration with 100, 50, and 25 iterations at each level of the multi-scale registration. The registration starts from the 1st frame and uses the last frame as the reference.

Here's an example of using FALCON in lazy mode:

falconz -d /Documents/Sub001 -r deformable # for whole-body registration
falconz -d /Documents/Sub001 -r rigid # for brain only studies (much faster processing)

We also offer a specialized πŸš€ Dash mode, engineered for rapid motion correction across total-body datasets. Execute complex whole-body registration tasks at unprecedented speeds ⚑ with a simple command! πŸ‘©β€πŸ’»πŸ‘¨β€πŸ’»

falconz -d /Documents/Sub001 -r deformable -m dash # for high-velocity whole-body registration

As shown above, you don't need to specify many additional parameters. The rest of the parameters are either inferred or set automatically based on common standards.

⚠️ Note: If you're not satisfied with the 'inferred' start frame, you can always set it on your own (the internal threshold is set to be quite safe). Refer to the manuscript for more information.

If you need help with FALCON or want to review the command-line options, use:

falconz --help

Please note that the number of iterations is specified as a string of values separated by 'x' in the -i option. For example, to perform 50 iterations at each level, you would use -i 50x50x50.

πŸ—‚ Required Folder Structure:

Required Folder Structure

FALCON accepts the following file formats for dynamic PET images: .dcm, .ima, .nii, .nii.gz, and .img/hdr.

Here are some examples to illustrate the accepted folder structures:

  1. For a bunch of DICOM (.dcm) or IMA (.ima) files:

    └── PET_WB_DYNAMIC_(QC)_0005  
        β”œβ”€β”€ XXX_1.dcm
        β”œβ”€β”€ XXX_2.dcm
        └── ...
  2. For a single 4D Nifti (.nii or .nii.gz) file:

    └── PET_WB_DYNAMIC_(QC)_0005  
        └── XXX.nii.gz
  3. For a bunch of 3D Nifti (.nii or .nii.gz) files:

    └── PET_WB_DYNAMIC_(QC)_0005  
        β”œβ”€β”€ XXX_1.nii.gz
        β”œβ”€β”€ XXX_2.nii.gz
        └── ...
  4. For Analyze (.img/hdr) files:

    └── PET_WB_DYNAMIC_(QC)_0005  
        β”œβ”€β”€ XXX.img
        β”œβ”€β”€ XXX.hdr
        └── ...

The main folder, PET_WB_DYNAMIC_(QC)_0005, should contain the dynamic PET images to be motion corrected.

πŸ—‚ Resultant Folder Structure

Upon successful execution, FALCON auto-generates an organized output directory, positioned at the same hierarchical level as your original dynamic PET image folder. This dedicated directory carries a unique naming schema that incorporates 'FALCONZ', the version number, and a timestamp for easy identification.

Here's a snapshot of the output folder structure:

FALCONZ-V02-2023-09-03-17-28-17/  # Automatically generated results folder
β”œβ”€β”€ Motion-corrected-images       # Corrected dynamic PET images
β”œβ”€β”€ ncc-images                    # Normalized Cross-Correlation images for start frame identification
β”œβ”€β”€ Split-Nifti-files             # Individual 3D Nifti files
└── transforms                    # Transformation data for motion correction

Folder Components

πŸ–ΌοΈ Motion-corrected-images

This is where you'll find the final dynamic PET images, now refined through motion correction procedures. 🌟

πŸ“Š ncc-images

A collection of Normalized Cross-Correlation imagesβ€”these serve as essential tools πŸ› οΈ for determining the most appropriate start frame for motion correction.

πŸ“ Split-Nifti-files

This folder contains individual 3D Nifti files, which are crucial πŸ—οΈ for conducting the motion correction operations.

πŸ”„ transforms

This section archives the warp fields in cases of deformable registration and the transformation matrices πŸ“ for rigid or affine registrations, allowing for transparency and potential reusability of these parameters.

FALCON doesn't just deliver high-precision motion-corrected images; it also provides a comprehensive, organized output structure πŸ—‚οΈ designed for immediate utility and future analysis. πŸš€

❓ Frequently Asked Questions

Before raising an issue, check out our growing Frequently Asked Questions section.

πŸ‘₯ Contributors

Lalith Kumar Shiyam Sundar
Lalith Kumar Shiyam Sundar

πŸ’» πŸ“–
Sebastian Gutschmayer
Sebastian Gutschmayer

πŸ’»
Z.K Li
Z.K Li

πŸ“–
Manuel Pires
Manuel Pires

πŸ’»