Aula 01 — A árvore e os dados
No mapa dos métodos, esta aula é a primeira faixa de base: tudo o que vem depois precisa de uma árvore e de dados que batam com ela. A aula supõe lidas as três leituras prévias.
Slides
As figuras dos slides foram geradas em R; o código está em R/aula01_arvore.R.
Em 3 minutos
Conteúdo
- Antes de começar: as três leituras, o problema do parentesco comum e uma breve história
- O que é uma filogenia: partes, enraizamento, politomias, cladograma, filograma e cronograma, suporte
- Como escrever uma árvore: Newick passo a passo, Nexus e NeXML
- De onde vem a árvore: critérios, fluxo da inferência, programas
- Como obter uma árvore: bases, megafilogenias, pipelines, a árvore à mão
- Dados de atributos: bases por grupo
- Desenho de estudos comparativos: déficits,
phyndr, imputação, PhyloTargeting - A forma da árvore: Colless, γ e o efeito na matriz C
Código R (aula prática)
- Roteiro prático (executado)
O objetophylo, Newick passo a passo, Nexus, enraizamento e politomias, casar a árvore com a tabela, o efeito da não independência (simulado), bootstrap e a forma da árvore. O código roda na página. - Roteiro da edição de 2020 ·
aula-1-segunda.R
Mais manipulação de dados e ophyndr.
Pacotes: ape, phytools, geiger.
Dados utilizados
BarbetTree.nexeBarbetdata.csvCentrarchidae.treeCentrarchidae.csvExample_phylotargeting.nexGomes_phylo.txteGomes_tree_datada.txtanole.data.csvMagallon_etal_PL_ML.nex: filogenia datada de angiospermas (Magallón et al. 2015; Dryad, CC0)GlobalWoodinessDatabase.csv: hábito lenhoso × herbáceo (Zanne et al. 2014; Dryad, CC0)
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 %).
A árvore não bate com os dados. Use data(geospiza, package = "geiger") (a árvore tem 14 espécies; a tabela, 13). (1) Encontre o descompasso com geiger::name.check() e resolva com geiger::treedata(). (2) Verifique se a árvore é enraizada e ultramétrica e salve-a em Newick. (3) Calcule o índice de Colless (escreva a função) e o γ de Pybus (ape::gammaStat()). (4) Desenhe a árvore com o comprimento da asa (wingL) ao lado das pontas. Avaliação: explica o que foi podado e por quê, e interpreta Colless e γ.
- Tudo o que o desafio pede aparece nas seções 3 a 5 e 8 do roteiro, com outros dados.
geospizaé uma lista: a árvore está emgeospiza$phye os dados emgeospiza$dat.- Depois do
treedata(), confira a ordem das linhas (sort = TRUE). - O γ só faz sentido numa árvore ultramétrica; a função de Colless do roteiro funciona com qualquer árvore binária.
library(ape); library(phytools); library(geiger)
data(geospiza, package = "geiger")
str(geospiza, max.level = 1)
# 1. name.check(...) e treedata(..., sort = TRUE)
# 2. is.rooted(), is.ultrametric(), write.tree(..., file = "geospiza.tre")
# 3. colless(...) e gammaStat(...)
# 4. plotTree.barplot(...) com o vetor nomeado de wingLAs respostas comentadas serão publicadas aqui depois do prazo de entrega.
Leituras recomendadas
- Revell & Harmon (2022), Phylogenetic Comparative Methods in R: capítulos 1 e 13
- As três leituras prévias (ver Comece aqui)
- Roquet, Thuiller & Lavergne (2013): megafilogenias