17 #ifndef mitkConnectomicsStatisticsCalculator_h
18 #define mitkConnectomicsStatisticsCalculator_h
20 #include <itkObject.h>
21 #include <itkObjectFactory.h>
26 #include <MitkConnectomicsExports.h>
42 itkFactorylessNewMacro(Self)
60 itkGetMacro( NumberOfVertices,
unsigned int );
61 itkGetMacro( NumberOfEdges,
unsigned int );
62 itkGetMacro( AverageDegree,
double );
63 itkGetMacro( ConnectionDensity,
double );
64 itkGetMacro( NumberOfConnectedComponents,
unsigned int );
65 itkGetMacro( AverageComponentSize,
double );
66 itkGetMacro( Components,
std::vector<
int > );
67 itkGetMacro( LargestComponentSize,
unsigned int );
68 itkGetMacro( RatioOfNodesInLargestComponent,
double );
69 itkGetMacro( HopPlotExponent,
double );
70 itkGetMacro( EffectiveHopDiameter,
double );
71 itkGetMacro( VectorOfClusteringCoefficientsC,
std::vector<
double > );
72 itkGetMacro( VectorOfClusteringCoefficientsD,
std::vector<
double > );
73 itkGetMacro( VectorOfClusteringCoefficientsE,
std::vector<
double > );
74 itkGetMacro( AverageClusteringCoefficientsC,
double );
75 itkGetMacro( AverageClusteringCoefficientsD,
double );
76 itkGetMacro( AverageClusteringCoefficientsE,
double );
77 itkGetMacro( VectorOfVertexBetweennessCentralities,
std::vector<
double > );
78 itkGetMacro( PropertyMapOfVertexBetweennessCentralities, VertexIteratorPropertyMapType );
79 itkGetMacro( AverageVertexBetweennessCentrality,
double );
80 itkGetMacro( VectorOfEdgeBetweennessCentralities,
std::vector<
double > );
81 itkGetMacro( PropertyMapOfEdgeBetweennessCentralities, EdgeIteratorPropertyMapType );
82 itkGetMacro( AverageEdgeBetweennessCentrality,
double );
83 itkGetMacro( NumberOfIsolatedPoints,
unsigned int );
84 itkGetMacro( RatioOfIsolatedPoints,
double );
85 itkGetMacro( NumberOfEndPoints,
unsigned int );
86 itkGetMacro( RatioOfEndPoints,
double );
87 itkGetMacro( VectorOfEccentrities,
std::vector<
unsigned int > );
88 itkGetMacro( VectorOfEccentrities90,
std::vector<
unsigned int > );
89 itkGetMacro( VectorOfAveragePathLengths,
std::vector<
double > );
90 itkGetMacro( Diameter,
unsigned int );
91 itkGetMacro( Diameter90,
unsigned int );
92 itkGetMacro( Radius,
unsigned int );
93 itkGetMacro( Radius90,
unsigned int );
94 itkGetMacro( AverageEccentricity,
double );
95 itkGetMacro( AverageEccentricity90,
double );
96 itkGetMacro( AveragePathLength,
double );
97 itkGetMacro( NumberOfCentralPoints,
unsigned int );
98 itkGetMacro( RatioOfCentralPoints,
double );
99 itkGetMacro( VectorOfSortedEigenValues,
std::vector<
double > );
100 itkGetMacro( SpectralRadius,
double );
101 itkGetMacro( SecondLargestEigenValue,
double );
102 itkGetMacro( AdjacencyTrace,
double );
103 itkGetMacro( AdjacencyEnergy,
double );
104 itkGetMacro( VectorOfSortedLaplacianEigenValues,
std::vector<
double > );
105 itkGetMacro( LaplacianTrace,
double );
106 itkGetMacro( LaplacianEnergy,
double );
107 itkGetMacro( LaplacianSpectralGap,
double );
108 itkGetMacro( VectorOfSortedNormalizedLaplacianEigenValues,
std::vector<
double > );
109 itkGetMacro( NormalizedLaplacianTrace,
double );
110 itkGetMacro( NormalizedLaplacianEnergy,
double );
111 itkGetMacro( NormalizedLaplacianNumberOf2s,
unsigned int );
112 itkGetMacro( NormalizedLaplacianNumberOf1s,
unsigned int );
113 itkGetMacro( NormalizedLaplacianNumberOf0s,
unsigned int );
114 itkGetMacro( NormalizedLaplacianLowerSlope,
double );
115 itkGetMacro( NormalizedLaplacianUpperSlope,
double );
116 itkGetMacro( SmallWorldness,
double );
124 ~ConnectomicsStatisticsCalculator();
126 void CalculateNumberOfVertices();
128 void CalculateNumberOfEdges();
130 void CalculateAverageDegree();
132 void CalculateConnectionDensity();
134 void CalculateNumberOfConnectedComponents();
136 void CalculateAverageComponentSize();
138 void CalculateLargestComponentSize();
140 void CalculateRatioOfNodesInLargestComponent();
142 void CalculateHopPlotValues();
154 void CalculateClusteringCoefficients();
156 void CalculateBetweennessCentrality();
158 void CalculateIsolatedAndEndPoints();
160 void CalculateShortestPathMetrics();
162 void CalculateSpectralMetrics();
164 void CalculateLaplacianMetrics();
166 void CalculateNormalizedLaplacianMetrics();
174 void CalculateSmallWorldness();
182 unsigned int m_NumberOfVertices;
183 unsigned int m_NumberOfEdges;
184 double m_AverageDegree;
185 double m_ConnectionDensity;
186 unsigned int m_NumberOfConnectedComponents;
187 double m_AverageComponentSize;
188 std::vector<
int > m_Components;
189 unsigned int m_LargestComponentSize;
190 double m_RatioOfNodesInLargestComponent;
191 double m_HopPlotExponent;
192 double m_EffectiveHopDiameter;
193 std::vector<
double > m_VectorOfClusteringCoefficientsC;
194 std::vector<
double > m_VectorOfClusteringCoefficientsD;
195 std::vector<
double > m_VectorOfClusteringCoefficientsE;
196 double m_AverageClusteringCoefficientsC;
197 double m_AverageClusteringCoefficientsD;
198 double m_AverageClusteringCoefficientsE;
199 std::vector<
double > m_VectorOfVertexBetweennessCentralities;
200 VertexIteratorPropertyMapType m_PropertyMapOfVertexBetweennessCentralities;
201 double m_AverageVertexBetweennessCentrality;
202 std::vector<
double > m_VectorOfEdgeBetweennessCentralities;
203 EdgeIteratorPropertyMapType m_PropertyMapOfEdgeBetweennessCentralities;
204 double m_AverageEdgeBetweennessCentrality;
205 unsigned int m_NumberOfIsolatedPoints;
206 double m_RatioOfIsolatedPoints;
207 unsigned int m_NumberOfEndPoints;
208 double m_RatioOfEndPoints;
209 std::vector<
unsigned int > m_VectorOfEccentrities;
210 std::vector<
unsigned int > m_VectorOfEccentrities90;
211 std::vector<
double > m_VectorOfAveragePathLengths;
212 unsigned int m_Diameter;
213 unsigned int m_Diameter90;
214 unsigned int m_Radius;
215 unsigned int m_Radius90;
216 double m_AverageEccentricity;
217 double m_AverageEccentricity90;
218 double m_AveragePathLength;
219 unsigned int m_NumberOfCentralPoints;
220 double m_RatioOfCentralPoints;
221 std::vector<
double> m_VectorOfSortedEigenValues;
222 double m_SpectralRadius;
223 double m_SecondLargestEigenValue;
224 double m_AdjacencyTrace;
225 double m_AdjacencyEnergy;
226 std::vector<
double> m_VectorOfSortedLaplacianEigenValues;
227 double m_LaplacianTrace;
228 double m_LaplacianEnergy;
229 double m_LaplacianSpectralGap;
230 std::vector<
double> m_VectorOfSortedNormalizedLaplacianEigenValues;
231 double m_NormalizedLaplacianTrace;
232 double m_NormalizedLaplacianEnergy;
233 unsigned int m_NormalizedLaplacianNumberOf2s;
234 unsigned int m_NormalizedLaplacianNumberOf1s;
235 unsigned int m_NormalizedLaplacianNumberOf0s;
236 double m_NormalizedLaplacianLowerSlope;
237 double m_NormalizedLaplacianUpperSlope;
238 double m_SmallWorldness;
243 #endif // mitkConnectomicsStatisticsCalculator_h
boost::graph_traits< NetworkType >::adjacency_iterator AdjacencyIteratorType
boost::graph_traits< NetworkType >::edge_iterator EdgeIteratorType
mitk::ConnectomicsNetwork::NetworkType NetworkType
static void Update(vtkPolyData *)
DataCollection - Class to facilitate loading/accessing structured data.
std::map< EdgeDescriptorType, int > EdgeIndexStdMapType
mitk::ConnectomicsNetwork::VertexDescriptorType VertexDescriptorType
A class giving functions for calculating a variety of network indices.
mitk::ConnectomicsNetwork::EdgeDescriptorType EdgeDescriptorType
boost::graph_traits< NetworkType >::vertex_iterator VertexIteratorType
#define mitkClassMacroItkParent(className, SuperClassName)
boost::associative_property_map< EdgeIndexStdMapType > EdgeIndexMapType
boost::iterator_property_map< std::vector< double >::iterator, VertexIndexMapType > VertexIteratorPropertyMapType
Connectomics Network Class.
boost::property_map< NetworkType, boost::vertex_index_t >::type VertexIndexMapType
boost::iterator_property_map< std::vector< double >::iterator, EdgeIndexMapType > EdgeIteratorPropertyMapType