CASToR  3.2
Tomographic Reconstruction (PET/SPECT/CT)
Public Member Functions | Protected Attributes | List of all members
iLinearModel Class Reference

This class implements a general linear dynamic model applied between the images of a dynamic acquisition
The model is applied on a voxel-by-voxel basis between the images of the frames and/or respiratory/cardiac gates. More...

#include <iLinearModel.hh>

Inheritance diagram for iLinearModel:
Inheritance graph
Collaboration diagram for iLinearModel:
Collaboration graph

Public Member Functions

 iLinearModel ()
 Constructor of iLinearModel. Simply set all data members to default values. More...
 
 ~iLinearModel ()
 Destructor of iLinearModel. More...
 
int CheckSpecificParameters ()
 This function is used to check whether all member variables have been correctly initialized or not. More...
 
int CheckSpecificParametersForAllLinearModels ()
 This function is used to check parameters for all Linear Models.
. More...
 
virtual int ReadAndCheckConfigurationFileSpecific ()
 This function is used to read options from a configuration file. More...
 
int ReadAndCheckOptionsList (string a_listOptions)
 
int ReadAndCheckConfigurationFileSpecificToAllLinearModels ()
 This function is used to read parameters that are generic for all Linear Models.
. More...
 
int InitializeSpecific ()
 This function is used to initialize the parametric images and basis functions for all Linear Models. More...
 
int InitializeSpecificToAllLinearModels ()
 This function is used to initialize the parametric images and basis functions for all Linear Models. More...
 
void ShowBasisFunctions ()
 This function is used to print the basis functions. More...
 
void ShowHelpModelSpecific ()
 This function is used to print out specific help about the dynamic model and its options. It is pure virtual so must be implemented by children. More...
 
int EstimateModelParameters (oImageSpace *ap_Image, int a_ite, int a_sset)
 
int EstimateImageWithModel (oImageSpace *ap_Image, int a_ite, int a_sset)
 
int NestedEM (oImageSpace *ap_ImageS, int a_ite)
 
int EstimateParametersWithNNLS (oImageSpace *ap_ImageS, int a_ite)
 
int Patlak_LS (oImageSpace *ap_ImageS, int a_ite)
 
 iLinearModel ()
 
 ~iLinearModel ()
 
int CheckSpecificParameters ()
 This function is used to check the parameters of the child functions before initialization if required. More...
 
int CheckSpecificParametersForAllLinearModels ()
 
virtual int ReadAndCheckConfigurationFileSpecific ()
 This function is used to read options from a configuration file.
It is pure virtual so must be implemented by children. More...
 
int ReadAndCheckOptionsList (string a_listOptions)
 
int ReadAndCheckConfigurationFileSpecificToAllLinearModels ()
 
int InitializeSpecific ()
 A private function used to initialize everything specific to the child model. More...
 
int InitializeSpecificToAllLinearModels ()
 
void ShowBasisFunctions ()
 
void ShowHelpModelSpecific ()
 This function is used to print out specific help about the dynamic model and its options. It is pure virtual so must be implemented by children. More...
 
int EstimateModelParameters (oImageSpace *ap_Image, int a_ite, int a_sset)
 
int EstimateImageWithModel (oImageSpace *ap_Image, int a_ite, int a_sset)
 
int NestedEM (oImageSpace *ap_ImageS, int a_ite)
 
int EstimateParametersWithNNLS (oImageSpace *ap_ImageS, int a_ite)
 
int Patlak_LS (oImageSpace *ap_ImageS, int a_ite)
 
- Public Member Functions inherited from vDynamicModel
 vDynamicModel ()
 Constructor of vDynamicModel. Simply set all data members to default values. More...
 
virtual ~vDynamicModel ()
 Destructor of vDynamicModel. More...
 
void SetImageDimensionsAndQuantification (oImageDimensionsAndQuantification *ap_ImageDimensionsAndQuantification)
 
void SetVerbose (int a_verbose)
 
virtual int CheckParameters ()
 This function is used to check parameters after the latter have been all set using Set functions. More...
 
int ReadAndCheckConfigurationFile (string a_fileOptions)
 
int Initialize ()
 A public function used to initialize the dynamic model. More...
 
void ShowHelp ()
 This function is used to print out general help about dynamic models. More...
 
virtual int EstimateModel (oImageSpace *ap_Image, int a_ite, int a_sset)
 
