ANIMA  4.0
Public Types | Public Member Functions | Protected Member Functions | Protected Attributes | Static Protected Attributes | List of all members
anima::BaseCompartment Class Referenceabstract

#include <animaBaseCompartment.h>

+ Inheritance diagram for anima::BaseCompartment:
+ Collaboration diagram for anima::BaseCompartment:

Public Types

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

Protected Member Functions

 BaseCompartment ()
 
virtual ~BaseCompartment ()
 

Protected Attributes

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

static const unsigned int m_SpaceDimension = 3
 

Detailed Description

Definition at line 30 of file animaBaseCompartment.h.

Member Typedef Documentation

◆ ConstPointer

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

Definition at line 37 of file animaBaseCompartment.h.

◆ ListType

typedef std::vector<double> anima::BaseCompartment::ListType

Definition at line 47 of file animaBaseCompartment.h.

◆ Matrix3DType

typedef itk::Matrix<double, 3, 3> anima::BaseCompartment::Matrix3DType

Definition at line 38 of file animaBaseCompartment.h.

◆ ModelOutputVectorType

typedef itk::VariableLengthVector<double> anima::BaseCompartment::ModelOutputVectorType

Definition at line 48 of file animaBaseCompartment.h.

◆ Pointer

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

Definition at line 36 of file animaBaseCompartment.h.

◆ Self

Definition at line 34 of file animaBaseCompartment.h.

◆ Superclass

typedef itk::LightObject anima::BaseCompartment::Superclass

Definition at line 35 of file animaBaseCompartment.h.

◆ Vector3DType

typedef vnl_vector_fixed<double,3> anima::BaseCompartment::Vector3DType

Definition at line 46 of file animaBaseCompartment.h.

Constructor & Destructor Documentation

◆ BaseCompartment()

anima::BaseCompartment::BaseCompartment ( )
inlineprotected

Definition at line 120 of file animaBaseCompartment.h.

References anima::MCMAzimuthAngleUpperBound.

◆ ~BaseCompartment()

virtual anima::BaseCompartment::~BaseCompartment ( )
inlineprotectedvirtual

Definition at line 135 of file animaBaseCompartment.h.

Member Function Documentation

◆ CopyFromOther()

void anima::BaseCompartment::CopyFromOther ( Self rhs)
virtual

◆ GetApparentFractionalAnisotropy()

double anima::BaseCompartment::GetApparentFractionalAnisotropy ( )
virtual

◆ GetApparentMeanDiffusivity()

double anima::BaseCompartment::GetApparentMeanDiffusivity ( )
virtual

◆ GetApparentParallelDiffusivity()

double anima::BaseCompartment::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 in anima::TensorCompartment, anima::ZeppelinCompartment, anima::StickCompartment, and anima::BaseIsotropicCompartment.

Definition at line 135 of file animaBaseCompartment.cxx.

Referenced by anima::MCMScalarMapsImageFilter< TPixelType >::DynamicThreadedGenerateData().

◆ GetApparentPerpendicularDiffusivity()

double anima::BaseCompartment::GetApparentPerpendicularDiffusivity ( )
virtual

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

Reimplemented in anima::TensorCompartment, anima::ZeppelinCompartment, anima::StickCompartment, and anima::BaseIsotropicCompartment.

Definition at line 140 of file animaBaseCompartment.cxx.

Referenced by anima::MCMScalarMapsImageFilter< TPixelType >::DynamicThreadedGenerateData().

◆ GetAxialDiffusivity()

virtual double anima::BaseCompartment::GetAxialDiffusivity ( )
inlinevirtual

Reimplemented in anima::TensorCompartment.

Definition at line 85 of file animaBaseCompartment.h.

