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")