ANIMA  4.0
Public Types | Public Member Functions | Static Public Member Functions | Protected Member Functions | List of all members
anima::TensorCompartment Class Reference

#include <animaTensorCompartment.h>

+ Inheritance diagram for anima::TensorCompartment:
+ Collaboration diagram for anima::TensorCompartment:

Public Types

typedef Superclass::Pointer BasePointer
 
typedef itk::SmartPointer< const SelfConstPointer
 
using LEcalculatorPointer = LEcalculatorType::Pointer
 
using LEcalculatorType = anima::LogEuclideanTensorCalculator< double >
 
typedef Superclass::Matrix3DType Matrix3DType
 
typedef Superclass::ModelOutputVectorType ModelOutputVectorType
 
typedef itk::SmartPointer< SelfPointer
 
typedef TensorCompartment Self
 
typedef BaseCompartment Superclass
 
typedef Superclass::Vector3DType Vector3DType
 
- Public Types inherited from anima::BaseCompartment
typedef itk::SmartPointer< const SelfConstPointer
 
typedef std::vector< double > ListType
 
typedef itk::Matrix< double, 3, 3 > Matrix3DType
 
typedef itk::VariableLengthVector< double > ModelOutputVectorType
 
typedef itk::SmartPointer< SelfPointer
 
typedef BaseCompartment Self
 
typedef itk::LightObject Superclass
 
typedef vnl_vector_fixed< double, 3 > Vector3DType
 

Public Member Functions

virtual ::itk::LightObject::Pointer CreateAnother (void) const
 
double GetApparentFractionalAnisotropy () ITK_OVERRIDE
 
double GetApparentMeanDiffusivity () ITK_OVERRIDE
 
double GetApparentParallelDiffusivity () ITK_OVERRIDE
 Get approximation to parallel diffusivity of the compartment (may be different from axial diffusivity which is an internal parameter of the model) More...
 
double GetApparentPerpendicularDiffusivity () ITK_OVERRIDE
 Get approximation to perpendicular diffusivity of the compartment (may be different from radial diffusivities which are internal parameters of the model) More...
 
double GetAxialDiffusivity () ITK_OVERRIDE
 
unsigned int GetCompartmentSize () ITK_OVERRIDE
 Number of parameters to describe the model, these parameters will be self-contained, i.e. include fixed parameters for example. More...
 
DiffusionModelCompartmentType GetCompartmentType () ITK_OVERRIDE
 Utility function to return compartment type without needing dynamic casts. More...
 
ModelOutputVectorTypeGetCompartmentVector () ITK_OVERRIDE
 Get compartment overall description vector, mainly for writing, should be self-contained. More...
 
const Matrix3DTypeGetDiffusionTensor () ITK_OVERRIDE
 Get compartment as a 3D tensor (default behavior: throw exception if not supported by the compartment model) More...
 
virtual double GetFourierTransformedDiffusionProfile (double smallDelta, double bigDelta, double gradientStrength, const Vector3DType &gradient) ITK_OVERRIDE
 
virtual double GetLogDiffusionProfile (const Vector3DType &sample) ITK_OVERRIDE
 
virtual const char * GetNameOfClass () const
 
unsigned int GetNumberOfParameters () ITK_OVERRIDE
 Number of optimized parameters: smaller than total number of parameters. More...
 
double GetOrientationPhi () ITK_OVERRIDE
 
double GetOrientationTheta () ITK_OVERRIDE
 
virtual ListTypeGetParameterLowerBounds () ITK_OVERRIDE
 
virtual ListTypeGetParametersAsVector () ITK_OVERRIDE
 
virtual ListTypeGetParameterUpperBounds () ITK_OVERRIDE
 
double GetPerpendicularAngle () ITK_OVERRIDE
 
double GetRadialDiffusivity1 () ITK_OVERRIDE
 
double GetRadialDiffusivity2 () ITK_OVERRIDE
 
virtual ListTypeGetSignalAttenuationJacobian (double smallDelta, double bigDelta, double gradientStrength, const Vector3DType &gradient) ITK_OVERRIDE
 
void Reorient (vnl_matrix< double > &orientationMatrix, bool affineTransform) ITK_OVERRIDE
 Reorient the fascicle compartment using a matrix, the flag specifies if the transform is affine or rigid. More...
 
void SetAxialDiffusivity (double num) ITK_OVERRIDE
 
void SetCompartmentVector (ModelOutputVectorType &compartmentVector) ITK_OVERRIDE
 Set compartment overall description vector, for setting automatically the individual parameters when reading from disk. More...
 