Referenced by CopyFromOther(), anima::StickCompartment::GetApparentFractionalAnisotropy(), anima::ZeppelinCompartment::GetApparentFractionalAnisotropy(), anima::NODDICompartment::GetApparentFractionalAnisotropy(), anima::BaseIsotropicCompartment::GetApparentMeanDiffusivity(), anima::StickCompartment::GetApparentMeanDiffusivity(), anima::ZeppelinCompartment::GetApparentMeanDiffusivity(), anima::BaseIsotropicCompartment::GetApparentParallelDiffusivity(), anima::StickCompartment::GetApparentParallelDiffusivity(), anima::ZeppelinCompartment::GetApparentParallelDiffusivity(), anima::BaseIsotropicCompartment::GetApparentPerpendicularDiffusivity(), anima::TensorCompartment::GetAxialDiffusivity(), anima::BaseIsotropicCompartment::GetCompartmentVector(), anima::StickCompartment::GetCompartmentVector(), anima::ZeppelinCompartment::GetCompartmentVector(), anima::StaniszCompartment::GetCompartmentVector(), anima::NODDICompartment::GetCompartmentVector(), anima::BaseIsotropicCompartment::GetDiffusionTensor(), anima::StickCompartment::GetDiffusionTensor(), anima::ZeppelinCompartment::GetDiffusionTensor(), anima::NODDICompartment::GetDiffusionTensor(), anima::BaseIsotropicCompartment::GetFourierTransformedDiffusionProfile(), anima::StickCompartment::GetFourierTransformedDiffusionProfile(), anima::ZeppelinCompartment::GetFourierTransformedDiffusionProfile(), anima::BaseIsotropicCompartment::GetLogDiffusionProfile(), anima::NODDICompartment::GetLogDiffusionProfile(), anima::StickCompartment::GetLogDiffusionProfile(), anima::ZeppelinCompartment::GetLogDiffusionProfile(), anima::BaseIsotropicCompartment::GetParametersAsVector(), anima::StickCompartment::GetParametersAsVector(), anima::StaniszCompartment::GetParametersAsVector(), anima::NODDICompartment::GetParametersAsVector(), anima::ZeppelinCompartment::GetParametersAsVector(), anima::NODDICompartment::GetSignalAttenuationJacobian(), anima::StaniszCompartment::GetSignalAttenuationJacobian(), anima::StickCompartment::GetSignalAttenuationJacobian(), anima::ZeppelinCompartment::GetSignalAttenuationJacobian(), IsEqual(), anima::StaniszCompartment::SetAxialDiffusivity(), anima::NODDICompartment::SetAxialDiffusivity(), anima::StaniszCompartment::UpdateSignals(), and anima::NODDICompartment::UpdateSignals().

◆ GetCompartmentSize()

virtual unsigned int anima::BaseCompartment::GetCompartmentSize ( )
pure virtual

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

Implemented in anima::TensorCompartment, anima::NODDICompartment, anima::StaniszCompartment, anima::ZeppelinCompartment, anima::StickCompartment, and anima::BaseIsotropicCompartment.

◆ GetCompartmentType()

virtual DiffusionModelCompartmentType anima::BaseCompartment::GetCompartmentType ( )
pure virtual

◆ GetCompartmentVector()

virtual ModelOutputVectorType& anima::BaseCompartment::GetCompartmentVector ( )
pure virtual

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

Implemented in anima::TensorCompartment, anima::NODDICompartment, anima::StaniszCompartment, anima::ZeppelinCompartment, anima::StickCompartment, and anima::BaseIsotropicCompartment.

◆ GetDiffusionTensor()

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

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

Reimplemented in anima::TensorCompartment, anima::NODDICompartment, anima::ZeppelinCompartment, anima::StickCompartment, and anima::BaseIsotropicCompartment.

Definition at line 120 of file animaBaseCompartment.cxx.

Referenced by IsEqual().

◆ GetExtraAxonalFraction()

virtual double anima::BaseCompartment::GetExtraAxonalFraction ( )
inlinevirtual

◆ GetFourierTransformedDiffusionProfile()

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

◆ GetLogDiffusionProfile()

virtual double anima::BaseCompartment::GetLogDiffusionProfile ( const Vector3DType sample)
pure virtual

◆ GetNameOfClass()

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

◆ GetNumberOfParameters()

virtual unsigned int anima::BaseCompartment::GetNumberOfParameters ( )
pure virtual

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

Implemented in anima::TensorCompartment, anima::NODDICompartment, anima::StaniszCompartment, anima::ZeppelinCompartment, anima::StickCompartment, and anima::BaseIsotropicCompartment.

◆ GetOrientationConcentration()

virtual double anima::BaseCompartment::GetOrientationConcentration ( )
inlinevirtual

◆ GetOrientationPhi()

virtual double anima::BaseCompartment::GetOrientationPhi ( )
inlinevirtual

◆ GetOrientationTheta()

virtual double anima::BaseCompartment::GetOrientationTheta ( )
inlinevirtual

◆ GetParameterLowerBounds()

virtual ListType& anima::BaseCompartment::GetParameterLowerBounds ( )
pure virtual

◆ GetParametersAsVector()

virtual ListType& anima::BaseCompartment::GetParametersAsVector ( )
pure virtual

◆ GetParameterUpperBounds()

virtual ListType& anima::BaseCompartment::GetParameterUpperBounds ( )
pure virtual

◆ GetPerpendicularAngle()

virtual double anima::BaseCompartment::GetPerpendicularAngle ( )
inlinevirtual

◆ GetPredictedSignal()

