Mentions légales du service

Skip to content
Snippets Groups Projects
Commit 1c3e0601 authored by NADAL Morgane's avatar NADAL Morgane
Browse files

errors correction - graph features extraction completed

parent 8ca33894
No related branches found
No related tags found
No related merge requests found
......@@ -366,7 +366,10 @@ def ExtractFeaturesInDF(somas, size_voxel_in_micron: list, number_of_bins: int,
mean_torsion = np_.mean(torsions)
median_torsion = np_.median(torsions)
std_torsion = np_.std(torsions)
entropy_torsion = st_.entropy(torsions)
if any(torsions > 0):
entropy_torsion = st_.entropy(torsions)
else:
entropy_torsion = 0
#
# print(
......@@ -427,7 +430,10 @@ def ExtractFeaturesInDF(somas, size_voxel_in_micron: list, number_of_bins: int,
mean_torsion_P = np_.mean(torsions_P)
median_torsion_P = np_.median(torsions_P)
std_torsion_P = np_.std(torsions_P)
entropy_torsion_P = st_.entropy(torsions_P)
if any(torsions_P > 0):
entropy_torsion_P = st_.entropy(torsions_P)
else:
entropy_torsion_P = 0
#
# print(
......@@ -494,7 +500,10 @@ def ExtractFeaturesInDF(somas, size_voxel_in_micron: list, number_of_bins: int,
mean_torsion_S = np_.mean(torsions_S)
median_torsion_S = np_.median(torsions_S)
std_torsion_S = np_.std(torsions_S)
entropy_torsion_S = st_.entropy(torsions_S)
if any(torsions_S > 0):
entropy_torsion_S = st_.entropy(torsions_S)
else:
entropy_torsion_S = 0
#
# print(
......
......@@ -408,7 +408,7 @@ number_of_bins = int(number_of_bins)
max_range = hist_step * number_of_bins - hist_min_length
# DF creation
features_df = ge_.ExtractFeaturesInDF(somas, size_voxel_in_micron, number_of_bins, max_range, hist_min_length, ext_scales)
features_df.to_csv(".../features.csv")
# features_df.to_csv("...\features.csv")
#
elapsed_time = tm_.gmtime(tm_.time() - start_time)
......
......@@ -70,7 +70,7 @@ soma_min_area_c : (0.24050024 ** 2) * 1000
[Extensions]
; for hysteresis
ext_low_c : 1e-20
ext_high_c : 0.15
ext_high_c : 0.2
; for morphological cleaning
ext_selem_micron_c : 0.24050024 * 1
ext_min_area_c : (0.24050024 ** 2) * 100
......@@ -99,12 +99,11 @@ method : c
hist_min_length : 0
; in micron
; by default, 0
hist_step : 5
hist_step : 6
; in micron
; by default, 5
number_of_bins : 5
; by default, 5
; extensions generally do not exceed 25 microns
; extensions generally do not exceed 30 microns
[Program Running]
with_plot : False
......
......@@ -95,7 +95,7 @@ class edge_t:
self.widths = widths[self.sites]
def SetLengths(self, size_voxel: array_t, widths: array_t = None, check_validity: bool = False) -> None:
def SetLengths(self, size_voxel: array_t, widths: array_t = None, check_validity: bool = True) -> None:
#
if self.node_uids.__len__() != 2:
raise ValueError("Edge: Missing sites from adjacent nodes")
......@@ -103,9 +103,10 @@ class edge_t:
sites_as_array = np_.array(self.sites)
segments = np_.diff(sites_as_array, axis=1)
# segmentsT = segments.transpose()
# sq_lengths = ((segmentsT.dot(np_.diag(size_voxel)).dot(segments))**2).sum(axis=0)
# sq_lengths = (segmentsT.dot(np_.diag(size_voxel)).dot(segments))
# sq_lengths = np_.diag(sq_lengths)
# sq_lengths = (segments ** 2).sum(axis=0)
sq_lengths = ((np_.diag(size_voxel).dot(segments)) ** 2).sum(axis=0)
sq_lengths = (np_.diag(size_voxel).dot(segments ** 2)).sum(axis=0)
lengths = np_.sqrt(sq_lengths)
length = lengths.sum().item()
......@@ -126,6 +127,7 @@ class edge_t:
if check_validity:
# A global condition: self.sites[0].size - 1 <= length
if cast(array_t, sq_lengths == 0).any():
np_.save("D:\\MorganeNadal\\site_as_array_in_SetLength.npy", sites_as_array)
raise ValueError("Edge: Repeated sites")
if cast(array_t, sq_lengths > self.sites.__len__()).any():
raise ValueError("Edge: Site gaps")
......@@ -139,9 +141,9 @@ class edge_t:
if self.lengths is None:
self.SetLengths(size_voxel=size_voxel)
edge_lengths = self.lengths.sq_lengths.tolist()
if 0.0 in edge_lengths:
index0 = edge_lengths.index(0.0)
edge_lengths[index0] = 1e-10
# if 0.0 in edge_lengths:
# index0 = edge_lengths.index(0.0)
# edge_lengths[index0] = 1e-10
arc_lengths = tuple(it_.accumulate((0, *edge_lengths)))
self.as_curve = tuple(
in_.PchipInterpolator(arc_lengths, self.sites[idx_])
......@@ -192,7 +194,7 @@ class edge_t:
c = derivates["x2"][idx][1] * derivates["x1"][idx][0] - derivates["x1"][idx][1] * derivates["x2"][idx][0]
d = (derivates["x1"][idx][0]**2 + derivates["x2"][idx][0]**2 + derivates["x3"][idx][0]**2)**(3/2)
if d != 0:
k = np_.abs((np_.sqrt(a**2 + b**2 + c**2)) / d)
k = (np_.sqrt(a**2 + b**2 + c**2)) / d
else:
k = 0
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment