Nothing
#' Replace leading and trailing alignment gaps with an ambiguous state
#'
#' Substitutes leading and trailing alignment gaps in aligned sequences into N
#' (i.e., A, C, G, or T) or ?. The gaps in the middle of the sequences are left
#' unchanged.
#' @param x an object of class \code{phyDat}.
#' @param amb character of the ambiguous state t replace the gaps.
#' @param gap gap parameter to replace.
#' @param ... Further arguments passed to or from other methods.
#' @returns returns an object of class \code{phyDat}.
#' @seealso \code{\link[ape]{latag2n}}, \code{\link{ancestral.pml}},
#' \code{\link{gap_as_state}}
#' @examples
#' x <- phyDat(matrix(c("-", "A", "G", "-", "T", "C"), 2, 3))
#' y <- latag2n.phyDat(x)
#' image(x)
#' image(y)
#' @keywords cluster
#' @export
latag2n.phyDat <- function(x, amb=ifelse(attr(x,"type")=="DNA", "N", "?"),
gap="-", ...){
X <- as.character(x)
d <- dim(X)
for(i in seq_len(d[1])){
# from start
j <- 1
while(X[i,j]==gap){
X[i,j] <- amb
j <- j+1
if(j>d[2])break()
}
j <- d[2]
while(X[i,j]==gap){
X[i,j] <- amb
j <- j-1
if(j<1)break()
}
}
type <- attr(x, "type")
if(type %in% c("DNA", "AA", "CODON")){
y <- phyDat(X, type=type)
} else y <- phyDat(X, type="USER", levels = attr(x, "levels"))
y
}
# same as:
# dna2 <- as.DNAbin(dna) |> latag2n() |> as.phyDat()
# but works for AA
Any scripts or data that you put into this service are public.
Add the following code to your website.
For more information on customizing the embed code, read Embedding Snippets.