ANIMA
4.0
|
#include <animaTensorCompartment.h>
Public Types | |
typedef Superclass::Pointer | BasePointer |
typedef itk::SmartPointer< const Self > | ConstPointer |
using | LEcalculatorPointer = LEcalculatorType::Pointer |
using | LEcalculatorType = anima::LogEuclideanTensorCalculator< double > |
typedef Superclass::Matrix3DType | Matrix3DType |
typedef Superclass::ModelOutputVectorType | ModelOutputVectorType |
typedef itk::SmartPointer< Self > | Pointer |
typedef TensorCompartment | Self |
typedef BaseCompartment | Superclass |
typedef Superclass::Vector3DType | Vector3DType |
Public Types inherited from anima::BaseCompartment | |
typedef itk::SmartPointer< const Self > | ConstPointer |
typedef std::vector< double > | ListType |
typedef itk::Matrix< double, 3, 3 > | Matrix3DType |
typedef itk::VariableLengthVector< double > | ModelOutputVectorType |
typedef itk::SmartPointer< Self > | Pointer |
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... | |
ModelOutputVectorType & | GetCompartmentVector () ITK_OVERRIDE |
Get compartment overall description vector, mainly for writing, should be self-contained. More... | |
const Matrix3DType & | GetDiffusionTensor () 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 ListType & | GetParameterLowerBounds () ITK_OVERRIDE |
virtual ListType & | GetParametersAsVector () ITK_OVERRIDE |
virtual ListType & | GetParameterUpperBounds () ITK_OVERRIDE |
double | GetPerpendicularAngle () ITK_OVERRIDE |
double | GetRadialDiffusivity1 () ITK_OVERRIDE |
double | GetRadialDiffusivity2 () ITK_OVERRIDE |
virtual ListType & | GetSignalAttenuationJacobian (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 ¶ms) 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 |
Definition at line 11 of file animaTensorCompartment.h.
Definition at line 17 of file animaTensorCompartment.h.
typedef itk::SmartPointer<const Self> anima::TensorCompartment::ConstPointer |
Definition at line 19 of file animaTensorCompartment.h.
Definition at line 24 of file animaTensorCompartment.h.
Definition at line 23 of file animaTensorCompartment.h.
Definition at line 22 of file animaTensorCompartment.h.
Definition at line 20 of file animaTensorCompartment.h.
typedef itk::SmartPointer<Self> anima::TensorCompartment::Pointer |
Definition at line 18 of file animaTensorCompartment.h.
Definition at line 15 of file animaTensorCompartment.h.
Definition at line 16 of file animaTensorCompartment.h.
Definition at line 21 of file animaTensorCompartment.h.
|
inlineprotected |
Definition at line 77 of file animaTensorCompartment.h.
|
inlineprotectedvirtual |
Definition at line 91 of file animaTensorCompartment.h.
virtual::itk::LightObject::Pointer anima::TensorCompartment::CreateAnother | ( | void | ) | const |
|
virtual |
Reimplemented from anima::BaseCompartment.
Definition at line 475 of file animaTensorCompartment.cxx.
References GetAxialDiffusivity(), GetRadialDiffusivity1(), and GetRadialDiffusivity2().
|
virtual |
Reimplemented from anima::BaseCompartment.
Definition at line 491 of file animaTensorCompartment.cxx.
References GetAxialDiffusivity(), GetRadialDiffusivity1(), and GetRadialDiffusivity2().
|
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().
|
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().
|
virtual |
Reimplemented from anima::BaseCompartment.
Definition at line 149 of file animaTensorCompartment.cxx.
References anima::BaseCompartment::GetAxialDiffusivity(), and UpdateParametersFromTensor().
Referenced by GetApparentFractionalAnisotropy(), GetApparentMeanDiffusivity(), GetApparentParallelDiffusivity(), GetParametersAsVector(), GetSignalAttenuationJacobian(), SetAxialDiffusivity(), and UpdateDiffusionTensor().
|
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().
|
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.
|
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().
|
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().
|
virtual |
Implements anima::BaseCompartment.
Definition at line 9 of file animaTensorCompartment.cxx.
References anima::GetBValueFromAcquisitionParameters(), anima::BaseCompartment::m_SpaceDimension, and UpdateDiffusionTensor().
Referenced by GetSignalAttenuationJacobian().
|
virtual |
Implements anima::BaseCompartment.
Definition at line 72 of file animaTensorCompartment.cxx.
References anima::BaseCompartment::m_SpaceDimension, and UpdateInverseDiffusionTensor().
|
virtual |
Run-time type information (and related methods)
Reimplemented from anima::BaseCompartment.
|
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().
|
virtual |
Reimplemented from anima::BaseCompartment.
Definition at line 118 of file animaTensorCompartment.cxx.
References anima::BaseCompartment::GetOrientationPhi(), and UpdateParametersFromTensor().
Referenced by GetParametersAsVector(), SetOrientationPhi(), and UpdateAngleConfiguration().
|
virtual |
Reimplemented from anima::BaseCompartment.
Definition at line 102 of file animaTensorCompartment.cxx.
References anima::BaseCompartment::GetOrientationTheta(), and UpdateParametersFromTensor().
Referenced by GetParametersAsVector(), SetOrientationTheta(), and UpdateAngleConfiguration().
|
virtual |
Implements anima::BaseCompartment.
Definition at line 220 of file animaTensorCompartment.cxx.
References GetNumberOfParameters(), anima::BaseCompartment::m_ParametersLowerBoundsVector, anima::MCMAxialDiffusivityAddonLowerBound, anima::MCMDiffusivityLowerBound, and anima::MCMZeroLowerBound.
|
virtual |
Implements anima::BaseCompartment.
Definition at line 202 of file animaTensorCompartment.cxx.
References GetAxialDiffusivity(), GetNumberOfParameters(), GetOrientationPhi(), GetOrientationTheta(), GetPerpendicularAngle(), GetRadialDiffusivity1(), GetRadialDiffusivity2(), and anima::BaseCompartment::m_ParametersVector.
|
virtual |
Implements anima::BaseCompartment.
Definition at line 234 of file animaTensorCompartment.cxx.
References GetNumberOfParameters(), anima::BaseCompartment::m_ParametersUpperBoundsVector, anima::MCMAzimuthAngleUpperBound, anima::MCMDiffusivityUpperBound, anima::MCMPolarAngleUpperBound, and anima::MCMRadialDiffusivityUpperBound.
|
virtual |
Reimplemented from anima::BaseCompartment.
Definition at line 134 of file animaTensorCompartment.cxx.
References anima::BaseCompartment::GetPerpendicularAngle(), and UpdateParametersFromTensor().
Referenced by GetParametersAsVector(), SetPerpendicularAngle(), and UpdateAngleConfiguration().
|
virtual |
Reimplemented from anima::BaseCompartment.
Definition at line 164 of file animaTensorCompartment.cxx.
References anima::BaseCompartment::GetRadialDiffusivity1(), and UpdateParametersFromTensor().
Referenced by GetApparentFractionalAnisotropy(), GetApparentMeanDiffusivity(), GetApparentPerpendicularDiffusivity(), GetParametersAsVector(), GetSignalAttenuationJacobian(), SetRadialDiffusivity1(), and UpdateDiffusionTensor().
|
virtual |
Reimplemented from anima::BaseCompartment.
Definition at line 179 of file animaTensorCompartment.cxx.
References anima::BaseCompartment::GetRadialDiffusivity2(), and UpdateParametersFromTensor().
Referenced by GetApparentFractionalAnisotropy(), GetApparentMeanDiffusivity(), GetApparentPerpendicularDiffusivity(), GetParametersAsVector(), GetSignalAttenuationJacobian(), SetRadialDiffusivity2(), and UpdateDiffusionTensor().
|
virtual |
Implements anima::BaseCompartment.
Definition at line 27 of file animaTensorCompartment.cxx.
References anima::ComputeScalarProduct(), GetAxialDiffusivity(), anima::GetBValueFromAcquisitionParameters(), GetFourierTransformedDiffusionProfile(), GetNumberOfParameters(), GetRadialDiffusivity1(), GetRadialDiffusivity2(), anima::BaseCompartment::m_JacobianVector, and UpdateDiffusionTensor().
|
static |
|
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().
|
virtual |
Reimplemented from anima::BaseCompartment.
Definition at line 140 of file animaTensorCompartment.cxx.
References GetAxialDiffusivity(), and anima::BaseCompartment::SetAxialDiffusivity().
Referenced by SetParametersFromVector(), and UpdateParametersFromTensor().
|
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().
void anima::TensorCompartment::SetEstimateDiffusivities | ( | bool | arg | ) |
Definition at line 252 of file animaTensorCompartment.cxx.
|
virtual |
Reimplemented from anima::BaseCompartment.
Definition at line 108 of file animaTensorCompartment.cxx.
References GetOrientationPhi(), and anima::BaseCompartment::SetOrientationPhi().
Referenced by SetParametersFromVector(), and UpdateParametersFromTensor().
|
virtual |
Reimplemented from anima::BaseCompartment.
Definition at line 92 of file animaTensorCompartment.cxx.
References GetOrientationTheta(), and anima::BaseCompartment::SetOrientationTheta().
Referenced by SetParametersFromVector(), and UpdateParametersFromTensor().
|
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().
|
virtual |
Reimplemented from anima::BaseCompartment.
Definition at line 124 of file animaTensorCompartment.cxx.
References GetPerpendicularAngle(), and anima::BaseCompartment::SetPerpendicularAngle().
Referenced by SetParametersFromVector(), and UpdateParametersFromTensor().
|
virtual |
Reimplemented from anima::BaseCompartment.
Definition at line 155 of file animaTensorCompartment.cxx.
References GetRadialDiffusivity1(), and anima::BaseCompartment::SetRadialDiffusivity1().
Referenced by SetParametersFromVector(), and UpdateParametersFromTensor().
|
virtual |
Reimplemented from anima::BaseCompartment.
Definition at line 170 of file animaTensorCompartment.cxx.
References GetRadialDiffusivity2(), and anima::BaseCompartment::SetRadialDiffusivity2().
Referenced by SetParametersFromVector(), and UpdateParametersFromTensor().
|
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().
|
protected |
Update diffusion tensor value from parameters.
Definition at line 399 of file animaTensorCompartment.cxx.
References GetAxialDiffusivity(), GetRadialDiffusivity1(), GetRadialDiffusivity2(), anima::BaseCompartment::m_SpaceDimension, and UpdateAngleConfiguration().
Referenced by GetCompartmentVector(), GetDiffusionTensor(), GetFourierTransformedDiffusionProfile(), GetSignalAttenuationJacobian(), Reorient(), and 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().
void anima::TensorCompartment::UpdateParametersFromTensor | ( | ) |
Definition at line 280 of file animaTensorCompartment.cxx.
References anima::BaseCompartment::m_SpaceDimension, anima::MCMDiffusivityLowerBound, anima::MCMDiffusivityUpperBound, SetAxialDiffusivity(), SetOrientationPhi(), SetOrientationTheta(), SetPerpendicularAngle(), SetRadialDiffusivity1(), SetRadialDiffusivity2(), and anima::TransformCartesianToSphericalCoordinates().
Referenced by GetAxialDiffusivity(), GetOrientationPhi(), GetOrientationTheta(), GetPerpendicularAngle(), GetRadialDiffusivity1(), and GetRadialDiffusivity2().