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

#include <animaDTIProbabilisticTractographyImageFilter.h>

+ Inheritance diagram for anima::DTIProbabilisticTractographyImageFilter:
+ Collaboration diagram for anima::DTIProbabilisticTractographyImageFilter:

Public Types

typedef itk::SmartPointer< const SelfConstPointer
 
typedef itk::SmartPointer< SelfPointer
 
typedef DTIProbabilisticTractographyImageFilter Self
 
typedef BaseProbabilisticTractographyImageFilter< itk::VectorImage< double, 3 > > Superclass
 
- Public Types inherited from anima::BaseProbabilisticTractographyImageFilter< itk::VectorImage< double, 3 > >
enum  ColinearityDirectionType
 Which direction should the very first direction point to? (used in conjunction with InitialDirectionMode) Center: towards gravity center Outward: outward from gravity center Top: Image top (z axis) Bottom: Image bottom (reverse z axis) ... More...
 
typedef itk::SmartPointer< const SelfConstPointer
 
typedef InterpolatorType::ContinuousIndexType ContinuousIndexType
 
typedef std::vector< Vector3DTypeDirectionVectorType
 
typedef std::vector< FiberTypeFiberProcessVectorType
 
typedef std::vector< PointTypeFiberType
 
typedef MaskImageType::IndexType IndexType
 
enum  InitialDirectionModeType
 Tells how to choose the very first direction of each particle Colinear: Most colinear to colinear direction specified (ColinearityDirectionType) Weight: Model direction with the highest weight. More...
 
typedef InputModelImageType::Pointer InputModelImagePointer
 
typedef itk::VectorImage< double, 3 > InputModelImageType
 
typedef InterpolatorType::Pointer InterpolatorPointer
 
typedef itk::InterpolateImageFunction< InputModelImageTypeInterpolatorType
 
typedef std::vector< ScalarTypeListType
 
typedef MaskImageType::Pointer MaskImagePointer
 
typedef itk::Image< unsigned short, 3 > MaskImageType
 
typedef itk::Matrix< ScalarType, 3, 3 > Matrix3DType
 
typedef std::vector< unsigned int > MembershipType
 
typedef itk::SmartPointer< SelfPointer
 
typedef MaskImageType::PointType PointType
 
typedef ScalarImageType::Pointer ScalarImagePointer
 
typedef itk::Image< ScalarType, 3 > ScalarImageType
 
typedef ScalarInterpolatorType::Pointer ScalarInterpolatorPointer
 
typedef itk::LinearInterpolateImageFunction< ScalarImageTypeScalarInterpolatorType
 
typedef double ScalarType
 
typedef BaseProbabilisticTractographyImageFilter Self
 
typedef itk::ProcessObject Superclass
 
typedef itk::Vector< ScalarType, 3 > Vector3DType
 
typedef itk::VariableLengthVector< ScalarTypeVectorType
 

Public Member Functions

virtual ::itk::LightObject::Pointer CreateAnother (void) const
 
virtual const char * GetNameOfClass () const
 
virtual void SetFAThreshold (double _arg)
 
void SetKappaPolynomialCoefficients (std::vector< double > &coefs)
 
virtual void SetThresholdForProlateTensor (double _arg)
 
- Public Member Functions inherited from anima::BaseProbabilisticTractographyImageFilter< itk::VectorImage< double, 3 > >
void createVTKOutput (FiberProcessVectorType &filteredFibers, ListType &filteredWeights)
 
virtual InitialDirectionModeType GetInitialDirectionMode ()
 
InputModelImageTypeGetInputModelImage ()
 
virtual double GetKappaOfPriorDistribution ()
 
virtual unsigned int GetModelDimension ()
 
virtual InterpolatorTypeGetModelInterpolator ()
 
vtkPolyData * GetOutput ()
 
virtual void SetB0Image (ScalarImageType *_arg)
 
virtual void SetClusterDistance (unsigned int _arg)
 
virtual void SetComputeLocalColors (bool _arg)
 
virtual void SetCutMask (MaskImageType *_arg)
 
virtual void SetFiberTrashThreshold (double _arg)
 
virtual void SetFilterMask (MaskImageType *_arg)
 
virtual void SetForbiddenMask (MaskImageType *_arg)
 
void SetInitialColinearityDirection (const ColinearityDirectionType &colDir)
 
void SetInitialDirectionMode (const InitialDirectionModeType &dir)
 
virtual void SetInputModelImage (InputModelImageType *inImage)
 
virtual void SetKappaOfPriorDistribution (double _arg)
 
virtual void SetKappaSplitThreshold (double _arg)
 
virtual void SetMAPMergeFibers (bool _arg)
 
virtual void SetMaxLengthFiber (double _arg)
 
virtual void SetMinimalNumberOfParticlesPerClass (unsigned int _arg)
 
virtual void SetMinLengthFiber (double _arg)
 
virtual void SetModelDimension (unsigned int _arg)
 
