31 Building a phylogenetic tree
31.1 Background
This activity builds intuition for phylogenetic trees by using discrete morphological characters. It aligns with the macroevolution exercise guide in supplemental/Macroevolution_Building_A_Tree/FylTree_ENG_2015.pdf.
Learning outcomes:
- Build a simple character table for a set of organisms.
- Compute pairwise differences and translate them into a tree.
- Relate morphology-based trees to the idea of evolutionary relatedness.
31.2 Worked example
With six organisms and seven characters, you can compute a pairwise difference table, then group the closest relatives first. The internal nodes represent the most recent common ancestors inferred from shared characters.
31.3 Your task
Use supplemental/Macroevolution_Building_A_Tree/FylTree_ENG_2015.pdf as a guide for the classroom activity.
- Pick six organisms (use the cards if you have them, or invent six organisms with clear traits).
- Identify seven discrete characters that differ among the organisms (presence/absence, color class, tail length category, etc.).
- Fill in a character table and then compute a pairwise difference table.
- Draw a phylogenetic tree by grouping the closest relatives first, then adding deeper splits.
- Optional: compare your hand-drawn tree with an R clustering result.
# Replace this with your own character table
characters <- data.frame(
row.names = c("A", "B", "C", "D", "E", "F"),
trait1 = c(1, 1, 0, 0, 0, 1),
trait2 = c(0, 1, 1, 0, 0, 1),
trait3 = c(1, 1, 1, 0, 0, 0)
)
dist_mat <- dist(characters, method = "manhattan")
tree <- hclust(dist_mat, method = "average")
plot(tree, main = "Tree from morphological characters")