pml {phangorn}R Documentation

Likelihood of a tree.

Description

optim.pml computes the likelihood of a phylogenetic tree given a sequence alignment and a model. optim.pml optimizes the different model parameters.

Usage

pml(tree, data, bf=rep(1/length(levels),length(levels)), shape=1, 
    k=1, Q=rep(1,length(levels)*(length(levels)-1)/2), levels=attr(data,"levels"), 
        inv=0, g=NULL, w=NULL, eig=NULL, INV=NULL, ll.0=NULL, ...)     
optim.pml(object, optNni=FALSE, optBf=FALSE, optQ=FALSE,
    optInv=FALSE, optGamma=FALSE, optEdge=TRUE, control = list(maxit=10, eps=0.001))

Arguments

tree A phylogenetic tree, object of class phylo.
data The (DNA) alignment.
bf Base frequencies.
shape Shape parameter of the gamma distribution.
k Number of intervalls of the discrete gamma distribution.
Q A vector containing the lower triangular part of the rate matrix.
levels Factor levels of the data.
inv Proportion of invariable sites.
g Rate.
w Weight of the mixture.
eig The eigenvalues and eigenvectors of the transition matrix. .
INV For internal use.
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. For dna this means: FALSE=Jukes-Cantor, TRUE=GTR
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.
control A list of parameters for controlling the fitting process.
ll.0 For internal use
... Further arguments passed to or from other methods.

Details

The input variables w, g, eig, INV are used to speed up computation, especially during the optimising used in optim.pml, but are not intended to be used by the enduser. The toppology search uses a nearest neighbour interchange (NNI) and is similar to phyML.

Value

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.

Note

For small trees the likelihood seems to be similar to Paup* or PhyML.

Author(s)

Klaus Schliep K.P.Schliep@massey.ac.nz

References

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.

See Also

For a different implementation see mlphylo.

Examples

  example(NJ)
# Jukes-Cantor + Gamma + I   
  fitJC <- pml(tree, Laurasiatherian, k=4, inv=.25) 
  summary(fitJC)
# just optimise edge length parameter     
  fitJC <- optim.pml(fitJC) 
  summary(fitJC)
  plot(fitJC$tree)
  
## Not run: 
# optimise parameter     
  fitJC <- optim.pml(fitJC, optNni=TRUE, optGamma=TRUE, optInv=TRUE) 
  summary(fitJC)
# F81 + Gamma + I - model
  fitF81 <- optim.pml(fitJC, optNni=TRUE, optGamma=TRUE, optInv=TRUE, optBf=TRUE)
  summary(fitF81) 
# GTR + Gamma + I - model
  fitGTR <- optim.pml(fitF81, 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) 
  
  methods(class="pml")  

[Package phangorn version 0.0-1 Index]