virtual void SetNoiseImage (ScalarImageType *_arg)
 
virtual void SetNumberOfFibersPerPixel (unsigned int _arg)
 
virtual void SetNumberOfParticles (unsigned int _arg)
 
virtual void SetPositionDistanceFuseThreshold (double _arg)
 
virtual void SetResamplingThreshold (double _arg)
 
virtual void SetSeedMask (MaskImageType *_arg)
 
virtual void SetStepProgression (double _arg)
 
void Update () ITK_OVERRIDE
 

Static Public Member Functions

static Pointer New ()
 

Protected Member Functions

virtual bool CheckModelProperties (double estimatedB0Value, double estimatedNoiseValue, VectorType &modelValue, unsigned int threadId) ITK_OVERRIDE
 
void ComputeAdditionalScalarMaps () ITK_OVERRIDE
 Computes additional scalar maps that are model dependent to add to the output. More...
 
virtual double ComputeLogWeightUpdate (double b0Value, double noiseValue, Vector3DType &newDirection, VectorType &modelValue, double &log_prior, double &log_proposal, unsigned int threadId) ITK_OVERRIDE
 
virtual void ComputeModelValue (InterpolatorPointer &modelInterpolator, ContinuousIndexType &index, VectorType &modelValue) ITK_OVERRIDE
 
 DTIProbabilisticTractographyImageFilter ()
 
void GetDTIMinorDirection (VectorType &modelValue, Vector3DType &resVec)
 
void GetDTIPrincipalDirection (const VectorType &modelValue, Vector3DType &resVec, bool is2d)
 
void GetEigenValueCombinations (VectorType &modelValue, double &meanLambda, double &perpLambda)
 
double GetFractionalAnisotropy (VectorType &modelValue)
 
double GetKappaFromFA (double FA)
 
double GetLinearCoefficient (VectorType &modelValue)
 
virtual Vector3DType InitializeFirstIterationFromModel (Vector3DType &colinearDir, VectorType &modelValue, unsigned int threadId) ITK_OVERRIDE
 
virtual Vector3DType ProposeNewDirection (Vector3DType &oldDirection, VectorType &modelValue, Vector3DType &sampling_direction, double &log_prior, double &log_proposal, std::mt19937 &random_generator, unsigned int threadId) ITK_OVERRIDE
 
virtual ~DTIProbabilisticTractographyImageFilter ()
 
- Protected Member Functions inherited from anima::BaseProbabilisticTractographyImageFilter< itk::VectorImage< double, 3 > >
 BaseProbabilisticTractographyImageFilter ()
 
virtual bool CheckModelProperties (double estimatedB0Value, double estimatedNoiseValue, VectorType &modelValue, unsigned int threadId)=0
 Check stopping criterions to stop a particle (model dependent, not implemented here) More...
 
FiberProcessVectorType ComputeFiber (FiberType &fiber, InterpolatorPointer &modelInterpolator, unsigned int numThread, ListType &resultWeights)
 This little guy is the one handling probabilistic tracking. More...
 
virtual double ComputeLogWeightUpdate (double b0Value, double noiseValue, Vector3DType &newDirection, VectorType &modelValue, double &log_prior, double &log_proposal, unsigned int threadId)=0
 Update particle weight based on an underlying model and the chosen direction (model dependent, not implemented here) More...
 
virtual void ComputeModelValue (InterpolatorPointer &modelInterpolator, ContinuousIndexType &index, VectorType &modelValue)=0
 Estimate model from raw diffusion data (model dependent, not implemented here) More...
 
FiberProcessVectorType FilterOutputFibers (FiberProcessVectorType &fibers, ListType &weights)
 Filter output fibers by ROIs and compute local colors. More...
 
virtual Vector3DType InitializeFirstIterationFromModel (Vector3DType &colinearDir, VectorType &modelValue, unsigned int threadId)=0
 Initialize first direction from user input (model dependent, not implemented here) More...
 
bool MergeParticleClassFibers (FiberWorkType &fiberData, FiberProcessVectorType &outputMerged, unsigned int classNumber)
 This guy takes the result of computefiber and merges the classes, each one becomes one fiber. More...
 
virtual void PrepareTractography ()
 Generate seed points (can be re-implemented but this one has to be called) More...
 
virtual Vector3DType ProposeNewDirection (Vector3DType &oldDirection, VectorType &modelValue, Vector3DType &sampling_direction, double &log_prior, double &log_proposal, std::mt19937 &random_generator, unsigned int threadId)=0
 Propose new direction for a particle, given the old direction, and a model (model dependent, not implemented here) More...
 
void ThreadedTrackComputer (unsigned int numThread, FiberProcessVectorType &resultFibers, ListType &resultWeights, unsigned int startSeedIndex, unsigned int endSeedIndex)
 Doing the real tracking by calling ComputeFiber and merging its results. More...
 
void ThreadTrack (unsigned int numThread, FiberProcessVectorType &resultFibers, ListType &resultWeights)
 Doing the thread work dispatch. More...
 
