20 04 2016

MƩtodos grƔficos para datos comparativos

  • Importante en exploraciĆ³n de datos
  • Forma compacta (y elegante) de presentar datos
  • Sin embargo poco desarrollada en ACF
  • phytools* permite visualizar diferentes datos comparativos sobre filogenias

*Revell LJ (2012) Phytools: an R package for phylogenetic comparative biology (and other things). Methods Ecol Evol 3: 217-223

Objectos clase "phylo" (Ɣrboles)

library(phytools)
library(ape)

ermi <- read.tree("http://marceloarayasalas.weebly.com/uploads/2/5/5/2/25524573/ermitanos.tre")

str(ermi)

Objectos clase "phylo" (Ɣrboles)

## List of 4
##  $ edge       : int [1:58, 1:2] 31 32 32 31 33 33 34 35 36 36 ...
##  $ Nnode      : int 29
##  $ tip.label  : chr [1:30] "Eutoxeres_aquila" "Eutoxeres_condamini" "Ramphodon_naevius" "Threnetes_ruckeri" ...
##  $ edge.length: num [1:58] 5.99 13.6 13.6 4.7 14.89 ...
##  - attr(*, "class")= chr "phylo"
##  - attr(*, "order")= chr "cladewise"

Objectos clase "phylo" (Ɣrboles)

#modificar margenes
par(mfcol=c(1,2))

#horizontal de izq a der
plotTree(ermi,mar=rep(0,4))

#abanico
plotTree(ermi,type="fan",mar=rep(0,4), fsize = 0.5)

Objectos clase "phylo" (Ɣrboles)

Valor actual de rasgos continuos

#modificar margenes
par(mfcol=c(1,1))

ras.contMB<-fastBM(ermi, sig2=0.5, internal=F)

dotTree(ermi, ras.contMB)

Valor actual de rasgos continuos

Valor actual de rasgos continuos

ras.contMB2<-fastBM(ermi, sig2=0.5, internal=F)
ras.contOU<-fastBM(ermi, alpha=0.2,sig2=0.5, internal=F)

ras.conts <- cbind(ras.contMB, ras.contMB2, ras.contOU)

dotTree(ermi, ras.conts)

Valor actual de rasgos continuos

## Warning: alpha but not theta specified in OU model, setting theta to a.

Valor actual de rasgos continuos-Mapa de calor (Heatmap)

phylo.heatmap(ermi,ras.conts,standardize=TRUE,lwd=3,
    pts=FALSE, fsize = c(1,0.5,1))

Valor actual de rasgos continuos-Mapa de calor (Heatmap)

Graficar valor actual de rasgos discretos

discBM <- cut(ras.contMB, breaks = 3, labels = c("a", "b", "c"))

names(discBM) <- ermi$tip.label

colors<-setNames(c("blue","red", "green"),c("a","b", "c"))
colors

dotTree(ermi, discBM, colors = colors)

Valor actual de rasgos discretos

Valor actual de multiples rasgos discretos

discBM2 <- cut(ras.contMB2, breaks = 3, labels = c("a", "b", "c"))

discOU <- cut(ras.contOU, breaks = 3, labels = c("a", "b", "c"))

ras.discs <- data.frame(discBM, discBM2, discOU)

row.names(ras.discs) <- ermi$tip.label

colors<-setNames(c("blue","red", "green"),c("a","b", "c"))

dotTree(ermi, ras.discs, colors = colors)

Valor actual de multiples rasgos discretos

Grafico de reconstrucciĆ³n ancestral (continuo)

contMap(ermi, ras.contMB + 10,plot=T)

Grafico de reconstrucciĆ³n ancestral (continuo)

Grafico de reconstrucciĆ³n ancestral (discreto)

names(discOU) <- ermi$tip.label

set.seed(1)

ermi.disc<-make.simmap(ermi,discOU,nsim=1)

Grafico de reconstrucciĆ³n ancestral (discreto)

## make.simmap is sampling character histories conditioned on the transition matrix
## 
## Q =
##             a           b           c
## a -0.05757521  0.05757521  0.00000000
## b  0.05757521 -0.10645436  0.04887914
## c  0.00000000  0.04887914 -0.04887914
## (estimated using likelihood);
## and (mean) root node prior probabilities
## pi =
##         a         b         c 
## 0.3333333 0.3333333 0.3333333

