library(ape)
# Archivo ML (NEWICK)
f_raxml <- "../docs/raxml_cox1_Stenopelmatus.tre"
# Lectura con ape
ml_phylo <- read.tree(f_raxml)
# Clase del objeto
class(ml_phylo)[1] "phylo"
# [1] "phylo"El árbol que usaremos proviene del artículo de Gutiérrez-Rodríguez et al., publicado en la revista Invertebrate Systematics (2022). En este trabajo se analizó la diversidad y las relaciones evolutivas del género Stenopelmatus (Orthoptera: Stenopelmatidae: Stenopelmatinae), conocidos en México como “caras de niño” y en Estados Unidos como “Jerusalem crickets”.
El estudio integró datos mitocondriales (cox1) y nucleares (3RAD) para reconstruir la filogenia del grupo, revelando una amplia diversificación y una marcada estructura filogenética en Mesoamérica. Además, los autores listaron las accesiones de cox1 y las lecturas de 3RAD por localidad, garantizando la trazabilidad de los datos utilizados.
Para nuestro tutorial trabajaremos con dos archivos complementarios:
Un árbol obtenido con RAxML (ML, formato NEWICK) a partir del gen cox1.
Un árbol generado con BEAST (Bayesiano, formato NEXUS/treedata) que incorpora información de datación y barras de HPD, ideal para mostrar cómo integrar y visualizar metadatos temporales.
Estos dos árboles serán nuestros hilos conductores para mostrar, paso a paso, cómo transformar archivos .tre crudos en figuras claras, reproducibles y listas para ser compartidas con el mundo.
Una vez que tenemos identificados nuestros archivos de ejemplo, el siguiente paso es llevarlos a R. Los árboles filogenéticos suelen distribuirse en distintos formatos, y dependiendo del programa de origen, necesitaremos elegir la función y paquete adecuados para leerlos.
ape
read.tree() → para archivos NEWICK (.tre, .nwk).
read.nexus() → para archivos NEXUS (.nex).
Devuelve objetos de clase phylo, que representan la estructura básica del árbol (topología, nombres de puntas, longitudes de rama).
treeio
read.newick() → NEWICK enriquecido.
read.nexus() → NEXUS con posibilidad de extraer metadatos.
read.beast() → archivos de BEAST con información de datación, HPD y posterior.
read.raxml() → árboles de RAxML con soportes de nodos.
Devuelve objetos de clase treedata, que son árboles con una tabla de metadatos asociada.
Regla práctica:
Si tu archivo solo tiene topología y longitudes, ape es suficiente.
Si tu archivo proviene de BEAST, RAxML, IQ-TREE, MrBayes o incluye anotaciones, usa treeio para no perder metadatos.
phylo)library(ape)
# Archivo ML (NEWICK)
f_raxml <- "../docs/raxml_cox1_Stenopelmatus.tre"
# Lectura con ape
ml_phylo <- read.tree(f_raxml)
# Clase del objeto
class(ml_phylo)[1] "phylo"
# [1] "phylo"library(treeio)
# Archivo BEAST
f_beast <- "../docs/Beast_Stenopelmatinae_cox1.tre"
# Lectura con treeio
beast_td <- read.beast(f_beast)
# Clase del objeto
class(beast_td)[1] "treedata"
attr(,"package")
[1] "tidytree"
# [1] "tre