## ##' read rst and mlb file from baseml output ## ##' ## ##' ## ##' @title read.baseml ## ##' @param rstfile rst file ## ##' @param mlbfile mlb file ## ##' @return A \code{paml_rst} object ## ##' @export ## ##' @author Guangchuang Yu \url{http://ygc.name} ## ##' @examples ## ##' rstfile <- system.file("extdata/PAML_Baseml", "rst", package="ggtree") ## ##' mlbfile <- system.file("extdata/PAML_Baseml", "mlb", package="ggtree") ## ##' read.baseml(rstfile, mlbfile) ## read.baseml <- function(rstfile, mlbfile) { ## res <- read.paml_rst(rstfile) ## ## res@tip_seq <- read.tip_seq_mlb(mlbfile) ## set.paml_rst_(res) ## } ## ##' read rst file from paml output ## ##' ## ##' ## ## @importFrom Biostrings readBStringSet ## ## @importFrom Biostrings toString ## ##' @title read.paml_rst ## ##' @param rstfile rst file ## ##' @return A \code{paml_rst} object ## ##' @export ## ##' @author Guangchuang Yu \url{http://ygc.name} ## ##' @examples ## ##' rstfile <- system.file("extdata/PAML_Baseml", "rst", package="ggtree") ## ##' read.paml_rst(rstfile) ## read.paml_rst <- function(rstfile) { ## ms <- read.ancseq_paml_rst(rstfile, by="Marginal") ## phylo <- read.phylo_paml_rst(rstfile) ## ## class(phylo) <- "list" ## type <- get_seqtype(ms) ## fields <- c("marginal_subs", "joint_subs") ## if (type == "NT") { ## fields <- c(fields, "marginal_AA_subs", "joint_AA_subs") ## } ## res <- new("paml_rst", ## fields = fields, ## treetext = read.treetext_paml_rst(rstfile), ## phylo = phylo, ## seq_type = type, ## marginal_ancseq = ms, ## joint_ancseq = read.ancseq_paml_rst(rstfile, by = "Joint"), ## rstfile = filename(rstfile) ## ) ## ## if (!is.null(tip.fasfile)) { ## ## seqs <- readBStringSet(tip.fasfile) ## ## tip_seq <- sapply(seq_along(seqs), function(i) { ## ## toString(seqs[i]) ## ## }) ## ## res@tip_seq <- tip_seq ## ## res@tip.fasfile <- tip.fasfile ## ## } ## res@tip_seq <- ms[names(ms) %in% phylo$tip.label] ## set.paml_rst_(res) ## } ## ##' @rdname groupClade-methods ## ##' @exportMethod groupClade ## setMethod("groupClade", signature(object="paml_rst"), ## function(object, node, group_name="group") { ## groupClade_(object, node, group_name) ## } ## ) ## ##' get tipseq ## ##' ## ##' ## ##' @rdname get.tipseq-methods ## ##' @exportMethod get.tipseq ## setMethod("get.tipseq", signature(object="paml_rst"), ## function(object, ...) { ## if (length(object@tip_seq) == 0) { ## warning("tip sequence not available...\n") ## } else { ## object@tip_seq ## } ## }) ## ##' @rdname get.fields-methods ## ##' @exportMethod get.fields ## setMethod("get.fields", signature(object = "paml_rst"), ## function(object) { ## if (length(object@tip_seq) == 0) { ## warning("tip sequence not available...\n") ## } else { ## get.fields.tree(object) ## } ## } ## ) ## ##' @rdname get.tree-methods ## ##' @exportMethod get.tree ## setMethod("get.tree", signature(object = "paml_rst"), ## function(object) { ## object@phylo ## } ## ) ## ##' get substitution information ## ##' ## ##' ## ##' @rdname get.subs-methods ## ##' @exportMethod get.subs ## setMethod("get.subs", signature(object = "paml_rst"), ## function(object, type, ...) { ## get.subs_paml_rst(object, type) ## } ## )