Medical Imaging Interaction Toolkit  2016.11.0
Medical Imaging Interaction Toolkit
All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Macros Modules Pages
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.