Este é um estudo dirigido sobre coevolução. Assim como “em biologia nada faz sentido a não ser à luz da evolução” (Dobzhanski 1973), “nada evolui isoladamente” (Charleston & Libeskind-Hadas 2014). A coadaptação entre espécies interagentes, especialmente sistemas mutualistas e hóspede-parasito, pode gerar padrões similares entre as filogenias dos interagentes. A congruência entre as filogenias de espécies interagentes pode ser testada a partir de análises cofilogenéticas.

Um teste útil para avaliar se houve coespeciação entre dois grupos seria avaliar se a congruência entre as espécies em filogenias de hospedeiro e parasita (ou mutualistas) é maior do que o esperado ao acaso. Você pode ler um pouco sobre coespeciação em https://bit.ly/2HqwzTp.

Aqui utilizaremos o teste ParaFit, de Legendre et al. (2002) [artigo original em https://bit.ly/2VEb5g3]. O ParaFit funciona como um teste global de coespeciação entre duas filogenias. Este teste foca na estrutura das filogenias dos grupos de espécies interagentes e em uma matriz de ligações (hospedeiro-parasito ou mutualista-mutualista), especificando quais espécies de um grupo interagem com quais espécies do outro grupo. A hipótese nula do teste é que a evolução dos grupos interagentes foi independente (não houve coevolução). A hipótese alternativa é de que houve coevolução e, que portanto, há congruência entre as filogenias e a distribuição dos interagentes nos terminais das filogenias. Uma congruência máxima (algo difícil de observar na natureza) geraria algo como a Fig. 1 do artigo de Legendre et al. (2002).

Considerando a hipótese nula de que a especiação foi independente entre os grupos, se o valor de P associado a estatística ParaFitGlobal for <0.05, rejeita-se a hipótese nula, e conclui-se que os grupos coevoluíram. Em outras palavras, conclui-se que houve especiações paralelas ao longo da evolução, gerando filogenias em grande parte congruentes. Por outro lado, se o valor de P for ≥0.05, não se rejeita a hipótese nula, e considera-se que a evolução dos dois grupos foi independente entre si.

Vamos começar a rodar o script, e na medida em que vamos avançando, mais informações vão sendo fornecidas.

Você pode usar os seguintes comandos para limpar sua área de trabalho e sua área de gráficos.

rm(list=ls())
graphics.off()

Para a prática de hoje, precisaremos dos pacotes “ape” e “adephylo”. Instale os pacotes com os comandos a seguir, lembrando de retirar o “#”:

#install.packages("ape")
#install.packages("adephylo")

Lembre-se de carregar os pacotes instalados:

library(ape)
library(adephylo)

Utilizaremos os dados de coevolução entre figueiras e vespas de Weiblen (2004). Figueiras e vespas são um exemplo clássico de coevolução. Você pode ler um pouco sobre esse sistema coevolutivo em https://bit.ly/2JmSZZq.

Os dados estão disponíveis em https://bit.ly/2LMLDAp. Baixe os arquivos de filogenias “weiblen2000.nexus” e “Weiblen.nexus”. Salve as filogenias com a extensão “.nexus” na pasta do seu computador. Alternativamente, você pode salvar cada filogenia como “.txt”, mas lembre-se de trocar a extensão na linha de comando em que se lê a filogenia (“read.nexus”). Além disso, baixe o arquivo “interact.txt”, que mostra quais são as espécies que interagem entre si, e o “TraitData.txt”, com características das espécies de vespas e figueiras, ambos disponíveis na pasta em https://bit.ly/30lwqJJ.

Se você quiser ver o artigo original de Weiblen (2004), acesse-o livremente em https://bit.ly/2VFDH8n.

Carregue as filogenias. Note que como, na verdade, há várias filogenias em cada um dos arquivos “.nexus”, trabalharemos somente com uma filogenia de cada um dos grupos. Para isso usaremos duplos colchetes para individualizar uma filogenia.

fig_phylo9 <- read.nexus("weiblen2000.nexus")
#ou fig_phylo9 <- read.nexus("weiblen2000.txt")
fig_phylo <- fig_phylo9[[1]]

wasp_phylo13 <- read.nexus("Weiblen.nexus")
wasp_phylo <- wasp_phylo13[[1]]

Agora, visualize a filogenia das figueiras.

plot(fig_phylo, cex=0.4)

E, então, das vespas.

plot(wasp_phylo, cex=0.4)

Agora precisamos carregar a matriz que informa as ligações de interação entre as espécies.

interact <- read.table("interact.txt", row.names = 1, header = T, sep = ",")

Agora, devemos organizar os dados. Precisamos que somente as espécies para que temos informação de interação estejam na filogenia de cada grupo. Usando a função “drop.tip”, excluiremos os nomes de espécies da filogenia que não constam na matriz de interações (“interact”).

Comecemos com a filogenia de figueiras.

fig_phylo$tip.label %in% colnames(interact) #FALSE indica que espécies não estão na matriz de interações
summary(fig_phylo$tip.label %in% colnames(interact)) #Síntese do comando anterior
to_remove <- subset(fig_phylo$tip.label, !fig_phylo$tip.label %in% colnames(interact)) #Que espécies devemos remover da filogenia. Note que "!" inverte o argumento lógico
fig_phylo_red <- drop.tip(fig_phylo, to_remove) #Remove as espécies da filogenia
fig_phylo_red$tip.label #Observa o novo conjunto de espécies na filogenia podada

Agora o mesmo para a filogenia de vespas.

wasp_phylo$tip.label %in% rownames(interact)
summary(wasp_phylo$tip.label %in% rownames(interact))
to_remove_w <- subset(wasp_phylo$tip.label, !wasp_phylo$tip.label %in% rownames(interact))
wasp_phylo_red <- drop.tip(wasp_phylo, to_remove_w)
wasp_phylo_red$tip.label

Agora podemos calcular as distâncias filogenéticas entre espécies de figueiras (“dist_fig”) e entre espécies de vespas (“dist_wasp”). O problema é que nossas filogenias (como as estamos usando) não são datadas, ou seja, não temos comprimentos de ramos. Assim, podemos trabalhar com contagem de nós que separam cada par de espécies na filogenia. Para isso, usaremos a função “distTips” do pacote “adephylo”.

dist_fig <- distTips(fig_phylo_red, method = "nNodes")
dist_wasp <- distTips(wasp_phylo_red, method = "nNodes")

Você pode visualizar (utilizando “View”) as matrizes de distância (em número de nós) geradas após transformá-las em matrizes.

dist_fig_m <- as.matrix(dist_fig)
dist_wasp_m <- as.matrix(dist_wasp)

Antes de rodarmos o teste ParaFit, precisamos colocar o nome das espécies na matriz de interações na mesma ordem em que aparecem em cada uma das filogenias. Isso será importante para a análise de coespeciação (ParaFit). Veja que as espécies de vespas estão nas linhas, enquanto as espécies de figueiras estão nas colunas de “interact”. Podemos usar o seguinte comando para organizar o nome das espécies.

interact_ord <- interact[labels(dist_wasp),labels(dist_fig)]

Você pode checar se deu certo. Todas as comparações lógicas devem ser verdadeiras (“TRUE”).

labels(dist_fig) == colnames(interact_ord)
labels(dist_wasp) == rownames(interact_ord)

Tendo feito a organização e checagem dos dados, estamos prontos para a análise ParaFit. Esta análise está implementada na função parafit do pacote ape. Para corrigir um “artefato” da análise (autovalores negativos), será usado o argumento “correction”.

resu <- parafit(dist_fig, dist_wasp, t(interact_ord), correction="lingoes")

Você pode observar os resultados do teste global (ParaFitGlobal) e seu valor de P, utilize “resu$”, escolhendo as opções após o cifrão como a seguir.

resu$ParaFitGlobal
resu$p.global

Como um complemento à análise de coespeciação, vamos observar como características coadaptativas podem estar por trás da coevolução dos grupos. Para isso, carregue os dados de características das vespas e figueiras.

traits <- read.table("TraitData.txt", row.names = 1, header = T, sep = ",")

As vespas utilizam seu ovipositor para depositar os ovos dentro do estilete das flores da figueira, localizadas dentro do sicônio (inflorescência). Veja como essas características estão envolvidos na oviposição em https://bit.ly/2vXP5NR. Assim, uma boa hipótese coevolutiva é a de que o comprimento do ovipositor das vespas tenha coevoluído com o comprimento dos estiletes (e vice-versa). Então, podemos esperar uma correlação entre essas características. Vamos testar essa hipótese.

Primeiro visualizamos a relação entre as duas características em um gráfico de dispersão.

plot(traits$PlantStyle, traits$PollOvip)

Então, avaliamos se a distribuição de cada uma das características é normal (Gaussiana). Isso influenciará na escolha do tipo de correlação que usaremos.

hist(traits$PlantStyle) #estilete da flor da figueira
hist(traits$PollOvip) #ovipositor da vespa

Como a distribuição dos dados de características não é normal, usaremos correlação de Spearman. A hipótese nula do teste é de que não há correlação entre as características. Valores de P<0.05 são significativos. (Valores de P com notações como “e-12” significam “x 10 elevado na -12”.)

cor.test(traits$PlantStyle, traits$PollOvip, method="spearman")

EXTRA: Se você gostou deste exercício e gostaria de ver um gráfico das cofilogenias, tente usar a função “cophylo” do “phytools”. O uso dessa função está descrito em https://bit.ly/2VGNtHy.

Referências

Charleston, M., & Libeskind-Hadas, R. (2014) Event-based cophylogenetic comparative analysis. In: Garamszegi, L.Z. (ed.) Modern phylogenetic comparative methods and their application in evolutionary biology (pp. 465-480). Springer, Berlin.

Dobzhansky, T. (1973) Nothing in Biology Makes Sense except in the Light of Evolution. The American Biology Teacher, 35(3), 125-129.

Legendre, P., Desdevises Y. & Bazin E. (2002) A statistical test for host-parasite coevolution. Systematic Biology, 51(2), 217-234.

Ridley, M. (2009). Evolução. Artmed, Porto Alegre.

Weiblen, G. D. (2004) Correlated evolution in fig pollination. Systematic Biology, 53(1), 128-139.

Exercícios do estudo dirigido

Elabore um documento (.doc ou .pdf) respondendo às perguntas seguintes para envio para o email da monitoria até às 23:59 do dia 29/5 (turma manhã) ou até 11:59 do dia 30/5 (turma noite). Serão duas semanas por se tratar de um estudo dirigido.

  1. Explique o conceito de coespeciação, com base no material consultado.

  2. Qual a conclusão a que você chegou em relação à presença de coevolução entre figueiras e vespas: existiu ou não coevolução entre os grupos? Explique sua resposta com base na interpretação biológica do teste ParaFit e da correlação entre características.

Dicas: Inclua todas as figuras geradas, com uma breve legenda. Apresente a estatística de teste e o valor de P de cada análise realizada (ParaFitGlobal e correlação de Spearman).