virtual int EstimateImage (oImageSpace *ap_Image, int a_ite, int a_sset)
 
int SaveParametricImages (int a_iteration, int a_subset=-1)
 
virtual int ApplyOutputFOVMaskingOnParametricImages ()
 Mask the outside of the transaxial FOV based on the m_fovOutPercent. More...
 
bool GetAICflag ()
 
bool GetModelBasisFunctionsRequiredFlag ()
 
int GetNbTimeBasisFunctions ()
 
FLTNB ** GetTimeBasisFunctions ()
 
virtual void ComputeOutputParImage ()
 Compute output image using the m2p_parametricImages matrix Store the result in the m2p_outputParImages matrix. More...
 
void SetUseModelInReconstruction (bool a_useModelInReconstruction)
 
int NNLS (FLTNB **A, int m, int n, FLTNB *B, FLTNB *X, FLTNB *rnorm, FLTNB *wp, FLTNB *zzp, int *indexp)
 
 vDynamicModel ()
 
virtual ~vDynamicModel ()
 
void SetImageDimensionsAndQuantification (oImageDimensionsAndQuantification *ap_ImageDimensionsAndQuantification)
 
void SetVerbose (int a_verbose)
 
virtual int CheckParameters ()
 
int ReadAndCheckConfigurationFile (string a_fileOptions)
 
int Initialize ()
 
void ShowHelp ()
 
virtual int EstimateModel (oImageSpace *ap_Image, int a_ite, int a_sset)
 
virtual int EstimateImage (oImageSpace *ap_Image, int a_ite, int a_sset)
 
int SaveParametricImages (int a_iteration, int a_subset=-1)
 
virtual int ApplyOutputFOVMaskingOnParametricImages ()
 
bool GetAICflag ()
 
bool GetModelBasisFunctionsRequiredFlag ()
 
int GetNbTimeBasisFunctions ()
 
FLTNB ** GetTimeBasisFunctions ()
 
virtual void ComputeOutputParImage ()
 
void SetUseModelInReconstruction (bool a_useModelInReconstruction)
 
int NNLS (FLTNB **A, int m, int n, FLTNB *B, FLTNB *X, FLTNB *rnorm, FLTNB *wp, FLTNB *zzp, int *indexp)
 

Protected Attributes

int m_OptimisationMethod
 
int m_nbRgateBF
 
int m_nbCgateBF
 
FLTNB ** m2p_respBasisFunctions
 
FLTNB ** m2p_cardBasisFunctions
 
FLTNBmp_corrBasisCoeffs
 
FLTNBmp_corrBasisFunctions
 
uint32_t m_nbLinearModelCycles
 
int m_basisFunctionsUpdStartIte
 
int m_basisFunctionsUpdRatio
 
int m_basisFunctionsUpdIdx
 
- Protected Attributes inherited from vDynamicModel
oImageDimensionsAndQuantificationmp_ID
 
int m_verbose
 
int m_nbTimeBF
 
int m_nbWeightFactors
 
int m_nbModelParam
 
int m_nbRGModelParam
 
int m_nbCGModelParam
 
string m_AICfile
 
oArterialInputCurvemp_ArterialInputCurve
 
FLTNB ** m2p_parametricImages
 
FLTNBmp_blackListedvoxelsImage
 
FLTNB ** m2p_nestedModelTimeBasisFunctions
 
FLTNB ** m2p_outputParImages
 
FLTNB ** m2p_RGParametricImages
 
FLTNB ** m2p_CGParametricImages
 
string m_fileOptions
 
string m_listOptions
 
bool m_checked
 
bool m_initialized
 
bool m_useModelInReconstruction
 
bool m_saveParImageFlag
 
bool m_saveBlacklistedImageMaskFlag
 
bool m_AICfileProvided
 
bool m_ModelSpecificBasisFunctionsRequired
 
bool m_noImageUpdateFlag
 
bool m_noParametersUpdateFlag
 
int m_startIteUpdateFlag
 
FLTNBmp_maskModel
 
INTNB m_nbVoxelsMask
 
FLTNBmp_w
 
FLTNB *** m3p_nnlsA
 
FLTNB ** m2p_nnlsB
 
FLTNB ** m2p_nnlsMat
 
FLTNB ** m2p_nnlsX
 
FLTNB ** m2p_nnlsWp
 
