BlueBrain / BlueBrain/NeuroMorphoVis

Unhandled division by zero

Open
#165 0 comments 0 reactions 0 assignees View on GitHub
Dominant language
Python
Stars
138
Forks
27
PR merge metrics
No merged PRs in 30d

Description

Please fix the error reported for this morphology: /data/morphologies/neurons/swc/barbour/1/D27B.CNG.swc
```
File "/home/abdellah/blender/bluebrain-blender-3.1/blender-neuromorphovis/3.1/scripts/addons/neuromorphovis/nmv/interface/ui/io/io_panel.py", line 313, in modal
nmv.interface.analyze_morphology(morphology=nmv.interface.ui_morphology, context=context)
File "/home/abdellah/blender/bluebrain-blender-3.1/blender-neuromorphovis/3.1/scripts/addons/neuromorphovis/nmv/interface/ui/analysis/analysis_panel_ops.py", line 333, in analyze_morphology
item.apply_per_arbor_analysis_kernel(morphology=morphology, context=context)
File "/home/abdellah/blender/bluebrain-blender-3.1/blender-neuromorphovis/3.1/scripts/addons/neuromorphovis/nmv/analysis/structs/analysis_item.py", line 348, in apply_per_arbor_analysis_kernel
self.result = self.kernel(morphology)
File "/home/abdellah/blender/bluebrain-blender-3.1/blender-neuromorphovis/3.1/scripts/addons/neuromorphovis/nmv/analysis/kernels/morphology/lengths_ops.py", line 315, in kernel_minimum_hillman_taper
return nmv.analysis.invoke_kernel(morphology,
File "/home/abdellah/blender/bluebrain-blender-3.1/blender-neuromorphovis/3.1/scripts/addons/neuromorphovis/nmv/analysis/kernels/morphology/common.py", line 361, in invoke_kernel
analysis_result = nmv.analysis.apply_analysis_operation_to_morphology(*[morphology, kernel])
File "/home/abdellah/blender/bluebrain-blender-3.1/blender-neuromorphovis/3.1/scripts/addons/neuromorphovis/nmv/analysis/kernels/functional.py", line 209, in apply_analysis_operation_to_morphology
analysis_result.axons_result.append(analysis_function(*arbor_args))
File "/home/abdellah/blender/bluebrain-blender-3.1/blender-neuromorphovis/3.1/scripts/addons/neuromorphovis/nmv/analysis/kernels/arbor/lengths_ops.py", line 487, in compute_minimum_hillman_taper_of_arbor
return min(compute_hillman_taper_values_of_arbor(arbor))
File "/home/abdellah/blender/bluebrain-blender-3.1/blender-neuromorphovis/3.1/scripts/addons/neuromorphovis/nmv/analysis/kernels/arbor/lengths_ops.py", line 449, in compute_hillman_taper_values_of_arbor
nmv.skeleton.ops.apply_operation_to_arbor(
File "/home/abdellah/blender/bluebrain-blender-3.1/blender-neuromorphovis/3.1/scripts/addons/neuromorphovis/nmv/skeleton/ops/skeleton_generic_ops.py", line 63, in apply_operation_to_arbor
apply_operation_to_arbor(*section_args)
File "/home/abdellah/blender/bluebrain-blender-3.1/blender-neuromorphovis/3.1/scripts/addons/neuromorphovis/nmv/skeleton/ops/skeleton_generic_ops.py", line 49, in apply_operation_to_arbor
operation(*section_args)
File "/home/abdellah/blender/bluebrain-blender-3.1/blender-neuromorphovis/3.1/scripts/addons/neuromorphovis/nmv/analysis/kernels/section/samples_ops.py", line 668, in compute_sections_hillman_taper
section_hillman_taper = compute_section_hillman_taper(section=section)
File "/home/abdellah/blender/bluebrain-blender-3.1/blender-neuromorphovis/3.1/scripts/addons/neuromorphovis/nmv/analysis/kernels/section/samples_ops.py", line 628, in compute_section_hillman_taper
_hillman_taper_value = delta / section.parent.samples[-1].radius
ZeroDivisionError: float division by zero

location: :-1
Error: Python: Traceback (most recent call last):
File "/home/abdellah/blender/bluebrain-blender-3.1/blender-neuromorphovis/3.1/scripts/addons/neuromorphovis/nmv/interface/ui/io/io_panel.py", line 313, in modal
nmv.interface.analyze_morphology(morphology=nmv.interface.ui_morphology, context=context)
File "/home/abdellah/blender/bluebrain-blender-3.1/blender-neuromorphovis/3.1/scripts/addons/neuromorphovis/nmv/interface/ui/analysis/analysis_panel_ops.py", line 333, in analyze_morphology
item.apply_per_arbor_analysis_kernel(morphology=morphology, context=context)
File "/home/abdellah/blender/bluebrain-blender-3.1/blender-neuromorphovis/3.1/scripts/addons/neuromorphovis/nmv/analysis/structs/analysis_item.py", line 348, in apply_per_arbor_analysis_kernel
self.result = self.kernel(morphology)
File "/home/abdellah/blender/bluebrain-blender-3.1/blender-neuromorphovis/3.1/scripts/addons/neuromorphovis/nmv/analysis/kernels/morphology/lengths_ops.py", line 315, in kernel_minimum_hillman_taper
return nmv.analysis.invoke_kernel(morphology,
File "/home/abdellah/blender/bluebrain-blender-3.1/blender-neuromorphovis/3.1/scripts/addons/neuromorphovis/nmv/analysis/kernels/morphology/common.py", line 361, in invoke_kernel
analysis_result = nmv.analysis.apply_analysis_operation_to_morphology(*[morphology, kernel])
File "/home/abdellah/blender/bluebrain-blender-3.1/blender-neuromorphovis/3.1/scripts/addons/neuromorphovis/nmv/analysis/kernels/functional.py", line 209, in apply_analysis_operation_to_morphology
analysis_result.axons_result.append(analysis_function(*arbor_args))
File "/home/abdellah/blender/bluebrain-blender-3.1/blender-neuromorphovis/3.1/scripts/addons/neuromorphovis/nmv/analysis/kernels/arbor/lengths_ops.py", line 487, in compute_minimum_hillman_taper_of_arbor
return min(compute_hillman_taper_values_of_arbor(arbor))
File "/home/abdellah/blender/bluebrain-blender-3.1/blender-neuromorphovis/3.1/scripts/addons/neuromorphovis/nmv/analysis/kernels/arbor/lengths_ops.py", line 449, in compute_hillman_taper_values_of_arbor
nmv.skeleton.ops.apply_operation_to_arbor(
File "/home/abdellah/blender/bluebrain-blender-3.1/blender-neuromorphovis/3.1/scripts/addons/neuromorphovis/nmv/skeleton/ops/skeleton_generic_ops.py", line 63, in apply_operation_to_arbor
apply_operation_to_arbor(*section_args)
File "/home/abdellah/blender/bluebrain-blender-3.1/blender-neuromorphovis/3.1/scripts/addons/neuromorphovis/nmv/skeleton/ops/skeleton_generic_ops.py", line 49, in apply_operation_to_arbor
operation(*section_args)
File "/home/abdellah/blender/bluebrain-blender-3.1/blender-neuromorphovis/3.1/scripts/addons/neuromorphovis/nmv/analysis/kernels/section/samples_ops.py", line 668, in compute_sections_hillman_taper
section_hillman_taper = compute_section_hillman_taper(section=section)
File "/home/abdellah/blender/bluebrain-blender-3.1/blender-neuromorphovis/3.1/scripts/addons/neuromorphovis/nmv/analysis/kernels/section/samples_ops.py", line 628, in compute_section_hillman_taper
_hillman_taper_value = delta / section.parent.samples[-1].radius
ZeroDivisionError: float division by zero

```

Contributor guide

No contributing guide indexed for this repository

Research direction

Start with nmv/analysis/kernels/section/samples_ops.py at compute_section_hillman_taper, especially the division on line 628, and trace its caller in lengths_ops.py. Reproduce the failure with /data/morphologies/neurons/swc/barbour/1/D27B.CNG.swc, determine the expected handling of a zero parent radius, and verify that morphology analysis completes without the ZeroDivisionError.

Written by the indexing model from the issue text.

Assessment

Tech stack
python
Domain
data
Issue type
Bug
Difficulty
3/5
Estimated time
1-2 days
Activity status
Stale
Clarity
Mostly clear
Newbie friendliness
42/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.