void SetEstimateDiffusivities (bool arg)
 
void SetOrientationPhi (double num) ITK_OVERRIDE
 
void SetOrientationTheta (double num) ITK_OVERRIDE
 
virtual void SetParametersFromVector (const ListType &params) ITK_OVERRIDE
 Various methods for optimization parameters setting and getting. More...
 
void SetPerpendicularAngle (double num) ITK_OVERRIDE
 
void SetRadialDiffusivity1 (double num) ITK_OVERRIDE
 
void SetRadialDiffusivity2 (double num) ITK_OVERRIDE
 
void UpdateParametersFromTensor ()
 
- Public Member Functions inherited from anima::BaseCompartment
virtual void CopyFromOther (Self *rhs)
 Copy internal parameters from another compartment, faster than a set/get compartment vector. More...
 
virtual double GetExtraAxonalFraction ()
 
virtual double GetOrientationConcentration ()
 
double GetPredictedSignal (double smallDelta, double bigDelta, double gradientStrength, const Vector3DType &gradient)
 
virtual bool GetTensorCompatible ()
 
virtual double GetTissueRadius ()
 
virtual bool IsEqual (Self *rhs, double tolerance=1.0e-2, double absoluteTolerance=1.0e-8)
 Tests equality to another compartment up to a constant (relative and absolute tolerances) More...
 
virtual void SetExtraAxonalFraction (double num)
 
virtual void SetOrientationConcentration (double num)
 
virtual void SetTissueRadius (double num)
 

Static Public Member Functions

static Pointer New ()
 

Protected Member Functions

 TensorCompartment ()
 
void UpdateAngleConfiguration ()
 Update angles' sine and cosine values from parameters. More...
 
void UpdateDiffusionTensor ()
 Update diffusion tensor value from parameters. More...
 
void UpdateInverseDiffusionTensor ()
 Update inverse diffusion tensor value from parameters. More...
 
virtual ~TensorCompartment ()
 
- Protected Member Functions inherited from anima::BaseCompartment
 BaseCompartment ()
 
virtual ~BaseCompartment ()
 

Additional Inherited Members

- Protected Attributes inherited from anima::BaseCompartment
ModelOutputVectorType m_CompartmentVector
 Vector to hold working value of compartment vector. More...
 
Matrix3DType m_DiffusionTensor
 Matrix to hold working value of diffusion tensor approximation to the model. More...
 
ListType m_JacobianVector
 Vector holding current jacobian value. More...
 
ListType m_ParametersLowerBoundsVector
 Vector holding current parameters lower bounds. More...
 
ListType m_ParametersUpperBoundsVector
 Vector holding current parameters upper bounds. More...
 
ListType m_ParametersVector
 Vector holding current parameters vector. More...
 
- Static Protected Attributes inherited from anima::BaseCompartment
static const unsigned int m_SpaceDimension = 3
 

Detailed Description

Definition at line 11 of file animaTensorCompartment.h.

Member Typedef Documentation

◆ BasePointer

Definition at line 17 of file animaTensorCompartment.h.

◆ ConstPointer

typedef itk::SmartPointer<const Self> anima::TensorCompartment::ConstPointer

Definition at line 19 of file animaTensorCompartment.h.

◆ LEcalculatorPointer

Definition at line 24 of file animaTensorCompartment.h.

◆ LEcalculatorType

Definition at line 23 of file animaTensorCompartment.h.

◆ Matrix3DType

Definition at line 22 of file animaTensorCompartment.h.

◆ ModelOutputVectorType

Definition at line 20 of file animaTensorCompartment.h.

◆ Pointer

typedef itk::SmartPointer<Self> anima::TensorCompartment::Pointer

Definition at line 18 of file animaTensorCompartment.h.

◆ Self

Definition at line 15 of file animaTensorCompartment.h.

◆ Superclass

Definition at line 16 of file animaTensorCompartment.h.

◆ Vector3DType

Definition at line 21 of file animaTensorCompartment.h.

Constructor & Destructor Documentation

◆ TensorCompartment()

anima::TensorCompartment::TensorCompartment ( )
inlineprotected

Definition at line 77 of file animaTensorCompartment.h.

◆ ~TensorCompartment()

virtual anima::TensorCompartment::~TensorCompartment ( )
inlineprotectedvirtual

Definition at line 91 of file animaTensorCompartment.h.

Member Function Documentation

