¿Cómo sacar SubString de Levenshtein ?
He recibido una tarea para realizar en python que trata sobre Levenshtein.
En este caso se me presenta un fichero de texto con un montón de Línias de bases de ADN
ATCG de un cromosoma. En dicho texto he de encontrar de cada una de las 10 primeras línias (solo las 10 primeras) La distancia mínima de Levenshtein dado un patrón de cadena de ADN y a continuación el String más parecido de dicho patrón de ADN.
En lo que llevo trabajando en esto he conseguido leer el fichero y que me busque la distancia minimia de las 10 primeras líneas. El problema surge a la hora de sacar el String más corto de cada línea, he estado practicando y haciendo cosas, por ejemplo he buscado el mínimo de cada una de las filas de la matriz para sacar el String pero debido a que en la matriz se crean varios valores en la misma fila con el mismo valor, me coge siempre el más pequeño que encuentra empezando por la izquierda, por lo que en vez de estar haciendo el mínimo de [i-1][j], [i][j-1], [i-1][j-1] estoy cogiendo otra letra.
La idea es que a partir del mínimo de la ultima línea consigas sacar el String más corto, hacer el levenshtein pero a la inversa para sacar el String.
Para facilitar las cosas voy a implementar unas imágenes donde se ejemplifica que es lo que me esta pasando y que es lo que se espera conseguir.
Este es un ejemplo (inventado) de que es lo que debería de hacer
Esta es una muestra de lo que he hecho y por conseguiente del error que he realizado
Como podéis observar en mi caso me coge el primer 2 en vez de coger verdaderamente el dos que debería de coger