Hello Phylofolks,

I've been using ape::phymltest() for a while now on a project and I just
realised there is a potential glitch in the function. The reason is that
the order of the models in the 'mdl' object inside the function is
different from the order in .phymltest.model, what causes the cmd object to
mess up.
 The following MWE should do the job of showing my point:
### begin MWE
library(ape)

.phymltest.model <-
  c("JC69", "JC69+I", "JC69+G", "JC69+I+G",
    "K80", "K80+I", "K80+G", "K80+I+G",
    "F81", "F81+I", "F81+G", "F81+I+G",
    "F84", "F84+I", "F84+G", "F84+I+G",
    "HKY85", "HKY85+I", "HKY85+G", "HKY85+I+G",
    "TN93", "TN93+I", "TN93+G", "TN93+I+G",
    "GTR", "GTR+I", "GTR+G", "GTR+I+G")

phymltest.test <- function(seqfile, format = "interleaved", itree = NULL,
                      exclude = NULL, execname = NULL, append = TRUE)
{
  N <- length(.phymltest.model)
  format <- match.arg(format, c("interleaved", "sequential"))
  fmt <- rep("", N)
  if (format != "interleaved") fmt[] <- "-q"
  boot <- rep("-b 0", N) # to avoid any testing
  mdl <- paste("-m", rep(c("JC69", "K80", "F81","HKY85","F84", "TN93",
"GTR"), each = 4))
  tstv <- rep("-t e", N) # ignored by PhyML with JC69 or F81
  inv <- rep(c("", "-v e"), length.out = N)
  ## no need to use the -c option of PhyML (4 categories by default if '-a
e' is set):
  alpha <- rep(rep(c("-c 1", "-a e"), each = 2), length.out = N)
  tree <- rep("", N)

  cmd <- paste(execname, "-i", seqfile, fmt, boot, mdl, tstv, inv, alpha,
tree, "--append ")
  imod <- 1:N
  if (!is.null(exclude)) imod <- imod[!.phymltest.model %in% exclude]
  for (i in imod) print(cmd[i])
}

phymltest.test(seqfile = "seqname",
          exclude = c("K80", "K80+I", "K80+G", "K80+I+G",
                      "F81", "F81+I", "F81+G", "F81+I+G",
                      "F84", "F84+I", "F84+G", "F84+I+G",

                      "TN93", "TN93+I", "TN93+G", "TN93+I+G"),
          execname = "execname")
1] "execname -i seqname  -b 0 -m JC69 -t e  -c 1  --append "
[1] "execname -i seqname  -b 0 -m JC69 -t e -v e -c 1  --append "
[1] "execname -i seqname  -b 0 -m JC69 -t e  -a e  --append "
[1] "execname -i seqname  -b 0 -m JC69 -t e -v e -a e  --append "
[1] "execname -i seqname  -b 0 -m F84 -t e  -c 1  --append "
[1] "execname -i seqname  -b 0 -m F84 -t e -v e -c 1  --append "
[1] "execname -i seqname  -b 0 -m F84 -t e  -a e  --append "
[1] "execname -i seqname  -b 0 -m F84 -t e -v e -a e  --append "
[1] "execname -i seqname  -b 0 -m GTR -t e  -c 1  --append "
[1] "execname -i seqname  -b 0 -m GTR -t e -v e -c 1  --append "
[1] "execname -i seqname  -b 0 -m GTR -t e  -a e  --append "
[1] "execname -i seqname  -b 0 -m GTR -t e -v e -a e  --append "

## end MWE

I think it's easily solved by replacing mdl with  paste("-m", rep(c("JC69",
"K80", "F81", "F84""HKY85", "TN93", "GTR"), each = 4))

Anyways, hope to clarify this minor issue.

Cheers,

Luiz

-- 
Luiz Max Fagundes de Carvalho
PhD student, Institute of Evolutionary Biology,  School of Biological
Sciences,
Ashworth Laboratories, Ash 2, office 123
University of Edinburgh, United Kingdom.
http://br.linkedin.com/pub/luiz-max-carvalho/49/687/283

        [[alternative HTML version deleted]]

_______________________________________________
R-sig-phylo mailing list - R-sig-phylo@r-project.org
https://stat.ethz.ch/mailman/listinfo/r-sig-phylo
Searchable archive at http://www.mail-archive.com/r-sig-phylo@r-project.org/

Reply via email to