Aula 07 — Estados ancestrais e visualização
No mapa dos métodos, esta aula cobre a coluna Como era o ancestral? para atributos contínuos e discretos. Os exemplos usam a árvore-guia, os Anolis e o modo de alimentação das enguias (Collar et al. 2014).
Slides
As figuras dos slides foram geradas em R; o código está em R/aula07_ancestrais.R.
Em 3 minutos
Conteúdo
- Por que estimar estados ancestrais
- Atributos contínuos: parcimônia, verossimilhança, o nó 13 e a raiz passo a passo, incerteza,
contMap, fenograma com IC, tendência com fósseis - Atributos discretos: marginal, conjunta e mapeamento estocástico; os Squamata da Aula 6
- Visualização: os gráficos do
phytoolse o filomorfoespaço
Código R (aula prática)
- Roteiro prático (executado)
Parcimônia × ML na árvore-guia, o nó 13 e o re-enraizamento, incerteza,contMape fenograma nos Anolis, tendência com fósseis, marginal × conjunta e mapeamento estocástico nas enguias, filomorfoespaço. O código roda na página. - Roteiro da edição de 2020 ·
aula-5-sexta.R
Gráficos dophytoolse dophylosignal, PCA filogenética e PVR. - Os estados ancestrais de 2020 estão na primeira metade do roteiro da Aula 3.
Pacotes: ape, phytools.
Dados utilizados
elopomorph.treeelopomorph.csv: modo de alimentação das enguias (Collar et al. 2014)canto.csvefilogenia_bocaina.txt: cantos de anuros da Bocaina- Os Anolis vêm do
phytools(data(anoletree, anole.data)).
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 %).
O ancestral dos Centrarchidae. Com data(sunfish.tree, sunfish.data, package = "phytools"): (1) para o modo de alimentação (feeding.mode), ajuste ER e ARD (phytools::fitMk()), estime as probabilidades marginais nos nós (phytools::ancr()) e desenhe-as; (2) faça 200 mapas estocásticos e resuma o número de mudanças em cada sentido; (3) para a abertura da boca (gape.width), estime os estados ancestrais com IC 95% (phytools::fastAnc()) e faça um contMap. Avaliação: diz quão incerta é a raiz nos dois atributos e não apresenta as estimativas como valores conhecidos.
- As seções 1, 3, 5 e 6 do roteiro fazem cada passo com outros dados.
sunfish.treevem com o modo de alimentação mapeado (classesimmap): para ofitMk()e ofastAnc(), useas.phylo(sunfish.tree).feeding.modeé um fator; para o vetor com nomes:setNames(sunfish.data$feeding.mode, rownames(sunfish.data)).- Fixe a semente antes do
make.simmap().
library(ape); library(phytools)
data(sunfish.tree, sunfish.data, package = "phytools")
arv <- as.phylo(sunfish.tree)
modo <- setNames(sunfish.data$feeding.mode, rownames(sunfish.data))
boca <- setNames(sunfish.data$gape.width, rownames(sunfish.data))
# 1. fitMk(arv, modo, model = "ER") e "ARD"; ancr(...); pizzas nos nós
# 2. set.seed(1); make.simmap(arv, modo, model = ..., nsim = 200); summary(...)
# 3. fastAnc(arv, boca, CI = TRUE); contMap(arv, boca)As respostas comentadas serão publicadas aqui depois do prazo de entrega.
Leituras recomendadas
- Revell & Harmon (2022), Phylogenetic Comparative Methods in R: capítulos 8 e 13
- Huelsenbeck, Nielsen & Bollback (2003): mapeamento estocástico
- Webster & Purvis (2002): quão precisas são as estimativas