◆ CreateAnother()

virtual::itk::LightObject::Pointer anima::TensorCompartment::CreateAnother ( void  ) const

◆ GetApparentFractionalAnisotropy()

double anima::TensorCompartment::GetApparentFractionalAnisotropy ( )
virtual

◆ GetApparentMeanDiffusivity()

double anima::TensorCompartment::GetApparentMeanDiffusivity ( )
virtual

◆ GetApparentParallelDiffusivity()

double anima::TensorCompartment::GetApparentParallelDiffusivity ( )
virtual

Get approximation to parallel diffusivity of the compartment (may be different from axial diffusivity which is an internal parameter of the model)

Reimplemented from anima::BaseCompartment.

Definition at line 500 of file animaTensorCompartment.cxx.

References GetAxialDiffusivity().

◆ GetApparentPerpendicularDiffusivity()

double anima::TensorCompartment::GetApparentPerpendicularDiffusivity ( )
virtual

Get approximation to perpendicular diffusivity of the compartment (may be different from radial diffusivities which are internal parameters of the model)

Reimplemented from anima::BaseCompartment.

Definition at line 505 of file animaTensorCompartment.cxx.

References GetRadialDiffusivity1(), and GetRadialDiffusivity2().

◆ GetAxialDiffusivity()

double anima::TensorCompartment::GetAxialDiffusivity ( )
virtual

◆ GetCompartmentSize()

unsigned int anima::TensorCompartment::GetCompartmentSize ( )
virtual

Number of parameters to describe the model, these parameters will be self-contained, i.e. include fixed parameters for example.

Implements anima::BaseCompartment.

Definition at line 334 of file animaTensorCompartment.cxx.

Referenced by GetCompartmentVector(), GetNumberOfParameters(), Reorient(), and SetCompartmentVector().

◆ GetCompartmentType()

DiffusionModelCompartmentType anima::TensorCompartment::GetCompartmentType ( )
inlinevirtual

Utility function to return compartment type without needing dynamic casts.

Implements anima::BaseCompartment.

Definition at line 32 of file animaTensorCompartment.h.

References anima::Tensor.

◆ GetCompartmentVector()

TensorCompartment::ModelOutputVectorType & anima::TensorCompartment::GetCompartmentVector ( )
virtual

Get compartment overall description vector, mainly for writing, should be self-contained.

Implements anima::BaseCompartment.

Definition at line 353 of file animaTensorCompartment.cxx.

References GetCompartmentSize(), anima::GetVectorRepresentation(), anima::BaseCompartment::m_CompartmentVector, and UpdateDiffusionTensor().

◆ GetDiffusionTensor()

const TensorCompartment::Matrix3DType & anima::TensorCompartment::GetDiffusionTensor ( )
virtual

Get compartment as a 3D tensor (default behavior: throw exception if not supported by the compartment model)

Reimplemented from anima::BaseCompartment.

Definition at line 393 of file animaTensorCompartment.cxx.

References UpdateDiffusionTensor().

◆ GetFourierTransformedDiffusionProfile()

double anima::TensorCompartment::GetFourierTransformedDiffusionProfile ( double  smallDelta,
double  bigDelta,
double  gradientStrength,
const Vector3DType gradient 
)
virtual

◆ GetLogDiffusionProfile()

double anima::TensorCompartment::GetLogDiffusionProfile ( const Vector3DType sample)
virtual

◆ GetNameOfClass()

virtual const char* anima::TensorCompartment::GetNameOfClass ( ) const
virtual

Run-time type information (and related methods)

Reimplemented from anima::BaseCompartment.

◆ GetNumberOfParameters()

unsigned int anima::TensorCompartment::GetNumberOfParameters ( )
virtual

Number of optimized parameters: smaller than total number of parameters.

Implements anima::BaseCompartment.

Definition at line 339 of file animaTensorCompartment.cxx.

References GetCompartmentSize().

Referenced by GetParameterLowerBounds(), GetParametersAsVector(), GetParameterUpperBounds(), GetSignalAttenuationJacobian(), and SetParametersFromVector().

◆ GetOrientationPhi()

double anima::TensorCompartment::GetOrientationPhi ( )
virtual

◆ GetOrientationTheta()

double anima::TensorCompartment::GetOrientationTheta ( )
virtual

◆ GetParameterLowerBounds()

TensorCompartment::ListType & anima::TensorCompartment::GetParameterLowerBounds ( )
virtual

◆ GetParametersAsVector()

