1. Algoritmo Genético: Ensamblaje de Genoma¶

Se tiene 20 trozos de ADN cada uno con 9 bases y 4 bases de solapamiento, utilizar algoritmo genético para ensamblar el genoma.

Importación de librerías¶

In [ ]:
import ag_lbpt.util as util

Ejecución de algoritmo genético¶

In [ ]:
#--------------------------------------------------------------------------------------------------------------------------------------
# INPUT
#--------------------------------------------------------------------------------------------------------------------------------------
# ArchicoADNcsv = 'adm_20t_9b_4s.csv' : Archivo de datos (matriz de distancias) en formato csv
# Iteraciones = 10              : cantidad de veces que se ejecuta el AG
# Generaciones = 100            : Cantidade de generaciones que itera el AG
# Poblacion = 250               : Cantidad de pobladores del AG
# ProbMutacion = 0.1            : Probabilidad de mutación
# TipoMutacion = 'Permuta'      : El individuo mutante se consigue por permutación de atributos
# TipoCruce = 'Complemento'     : la operación cruce es eligiendo M atributos de primer ancestro y el resto por complemento
# GenUnico = True               : Los genes tiene valores únicos o distintos
# IniciFijo = False             : El primer gen puede tomar cualuier valor
# IniciFinFijo = False          : El primer y último gen pueden tomar cualquier valor
# N = 20                        : Cantidad de ciudades
# PobElite = 3                  : Indidivuos de la élite
#--------------------------------------------------------------------------------------------------------------------------------------
# OUTPUT
#--------------------------------------------------------------------------------------------------------------------------------------
# AG        : Objeto algoritmo genético
# Solución  : Cromosoma solución al problema
# Costo     : Costo que implica dicha solución 
#--------------------------------------------------------------------------------------------------------------------------------------

AG, Solucion, Costo = util.agTSPadn('adn_20t_9b_4s.csv', 10, 100, 250, 0.1, 'Permuta',
                                   'Complemento', True, False, False, 20, 3)
print('Solucion: ', Solucion)
print('Costo: ', Costo)
Solucion:  [19, 12, 15, 10, 16, 1, 7, 13, 11, 18, 0, 9, 8, 2, 4, 14, 6, 5, 3, 17]
Costo:  34.0

Evolución de costo¶

In [ ]:
AG.GraficaCosto()

Visualización de genoma ensamblado¶

In [ ]:
# ArchivoTozosADN = 'adn_20t.csv' : Archivo de trozos de ADN (Nro, Trozo)
# Solapamiento = 4          : Cantidad de bases que se solapan
# TamañoTrozo = 9           : Tamaño de los trozos de ADN
# Solucion = Solucion       : Solución de ensamblado
genoma = util.EnsamblajeGenoma('adn_20t.csv', 4, 9, Solucion)
 ATATATATA
      CGTCGTCGT
           GTGTGTGTG
                TGCATGCAT
                     ACACACACA
                          TACGTACGA
                               CATGCATGC
                                    AGTCAGTCA
                                         GTCGTCGTC
                                              CGACGACGA
                                                   ACGTACGTA
                                                        CGTACGTAC
                                                             ATGCATGCA
                                                                  GCTAGCTAG
                                                                       CTAGCTAGC
                                                                            TAGTAGTAG
                                                                                 GTACGTACG
                                                                                      TAGCTAGCT
                                                                                           AGCTAGCTA
                                                                                                CATCATCAT
 ATATATATAGTCGTGTGTGTGCATACACATACGACATGCAGTCATCGTCGACGAACGTACGTACATGCAGCTAGCTAGCAGTAGGTACGTAGCTAGCTAATCAT

Luis Beltran Palma Ttito, luis.palma@unsaac.edu.pe (autor)

Dennis Iván Candia oviedo, dennis.candia@unsaac.edu.pe (coautor)

Carlos Ramón Quispe Onofre, carlos.quispe@unsaac.edu.pe(coautor)

Willian Zamalloa Paro, willian.zamalloa@unsaac.edu.pe(coautor)

José Mauro Pillco Quispe, jose.pillco@unsaac.edu.pe(coautor)