def generate(self): '''Generate dendrogram ''' offsets = (0., 0.) n_previous = 0 # set recursion limit with respect to # the max number of nodes on the trees old_depth = sys.getrecursionlimit() max_depth = old_depth if old_depth > self._max_rec_depth else self._max_rec_depth # TODO: This should be fixed so we don't set sys.setrecursionlimit at all sys.setrecursionlimit(max_depth) if isinstance(self._obj, Neurite): max_diameter = _max_diameter(self._obj.root_node) dummy_section = Tree() dummy_section.add_child(self._obj.root_node) self._generate_dendro(dummy_section, (max_diameter, 0.), offsets) self._groups.append((0., self._n)) self._dims.append(self._max_dims) else: for neurite in self._obj.neurites: neurite = neurite.root_node max_diameter = _max_diameter(neurite) dummy_section = Tree() dummy_section.add_child(neurite) self._generate_dendro(dummy_section, (max_diameter, 0.), offsets) # store in trees the indices for the slice which corresponds # to the current neurite self._groups.append((n_previous, self._n)) # store the max dims per neurite for view positioning self._dims.append(self._max_dims) # reset the max dimensions for the next tree in line self._max_dims = [0., 0.] # keep track of the next tree start index in list n_previous = self._n # set it back to its initial value sys.setrecursionlimit(old_depth)
def generate(self): '''Generate dendrogram ''' offsets = (0., 0.) n_previous = 0 # set recursion limit with respect to # the max number of nodes on the trees old_depth = sys.getrecursionlimit() max_depth = old_depth if old_depth > self._max_rec_depth else self._max_rec_depth # TODO: This should be fixed so we don't set sys.setrecursionlimit at all sys.setrecursionlimit(max_depth) if isinstance(self._obj, Neurite): max_diameter = _max_diameter(self._obj.root_node) dummy_section = Tree() dummy_section.add_child(self._obj.root_node) self._generate_dendro(dummy_section, (max_diameter, 0.), offsets) self._groups.append((0, self._n)) self._dims.append(self._max_dims) else: for neurite in self._obj.neurites: neurite = neurite.root_node max_diameter = _max_diameter(neurite) dummy_section = Tree() dummy_section.add_child(neurite) self._generate_dendro(dummy_section, (max_diameter, 0.), offsets) # store in trees the indices for the slice which corresponds # to the current neurite self._groups.append((n_previous, self._n)) # store the max dims per neurite for view positioning self._dims.append(self._max_dims) # reset the max dimensions for the next tree in line self._max_dims = [0., 0.] # keep track of the next tree start index in list n_previous = self._n # set it back to its initial value sys.setrecursionlimit(old_depth)