#' Symmetrise the L1 CNS space
#'
#' @param x a set of 3D coordinates (Nx3 matrix), a neuron, neuronlist, dotprops, hxsurf or mesh3d object.
#' currently point replacement is only supported for neuron and neuronlist objects.
#' @param regdir Path to a tps transformation, generated by the Morpho package.Default symmetrises the larval l1 CNS, scaled in micrometers.
#' @param ... additional arguments passed to: \code{\link{shootflow}} \code{\link{apply.mirror.affine}}
#'
#' @return a set of 3D cordinates (or a neuron/neuronlist object if that was given as input), that has undergone
#' symmetrisation
#' @export
#'
#' @rdname symmetrisel1
symmetrisel1<-function(x, symtrans = readRDS(system.file("extdata/symmetry_transform.rds", package = 'deformetricar')),...) UseMethod("symmetrisel1")
#' @export
#' @rdname symmetrisel1
symmetrisel1.default <- function (x, symtrans = readRDS(system.file("extdata/symmetry_transform.rds", package = 'deformetricar')), ...){
x = Morpho::applyTransform(x, symtrans)
x
}
#' @export
#' @rdname symmetrisel1
symmetrisel1.neuron<-function(x, symtrans = readRDS(system.file("extdata/symmetry_transform.rds", package = 'deformetricar')),...) {
points=xyzmatrix(x)
morph.points<-symmetrisel1.default(x=points, symtrans = symtrans, ...)
xyzmatrix(x)<-morph.points
x
}
#' @export
#' @rdname symmetrisel1
symmetrisel1.neuronlist<-function(x, symtrans = readRDS(system.file("extdata/symmetry_transform.rds", package = 'deformetricar')), ...){
points=xyzmatrix(x)
morph.points<-symmetrisel1.default(x=points, symtrans = symtrans, ...)
count = 1
for (neuron in 1:length(x)){
n = count + nrow(xyzmatrix(x[[neuron]])) -1
xyzmatrix(x[[neuron]]) <- morph.points[count:n,]
count = count + nrow(xyzmatrix(x[[neuron]]))
}
return(x)
}
Add the following code to your website.
For more information on customizing the embed code, read Embedding Snippets.