double anima::BaseCompartment::GetPredictedSignal ( double  smallDelta,
double  bigDelta,
double  gradientStrength,
const Vector3DType gradient 
)

Definition at line 9 of file animaBaseCompartment.cxx.

References GetFourierTransformedDiffusionProfile().

◆ GetRadialDiffusivity1()

virtual double anima::BaseCompartment::GetRadialDiffusivity1 ( )
inlinevirtual

◆ GetRadialDiffusivity2()

virtual double anima::BaseCompartment::GetRadialDiffusivity2 ( )
inlinevirtual

◆ GetSignalAttenuationJacobian()

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

◆ GetTensorCompatible()

virtual bool anima::BaseCompartment::GetTensorCompatible ( )
inlinevirtual

Reimplemented in anima::NODDICompartment, and anima::StaniszCompartment.

Definition at line 105 of file animaBaseCompartment.h.

Referenced by IsEqual().

◆ GetTissueRadius()

virtual double anima::BaseCompartment::GetTissueRadius ( )
inlinevirtual

◆ IsEqual()

bool anima::BaseCompartment::IsEqual ( Self rhs,
double  tolerance = 1.0e-2,
double  absoluteTolerance = 1.0e-8 
)
virtual

◆ Reorient()

void anima::BaseCompartment::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 in anima::TensorCompartment, and anima::BaseIsotropicCompartment.

Definition at line 99 of file animaBaseCompartment.cxx.

References GetOrientationPhi(), GetOrientationTheta(), SetOrientationPhi(), SetOrientationTheta(), anima::TransformCartesianToSphericalCoordinates(), and anima::TransformSphericalToCartesianCoordinates().

◆ SetAxialDiffusivity()

virtual void anima::BaseCompartment::SetAxialDiffusivity ( double  num)
inlinevirtual

◆ SetCompartmentVector()

virtual void anima::BaseCompartment::SetCompartmentVector ( ModelOutputVectorType compartmentVector)
pure virtual

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

Implemented in anima::TensorCompartment, anima::NODDICompartment, anima::StaniszCompartment, anima::ZeppelinCompartment, anima::StickCompartment, and anima::BaseIsotropicCompartment.

Referenced by anima::MCMWeightedAverager::ComputeOutputTensorCompatibleModel().

◆ SetExtraAxonalFraction()

virtual void anima::BaseCompartment::SetExtraAxonalFraction ( double  num)
inlinevirtual

◆ SetOrientationConcentration()

virtual void anima::BaseCompartment::SetOrientationConcentration ( double  num)
inlinevirtual

◆ SetOrientationPhi()

virtual void anima::BaseCompartment::SetOrientationPhi ( double  num)
inlinevirtual

◆ SetOrientationTheta()

virtual void anima::BaseCompartment::SetOrientationTheta ( double  num)
inlinevirtual

◆ SetParametersFromVector()

virtual void anima::BaseCompartment::SetParametersFromVector ( const ListType params)
pure virtual

◆ SetPerpendicularAngle()

virtual void anima::BaseCompartment::SetPerpendicularAngle ( double  num)
inlinevirtual

◆ SetRadialDiffusivity1()

virtual void anima::BaseCompartment::SetRadialDiffusivity1 ( double  num)
inlinevirtual

◆ SetRadialDiffusivity2()

virtual void anima::BaseCompartment::SetRadialDiffusivity2 ( double  num)
inlinevirtual

◆ SetTissueRadius()

virtual void anima::BaseCompartment::SetTissueRadius ( double  num)
inlinevirtual

Member Data Documentation

◆ m_CompartmentVector

ModelOutputVectorType anima::BaseCompartment::m_CompartmentVector
protected

◆ m_DiffusionTensor

Matrix3DType anima::BaseCompartment::m_DiffusionTensor
protected

Matrix to hold working value of diffusion tensor approximation to the model.

Definition at line 140 of file animaBaseCompartment.h.

Referenced by anima::StickCompartment::GetDiffusionTensor(), anima::ZeppelinCompartment::GetDiffusionTensor(), and anima::NODDICompartment::GetDiffusionTensor().

◆ m_JacobianVector

ListType anima::BaseCompartment::m_JacobianVector
protected

◆ m_ParametersLowerBoundsVector

ListType anima::BaseCompartment::m_ParametersLowerBoundsVector
protected

◆ m_ParametersUpperBoundsVector

ListType anima::BaseCompartment::m_ParametersUpperBoundsVector
protected

◆ m_ParametersVector

ListType anima::BaseCompartment::m_ParametersVector
protected

◆ m_SpaceDimension

const unsigned int anima::BaseCompartment::m_SpaceDimension = 3
staticprotected

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