Na semana passada, utilizamos o lambda de Pagel para testar se há sinal filogenético em características contínuas univariadas, isto é, o sinal filogenético era testado para uma característica de cada vez. Hoje, utilizaremos a regressão de Mantel para testar se há sinal filogenético em um conjunto de múltiplas características.
Você pode usar os seguintes comandos para limpar sua área de trabalho e seus gráficos.
rm(list=ls())
graphics.off()
Para a prática de hoje, precisaremos dos pacotes “phytools”, “ape” e “picante”. Se ainda não os têm, instale os pacotes com os comandos a seguir, lembrando de retirar o “#”:
#install.packages("phytools")
#install.packages("ape")
#install.packages("picante")
Lembre-se de carregar os pacotes instalados:
library(phytools)
library(ape)
library(picante)
Lembre de especificar um diretório (pasta) de trabalho no seu computador utilizando o comando setwd (caso você não tenha criado um projeto do R e respectiva pasta de trabalho para a aula de hoje):
setwd("endereço da pasta em que estão seus arquivos usando barras / e não contrabarras ")
Observe os arquivos na sua pasta com o comando dir.
dir()
Carregue seus dados. Lembre que eles devem estar no diretório especificado anteriormente!
arvore<-read.tree("anolis.tre")
arvore
caract <- read.csv("caracteristicas.csv", row.names = 1)
caract
Para manter somente as mesmas espécies e deixá-las na mesma ordem na arvore filogenética e na tabela de características use a função “match.phylo.data” do pacote “picante”.
resu_org <- match.phylo.data(arvore, caract)
Dê um novo nome para a árvore filogenética e para a tabela de características organizadas.
arvore_org <- resu_org$phy
caract_org <- resu_org$data
Vamos observar a árvore filogenética.
plot(arvore_org)
Veja um pedaço da tabela:
head(caract_org)
Agora, podemos testar se há sinal filogenético para várias características ao mesmo tempo. Isso seria similar a perguntarmos se há sinal filogenético na morfologia como um todo (no caso de estarmos usando várias características que descrevem bem a morfologia do organismo). Para testar o sinal filogenético multivariado, podemos utilizar a regressão de Mantel.
Para isso, devemos primeiro gerar uma matriz de dissimilaridades para características e outra para filogenia. Para filogenia, usaremos distâncias cofenéticas.
dist.arvore<-cophenetic.phylo(arvore_org)
#dist.arvore[1:4,1:4]
#View(as.matrix(dist.phy))
Para características, existem várias possibilidades, dependendo da natureza dos dados (categóricos, contínuos…). Para dados contínuos em diferentes escalas de variação (unidades, dezenas, centenas, etc), antes de gerarmos a matriz de dissimilaridades, devemos padronizar as características para a mesma escala de variação. Usaremos a padronização vetorial para média zero e variância um.
caract_org_std<-decostand(as.matrix(caract_org), method='standardize') #Aqui padronizamos as variáveis para uma mesma escala
Agora, computamos a matriz de dissimilaridades.
dist.caract<-as.matrix(vegdist(caract_org_std, "euclidean"))
#dist.caract[1:4,1:4]
Enfim, podemos computar a regressão de Mantel, obtendo o R² e o valor de P.
resu_mantel <- multi.mantel(dist.caract, dist.arvore)
#resu_mantel$r.squared
#resu_mantel$probF
Interprete também a relação entre distâncias fenotípicas e filogenéticas visualmente.
plot(dist.arvore, dist.caract)
abline(resu_mantel)
*Dica: Se você sentiu dificuldade de acompanhar o conteúdo desta aula e quiser ler um texto em portugues sobre o assunto, leia a introdução geral da tese de Vanderlei Debastiani (2016), disponível em: https://lume.ufrgs.br/handle/10183/143857