int ** m2p_nnlsIdx
 
uint16_t m_nnlsN =0
 

Detailed Description

This class implements a general linear dynamic model applied between the images of a dynamic acquisition
The model is applied on a voxel-by-voxel basis between the images of the frames and/or respiratory/cardiac gates.

Definition at line 40 of file code/include/dynamic/iLinearModel.hh.

Constructor & Destructor Documentation

◆ iLinearModel() [1/2]

iLinearModel::iLinearModel ( )

Constructor of iLinearModel. Simply set all data members to default values.

Definition at line 19 of file code/src/dynamic/iLinearModel.cc.

◆ ~iLinearModel() [1/2]

iLinearModel::~iLinearModel ( )

Destructor of iLinearModel.

Definition at line 54 of file code/src/dynamic/iLinearModel.cc.

Here is the call graph for this function:

◆ iLinearModel() [2/2]

iLinearModel::iLinearModel ( )

◆ ~iLinearModel() [2/2]

iLinearModel::~iLinearModel ( )

Member Function Documentation

◆ CheckSpecificParameters() [1/2]

int iLinearModel::CheckSpecificParameters ( )
virtual

This function is used to check whether all member variables have been correctly initialized or not.

Returns
0 if success, positive value otherwise.

Implements vDynamicModel.

Reimplemented in iLinearModelTemplate, iLinearModelTemplate, iLinearPatlakModel, iLinearPatlakModel, iLinearSpectralModel, and iLinearSpectralModel.

Definition at line 420 of file code/src/dynamic/iLinearModel.cc.

Here is the call graph for this function:

◆ CheckSpecificParameters() [2/2]

int iLinearModel::CheckSpecificParameters ( )
virtual

This function is used to check the parameters of the child functions before initialization if required.

It could be overloaded by the child if needed. Default implementation is empty and return 0.

Returns
0 if success, other value otherwise.

Implements vDynamicModel.

Reimplemented in iLinearModelTemplate, iLinearPatlakModel, and iLinearSpectralModel.

◆ CheckSpecificParametersForAllLinearModels() [1/2]

int iLinearModel::CheckSpecificParametersForAllLinearModels ( )

This function is used to check parameters for all Linear Models.
.

Returns
0 if success, other value otherwise.

Definition at line 447 of file code/src/dynamic/iLinearModel.cc.

Here is the call graph for this function:
Here is the caller graph for this function:

◆ CheckSpecificParametersForAllLinearModels() [2/2]

int iLinearModel::CheckSpecificParametersForAllLinearModels ( )

◆ EstimateImageWithModel() [1/2]

int iLinearModel::EstimateImageWithModel ( oImageSpace ap_Image,
int  a_ite,
int  a_sset 
)
virtual

Implements vDynamicModel.

Definition at line 1881 of file code/src/dynamic/iLinearModel.cc.

Here is the call graph for this function:

◆ EstimateImageWithModel() [2/2]

int iLinearModel::EstimateImageWithModel ( oImageSpace ap_Image,
int  a_ite,
int  a_sset 
)
virtual

Implements vDynamicModel.

◆ EstimateModelParameters() [1/2]

int iLinearModel::EstimateModelParameters ( oImageSpace ap_Image,
int  a_ite,
int  a_sset 
)
virtual

Implements vDynamicModel.

Definition at line 990 of file code/src/dynamic/iLinearModel.cc.

Here is the call graph for this function:

◆ EstimateModelParameters() [2/2]

int iLinearModel::EstimateModelParameters ( oImageSpace ap_Image,
int  a_ite,
int  a_sset 
)
virtual

Implements vDynamicModel.

◆ EstimateParametersWithNNLS() [1/2]

int iLinearModel::EstimateParametersWithNNLS ( oImageSpace ap_ImageS,
int  a_ite 
)

◆ EstimateParametersWithNNLS() [2/2]

int iLinearModel::EstimateParametersWithNNLS ( oImageSpace ap_ImageS,
int  a_ite 
)

Definition at line 1569 of file code/src/dynamic/iLinearModel.cc.

Here is the call graph for this function:
Here is the caller graph for this function:

◆ InitializeSpecific() [1/2]

int iLinearModel::InitializeSpecific ( )
virtual

A private function used to initialize everything specific to the child model.

