Medical Imaging Interaction Toolkit  2016.11.0
Medical Imaging Interaction Toolkit
mitkConnectomicsNetworkThresholder.h
Go to the documentation of this file.
1 /*===================================================================
2 
3 The Medical Imaging Interaction Toolkit (MITK)
4 
5 Copyright (c) German Cancer Research Center,
6 Division of Medical and Biological Informatics.
7 All rights reserved.
8 
9 This software is distributed WITHOUT ANY WARRANTY; without
10 even the implied warranty of MERCHANTABILITY or FITNESS FOR
11 A PARTICULAR PURPOSE.
12 
13 See LICENSE.txt or http://www.mitk.org for details.
14 
15 ===================================================================*/
16 
17 #ifndef mitkConnectomicsNetworkThresholder_h
18 #define mitkConnectomicsNetworkThresholder_h
19 
20 #include <itkObject.h>
21 #include <itkObjectFactory.h>
22 #include <itkMacro.h>
23 
24 #include "mitkCommon.h"
25 
26 #include <MitkConnectomicsExports.h>
27 
29 
30 namespace mitk
31 {
34  class MITKCONNECTOMICS_EXPORT ConnectomicsNetworkThresholder : public itk::Object
35  {
36  public:
37 
42  itkFactorylessNewMacro(Self)
43  itkCloneMacro(Self)
44 
45  // Typedefs
49  typedef boost::graph_traits<NetworkType>::vertex_iterator VertexIteratorType;
50  typedef boost::graph_traits<NetworkType>::edge_iterator EdgeIteratorType;
51  typedef boost::graph_traits<NetworkType>::adjacency_iterator AdjacencyIteratorType;
52  typedef std::map<EdgeDescriptorType, int> EdgeIndexStdMapType;
53  typedef boost::associative_property_map< EdgeIndexStdMapType > EdgeIndexMapType;
54  typedef std::map<VertexDescriptorType, int> VertexIndexStdMapType;
55  typedef boost::associative_property_map< VertexIndexStdMapType > VertexIndexMapType;
56 
64  {
67  ThresholdBased
68  };
69 
70  // Set/Get Macros
71  itkSetObjectMacro( Network, mitk::ConnectomicsNetwork );
72  itkSetMacro( ThresholdingScheme, ThresholdingSchemes );
73  itkSetMacro( TargetThreshold, double );
74  itkSetMacro( TargetDensity, double );
75 
76  itkGetObjectMacro( Network, mitk::ConnectomicsNetwork );
77  itkGetMacro( ThresholdingScheme, ThresholdingSchemes );
78  itkGetMacro( TargetThreshold, double );
79  itkGetMacro( TargetDensity, double );
80 
82  mitk::ConnectomicsNetwork::Pointer GetThresholdedNetwork();
83 
84  protected:
85 
89 
90  mitk::ConnectomicsNetwork::Pointer ThresholdByRandomRemoval( mitk::ConnectomicsNetwork::Pointer input, double targetDensity );
91  mitk::ConnectomicsNetwork::Pointer ThresholdBelowDensity( mitk::ConnectomicsNetwork::Pointer input, double targetDensity );
92  mitk::ConnectomicsNetwork::Pointer Threshold( mitk::ConnectomicsNetwork::Pointer input, double targetThreshold );
93  // Returns false if parameter combination is invalid
94  bool CheckValidity();
95 
97 
98  // The connectomics network, which is used for statistics calculation
100 
101  // The thresholding scheme to be used
103 
106 
107  };
108 
109 }// end namespace mitk
110 
111 #endif // mitkConnectomicsNetworkThresholder_h
boost::graph_traits< NetworkType >::vertex_iterator VertexIteratorType
boost::graph_traits< NetworkType >::edge_iterator EdgeIteratorType
STL namespace.
DataCollection - Class to facilitate loading/accessing structured data.
mitk::ConnectomicsNetwork::EdgeDescriptorType EdgeDescriptorType
mitk::ConnectomicsNetwork::NetworkType NetworkType
std::map< EdgeDescriptorType, int > EdgeIndexStdMapType
#define mitkClassMacroItkParent(className, SuperClassName)
Definition: mitkCommon.h:53
mitk::ConnectomicsNetwork::VertexDescriptorType VertexDescriptorType
boost::associative_property_map< VertexIndexStdMapType > VertexIndexMapType
std::map< VertexDescriptorType, int > VertexIndexStdMapType
A class for thresholding connectomics networks.
boost::associative_property_map< EdgeIndexStdMapType > EdgeIndexMapType
boost::graph_traits< NetworkType >::adjacency_iterator AdjacencyIteratorType
Connectomics Network Class.
itk::SmartPointer< Self > Pointer
Definition: mitkBaseData.h:42
ThresholdingSchemes
Possible schemes for thresholding the network.