Source code for neuror.full
'''The module to run the full repair.'''
import logging
from pathlib import Path
import pandas as pd
from morph_tool.utils import iter_morphology_files
from neuror.main import repair
L = logging.getLogger('neuror')
[docs]def repair_all(input_dir, output_dir, seed=0, axons=None, cut_points_dir=None, plots_dir=None):
'''Repair all morphologies in input folder.'''
for inputfilename in iter_morphology_files(input_dir):
outfilename = Path(output_dir, inputfilename.name)
if cut_points_dir:
cut_points = pd.read_csv(Path(cut_points_dir, inputfilename.name).with_suffix('.csv'))
else:
cut_points = None
if plots_dir is not None:
name = Path(inputfilename).stem.replace(' ', '_')
name = f'neuron_{name}.html'
plot_file = str(Path(plots_dir, name))
else:
plot_file = None
try:
repair(inputfilename, outfilename,
seed=seed, axons=axons, cut_leaves_coordinates=cut_points, plot_file=plot_file)
except Exception as e: # noqa, pylint: disable=broad-except
L.warning('%s failed', inputfilename)
L.warning(e, exc_info=True)