This function is used to initialize everything specific to the model that should be initialized. It is called by the Initialize() function. It is pure virtual so is implemented only by children.

Returns
An integer reflecting the initialization status; 0 if no problem, another value otherwise.

Implements vDynamicModel.

Reimplemented in iLinearModelTemplate, iLinearPatlakModel, and iLinearSpectralModel.

◆ InitializeSpecific() [2/2]

int iLinearModel::InitializeSpecific ( )
virtual

This function is used to initialize the parametric images and basis functions for all Linear Models.

Returns
0 if success, other value otherwise.
0 if success, other value otherwise.

Implements vDynamicModel.

Reimplemented in iLinearModelTemplate, iLinearModelTemplate, iLinearPatlakModel, iLinearPatlakModel, iLinearSpectralModel, and iLinearSpectralModel.

Definition at line 951 of file code/src/dynamic/iLinearModel.cc.

Here is the call graph for this function:

◆ InitializeSpecificToAllLinearModels() [1/2]

int iLinearModel::InitializeSpecificToAllLinearModels ( )

◆ InitializeSpecificToAllLinearModels() [2/2]

int iLinearModel::InitializeSpecificToAllLinearModels ( )

This function is used to initialize the parametric images and basis functions for all Linear Models.

Returns
0 if success, other value otherwise.
0 if success, other value otherwise.

Definition at line 520 of file code/src/dynamic/iLinearModel.cc.

Here is the call graph for this function:
Here is the caller graph for this function:

◆ NestedEM() [1/2]

int iLinearModel::NestedEM ( oImageSpace ap_ImageS,
int  a_ite 
)

Definition at line 1072 of file code/src/dynamic/iLinearModel.cc.

Here is the call graph for this function:
Here is the caller graph for this function:

◆ NestedEM() [2/2]

int iLinearModel::NestedEM ( oImageSpace ap_ImageS,
int  a_ite 
)

◆ Patlak_LS() [1/2]

int iLinearModel::Patlak_LS ( oImageSpace ap_ImageS,
int  a_ite 
)

◆ Patlak_LS() [2/2]

int iLinearModel::Patlak_LS ( oImageSpace ap_ImageS,
int  a_ite 
)

Definition at line 1808 of file code/src/dynamic/iLinearModel.cc.

Here is the call graph for this function:
Here is the caller graph for this function:

◆ ReadAndCheckConfigurationFileSpecific() [1/2]

virtual int iLinearModel::ReadAndCheckConfigurationFileSpecific ( )
virtual

This function is used to read options from a configuration file.
It is pure virtual so must be implemented by children.

Returns
0 if success, other value otherwise.

Implements vDynamicModel.

Reimplemented in iLinearModelTemplate, iLinearModelTemplate, iLinearPatlakModel, iLinearPatlakModel, iLinearSpectralModel, and iLinearSpectralModel.

◆ ReadAndCheckConfigurationFileSpecific() [2/2]

int iLinearModel::ReadAndCheckConfigurationFileSpecific ( )
virtual

This function is used to read options from a configuration file.

Returns
0 if success, other value otherwise.

Implements vDynamicModel.

Reimplemented in iLinearModelTemplate, iLinearModelTemplate, iLinearPatlakModel, iLinearPatlakModel, iLinearSpectralModel, and iLinearSpectralModel.

Definition at line 212 of file code/src/dynamic/iLinearModel.cc.

Here is the call graph for this function:

◆ ReadAndCheckConfigurationFileSpecificToAllLinearModels() [1/2]

int iLinearModel::ReadAndCheckConfigurationFileSpecificToAllLinearModels ( )

This function is used to read parameters that are generic for all Linear Models.
.

Returns
0 if success, other value otherwise.

Definition at line 236 of file code/src/dynamic/iLinearModel.cc.

Here is the call graph for this function:
Here is the caller graph for this function:

◆ ReadAndCheckConfigurationFileSpecificToAllLinearModels() [2/2]

int iLinearModel::ReadAndCheckConfigurationFileSpecificToAllLinearModels ( )

◆ ReadAndCheckOptionsList() [1/2]

int iLinearModel::ReadAndCheckOptionsList ( string  a_listOptions)
virtual

◆ ReadAndCheckOptionsList() [2/2]

int iLinearModel::ReadAndCheckOptionsList ( string  a_listOptions)
virtual

◆ ShowBasisFunctions() [1/2]

