Breve Introducción al Paquete treedata.table
Cristian Roman-Palacios, April Wright, Josef Uyeda
09/06/2020
Source:vignettes/AB_treedata.table_intro_spanish.Rmd
AB_treedata.table_intro_spanish.Rmd
Breve Introducción al Paquete treedata.table
El paquete treedata.table
tiene como objetivo permitir a
investigadores acceder y manipular datos filogenéticos usando
herramientas del paquete data.table
.
data.table
tiene diferentes funciones para manipular
rápidamente datos en una forma eficiente.
El primer paso para usar treedata.table
consiste en
crear un objeto treedata.table
. El objeto
treedata.table
empareja los tip.labels de la filogenia con
una columna en el data.frame
que contiene los nombres de
los taxones. Este paso inicial permite la manipulación subsecuente y
coordinada de los datos en el árbol y la matriz de caracteres dentro de
treedata.table
.
Para este tutorial vamos a usar los datos de Anolis creados
en treeplyr
. Estos caracteres fueron generados
aleatoriamente. Es importante resaltar tres aspectos. Primero, el árbol
tiene que ser en formato phylo
(o multiPhylo
en caso de múltiples árboles). Segundo, la matriz de caracteres tiene
que estár en formato data.frame
. Tercero, la matriz de
caracteres tiene que contener una columna con los nombres de los taxones
coincidiendo con los tip.labels del árbol (o árboles).
El objeto treedata.table
se crea usando la función
as.treedata.table
.
## Thank you for using the {treedata.table} R package!
##
## 🙂Happy coding!!🙂
# Cargamos los datos del ejemplo
data(anolis)
# Creamos el objecto treedata.table con as.treedata.table
td <- as.treedata.table(tree = anolis$phy, data = anolis$dat)
## Tip labels detected in column: X
## Phylo object detected
## All tips from original tree/dataset were preserved
Podemos revisar el objeto resultante simplemente llamando el nombre
del objeto en la consola. La matriz de caracteres, antes en
data.frame
, es ahora un data.table
td
## $phy
##
## Phylogenetic tree with 100 tips and 99 internal nodes.
##
## Tip labels:
## ahli, allogus, rubribarbus, imias, sagrei, bremeri, ...
##
## Rooted; includes branch lengths.
##
## $dat
## tip.label SVL PCI_limbs PCII_head PCIII_padwidth_vs_tail
## <char> <num> <num> <num> <num>
## 1: ahli 4.039125 -3.248286 0.3722519 -1.0422187
## 2: allogus 4.040138 -2.845570 0.6001134 -1.0253056
## 3: rubribarbus 4.078469 -2.238349 1.1199779 -1.1929572
## 4: imias 4.099687 -3.048917 2.3320349 0.1616442
## 5: sagrei 4.067162 -1.741055 2.0228243 0.1693635
## 6: bremeri 4.113371 -1.813611 2.6067501 0.6399320
## PCIV_lamella_num awesomeness hostility attitude ecomorph island
## <num> <num> <num> <num> <char> <char>
## 1: -2.414742 -0.2416517 -0.1734769 0.6443771 TG Cuba
## 2: -2.463311 0.6244689 -0.5000962 0.7128910 TG Cuba
## 3: -2.087433 -0.4277574 0.4800445 -0.9674263 TG Cuba
## 4: -2.112606 0.1694260 -0.4108123 0.1963580 TG Cuba
## 5: -1.375769 -0.6304338 0.7193130 -1.2228276 TG Cuba
## 6: -1.626299 -1.7543006 1.4127184 0.1832345 TG Cuba
Adicionalmente, la matriz de caracteres en el nuevo formato
data.table
ha sido re-ordenado para tener las filas en el
mismo orden que los tip.labels en el árbol.
td$phy$tip.label == td$dat$tip.label
## [1] TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE
## [16] TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE
## [31] TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE
## [46] TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE
## [61] TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE
## [76] TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE
## [91] TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE
Manipulando Datos
La matriz de datos en el objeto treedata.table puede ser indexada
como cualquier otro objeto data.table
. Por ejemplo, podemos
hacer lo siguiente para extraer la columna con información de longitud
hocico-cloaca (SVL) para cada especie.
td$dat[,'SVL']
## SVL
## <num>
## 1: 4.039125
## 2: 4.040138
## 3: 4.078469
## 4: 4.099687
## 5: 4.067162
## 6: 4.113371
## 7: 3.901619
## 8: 3.637962
## 9: 3.987147
## 10: 3.952605
## 11: 4.032806
## 12: 3.938442
## 13: 3.877457
## 14: 4.769473
## 15: 3.838376
## 16: 4.154274
## 17: 4.321524
## 18: 4.128612
## 19: 4.482607
## 20: 4.165605
## 21: 3.869881
## 22: 3.886500
## 23: 3.799022
## 24: 4.188105
## 25: 3.820378
## 26: 4.091535
## 27: 4.189820
## 28: 3.874155
## 29: 3.911743
## 30: 3.831810
## 31: 3.916546
## 32: 3.928796
## 33: 3.663932
## 34: 3.588941
## 35: 3.696631
## 36: 3.793899
## 37: 3.657991
## 38: 4.288780
## 39: 3.800471
## 40: 4.097479
## 41: 4.316542
## 42: 4.051111
## 43: 4.121684
## 44: 4.210982
## 45: 3.983003
## 46: 4.242103
## 47: 4.274271
## 48: 4.079485
## 49: 5.053056
## 50: 5.076958
## 51: 5.013963
## 52: 4.128504
## 53: 3.884652
## 54: 4.875012
## 55: 5.003946
## 56: 5.038034
## 57: 5.042349
## 58: 5.036953
## 59: 3.842994
## 60: 3.845670
## 61: 3.657088
## 62: 4.375390
## 63: 4.258991
## 64: 3.757869
## 65: 3.697941
## 66: 3.466860
## 67: 3.701240
## 68: 3.763884
## 69: 3.773967
## 70: 3.682924
## 71: 3.815705
## 72: 3.788595
## 73: 3.802961
## 74: 3.554891
## 75: 3.537439
## 76: 3.758726
## 77: 3.462014
## 78: 3.630161
## 79: 3.526655
## 80: 3.715765
## 81: 3.626206
## 82: 3.971307
## 83: 4.198915
## 84: 4.280547
## 85: 4.802849
## 86: 5.042780
## 87: 5.083473
## 88: 5.035096
## 89: 5.101085
## 90: 5.113994
## 91: 3.770613
## 92: 3.827445
## 93: 3.908550
## 94: 3.859835
## 95: 4.302036
## 96: 4.036557
## 97: 4.057997
## 98: 4.275448
## 99: 4.297965
## 100: 3.663049
## SVL
También podemos usar los brackets dobles para extraer directamente la misma columna como un vector con nombres.
td[["SVL"]]
## ahli allogus rubribarbus imias sagrei
## 4.039125 4.040138 4.078469 4.099687 4.067162
## bremeri quadriocellifer ophiolepis mestrei jubar
## 4.113371 3.901619 3.637962 3.987147 3.952605
## homolechis confusus guafe garmani opalinus
## 4.032806 3.938442 3.877457 4.769473 3.838376
## grahami valencienni lineatopus reconditus evermanni
## 4.154274 4.321524 4.128612 4.482607 4.165605
## stratulus krugi pulchellus gundlachi poncensis
## 3.869881 3.886500 3.799022 4.188105 3.820378
## cooki cristatellus brevirostris caudalis marron
## 4.091535 4.189820 3.874155 3.911743 3.831810
## websteri distichus barbouri alumina semilineatus
## 3.916546 3.928796 3.663932 3.588941 3.696631
## olssoni etheridgei fowleri insolitus whitemani
## 3.793899 3.657991 4.288780 3.800471 4.097479
## haetianus breslini armouri cybotes shrevei
## 4.316542 4.051111 4.121684 4.210982 3.983003
## longitibialis strahmi marcanoi baleatus barahonae
## 4.242103 4.274271 4.079485 5.053056 5.076958
## ricordii eugenegrahami christophei cuvieri barbatus
## 5.013963 4.128504 3.884652 4.875012 5.003946
## porcus chamaeleonides guamuhaya altitudinalis oporinus
## 5.038034 5.042349 5.036953 3.842994 3.845670
## isolepis allisoni porcatus argillaceus centralis
## 3.657088 4.375390 4.258991 3.757869 3.697941
## pumilis loysiana guazuma placidus sheplani
## 3.466860 3.701240 3.763884 3.773967 3.682924
## alayoni angusticeps paternus alutaceus inexpectatus
## 3.815705 3.788595 3.802961 3.554891 3.537439
## clivicola cupeyalensis cyanopleurus alfaroi macilentus
## 3.758726 3.462014 3.630161 3.526655 3.715765
## vanidicus argenteolus lucius bartschi vermiculatus
## 3.626206 3.971307 4.198915 4.280547 4.802849
## baracoae noblei smallwoodi luteogularis equestris
## 5.042780 5.083473 5.035096 5.101085 5.113994
## monticola bahorucoensis dolichocephalus hendersoni darlingtoni
## 3.770613 3.827445 3.908550 3.859835 4.302036
## aliniger singularis chlorocyanus coelestinus occultus
## 4.036557 4.057997 4.275448 4.297965 3.663049
El mismo resultado puede también ser logrado usando la función
extractVector
. Al igual que con los brackets dobles, el
resultado de la función extractVector
es un vector con
nombres.
extractVector(td, 'SVL')
## ahli allogus rubribarbus imias sagrei
## 4.039125 4.040138 4.078469 4.099687 4.067162
## bremeri quadriocellifer ophiolepis mestrei jubar
## 4.113371 3.901619 3.637962 3.987147 3.952605
## homolechis confusus guafe garmani opalinus
## 4.032806 3.938442 3.877457 4.769473 3.838376
## grahami valencienni lineatopus reconditus evermanni
## 4.154274 4.321524 4.128612 4.482607 4.165605
## stratulus krugi pulchellus gundlachi poncensis
## 3.869881 3.886500 3.799022 4.188105 3.820378
## cooki cristatellus brevirostris caudalis marron
## 4.091535 4.189820 3.874155 3.911743 3.831810
## websteri distichus barbouri alumina semilineatus
## 3.916546 3.928796 3.663932 3.588941 3.696631
## olssoni etheridgei fowleri insolitus whitemani
## 3.793899 3.657991 4.288780 3.800471 4.097479
## haetianus breslini armouri cybotes shrevei
## 4.316542 4.051111 4.121684 4.210982 3.983003
## longitibialis strahmi marcanoi baleatus barahonae
## 4.242103 4.274271 4.079485 5.053056 5.076958
## ricordii eugenegrahami christophei cuvieri barbatus
## 5.013963 4.128504 3.884652 4.875012 5.003946
## porcus chamaeleonides guamuhaya altitudinalis oporinus
## 5.038034 5.042349 5.036953 3.842994 3.845670
## isolepis allisoni porcatus argillaceus centralis
## 3.657088 4.375390 4.258991 3.757869 3.697941
## pumilis loysiana guazuma placidus sheplani
## 3.466860 3.701240 3.763884 3.773967 3.682924
## alayoni angusticeps paternus alutaceus inexpectatus
## 3.815705 3.788595 3.802961 3.554891 3.537439
## clivicola cupeyalensis cyanopleurus alfaroi macilentus
## 3.758726 3.462014 3.630161 3.526655 3.715765
## vanidicus argenteolus lucius bartschi vermiculatus
## 3.626206 3.971307 4.198915 4.280547 4.802849
## baracoae noblei smallwoodi luteogularis equestris
## 5.042780 5.083473 5.035096 5.101085 5.113994
## monticola bahorucoensis dolichocephalus hendersoni darlingtoni
## 3.770613 3.827445 3.908550 3.859835 4.302036
## aliniger singularis chlorocyanus coelestinus occultus
## 4.036557 4.057997 4.275448 4.297965 3.663049
Múltiples columnas pueden tambien ser extraídas usando
extractVector
.
extractVector(td, 'SVL','ecomorph')
## $SVL
## ahli allogus rubribarbus imias sagrei
## 4.039125 4.040138 4.078469 4.099687 4.067162
## bremeri quadriocellifer ophiolepis mestrei jubar
## 4.113371 3.901619 3.637962 3.987147 3.952605
## homolechis confusus guafe garmani opalinus
## 4.032806 3.938442 3.877457 4.769473 3.838376
## grahami valencienni lineatopus reconditus evermanni
## 4.154274 4.321524 4.128612 4.482607 4.165605
## stratulus krugi pulchellus gundlachi poncensis
## 3.869881 3.886500 3.799022 4.188105 3.820378
## cooki cristatellus brevirostris caudalis marron
## 4.091535 4.189820 3.874155 3.911743 3.831810
## websteri distichus barbouri alumina semilineatus
## 3.916546 3.928796 3.663932 3.588941 3.696631
## olssoni etheridgei fowleri insolitus whitemani
## 3.793899 3.657991 4.288780 3.800471 4.097479
## haetianus breslini armouri cybotes shrevei
## 4.316542 4.051111 4.121684 4.210982 3.983003
## longitibialis strahmi marcanoi baleatus barahonae
## 4.242103 4.274271 4.079485 5.053056 5.076958
## ricordii eugenegrahami christophei cuvieri barbatus
## 5.013963 4.128504 3.884652 4.875012 5.003946
## porcus chamaeleonides guamuhaya altitudinalis oporinus
## 5.038034 5.042349 5.036953 3.842994 3.845670
## isolepis allisoni porcatus argillaceus centralis
## 3.657088 4.375390 4.258991 3.757869 3.697941
## pumilis loysiana guazuma placidus sheplani
## 3.466860 3.701240 3.763884 3.773967 3.682924
## alayoni angusticeps paternus alutaceus inexpectatus
## 3.815705 3.788595 3.802961 3.554891 3.537439
## clivicola cupeyalensis cyanopleurus alfaroi macilentus
## 3.758726 3.462014 3.630161 3.526655 3.715765
## vanidicus argenteolus lucius bartschi vermiculatus
## 3.626206 3.971307 4.198915 4.280547 4.802849
## baracoae noblei smallwoodi luteogularis equestris
## 5.042780 5.083473 5.035096 5.101085 5.113994
## monticola bahorucoensis dolichocephalus hendersoni darlingtoni
## 3.770613 3.827445 3.908550 3.859835 4.302036
## aliniger singularis chlorocyanus coelestinus occultus
## 4.036557 4.057997 4.275448 4.297965 3.663049
##
## $ecomorph
## ahli allogus rubribarbus imias sagrei
## "TG" "TG" "TG" "TG" "TG"
## bremeri quadriocellifer ophiolepis mestrei jubar
## "TG" "TG" "GB" "TG" "TG"
## homolechis confusus guafe garmani opalinus
## "TG" "TG" "TG" "CG" "TC"
## grahami valencienni lineatopus reconditus evermanni
## "TC" "TW" "TG" "U" "TC"
## stratulus krugi pulchellus gundlachi poncensis
## "TC" "GB" "GB" "TG" "GB"
## cooki cristatellus brevirostris caudalis marron
## "TG" "TG" "T" "T" "T"
## websteri distichus barbouri alumina semilineatus
## "T" "T" "U" "GB" "GB"
## olssoni etheridgei fowleri insolitus whitemani
## "GB" "U" "U" "TW" "TG"
## haetianus breslini armouri cybotes shrevei
## "TG" "TG" "TG" "TG" "TG"
## longitibialis strahmi marcanoi baleatus barahonae
## "TG" "TG" "TG" "CG" "CG"
## ricordii eugenegrahami christophei cuvieri barbatus
## "CG" "U" "U" "CG" "U"
## porcus chamaeleonides guamuhaya altitudinalis oporinus
## "U" "U" "U" "TC" "TC"
## isolepis allisoni porcatus argillaceus centralis
## "TC" "TC" "TC" "U" "U"
## pumilis loysiana guazuma placidus sheplani
## "U" "T" "TW" "TW" "TW"
## alayoni angusticeps paternus alutaceus inexpectatus
## "TW" "TW" "TW" "GB" "GB"
## clivicola cupeyalensis cyanopleurus alfaroi macilentus
## "GB" "GB" "GB" "GB" "GB"
## vanidicus argenteolus lucius bartschi vermiculatus
## "GB" "U" "U" "U" "U"
## baracoae noblei smallwoodi luteogularis equestris
## "CG" "CG" "CG" "CG" "CG"
## monticola bahorucoensis dolichocephalus hendersoni darlingtoni
## "U" "GB" "GB" "GB" "TW"
## aliniger singularis chlorocyanus coelestinus occultus
## "TC" "TC" "TC" "TC" "TW"
Hay un par de aspectos que son únicos a
[[.treedata.table()
y extractVector()
.
Primero, [[.treedata.table()
tiene un argumento adicional
que permite un correspondencia parcial del nombre de la columna
(i.e. cuando el nombre objetivo tiene una superposicion parcial con los
elementos en el objeto). Segundo, extractVector()
puede
extraer múltiples columnas y permite una evaluación no estandard
(i.e. los nombres son tratados como cadenas de texto literal).
El poder real de treedata.table
está en coindexar el
árbol con la matriz de caracteres. Por ejemplo, en el siguiente comando
usamos la sintaxis de data.table
para extraer el primer
representante de cada ecomorfo y retener todas las columnas.
td[, head(.SD, 1), by = "ecomorph"]
## $phy
##
## Phylogenetic tree with 7 tips and 6 internal nodes.
##
## Tip labels:
## ahli, ophiolepis, garmani, opalinus, valencienni, reconditus, ...
##
## Rooted; includes branch lengths.
##
## $dat
## ecomorph tip.label SVL PCI_limbs PCII_head PCIII_padwidth_vs_tail
## <char> <char> <num> <num> <num> <num>
## 1: TG ahli 4.039125 -3.2482860 0.3722519 -1.0422187
## 2: GB ophiolepis 3.637962 0.7915117 1.4585760 -1.3152005
## 3: CG garmani 4.769473 -0.7735264 0.9371249 0.2594994
## 4: TC opalinus 3.838376 -1.7794371 -0.3245381 1.5569939
## 5: TW valencienni 4.321524 2.9424139 -0.8846007 1.8543308
## 6: U reconditus 4.482607 -2.7270416 -0.2104066 -2.3534242
## PCIV_lamella_num awesomeness hostility attitude island
## <num> <num> <num> <num> <char>
## 1: -2.4147423 -0.24165170 -0.17347691 0.64437708 Cuba
## 2: -2.2377514 0.35441877 0.05366142 -0.09389530 Cuba
## 3: 0.1051149 0.16779131 0.67675600 -0.69460080 Puerto Rico
## 4: 0.9366501 1.48302162 -0.90826653 0.72613483 Jamaica
## 5: 0.1288233 -0.08837008 0.46528679 -0.56754896 Jamaica
## 6: -0.7992905 0.26096544 -0.27169792 0.01367143 Jamaica
Podemos hacer la misma operación con múltiples columnas.
td[, head(.SD, 1), by = .(ecomorph, island)]
## $phy
##
## Phylogenetic tree with 23 tips and 22 internal nodes.
##
## Tip labels:
## ahli, ophiolepis, garmani, opalinus, grahami, valencienni, ...
##
## Rooted; includes branch lengths.
##
## $dat
## ecomorph island tip.label SVL PCI_limbs PCII_head
## <char> <char> <char> <num> <num> <num>
## 1: TG Cuba ahli 4.039125 -3.2482860 0.3722519
## 2: GB Cuba ophiolepis 3.637962 0.7915117 1.4585760
## 3: CG Puerto Rico garmani 4.769473 -0.7735264 0.9371249
## 4: TC Jamaica opalinus 3.838376 -1.7794371 -0.3245381
## 5: TC Puerto Rico grahami 4.154274 -2.3056535 -1.9139369
## 6: TW Jamaica valencienni 4.321524 2.9424139 -0.8846007
## PCIII_padwidth_vs_tail PCIV_lamella_num awesomeness hostility attitude
## <num> <num> <num> <num> <num>
## 1: -1.0422187 -2.4147423 -0.24165170 -0.17347691 0.6443771
## 2: -1.3152005 -2.2377514 0.35441877 0.05366142 -0.0938953
## 3: 0.2594994 0.1051149 0.16779131 0.67675600 -0.6946008
## 4: 1.5569939 0.9366501 1.48302162 -0.90826653 0.7261348
## 5: 1.6852579 1.0144193 0.41064280 -0.11746257 0.7022959
## 6: 1.8543308 0.1288233 -0.08837008 0.46528679 -0.5675490
También implementamos la función tail
.
td[, tail(.SD, 1), by = "ecomorph"]
## $phy
##
## Phylogenetic tree with 7 tips and 6 internal nodes.
##
## Tip labels:
## marcanoi, loysiana, equestris, monticola, hendersoni, coelestinus, ...
##
## Rooted; includes branch lengths.
##
## $dat
## ecomorph tip.label SVL PCI_limbs PCII_head PCIII_padwidth_vs_tail
## <char> <char> <num> <num> <num> <num>
## 1: TG marcanoi 4.079485 -2.84448243 -2.7864415 -0.8020303
## 2: GB hendersoni 3.859835 1.28963045 -2.0630985 -3.4656535
## 3: CG equestris 5.113994 1.05461517 0.7072039 0.7108046
## 4: TC coelestinus 4.297965 -0.02721683 0.3687537 1.6364316
## 5: TW occultus 3.663049 7.92078444 -0.1901397 2.4922819
## 6: U monticola 3.770613 -3.25118016 0.1559934 -2.2390082
## PCIV_lamella_num awesomeness hostility attitude island
## <num> <num> <num> <num> <char>
## 1: -1.04842823 1.1823433 -0.1671936 0.5827900 Hispaniola
## 2: 2.58336718 0.3854544 -0.7133164 -0.3959792 Hispaniola
## 3: 1.66043194 1.0805662 -1.2666114 0.6673026 Cuba
## 4: 1.02571762 0.2909266 -0.6209660 1.2803335 Hispaniola
## 5: -0.09577977 -1.1916870 1.2153014 0.0324486 Puerto Rico
## 6: 0.13156827 0.6289893 0.1468777 -0.4409775 Hispaniola
Las columnas en treedata.table
pueden ser operadas
usando la misma sintaxis de data.table
. En el siguiente
ejemplo, los árboles solo incluirán especies distribuidas en Cuba. Este
es el equivalente a filtrar usando dplyr
. Después, una
nueva columna llamada “Index” es creada en el objeto
data.table
dentro del objeto treedata.table
con los valores de SVL+hostility. En resumen, la siguiente línea permite
en forma simultánea crear una nueva columna y reducir el número de
taxones en la filogenia a las especies de interés.
td[island == "Cuba",.(Index=SVL+hostility)]
## $phy
##
## Phylogenetic tree with 47 tips and 46 internal nodes.
##
## Tip labels:
## ahli, allogus, rubribarbus, imias, sagrei, bremeri, ...
##
## Rooted; includes branch lengths.
##
## $dat
## Index
## <num>
## 1: 3.865649
## 2: 3.540042
## 3: 4.558514
## 4: 3.688875
## 5: 4.786475
## 6: 5.526089
treedata.table
permite aplicar funciones directamente en
nuestros datos de interés. En el siguiente ejemplo, evaluamos un modelo
de evolución browniano sobre los datos de SVL en nuestro set de datos.
Usamos una combinación de tdt
, extractVector
y
geiger::fitContinuous
para correr funciones en nuestros
datos, extraer un vector de caracteres y ajustar el model en cuestión,
respectivamente.
tdt(td, geiger::fitContinuous(phy, extractVector(td, 'SVL'), model="BM", ncores=1))
## Phylo object detected. Expect a single function output
## GEIGER-fitted comparative model of continuous data
## fitted 'BM' model parameters:
## sigsq = 0.136160
## z0 = 4.065918
##
## model summary:
## log-likelihood = -4.700404
## AIC = 13.400807
## AICc = 13.524519
## free parameters = 2
##
## Convergence diagnostics:
## optimization iterations = 100
## failed iterations = 0
## number of iterations with same best fit = 100
## frequency of best fit = 1.000
##
## object summary:
## 'lik' -- likelihood function
## 'bnd' -- bounds for likelihood search
## 'res' -- optimization iteration summary
## 'opt' -- maximum likelihood parameter estimates
Los terminales en el árbol también pueden ser removidos fácilmente, con los cambios también reflejados sobre la matriz de caracteres. En el siguiente ejemplo, removemos dos taxones por sus nombres.
dt <- droptreedata.table(tdObject=td, taxa=c("chamaeleonides" ,"eugenegrahami" ))
## 2 taxa were dropped from the treedata.table object
Revisamos si A. chamaeleonides y A. eugenegrahami aún están en el árbol.
## [1] FALSE FALSE
Y podemos hacer lo mismo con la matriz de caracteres en el nuevo
objeto treedata.table
.
## [1] FALSE FALSE
Por último, el árbol y la matriz de caracteres pueden ser extraídos
de el objeto treedata.table
fácilmente usando la función
pulltreedata.table
.
df <- pulltreedata.table(td, "dat")
tree <- pulltreedata.table(td, "phy")
La tabla
df
## tip.label SVL PCI_limbs PCII_head PCIII_padwidth_vs_tail
## <char> <num> <num> <num> <num>
## 1: ahli 4.039125 -3.24828599 0.37225191 -1.0422187
## 2: allogus 4.040138 -2.84557021 0.60011341 -1.0253056
## 3: rubribarbus 4.078469 -2.23834859 1.11997785 -1.1929572
## 4: imias 4.099687 -3.04891725 2.33203488 0.1616442
## 5: sagrei 4.067162 -1.74105547 2.02282431 0.1693635
## 6: bremeri 4.113371 -1.81361138 2.60675012 0.6399320
## 7: quadriocellifer 3.901619 -2.26789400 0.99092075 0.3553405
## 8: ophiolepis 3.637962 0.79151174 1.45857603 -1.3152005
## 9: mestrei 3.987147 -2.60261906 1.27568612 0.4640379
## 10: jubar 3.952605 -2.22414593 0.94489985 0.6600716
## 11: homolechis 4.032806 -2.74499346 0.87926009 0.8679694
## 12: confusus 3.938442 -2.49591732 0.16823269 0.1551290
## 13: guafe 3.877457 -2.61408710 0.65608676 0.6071245
## 14: garmani 4.769473 -0.77352640 0.93712494 0.2594994
## 15: opalinus 3.838376 -1.77943710 -0.32453812 1.5569939
## 16: grahami 4.154274 -2.30565354 -1.91393689 1.6852579
## 17: valencienni 4.321524 2.94241389 -0.88460072 1.8543308
## 18: lineatopus 4.128612 -2.43081291 -3.12552390 -1.7564495
## 19: reconditus 4.482607 -2.72704156 -0.21040657 -2.3534242
## 20: evermanni 4.165605 -2.52899245 0.12548098 1.8824633
## 21: stratulus 3.869881 -1.62264165 -0.52957490 2.2166952
## 22: krugi 3.886500 -1.68879533 -0.83128181 -1.2588892
## 23: pulchellus 3.799022 0.16238151 -2.33846103 -1.5906715
## 24: gundlachi 4.188105 -2.64936274 -0.56251604 -2.2852265
## 25: poncensis 3.820378 0.52782664 1.24062035 -1.6249761
## 26: cooki 4.091535 -2.22079009 0.05979850 -0.1092647
## 27: cristatellus 4.189820 -3.33026331 -0.62225189 1.2175309
## 28: brevirostris 3.874155 -3.28900081 1.38425488 2.4070756
## 29: caudalis 3.911743 -1.78270839 1.90870776 1.7530966
## 30: marron 3.831810 -2.84709341 -0.12032028 1.6898101
## 31: websteri 3.916546 -2.50870054 0.97482786 2.9024438
## 32: distichus 3.928796 -3.84343343 0.83890749 2.4922170
## 33: barbouri 3.663932 -0.87536237 1.34009434 -2.6138245
## 34: alumina 3.588941 0.72166993 1.52514444 -2.6721669
## 35: semilineatus 3.696631 0.18403236 -0.13872022 -2.8957227
## 36: olssoni 3.793899 0.81682668 3.87442813 -2.4337310
## 37: etheridgei 3.657991 -3.81065955 -0.75340900 -2.0659201
## 38: fowleri 4.288780 -1.03667003 1.50383762 -1.7589251
## 39: insolitus 3.800471 5.03062671 0.24137669 0.9139707
## 40: whitemani 4.097479 -2.54584901 -3.25974024 -1.9200701
## 41: haetianus 4.316542 -3.40402925 -3.78444664 -1.7798344
## 42: breslini 4.051111 -2.97497529 -3.34153375 -1.8978249
## 43: armouri 4.121684 -3.16993598 -4.08620441 -0.8883209
## 44: cybotes 4.210982 -3.11637922 -2.99620854 -0.8299057
## 45: shrevei 3.983003 -2.25952607 -3.55788235 -1.3884348
## 46: longitibialis 4.242103 -3.52243048 -1.61670439 -1.6182845
## 47: strahmi 4.274271 -3.87340303 -1.01635836 -0.9366696
## 48: marcanoi 4.079485 -2.84448243 -2.78644148 -0.8020303
## 49: baleatus 5.053056 0.73766495 1.79646028 -0.5409516
## 50: barahonae 5.076958 0.90731040 2.33222342 -0.6158464
## 51: ricordii 5.013963 0.58940470 1.34670464 -0.8626956
## 52: eugenegrahami 4.128504 -4.21209140 4.83351955 1.0228151
## 53: christophei 3.884652 -2.70596332 1.70527559 -0.1725921
## 54: cuvieri 4.875012 -1.18955124 -0.71983364 -1.0167340
## 55: barbatus 5.003946 2.25020229 -3.30818172 1.3476390
## 56: porcus 5.038034 3.50614537 -2.98667964 0.7500647
## 57: chamaeleonides 5.042349 2.95597428 -3.69231889 1.3297304
## 58: guamuhaya 5.036953 3.10947396 -4.07973423 -0.1820287
## 59: altitudinalis 3.842994 2.86751469 -6.12805047 2.3331196
## 60: oporinus 3.845670 3.05888289 -2.91565342 2.2875989
## 61: isolepis 3.657088 3.05697642 -4.34018373 2.4409248
## 62: allisoni 4.375390 2.03597967 -3.74252815 0.5203703
## 63: porcatus 4.258991 1.93193251 -3.82953305 0.9781194
## 64: argillaceus 3.757869 -0.11307851 -1.48944374 2.3710815
## 65: centralis 3.697941 0.73073876 -0.41683597 1.7586477
## 66: pumilis 3.466860 0.55404946 -0.42584152 2.1572563
## 67: loysiana 3.701240 0.31536951 -1.08038145 2.7442074
## 68: guazuma 3.763884 8.16566506 -0.60605865 1.7597408
## 69: placidus 3.773967 7.38332866 0.53958973 2.7042981
## 70: sheplani 3.682924 10.27389091 2.27784409 1.6981742
## 71: alayoni 3.815705 3.40888624 -1.78335850 2.2084510
## 72: angusticeps 3.788595 4.58711071 -1.97673831 1.1594671
## 73: paternus 3.802961 2.90637723 -0.95846093 0.9491115
## 74: alutaceus 3.554891 1.17338999 -0.61493813 -1.6539883
## 75: inexpectatus 3.537439 2.50607244 -0.52340367 -2.8057449
## 76: clivicola 3.758726 -1.05114421 -0.58903393 -1.2178042
## 77: cupeyalensis 3.462014 2.72419698 0.48960424 -2.4795271
## 78: cyanopleurus 3.630161 0.43328510 0.98930100 -2.8189997
## 79: alfaroi 3.526655 2.58175921 0.77876335 -2.4463337
## 80: macilentus 3.715765 3.15177391 3.26626613 -3.7238293
## 81: vanidicus 3.626206 4.04436760 1.08716320 -2.4921192
## 82: argenteolus 3.971307 -2.92797328 2.61964493 0.9791727
## 83: lucius 4.198915 -4.38139803 1.25981123 2.1899604
## 84: bartschi 4.280547 -3.25502168 0.80565652 1.1234288
## 85: vermiculatus 4.802849 0.22783467 1.41411087 -1.8467441
## 86: baracoae 5.042780 0.76817392 0.06987127 0.1805891
## 87: noblei 5.083473 -0.09337994 -0.96088851 0.8905492
## 88: smallwoodi 5.035096 -0.13770527 -1.15140405 0.4296432
## 89: luteogularis 5.101085 0.39614254 0.73584435 1.0058546
## 90: equestris 5.113994 1.05461517 0.70720387 0.7108046
## 91: monticola 3.770613 -3.25118016 0.15599344 -2.2390082
## 92: bahorucoensis 3.827445 -0.04747332 -2.55694724 -3.0896949
## 93: dolichocephalus 3.908550 2.60131528 -2.59530770 -4.1439327
## 94: hendersoni 3.859835 1.28963045 -2.06309845 -3.4656535
## 95: darlingtoni 4.302036 4.06703170 -1.49378979 -0.2002259
## 96: aliniger 4.036557 0.12323898 -1.67467041 2.3871336
## 97: singularis 4.057997 0.36326789 -0.95422871 1.6562154
## 98: chlorocyanus 4.275448 0.43906343 1.35403450 1.9531470
## 99: coelestinus 4.297965 -0.02721683 0.36875369 1.6364316
## 100: occultus 3.663049 7.92078444 -0.19013968 2.4922819
## tip.label SVL PCI_limbs PCII_head PCIII_padwidth_vs_tail
## PCIV_lamella_num awesomeness hostility attitude ecomorph
## <num> <num> <num> <num> <char>
## 1: -2.41474228 -0.241651698 -0.173476906 0.64437708 TG
## 2: -2.46331106 0.624468879 -0.500096224 0.71289104 TG
## 3: -2.08743282 -0.427757376 0.480044450 -0.96742634 TG
## 4: -2.11260585 0.169425977 -0.410812337 0.19635800 TG
## 5: -1.37576941 -0.630433775 0.719312962 -1.22282764 TG
## 6: -1.62629939 -1.754300558 1.412718374 0.18323450 TG
## 7: -2.10505922 -0.257638879 0.462708058 -0.27127944 TG
## 8: -2.23775137 0.354418772 0.053661422 -0.09389530 GB
## 9: -1.19666399 -0.228920131 0.820920959 -0.73929564 TG
## 10: -1.65749549 2.145582200 -0.993730897 1.05775273 TG
## 11: -1.56665822 -0.085375433 0.092602997 -0.08130904 TG
## 12: -1.39796407 0.496114209 -0.544543392 1.36010631 TG
## 13: -1.48220834 -0.139145550 -0.310434629 -0.50480610 TG
## 14: 0.10511495 0.167791307 0.676756002 -0.69460080 CG
## 15: 0.93665013 1.483021624 -0.908266532 0.72613483 TC
## 16: 1.01441926 0.410642801 -0.117462571 0.70229589 TC
## 17: 0.12882327 -0.088370075 0.465286788 -0.56754896 TW
## 18: -1.43952303 0.800931449 0.170290172 0.33555714 TG
## 19: -0.79929053 0.260965443 -0.271697917 0.01367143 U
## 20: 1.92392086 1.871367582 -2.029729624 1.02877511 TC
## 21: 0.94622231 -0.314853533 0.515229477 -0.40828716 TC
## 22: 0.24029913 0.972494741 -0.371866585 1.46109470 GB
## 23: 0.68180888 0.978157532 -0.810754596 1.39277529 GB
## 24: -2.48420519 -0.426336538 0.613014449 -0.69318262 TG
## 25: -0.94924727 -0.289982852 0.510241609 -0.18543914 GB
## 26: -0.50826932 1.277956446 -1.082760383 1.37721870 TG
## 27: -1.21819703 0.830658098 -0.007447027 0.39061232 TG
## 28: -0.82666991 -1.538338585 1.633533660 -1.24247895 T
## 29: -1.44378878 -0.601304152 0.216500950 0.85182003 T
## 30: -1.57063776 -2.149486418 2.413050748 -2.14378229 T
## 31: -1.53259879 0.025584758 0.124044450 0.11758642 T
## 32: -1.03972507 1.973200862 -1.608003643 0.91461500 T
## 33: -4.30147185 1.788945648 -0.913725183 0.64025272 U
## 34: 1.23487950 -1.253724344 1.308419442 -0.96110895 GB
## 35: 0.92280509 -0.612226281 0.807322377 -0.82943161 GB
## 36: 0.62906887 -1.391771586 1.210221860 -0.29186894 GB
## 37: -0.74890866 0.848149691 -0.960258609 0.18291181 U
## 38: -1.71914111 1.456935239 -1.448418148 0.07531334 U
## 39: -0.42075245 0.066715596 -0.290651288 0.07286240 TW
## 40: -2.41993928 -1.457775289 1.096071557 -0.87393333 TG
## 41: -2.20379012 0.721747833 -0.969190196 0.74101761 TG
## 42: -2.16718706 -1.944082859 2.147925602 -2.07465046 TG
## 43: -2.02129909 -0.158605136 -0.369246555 -0.26866597 TG
## 44: -2.09049464 0.905454434 -0.262630999 0.68467864 TG
## 45: -2.19082487 0.257277082 0.029600473 0.39422885 TG
## 46: -2.67106616 2.537213358 -1.420542767 1.71562944 TG
## 47: -1.57843390 0.340077411 -0.690011247 2.11135720 TG
## 48: -1.04842823 1.182343323 -0.167193617 0.58279004 TG
## 49: -0.16220546 2.727286255 -2.487661729 2.78477616 CG
## 50: -0.19473780 1.831370900 -1.331616706 1.70626854 CG
## 51: 0.03516802 -0.456651495 0.663302028 -0.64625837 CG
## 52: 1.66539278 2.155800992 -2.494661307 1.11438687 U
## 53: 0.64693336 -0.266699615 0.220410336 1.46547483 U
## 54: -0.02153073 -0.115917120 0.281153377 -0.97876663 CG
## 55: -1.64780456 2.156287540 -2.094147109 1.97196598 U
## 56: -1.19909229 0.158971414 -0.350187677 0.45987065 U
## 57: -1.51973745 -1.193993760 1.858148718 -1.43308743 U
## 58: -0.10748930 -0.137962568 0.119982369 0.04203987 U
## 59: 0.68195498 1.164592168 -0.865462260 0.63326685 TC
## 60: -0.08659903 0.573048475 -0.985921965 0.88025286 TC
## 61: -0.07418779 -0.194644197 0.001671326 0.16264659 TC
## 62: 2.05565172 -0.132309870 0.464556617 -0.54956842 TC
## 63: 2.88538479 -0.074646660 0.148259194 -0.57178426 TC
## 64: 0.33264142 0.007554828 -0.259421287 -0.62559912 U
## 65: -1.13869021 -0.620236225 0.330225203 -0.71777358 U
## 66: -1.12208954 0.459254083 -0.162682657 -0.47694819 U
## 67: -0.52657687 2.153959487 -1.198967281 1.51422456 T
## 68: 1.55102509 -0.015197500 -0.020516523 0.08678021 TW
## 69: -0.31778878 0.078986096 0.504242392 -0.40436325 TW
## 70: -0.25962432 -0.431283305 0.321955192 -0.80553288 TW
## 71: 0.94969689 -0.259032167 0.127344278 0.29597325 TW
## 72: 0.38835687 1.713217290 -1.884387903 0.92471752 TW
## 73: 1.80146660 -0.299550789 0.846263466 -0.96311064 TW
## 74: 1.41160228 0.325807029 -0.523648505 0.50405157 GB
## 75: 1.68036114 0.244666550 -0.307162858 0.06937286 GB
## 76: -0.55865998 0.340444764 -0.599034616 1.78969146 GB
## 77: -0.03297035 1.327984163 -0.994951781 0.04668455 GB
## 78: 0.87176931 0.413447859 0.073949884 -0.50654925 GB
## 79: 0.70036608 -0.462062012 0.178370302 -0.01958915 GB
## 80: 1.21810218 0.868463721 -0.287882420 0.69946303 GB
## 81: 0.18942396 -1.287008036 1.023037680 -0.67591746 GB
## 82: 2.94194227 0.490363636 -0.505416684 -0.20254651 U
## 83: 1.75435972 0.126135253 0.545903248 -0.58505782 U
## 84: 1.74943703 -1.189744988 1.025075387 0.25994625 U
## 85: 0.71173422 0.159291276 -0.024230945 -0.31575501 U
## 86: 2.66309134 1.821981086 -1.522244645 2.17591511 CG
## 87: 2.09456880 -0.974406590 1.602507741 -0.42228829 CG
## 88: 2.44067497 -0.018317012 -0.366531140 1.59163441 CG
## 89: 1.98043577 0.194610912 0.713343825 -0.56222110 CG
## 90: 1.66043194 1.080566180 -1.266611407 0.66730260 CG
## 91: 0.13156827 0.628989307 0.146877669 -0.44097752 U
## 92: 1.56271877 2.553879072 -2.337986521 2.47075117 GB
## 93: 3.67023402 0.739483022 -0.989799476 1.09191365 GB
## 94: 2.58336718 0.385454354 -0.713316425 -0.39597920 GB
## 95: 0.31138087 1.718720076 -1.690079016 1.02145675 TW
## 96: 0.58486431 0.006869282 0.144815367 0.29376432 TC
## 97: 1.00756926 1.592083294 -1.701052660 1.45313446 TC
## 98: 1.80512493 -1.065610146 0.920097708 -0.93721735 TC
## 99: 1.02571762 0.290926638 -0.620965953 1.28033350 TC
## 100: -0.09577977 -1.191686980 1.215301402 0.03244860 TW
## PCIV_lamella_num awesomeness hostility attitude ecomorph
## island
## <char>
## 1: Cuba
## 2: Cuba
## 3: Cuba
## 4: Cuba
## 5: Cuba
## 6: Cuba
## 7: Cuba
## 8: Cuba
## 9: Cuba
## 10: Cuba
## 11: Cuba
## 12: Cuba
## 13: Cuba
## 14: Puerto Rico
## 15: Jamaica
## 16: Puerto Rico
## 17: Jamaica
## 18: Jamaica
## 19: Jamaica
## 20: Puerto Rico
## 21: Puerto Rico
## 22: Puerto Rico
## 23: Puerto Rico
## 24: Puerto Rico
## 25: Puerto Rico
## 26: Puerto Rico
## 27: Puerto Rico
## 28: Hispaniola
## 29: Hispaniola
## 30: Hispaniola
## 31: Hispaniola
## 32: Hispaniola
## 33: Hispaniola
## 34: Hispaniola
## 35: Hispaniola
## 36: Hispaniola
## 37: Hispaniola
## 38: Hispaniola
## 39: Hispaniola
## 40: Hispaniola
## 41: Hispaniola
## 42: Hispaniola
## 43: Hispaniola
## 44: Hispaniola
## 45: Hispaniola
## 46: Hispaniola
## 47: Hispaniola
## 48: Hispaniola
## 49: Hispaniola
## 50: Hispaniola
## 51: Hispaniola
## 52: Hispaniola
## 53: Hispaniola
## 54: Puerto Rico
## 55: Cuba
## 56: Cuba
## 57: Cuba
## 58: Cuba
## 59: Cuba
## 60: Cuba
## 61: Cuba
## 62: Cuba
## 63: Cuba
## 64: Cuba
## 65: Cuba
## 66: Cuba
## 67: Cuba
## 68: Cuba
## 69: Hispaniola
## 70: Hispaniola
## 71: Cuba
## 72: Cuba
## 73: Cuba
## 74: Cuba
## 75: Cuba
## 76: Cuba
## 77: Cuba
## 78: Cuba
## 79: Cuba
## 80: Cuba
## 81: Cuba
## 82: Cuba
## 83: Cuba
## 84: Cuba
## 85: Cuba
## 86: Cuba
## 87: Cuba
## 88: Cuba
## 89: Cuba
## 90: Cuba
## 91: Hispaniola
## 92: Hispaniola
## 93: Hispaniola
## 94: Hispaniola
## 95: Hispaniola
## 96: Hispaniola
## 97: Hispaniola
## 98: Hispaniola
## 99: Hispaniola
## 100: Puerto Rico
## island
Y el árbol
tree
##
## Phylogenetic tree with 100 tips and 99 internal nodes.
##
## Tip labels:
## ahli, allogus, rubribarbus, imias, sagrei, bremeri, ...
##
## Rooted; includes branch lengths.
La misma funcionalidad explicada en este tutorial sobre objetos
phylo
aplica directamente a objetos
multiPhylo
.