unsigned int UpdateClassesMemberships (FiberWorkType &fiberData, DirectionVectorType &directions, std::mt19937 &random_generator)
 This ugly guy is the heart of multi-modal probabilistic tractography, making decisions on split and merges of particles. More...
 
virtual ~BaseProbabilisticTractographyImageFilter ()
 

Additional Inherited Members

- Static Protected Member Functions inherited from anima::BaseProbabilisticTractographyImageFilter< itk::VectorImage< double, 3 > >
static ITK_THREAD_RETURN_FUNCTION_CALL_CONVENTION ThreadTracker (void *arg)
 Multithread util function. More...
 

Detailed Description

Definition at line 13 of file animaDTIProbabilisticTractographyImageFilter.h.

Member Typedef Documentation

◆ ConstPointer

◆ Pointer

◆ Self

SmartPointer typedef support

Definition at line 17 of file animaDTIProbabilisticTractographyImageFilter.h.

◆ Superclass

Constructor & Destructor Documentation

◆ DTIProbabilisticTractographyImageFilter()

anima::DTIProbabilisticTractographyImageFilter::DTIProbabilisticTractographyImageFilter ( )
protected

◆ ~DTIProbabilisticTractographyImageFilter()

anima::DTIProbabilisticTractographyImageFilter::~DTIProbabilisticTractographyImageFilter ( )
protectedvirtual

Member Function Documentation

◆ CheckModelProperties()

bool anima::DTIProbabilisticTractographyImageFilter::CheckModelProperties ( double  estimatedB0Value,
double  estimatedNoiseValue,
VectorType modelValue,
unsigned int  threadId 
)
protectedvirtual

◆ ComputeAdditionalScalarMaps()

void anima::DTIProbabilisticTractographyImageFilter::ComputeAdditionalScalarMaps ( )
protectedvirtual

◆ ComputeLogWeightUpdate()

double anima::DTIProbabilisticTractographyImageFilter::ComputeLogWeightUpdate ( double  b0Value,
double  noiseValue,
Vector3DType newDirection,
VectorType modelValue,
double &  log_prior,
double &  log_proposal,
unsigned int  threadId 
)
protectedvirtual

◆ ComputeModelValue()

void anima::DTIProbabilisticTractographyImageFilter::ComputeModelValue ( InterpolatorPointer modelInterpolator,
ContinuousIndexType index,
VectorType modelValue 
)
protectedvirtual

◆ CreateAnother()

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

◆ GetDTIMinorDirection()

void anima::DTIProbabilisticTractographyImageFilter::GetDTIMinorDirection ( VectorType modelValue,
Vector3DType resVec 
)
protected

◆ GetDTIPrincipalDirection()

void anima::DTIProbabilisticTractographyImageFilter::GetDTIPrincipalDirection ( const VectorType modelValue,
Vector3DType resVec,
bool  is2d 
)
protected

◆ GetEigenValueCombinations()

void anima::DTIProbabilisticTractographyImageFilter::GetEigenValueCombinations ( VectorType modelValue,
double &  meanLambda,
double &  perpLambda 
)
protected

◆ GetFractionalAnisotropy()

double anima::DTIProbabilisticTractographyImageFilter::GetFractionalAnisotropy ( VectorType modelValue)
protected

◆ GetKappaFromFA()

double anima::DTIProbabilisticTractographyImageFilter::GetKappaFromFA ( double  FA)
protected

◆ GetLinearCoefficient()

double anima::DTIProbabilisticTractographyImageFilter::GetLinearCoefficient ( VectorType modelValue)
protected

◆ GetNameOfClass()

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

◆ InitializeFirstIterationFromModel()

DTIProbabilisticTractographyImageFilter::Vector3DType anima::DTIProbabilisticTractographyImageFilter::InitializeFirstIterationFromModel ( Vector3DType colinearDir,
VectorType modelValue,
unsigned int  threadId 
)
protectedvirtual

◆ New()

static Pointer anima::DTIProbabilisticTractographyImageFilter::New ( )
static

◆ ProposeNewDirection()

DTIProbabilisticTractographyImageFilter::Vector3DType anima::DTIProbabilisticTractographyImageFilter::ProposeNewDirection ( Vector3DType oldDirection,
VectorType modelValue,
Vector3DType sampling_direction,
double &  log_prior,
double &  log_proposal,
std::mt19937 &  random_generator,
unsigned int  threadId 
)
protectedvirtual

◆ SetFAThreshold()

virtual void anima::DTIProbabilisticTractographyImageFilter::SetFAThreshold ( double  _arg)
virtual

◆ SetKappaPolynomialCoefficients()

void anima::DTIProbabilisticTractographyImageFilter::SetKappaPolynomialCoefficients ( std::vector< double > &  coefs)

◆ SetThresholdForProlateTensor()

virtual void anima::DTIProbabilisticTractographyImageFilter::SetThresholdForProlateTensor ( double  _arg)
virtual

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