Page 77 - Tequio 11
P. 77

Métodos de reconstrucción filogenética I/Duchen/69-79  75






                Posteriormente, se consideran posibles topologías para las especies E1, E2, E3 y E4. En total existen 15 posibles
                topologías, las cuales se pueden escribir en  formato NEWICK y  se guardan  en un archivo denominado
                “topologias.tre” (visualizadas en la Figura 2):

                ( ( E1 : 1, E2 : 1 ) : 1, ( E3 : 1, E4 : 1 ) : 1 ) : 1;
                ( ( E1 : 1, E4 : 1 ) : 1, ( E2 : 1, E3 : 1 ) : 1 ) : 1;
                ( ( ( E1 : 1, E2 : 1 ) : 1, E3 : 1 ) : 1, E4 : 1 ) : 1;
                ( ( ( E1 : 1, E2 : 1 ) : 1, E4 : 1 ) : 1, E3 : 1 ) : 1;
                ( ( ( E1 : 1, E3 : 1 ) : 1, E2 : 1 ) : 1, E4 : 1 ) : 1;
                ( ( ( E1 : 1, E3 : 1 ) : 1, E4 : 1 ) : 1, E2 : 1 ) : 1;
                ( ( E1 : 1, E3 : 1 ) : 1, ( E2 : 1, E4 : 1 ) : 1 ) : 1;
                ( ( ( E1 : 1, E4 : 1 ) : 1, E2 : 1 ) : 1, E3 : 1 ) : 1;
                ( ( ( E1 : 1, E4 : 1 ) : 1, E3 : 1 ) : 1, E2 : 1 ) : 1;
                ( ( ( E2 : 1, E3 : 1 ) : 1, E1 : 1 ) : 1, E4 : 1 ) : 1;
                ( ( ( E2 : 1, E3 : 1 ) : 1, E4 : 1 ) : 1, E1 : 1 ) :1;
                ( ( ( E2 : 1, E4 : 1 ) : 1, E1 : 1 ) : 1, E3 : 1 ) :1;
                ( ( ( E2 : 1, E4 : 1 ) : 1, E3 : 1 ) : 1, E1 : 1 ) : 1;
                ( ( ( E3 : 1, E4 : 1 ) : 1 , E2 : 1 ) : 1, E1 : 1 ) :1;
                ( ( ( E3 : 1, E4 : 1 ) : 1, E1 : 1 ) : 1, E2 : 1 ) :1;


                Finalmente, utilizando los archivos que recién se crearon (“alineamiento.fas” y “topologias.tre”) como input, se
                desarrolla a continuación un programa corto (escrito en el lenguaje de programación R) para ejemplificar el
                algoritmo de inferencia filogenética utilizando ML:


                #######-INICIO DEL PROGRAMA-#######
                library(ape)
                library(phangorn)
                #Alineamiento de ADN.
                D <- phyDat(read.FASTA("alineamiento.fas")) #Posibles topologias.
                T <- read.tree("topologias.tre")


                ##-------Maxima Verosimilitud-------##
                cat ("\nEjemplo de inferencia con ML\n")


                #El vector logV guardara las verosimilitudes de cada topología.
                logV <- numeric(length(T))

                #La función pml de la librería phangorn calcula la verosimilitud.
                for (i in 1:length(T)) {
                        logV[i] <- pml(T[[i]],D)$logLik
                        print(paste("Log Verosimilitud topologia",i,"=",logV[i] ) )
                }




                                                 Tequio, enero-abril 2021, vol. 4, no. 11
   72   73   74   75   76   77   78   79   80   81   82