TensorCompartment::ListType & anima::TensorCompartment::GetParametersAsVector ( )
virtual

◆ GetParameterUpperBounds()

TensorCompartment::ListType & anima::TensorCompartment::GetParameterUpperBounds ( )
virtual

◆ GetPerpendicularAngle()

double anima::TensorCompartment::GetPerpendicularAngle ( )
virtual

◆ GetRadialDiffusivity1()

double anima::TensorCompartment::GetRadialDiffusivity1 ( )
virtual

◆ GetRadialDiffusivity2()

double anima::TensorCompartment::GetRadialDiffusivity2 ( )
virtual

◆ GetSignalAttenuationJacobian()

TensorCompartment::ListType & anima::TensorCompartment::GetSignalAttenuationJacobian ( double  smallDelta,
double  bigDelta,
double  gradientStrength,
const Vector3DType gradient 
)
virtual

◆ New()

static Pointer anima::TensorCompartment::New ( )
static

◆ Reorient()

void anima::TensorCompartment::Reorient ( vnl_matrix< double > &  orientationMatrix,
bool  affineTransform 
)
virtual

Reorient the fascicle compartment using a matrix, the flag specifies if the transform is affine or rigid.

Reimplemented from anima::BaseCompartment.

Definition at line 364 of file animaTensorCompartment.cxx.

References anima::ExtractPPDRotationFromJacobianMatrix(), GetCompartmentSize(), anima::GetVectorRepresentation(), anima::RotateSymmetricMatrix(), SetCompartmentVector(), and UpdateDiffusionTensor().

◆ SetAxialDiffusivity()

void anima::TensorCompartment::SetAxialDiffusivity ( double  num)
virtual

◆ SetCompartmentVector()

void anima::TensorCompartment::SetCompartmentVector ( ModelOutputVectorType compartmentVector)
virtual

Set compartment overall description vector, for setting automatically the individual parameters when reading from disk.

Implements anima::BaseCompartment.

Definition at line 261 of file animaTensorCompartment.cxx.

References GetCompartmentSize(), anima::GetTensorFromVectorRepresentation(), and anima::BaseCompartment::m_SpaceDimension.

Referenced by Reorient().

◆ SetEstimateDiffusivities()

void anima::TensorCompartment::SetEstimateDiffusivities ( bool  arg)

Definition at line 252 of file animaTensorCompartment.cxx.

◆ SetOrientationPhi()

void anima::TensorCompartment::SetOrientationPhi ( double  num)
virtual

◆ SetOrientationTheta()

void anima::TensorCompartment::SetOrientationTheta ( double  num)
virtual

◆ SetParametersFromVector()

void anima::TensorCompartment::SetParametersFromVector ( const ListType params)
virtual

Various methods for optimization parameters setting and getting.

Implements anima::BaseCompartment.

Definition at line 185 of file animaTensorCompartment.cxx.

References GetNumberOfParameters(), SetAxialDiffusivity(), SetOrientationPhi(), SetOrientationTheta(), SetPerpendicularAngle(), SetRadialDiffusivity1(), and SetRadialDiffusivity2().

◆ SetPerpendicularAngle()

void anima::TensorCompartment::SetPerpendicularAngle ( double  num)
virtual

◆ SetRadialDiffusivity1()

void anima::TensorCompartment::SetRadialDiffusivity1 ( double  num)
virtual

◆ SetRadialDiffusivity2()

void anima::TensorCompartment::SetRadialDiffusivity2 ( double  num)
virtual

◆ UpdateAngleConfiguration()

void anima::TensorCompartment::UpdateAngleConfiguration ( )
protected

Update angles' sine and cosine values from parameters.

Definition at line 452 of file animaTensorCompartment.cxx.

References GetOrientationPhi(), GetOrientationTheta(), and GetPerpendicularAngle().

Referenced by UpdateDiffusionTensor().

◆ UpdateDiffusionTensor()

void anima::TensorCompartment::UpdateDiffusionTensor ( )
protected

◆ UpdateInverseDiffusionTensor()

void anima::TensorCompartment::UpdateInverseDiffusionTensor ( )
protected

Update inverse diffusion tensor value from parameters.

Definition at line 430 of file animaTensorCompartment.cxx.

References anima::BaseCompartment::m_SpaceDimension, and UpdateDiffusionTensor().

Referenced by GetLogDiffusionProfile().

◆ UpdateParametersFromTensor()

void anima::TensorCompartment::UpdateParametersFromTensor ( )

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