R/method-reroot.R
85777d7b
 
 ##' @rdname reroot-methods
 ##' @exportMethod reroot
 setMethod("reroot", signature(object="beast"),
           function(object, node, ...) {
               object@phylo <- reroot(object@phylo, node, ...)
 
               node_map <- attr(object@phylo, "node_map")
               idx <- match(object@stats$node, node_map[,1])
               object@stats$node <- node_map[idx, 2]
905d1116
 
85777d7b
               return(object)
           })
 
905d1116
 ## ##' @rdname reroot-methods
 ## ##' @exportMethod reroot
 ## setMethod("reroot", signature(object="raxml"),
 ##           function(object, node, ...) {
 ##               object@phylo <- reroot(object@phylo, node, ...)
85777d7b
 
905d1116
 ##               node_map <- attr(object@phylo, "node_map")
 ##               idx <- match(object@bootstrap$node, node_map[,1])
 ##               object@bootstrap$node <- node_map[idx, 2]
 
 ##               return(object)
 ##           })
85777d7b
 
 
 ##' reroot a tree
 ##'
905d1116
 ##'
85777d7b
 ##' @rdname reroot-methods
 ##' @exportMethod reroot
 setMethod("reroot", signature(object="phylo"),
           function(object, node, ...) {
               pos <- 0.5* object$edge.length[which(object$edge[,2] == node)]
 
               ## @importFrom phytools reroot
               phytools <- "phytools"
               require(phytools, character.only = TRUE)
905d1116
 
85777d7b
               phytools_reroot <- eval(parse(text="phytools::reroot"))
 
               tree <- phytools_reroot(object, node, pos)
               attr(tree, "reroot") <- TRUE
               node_map <- reroot_node_mapping(object, tree)
               attr(tree, "node_map") <- node_map
               return(tree)
           })