Aula 06 — Atributos discretos
No mapa dos métodos, esta aula cobre a linha dos atributos discretos nas colunas Como evolui? e Estão associados?. O exemplo central é a perda dos membros nos Squamata (Brandley et al. 2008).
Slides
As figuras dos slides foram geradas em R; o código está em R/aula06_discretos.R.
Em 3 minutos
Conteúdo
- Do DNA ao Mk: processos de Markov e modelos de substituição
- O modelo Mk para um caráter binário, passo a passo
- Dados reais: a perda dos membros nos Squamata
- Caracteres multiestado
- Taxas ocultas
- Evolução correlacionada: de Pagel ao
corHMM - O modelo de limiar
Código R (aula prática)
- Roteiro prático (executado)
Q e P(t) passo a passo, Mk nos Squamata (ER e ARD), simulações, multiestado, taxas ocultas (corHMM), teste de Pagel e o teste com taxas ocultas, e o modelo de limiar. O código roda na página.* - Na edição de 2020: o Mk nos Squamata no roteiro da Aula 2 e o teste de Pagel e o limiar no roteiro da Aula 4.
Pacotes: ape, phytools, geiger, corHMM.
Dados utilizados
squamate.treebrandley_table.csv: Squamata (Brandley et al. 2008)fitPagel-data.csvefitPagel-tree.tre: o teste de Pagel no roteirofitPagel-challenge.csvefitPagel-challenge.tre: o desafio
Desafio
Entregue um script .R que rode do zero numa sessão limpa, as figuras pedidas e até uma página de interpretação. Critério: o script roda (30 %); as escolhas estão justificadas (30 %); a interpretação está correta (40 %).
Correlação ou pseudorreplicação? Use fitPagel-challenge.csv e fitPagel-challenge.tre. (1) Desenhe a árvore com os dois caracteres nas pontas. (2) Rode o teste de Pagel (phytools::fitPagel()). (3) Rode o teste com taxas ocultas (corHMM::fitCorrelationTest()) e monte a tabela de AICc e pesos dos quatro modelos. (4) Estime quantas vezes cada caráter mudou (mapeamento estocástico, Aula 7, ou só pela figura). Avaliação: as conclusões dos dois testes são comparadas e a de correlação é discutida à luz do número de mudanças.
- A seção 6 do roteiro faz os dois testes com os dados da prática; compare as suas conclusões com as de lá.
- O
fitPagel()quer dois vetores com nomes; ofitCorrelationTest(), umdata.framecom a espécie na primeira coluna. Ele leva alguns minutos. - Para desenhar os dois caracteres:
plotTree()etiplabels(pch = ...), ouphytools::dotTree(). - Para contar as mudanças,
make.simmap()em cada caráter esummary()dos mapas (Aula 7).
library(ape); library(phytools); library(corHMM)
X <- read.csv("fitPagel-challenge.csv", row.names = 1)
arv <- read.tree("fitPagel-challenge.tre")
x <- setNames(X$x, rownames(X)); y <- setNames(as.character(X$y), rownames(X))
# 1. figura; 2. fitPagel(arv, x, y)
# 3. fitCorrelationTest(arv, data.frame(sp = rownames(X), x = X$x, y = X$y))
# 4. make.simmap(arv, x, nsim = 100) e o mesmo para yAs respostas comentadas serão publicadas aqui depois do prazo de entrega.
Leituras recomendadas
- Revell & Harmon (2022), Phylogenetic Comparative Methods in R: capítulos 6 e 7
- Maddison & FitzJohn (2015): o problema dos testes de correlação
- Boyko & Beaulieu (2023): taxas ocultas como saída