Hoje, a prática será sobre Contrastes Filogenéticos Independentes (Felsenstein, 1985). Estes exercícios foram adaptados dos exercícios da página de Liam Revell (https://goo.gl/vnjHyq).
Primeiramente, limpe sua área de trabalho e gráficos.
rm(list=ls())
graphics.off()
Carregue os pacotes a serem usados (phytools e ape). Se você ainda não os tem instalados, antes de carregá-los, deve utilizar a função “install.packages”.
#install.packages("phytools")
library(phytools)
library(ape)
Baixe a árvore filogenética dos Anolis de https://goo.gl/zpVqQt e os dados de características contínuas de https://goo.gl/Z4uvxM. Carregue e visualize ambos.
tree<-read.tree("Anolis.tre")
tree
traits <- read.csv("caracteristicas.csv", row.names = 1)
traits
Agora visualize a árvore filogenética.
par(mar=c(0.05,1,0.05,0.1),cex=0.7)
plot(tree)
Veja se os nomes das espécies conferem entre filogenia e características. O comando %in% buscará se cada nome de espécie existente na árvore também consta na matriz de características.
tree$tip.label %in% rownames(traits)
summary(tree$tip.label %in% rownames(traits))
Há muitas espécies da filogenia que não estão na matriz de características. Vamos podar a árvore para manter somente aquelas espécies para que possuímos dados de características. Para isso podemos usar as funções de subconjunto (“subset”) e depois a que remove terminais da filogenia (“drop.tip”).
remove_tips <- subset(tree$tip.label, !tree$tip.label %in% rownames(traits))
tree_red <- drop.tip(tree, remove_tips)
Vamos visualizar a árvore “podada”.
par(mar=c(0.05,1,0.05,0.1),cex=0.8)
plot(tree_red)
Agora, vejamos se a ordem das espécies é a mesma entre filogenia e matriz de características.
tree_red$tip.label%in%rownames(traits)
tree_red$tip.label==rownames(traits)
Como a ordem das espécies não é a mesma entre filogenia e características, vamos organizar as espécies na matriz de características conforme a filogenia.
traits_org <- traits[tree_red$tip.label,]
tree_red$tip.label==rownames(traits_org)
Digamos que tenhamos uma expectativa de que animais mais compridos são mais pesados. Ou seja, quanto maior o lagarto, mais ele necessitará de recursos alimentares, o que levará a uma massa corpórea maior. Vamos avaliar relação entre essas duas características, comprimento e massa do corpo, através de uma regressão linear simples.
traits_org$comprimento
reg<-lm(traits_org$massa~traits_org$comprimento)
summary(reg)
Vamos plotar as duas variáveis em um gráfico de dispersão. Como a relação foi significativa, já podemos plotar também a linha de regressão. (Dica: aproveite e adicione títulos apropriados aos eixos x e y, utilizando os argumentos “xlab” e “ylab” dentro da função “plot”).
plot(traits_org$massa~traits_org$comprimento,cex=1.4,pch=21)
abline(reg,lwd=2,lty="dashed")
Aparentemente, comprimento do corpo explica a massa. Mas será que essa relação se deve a contrastes basais na filogenia ou à convergência evolutiva? Para avaliar se eventos cladogenéticos profundos no tempo influenciam essa relação, podemos utilizar contrastes filogenéticos independentes (PICs). Os contrastes filogenéticos independentes removerão um eventual efeito da filogenia sobre a correlação.
Podemos também plotar um “espaço morfofilogenético” com a função “phylomorphospace” para tentar antever se haverá algum efeito da filogenia.
phylomorphospace(tree_red,cbind(traits_org$comprimento,traits_org$massa),label="off",node.size=c(0,0))
points(traits_org$comprimento,traits_org$massa,pch=21,bg="grey",cex=1.4)
abline(reg,lwd=2,lty="dashed",col="red")
Antes de gerar os contrastes, é importante confirmar que a árvore filogenética é ultramétrica.
is.ultrametric(tree_red)
Agora podemos gerar os PICs para cada característica.
pic_compr <- pic(traits_org$comprimento, tree_red)
pic_massa <- pic(traits_org$massa, tree_red)
length(pic_massa)
Vamos avaliar se há correlação entre os contrastes de comprimento corpóreo e massa corpórea…
reg_pic <- lm(pic_massa~pic_compr)
summary(reg_pic)
…e plotar a relação entre os PICs das duas características. Lembre-se de plotar também a linha de regressão caso a relação seja significativa.
plot(pic_massa~pic_compr,cex=1.4,pch=21)
abline(reg_pic,lwd=2,lty="dashed")
Neste caso, a relação continua existindo mesmo entre os contrastes independentes, ou seja, mesmo após removermos o efeito de eventos cladogenéticos profundos na filogenia.
Vamos ver um outro caso de correlação entre características, agora de primatas. Para isso, baixe, carregue e visualize a árvore filogenética retirada de Lynch (1991), disponível em http://goo.gl/7zFqiQ. (Se você quiser ver o artigo original de Lynch, clique aqui: http://goo.gl/BtRX8j).
tree.primates <- read.tree("primfive.tre")
plot(tree.primates)
Agora, vamos carregar os dados de massa corpórea (Kg) e a longevidade máxima (anos) das espécies de primatas consideradas, conforme disponível em Lynch (1991).
body <- c(60, 37, 10.7, 7.6, 0.23)
longevity <- c(115, 28, 29, 18, 10)
names(body) <- names(longevity) <- c("Homo",
"Pongo", "Macaca", "Ateles", "Galago")
Vamos comparar as espécies e a ordem em que aparecem na filogenia e na matriz de características.
names(body) %in% tree.primates$tip.label
names(body) == tree.primates$tip.label
Estando os dados devidamente organizados, vamos testar a relação entre as características com uma regressão linear simples…
reg_prim<-lm(body~longevity)
summary(reg_prim)
…e plotar a relação entre as duas características. Plote a linha de regressão caso a relação seja significativa.
plot(body~longevity)
abline(reg_prim,lwd=2,lty="dashed")
Vamos tentar antever se haverá algum efeito da filogenia plotando o “espaço morfofilogenético” definido por massa corpórea, longevidade e as relações filogenéticas entre as espécies de primatas.
phylomorphospace(tree.primates,cbind(longevity,body),label="off",node.size=c(0,0))
points(longevity,body,pch=21,bg="grey",cex=1.4)
abline(reg_prim,lwd=2,lty="dashed",col="red")
Antes dos PICs, vamos checar se a árvore é ultramétrica.
is.ultrametric(tree.primates)
Podemos então seguir para os PICs e a regressão que os utiliza…
pic.body <- pic(body, tree.primates)
pic.longevity <- pic(longevity, tree.primates)
reg_prim_pic<-lm(pic.body~pic.longevity)
summary(reg_prim_pic)
…e plotar os contrastes em um gráfico de dispersão.
plot(pic.body~pic.longevity)
Teste se a relação entre outras duas características dos Anolis é devido contrastes basais entre linhagens ou à convergência evolutiva. Apresente os gráficos de dispersão (inclusive o de filomorfoespaço) e os resultados das regressões. Explique sua conclusão, interpretando os resultados biologicamente.
Para quem quiser se aprofundar: Veja o vídeo sobre evolução de características de Anolis (https://youtu.be/rdZOwyDbyL0) - você pode colocar legendas e para traduzir automaticamente no Youtube. Repita o teste que fizemos em aula para vários pares de características dos Anolis. Pesquise sobre irradiação adaptativa e convergência evolutiva e gere uma explicação para os resultados que vocês encontrou.
E nos dados de primatas, a relação entre massa corpórea e longevidade permaneceu ou desapareceu quando removemos o efeito da filogenia, ou seja, de eventos cladogenéticos profundos no tempo evolutivo dos primatas? Como você explicaria este resultado?*
*Dica: Explique os resultados, citando os valores obtidos na análise estatística e plotando os principais gráficos obtidos.