################################################################################ ### TALLER FUNDAMENTOS DE R ### ### EJERCICIO 6.3: Indexación y manipulación de una filogenia ### ### ### ### Center for Conservation and Sustainable Development ### ### Missouri Botanical Garden ### ### Website: rbasicsworkshop.weebly.com ### ################################################################################ ### INTRODUCCIÓN ############################################## ################# # En este ejercicio usted explorará la estructura de objetos de clase "phylo", # utilizados para representar filogenias en R, manipulará estos objetos y producirá # graficas de filogenias. ## TAREA 1 ## # Instale el paquete "ape" si no lo ha hecho previamente install.packages("ape") # Abra el paquete "ape" library(ape) ## TAREA 2 ## # Lea el archivo "tree_central_ages.new" (disponible en la página del taller); este archivo contiene # una filogenia con fechas (cronograma) de todas las familias de plantas (en formato "Newick"). Asegurese # de defir su directorio de trabajo para indicar dónde está el archivo "tree_central_ages.new": setwd("C:/_transfer/RBasicsWorkshop/TallerFundamentosR_Abril2020_OxapampaVirtual/Datasets/OtherFiles") #el directorio en la compu de Ivan phylo.fam.world <- read.tree("tree_central_ages.new") ## TAREA 3 ## # grafique la filogenia plot(phylo.fam.world, type="fan", cex=0.2) ## TAREA 4 ## # Examine las propiedades del objeto "phylo.fam.world" class(phylo.fam.world) attributes(phylo.fam.world) str(phylo.fam.world) #note que los objetos de clase "phylo" son listas ## TAREA 5 ## # Lea la sección sobre objetos de clase "phylo" en la página 30 de Paradis (2012, Analysis # of phylogenetics and evolution with R", disponible en la página del taller: # http://rbasicsworkshop.weebly.com/books.html). # Use el operator "$" para explorar los componentes de la clase phylo: "edge", # "edge.length", "tip.label", "Nnode", "node.lable", "root.edge". Por ejemplo: phylo.fam.world$edge # note que puede usar indexación numérica en cada componente, por ejemplo: phylo.fam.world$edge[1:7,] ## TAREA 6 ## # Examine las clases de objeto obtenidas al indexar con corchetes (paréntesis) cuadrados # sencillos y dobles: class(phylo.fam.world[1]) class(phylo.fam.world[[1]]) class(phylo.fam.world[2]) class(phylo.fam.world[[2]]) class(phylo.fam.world[3]) class(phylo.fam.world[[3]]) ## TAREA 7 ## # Examine los nombres de las puntas de la filogenia phylo.fam.world$tip.label # estudie el siguiente código, se utiliza para editar los nombres en las puntas de la filogenia, # cambiando la primera letra de minúscula a mayúscula; para entender el código, visite las páginas # de ayuda para las funciones "paste", "toupper", y "substring": phylo.fam.world$tip.label <- paste(toupper(substring(phylo.fam.world$tip.label, 1, 1)), substring(phylo.fam.world$tip.label, 2), sep="") #examine el resultado phylo.fam.world$tip.label ## TAREA 8 ## # Estudie cuidadosamente el siguiente código. Visite la página de ayuda para la función "drop.tip". # Use esta función para graficar una selección de las puntas de la filogenia, por ejemplo: phylo.fam.world.1 <- drop.tip(phylo.fam.world, 25:476, subtree=TRUE) plot(phylo.fam.world.1, type="p", cex=0.8, show.node.label=F) axisPhylo(1) phylo.fam.world.2 <- drop.tip(phylo.fam.world, c(1:24,51:476), subtree=TRUE) plot(as.phylo(phylo.fam.world.2), type="p", cex=0.8,show.node.label=F) axisPhylo(1) phylo.fam.world.3 <- drop.tip(phylo.fam.world, c(1:50,70:476), subtree=TRUE) plot(as.phylo(phylo.fam.world.3), type="p", cex=0.8,show.node.label=F) axisPhylo(1) # Escriba su propio código para otros gráficos similares