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, model="", ...) 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. |
model |
Amino acid models: one of "WAG", "JTT", "Dayhoff" or "LG" |
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 topology search uses a nearest neighbour interchange (NNI)
and the implenatation is similar to phyML.
The option model is only used for amino acid models.
Here is a overview how to estimate different phylogenetic models
with pml
:
model | optBf | optQ |
Jukes-Cantor | FALSE | FALSE |
F81 | TRUE | FALSE |
symmetric | FALSE | TRUE |
GTR | TRUE | TRUE |
So far 4 amino acid models are supported ("WAG", "JTT", "Dayhoff" and "LG").
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.
Whelan, S. and Goldman, N. (2001) A general empirical model of protein evolution derived from multiple protein families using a maximum-likelihood approach. Molecular Biology and Evolution, 18, 691–699
Le, S.Q. and Gascuel, O. (2008) LG: An Improved, General Amino-Acid Replacement Matrix Molecular Biology and Evolution 25(7), 1307–1320
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) fitJC ## Not run: # search for a better tree using NNI rearrangements fitJC <- optim.pml(fitJC, optNni=TRUE) 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) # GTR + Gamma + I - model fitGTR <- optim.pml(fitJC_GI, optNni=TRUE, optGamma=TRUE, optInv=TRUE, optBf=TRUE, optQ=TRUE) ## 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) fit2ST # show some of the methods available for class pml methods(class="pml")