| pml {phangorn} | R Documentation |
pml computes the likelihood of a phylogenetic tree
given a sequence alignment and a model. optim.pml optimizes the
different model parameters.
pml(tree, data, bf=NULL, Q=NULL, inv=0, k=1, shape=1, rate=1, ...)
optim.pml(object, optNni=FALSE, optBf=FALSE, optQ=FALSE,
optInv=FALSE, optGamma=FALSE, optEdge=TRUE, optRate=FALSE,
control = pml.control(maxit=10, eps=0.001, trace=TRUE))
tree |
A phylogenetic tree, object of class phylo. |
data |
The (DNA) alignment. |
bf |
Base frequencies. |
Q |
A vector containing the lower triangular part of the rate matrix. |
inv |
Proportion of invariable sites. |
k |
Number of intervalls of the discrete gamma distribution. |
shape |
Shape parameter of the gamma distribution. |
rate |
Rate. |
object |
An object of class pml. |
optNni |
Logical value indicating whether toplogy gets optimized (NNI). |
optBf |
Logical value indicating whether base frequencies gets optimized. |
optQ |
Logical value indicating whether rate matrix gets optimized. |
optInv |
Logical value indicating whether proportion of variable size gets optimized. |
optGamma |
Logical value indicating whether gamma rate parameter gets optimized. |
optEdge |
Logical value indicating the edge lengths gets optimized. |
optRate |
Logical value indicating the overall rate gets optimized. |
control |
A list of parameters for controlling the fitting process. |
... |
Further arguments passed to or from other methods. |
The input variables w0, pl0, rate are mainly for the use
in mixture or partition models and are only used internally.
The toppology search uses a nearest neighbour interchange (NNI)
and the implenatation is similar to phyML.
Here is a overview how to estimate different phylogenetic models
with pml:
| model | optBf | optQ |
| Jukes-Cantor | FALSE | FALSE |
| F81 | TRUE | FALSE |
| GTR | TRUE | TRUE |
Returns a list of class ll.phylo
logLik |
Log likelihood of the tree. |
siteLik |
Site log likelihoods. |
root |
likelihood in the root node. |
weight |
Weight of the site patterns. |
Klaus Schliep K.P.Schliep@massey.ac.nz
Felsenstein, J. (1981) Evolutionary trees from DNA sequences: a maxumum likelihood approach. Journal of Molecular Evolution, 17, 368–376.
Felsenstein, J. (2004). Inferring Phylogenies. Sinauer Associates, Sunderland.
Yang, Z. (2006). Computational Molecular evolution. Oxford University Press, Oxford.
For a different implementation see mlphylo.
example(NJ)
# Jukes-Cantor (starting tree from NJ)
fitJC <- pml(tree, Laurasiatherian)
# optimise edge length parameter
fitJC <- optim.pml(fitJC)
summary(fitJC)
## Not run:
# search for a better tree using NNI rearrangements
fitJC <- optim.pml(fitJC, optNni=TRUE)
summary(fitJC)
plot(fitJC$tree)
# JC + Gamma + I - model
fitJC_GI <- update(fitJC, k=4, inv=.2)
# optimise shape parameter + proportion of invariant sites
fitJC_GI <- optim.pml(fitJC_GI, optGamma=TRUE, optInv=TRUE)
summary(fitJC_GI)
# GTR + Gamma + I - model
fitGTR <- optim.pml(fitJC_GI, optNni=TRUE, optGamma=TRUE, optInv=TRUE, optBf=TRUE, optQ=TRUE)
summary(fitGTR)
## End(Not run)
# 2-state data (RY-coded)
dat <- as.character(Laurasiatherian)
# RY-coding
dat[dat=="a"] <- "r"
dat[dat=="g"] <- "r"
dat[dat=="c"] <- "y"
dat[dat=="t"] <- "y"
dat <- phyDat(dat, levels=c("r","y"))
fit2ST <- pml(tree, dat, k=4, inv=.25)
fit2ST <- optim.pml(fit2ST,optNni=TRUE, optGamma=TRUE, optInv=TRUE)
# show some of the methods available for class pml
methods(class="pml")