void iLinearModel::ShowBasisFunctions ( )

This function is used to print the basis functions.

Definition at line 919 of file code/src/dynamic/iLinearModel.cc.

Here is the call graph for this function:
Here is the caller graph for this function:

◆ ShowBasisFunctions() [2/2]

void iLinearModel::ShowBasisFunctions ( )

◆ ShowHelpModelSpecific() [1/2]

void iLinearModel::ShowHelpModelSpecific ( )
virtual

This function is used to print out specific help about the dynamic model and its options. It is pure virtual so must be implemented by children.

Implements vDynamicModel.

Reimplemented in iLinearModelTemplate, iLinearModelTemplate, iLinearPatlakModel, iLinearPatlakModel, iLinearSpectralModel, and iLinearSpectralModel.

Definition at line 117 of file code/src/dynamic/iLinearModel.cc.

Here is the call graph for this function:

◆ ShowHelpModelSpecific() [2/2]

void iLinearModel::ShowHelpModelSpecific ( )
virtual

This function is used to print out specific help about the dynamic model and its options. It is pure virtual so must be implemented by children.

Implements vDynamicModel.

Reimplemented in iLinearModelTemplate, iLinearPatlakModel, and iLinearSpectralModel.

Member Data Documentation

◆ m2p_cardBasisFunctions

FLTNB ** iLinearModel::m2p_cardBasisFunctions
protected

Vector containing the cardiac gating model temporal basis functions
2 pointers:
1: index of the temporal function
2: coefficient of the functions for each cardiac gate

Definition at line 183 of file code/include/dynamic/iLinearModel.hh.

◆ m2p_respBasisFunctions

FLTNB ** iLinearModel::m2p_respBasisFunctions
protected

Vector containing the respiratory gating model temporal basis functions
2 pointers:
1: index of the temporal function
2: coefficient of the functions for each respiratory gate

Definition at line 179 of file code/include/dynamic/iLinearModel.hh.

◆ m_basisFunctionsUpdIdx

int iLinearModel::m_basisFunctionsUpdIdx
protected

Index to compute the ratio for the parametric images/basis functions updates cycle

Definition at line 195 of file code/include/dynamic/iLinearModel.hh.

◆ m_basisFunctionsUpdRatio

int iLinearModel::m_basisFunctionsUpdRatio
protected

Ratio for the parametric images/basis functions updates cycle.
Cycles consist in 'm_basisFunctionsUpdRate' iterations of the parametric images, following by 'm_basisFunctionsUpdRate' iterations of the basis functions

Definition at line 193 of file code/include/dynamic/iLinearModel.hh.

◆ m_basisFunctionsUpdStartIte

int iLinearModel::m_basisFunctionsUpdStartIte
protected

Starting iteration for the update of basis functions.
If negative, no update of the basis functions is performed (only parametric images are updated)

Definition at line 191 of file code/include/dynamic/iLinearModel.hh.

◆ m_nbCgateBF

int iLinearModel::m_nbCgateBF
protected

Number of time basis functions applied to cardiac gates in the model

Definition at line 175 of file code/include/dynamic/iLinearModel.hh.

◆ m_nbLinearModelCycles

uint32_t iLinearModel::m_nbLinearModelCycles
protected

Number of iteration of the model (one cycle consists in several updates of either the parametric images or the basis function)

Definition at line 190 of file code/include/dynamic/iLinearModel.hh.

◆ m_nbRgateBF

int iLinearModel::m_nbRgateBF
protected

Number of time basis functions applied to respiratory gates in the model

Definition at line 174 of file code/include/dynamic/iLinearModel.hh.

◆ m_OptimisationMethod

int iLinearModel::m_OptimisationMethod
protected

Number indicating the method to estimate parameters, from the available options.

Definition at line 173 of file code/include/dynamic/iLinearModel.hh.

◆ mp_corrBasisCoeffs

FLTNB * iLinearModel::mp_corrBasisCoeffs
protected

Image matrix containing correction factors for the parametric images updates

Definition at line 188 of file code/include/dynamic/iLinearModel.hh.

◆ mp_corrBasisFunctions

FLTNB * iLinearModel::mp_corrBasisFunctions
protected

Vector containing correction factors for the temporal basis functions updates

Definition at line 189 of file code/include/dynamic/iLinearModel.hh.


The documentation for this class was generated from the following files: