## ##' parse output from r8s
## ##'
## ##' 
## ##' @title read.r8s
## ##' @param file r8s output log file
## ##' @return r8s instance
## ##' @export
## ##' @author Guangchuang Yu
## read.r8s <- function(file) {
##     r8s <- readLines(file)
##     label_idx <- grep("\\[\\w+\\sDESCRIPTION\\sof\\stree\\s.*\\]", r8s)
##     tree_idx <- grep("^tree\\s.*\\s=\\s", r8s)
##     if (length(label_idx) != length(tree_idx)) {
##         stop("fail to parse the file...")
##     }

##     tree_text <- gsub("^tree\\s.*\\s=\\s", "", r8s[tree_idx])
##     trees <- read.tree(text=tree_text)

##     label <- gsub("^\\[(\\w+)\\s.*", "\\1", r8s[label_idx])
##     names(trees) <- label

##     new("r8s",
##         file = filename(file),
##         fields = label,
##         phylo = trees)
## }




## ##' @rdname groupClade-methods
## ##' @exportMethod groupClade
## ##' @param tree which tree selected
## setMethod("groupClade", signature(object="r8s"),
##           function(object, node, group_name="group", tree="TREE") {
##               groupClade_(get.tree(object)[[tree]], node, group_name)
##           })

## ##' @rdname scale_color-methods
## ##' @exportMethod scale_color
## ##' @param tree which tree selected
## setMethod("scale_color", signature(object="r8s"),
##           function(object, by="bootstrap", tree="TREE") {
##               scale_color_(get.tree(object)[[tree]], by)
##           })


## ##' @rdname gzoom-methods
## ##' @exportMethod gzoom
## ##' @param tree which tree selected
## setMethod("gzoom", signature(object="r8s"),
##           function(object, focus, subtree=FALSE, widths=c(.3, .7), tree="TREE") {
##               gzoom.phylo(get.tree(object)[[tree]], focus, subtree, widths)
##           })


## ##' @rdname get.tree-methods
## ##' @exportMethod get.tree
## setMethod("get.tree", signature(object="r8s"),
##           function(object,...) {
##               object@phylo
##           }
##           )


## ##' @rdname get.fields-methods
## ##' @exportMethod get.fields
## setMethod("get.fields", signature(object="r8s"),
##           function(object, ...) {
##               get.fields.tree(object)
##           }
##           )