Grafico de reconstrucciĆ³n ancestral (discreto)

plotSimmap(ermi.disc,colors =colors,lwd=3,fsize=0.8,ftype="i")

Grafico de reconstrucciĆ³n ancestral (discreto)

Grafico de reconstrucciĆ³n ancestral (discreto)

plotSimmap(ermi.disc,colors =colors,type="fan",
           lwd=3,fsize=0.8,ftype="i")

Grafico de reconstrucciĆ³n ancestral (discreto)

Probabilidad en reconstrucciĆ³n ancestral (discreto)

ermi.disc<-make.simmap(ermi,discOU, nsim=50)

ermi.disc2<-summary(ermi.disc)

plot(ermi.disc2, colors = colors)

Probabilidad en reconstrucciĆ³n ancestral (discreto)

## make.simmap is sampling character histories conditioned on the transition matrix
## 
## Q =
##             a           b           c
## a -0.05757521  0.05757521  0.00000000
## b  0.05757521 -0.10645436  0.04887914
## c  0.00000000  0.04887914 -0.04887914
## (estimated using likelihood);
## and (mean) root node prior probabilities
## pi =
##         a         b         c 
## 0.3333333 0.3333333 0.3333333

Probabilidad en reconstrucciĆ³n ancestral (discreto)

Probabilidad en reconstrucciĆ³n ancestral (discreto)

Fenogramas

ermi2 <- ermi
ermi2$tip.label <- 1:length(ermi$tip.label)
par(mfrow= c(1,2))

phenogram(ermi2,ras.contMB2,spread.labels=TRUE)
title(main="Browniano",adj=0,cex=3)

phenogram(ermi2,ras.contOU,spread.labels=TRUE)
title(main="OU",adj=0,cex=3)

Fenogramas

Fenogramas

par(mfrow= c(1,1))

ras.conts2 <-cbind(ras.contMB2,ras.contOU)
rownames(ras.conts2) <- ermi2$tip.label

fancyTree(ermi2,"traitgram3d",X=ras.conts2,method="static",angle=-30)

Fenogramas

Fenogramas + incertidumbre

fancyTree(ermi2,"phenogram95",x=ras.contMB,
          link=0.1*max(nodeHeights(ermi2)))

Fenogramas + incertidumbre

## Computing density traitgram...

Polimorfoespacio

ras.conts[,1] 
ras.conts[,2] <- ras.conts[,1] + rnorm(n = nrow(ras.conts), mean = 0,sd = 2)
ras.conts[,3] <- ras.conts[,1] + rnorm(n = nrow(ras.conts), mean = 0,sd = 2)


phylomorphospace(ermi,ras.conts[,1:2],
                label="off",node.by.map=TRUE)

Polimorfoespacio

Polimorfoespacio + rasgo categorico

ermi.disc<-make.simmap(ermi,discOU,nsim=1)

rownames(ras.conts2)<-ermi.disc$tip.label

phylomorphospace(ermi.disc,ras.conts2,
                label="off",node.by.map=TRUE,colors=colors)

Polimorfoespacio + rasgo categorico

## make.simmap is sampling character histories conditioned on the transition matrix
## 
## Q =
##             a           b           c
## a -0.05757521  0.05757521  0.00000000
## b  0.05757521 -0.10645436  0.04887914
## c  0.00000000  0.04887914 -0.04887914
## (estimated using likelihood);
## and (mean) root node prior probabilities
## pi =
##         a         b         c 
## 0.3333333 0.3333333 0.3333333

Polimorfoespacio + rasgo categorico

Polimorfoespacio + tiempo evolutivo

ermi.era<-make.era.map(ermi,0:99)

colors<-rainbow(100,start=0,end=0.7)

names(colors)<-1:100

par(mfcol=c(1,2))

plotSimmap(ermi.era,colors,pts=FALSE,lwd=6,mar=c(5.1,2.1,4.1,1.1),
           ftype="i")

phylomorphospace(ermi.era,ras.conts2[,c(1,3)],colors=colors,node.by.map=TRUE,
                 lwd=4,node.size=c(0.8,1.3),label="horizontal")

Polimorfoespacio + tiempo evolutivo

Polimorfoespacio + tiempo evolutivo

Polimorfoespacio + tiempo evolutivo

Polimorfoespacio + tiempo evolutivo

Filogenia + distribuciĆ³n geogrĆ”fica