simplify_neuron: Simplify a neuron to the longest tree with n branch points

View source: R/neuron.R

simplify_neuronR Documentation

Simplify a neuron to the longest tree with n branch points

Description

Simplify a neuron to the longest tree with n branch points

Usage

simplify_neuron(x, n = 1, invert = FALSE, ...)

Arguments

x

A neuron to simplify

n

Required number of branch points (default=1, minimum 0)

invert

Whether to keep the simplified backbone (when invert=FALSE, the default) or its inverse.

...

Additional arguments (currently ignored)

Details

If the neuron already contains fewer than or exactly the requested number of branches, then the original neuron is returned. The approach is to build up the new neuron starting from the longest tree including no branches all the way up to the longest tree containing n branches. The distance calculations are only carried out once so it should be reasonably efficient. Nevertheless at each iteration, the longest path from the tree so far to the newly selected leaf is calculated and it is likely that this step could be avoided. Furthermore for large values of n, pruning excess branches rather than building would presumably be more efficient.

Value

The simplified neuron or the untouched original neuron for neurons that have <=n branch points.

Author(s)

Gregory Jefferis jefferis@gmail.com

See Also

spine

Examples


n=Cell07PNs[['ECA34L']]
n.simp=simplify_neuron(n)
n.simp4=simplify_neuron(n, n=4)

plot(n, col='green', WithNodes = FALSE)
plot(n.simp, col='red', add = TRUE)
plot(n.simp4, col='blue', add = TRUE)

# calculate the inverse as well
n.simp4.inv=simplify_neuron(n, n=4, invert=TRUE)
plot(n.simp4, col='blue')
plot(n.simp4.inv, col='red', add = TRUE)


# 3D plots
## Not run: 
nclear3d()
plot3d(n.simp, col='red', add = TRUE)
plot3d(n.simp4, col='blue', add = TRUE)
plot3d(n, col='green', WithNodes = FALSE)

## End(Not run)

# or with plotly where transparency works
## Not run: 
op <- options(nat.plotengine = 'plotly')
nclear3d()
plot3d(n.simp, col='red', alpha = 0.5, add = TRUE)
plot3d(n.simp4, col='blue', alpha = 0.5, add = TRUE)
plot3d(n, col='green', alpha = 0.5, WithNodes = FALSE)

## End(Not run)


natverse/nat documentation built on Feb. 19, 2024, 7:19 a.m.