Differences between revisions 47 and 48
Deletions are marked like this. Additions are marked like this.
Line 34: Line 34:
{{{ {{{#!python
Line 37: Line 37:
{{{#! red
def hello():
    print "Hello World!"

Example: {{{
#!python
from colors import palette
palette.colorize('python')
Line 41: Line 43:

Index

BrainPET Reconstruction Algorithms


/!\ This page is only to process PET-MR data acquired using BrainPET (Bay 6) scanner at the Athinoula A. Martinos Center for Biomedical Imaging.

For questions/feedback, please contact Meena M. Makary (mmakary@mgh.harvard.edu) and Dr. Catana (ccatana@mgh.harvard.edu) OR preferably use this Teams Channel Positron


Aether-Mirror Version

This version mirrors the attenuation map generation and reconstruction algorithms that were used on Aether. We recommend to use this version only for continuation studies. Scripts are located inside: /autofs/cluster/petcore/PET_computer_backup/brainPET_code/Aether-Mirror. You will have to cd to this folder before running any of the functions below.

PseudoCT mu-map generation

This function generates pseudoCT mu-map using SPM8 atlas-based method (David Izquierdo-Garcia et al.)

(!) For full instructions type: perl brainPET_pCT_AeMir.pl -h

  • For DICOM input:

   1 perl brainPET_pCT_AeMir.pl -i /<DIR>/<SUJID>/MR/MPRAGE -f 107000-000005-000001.dcm -c 0

Example:

   1 from colors import palette
   2 palette.colorize('python')

where 107000-000005-000001.dcm is the file name of the first dcm file.

  • For NIFTI input

perl brainPET_pCT_AeMir.pl -i /<DIR>/<SUJID>/MR_PET -f cp_iso_mprage.nii -c 0
  • IMP1: The r-l flip is applied only to .dcm input but not to .nii input (see Imp2)
  • IMP2: If you input a nifti file, it should be named as cp_iso_mprage.nii and it should be r-l flipped (i.e., it is the output of a previously ran pesudo CT).

Single Frame Dual Pass

This function generates single-frame PET image files from list-mode data. It assumes a particular folder structure for it to work: Parent Folder: MR, MR_PET (> mu_maps > mu_map), PET > (list mode data). From the list mode data, TAC will generate images with a user defined duration for a number of selectable isotopes. It first reconstructs PET frames using the native position of mu-map (1st pass) and later registers the mu-map to the position of late PET window (e.g. 60-90 for PBR28) before the 2nd pass of reconstruction. The resulting images can be viewed as either SUV, bqml, or nas images. Mu maps must be present.

(!) For full instructions type: perl brainPET_recon_2passSF_AeMir.pl -h

perl brainPET_recon_2passSF_AeMir.pl -i /<path>/<SUBJ_ID> -s 3600 -d 1800 -e 5 -p 0 -r 0

This will reconstruct dual-pass single (60-90) mins frame for [11C] list mode data.

  • IMP1: If the subject has more than one frame, no need to delete any frame -- the script recognizes the timings automatically.

Dynamic Frame Reconstruction (TAC)

This function generates single frame PET image files from list mode data. It assumes a particular folder structure for it to work: Parent Folder: MR, MR_PET (> mu_maps > mu_map), PET > (list mode data). From the list mode data, TAC will generate images with a user defined duration for a number of selectable isotopes. The resulting images can be viewed as either SUV, bqml, or nas images. Mu maps must be present.

(!) For full instructions type: perl brainPET_recon_DF_AeMir.pl -h

perl brainPET_recon_DF_AeMir.pl -i /<full_path>/<subj_id>/PET -f Frame1.lst -d dynamic_frame_list.txt -e 5 -s '[1 0 1]' -t 0.8

This will reconstruct dynamic frame PET image according to frames length indicated in dynamic_frame_list.txt (which should be located inside PET folder) for [11C] list mode data (Frame1.lst). It will output both SUV and SUV_BQML.

Supporting Functions

Download and Organize MR and PET Data

This function to creates subject directory and its PET/MR/MR_PET sub-directories, download its MR and/or PET data, and unpack & organize MR data. You can download old and recently acquired data (see the note below for old data download). It also allows you to QC TOI/ScanID/ScanDate/PI through terminal output.

(!) For full instructions type: perl brainPET_mrpet_dwnld_unpack.pl -h

perl brainPET_mrpet_dwnld_unpack.pl -d /<DIR> -s <SubjID> -id <ScanID> -mr 1 -pet 1

To download an old subject (acquired more than 4 years ago), please do the following:

  1. ssh to pinto.nmr.mgh.harvard.edu

  2. cd to where the code is located
  3. type: bash (and hit enter)
  4. re-run the script

The script automatically detects if the subject is old or recently acquired and an error message will pop up with instructions in case of an old subject.

Denoise MPRAGE

This function performs thresholding-based denoising for the MPRAGE image to clean it for better pseudo-CT results. Use it only if the mprage is noisy. It works only with nifti (.nii) file as input. It takes a denoising threshold (intensity) to remove noise in the image, and a Gauss smoothing factor (mm) to facilitate denoising.

(!) For full instructions type: perl brainPET_denoise_mprage.pl -h

perl brainPET_denoise_mprage.pl -i /<DIR>/<SUBJID>/MR_PET/cp_iso_mprage.nii -t 25 -s 0

Outputs: cp_iso_mprage_denoised_thres<>_smooth<>mm.nii and scp_iso_mprage.nii (this is the smoothed version of the input image, it should be identical to the input if the smoothing was set to 0). The output is saved in the same folder as the input.

ifile2nifti

This function converts brainPET ifile to nifit format.

(!) For full instructions type: perl brainPET_ifile2nifti.pl -h

perl brainPET_ifile2nifti.pl -i /<DIR>/file.i

Development Version

UNDER CONSTRUCTION !!

BrainPET (last edited 2021-11-09 12:13:59 by MeenaMakary)