Escribir un código de progrmación el cual nos diga el patrón que se repite de las bases nitrogenadas en la siguiente informacipon genética:
ATCAATGATCAACGTAAGCTTCTAAGCATGATCAAGGTGCTCACACAGTTTATCCACAACCTGAGTGGATGACATCAAGATAGGTCGTTGTATCTCCTTCCTCTCGTACTCTCATGACCACGGAAAGATGATCAAGAGAGGATGATTTCTTGGCCATATCGCAATGAATACTTGTGACTTGTGCTTCCAATTGACATCTTCAGCGCCATATTGCGCTGGCCAAGGTGACGGAGCGGGATTACGAAAGCATGATCATGGCTGTTGTTCTGTTTATCTTGTTTTGACTGAGACTTGTTAGGATAGACGGTTTTTCATCACTGACTAGCCAAAGCCTTACTCTGCCTGACATCGACCGTAAATTGATAATGAATTTACATGCTTCCGCGACGATTTACCTCTTGATCATCGATCCGATTGAAGATCTTCAATTGTTAATTCTCTTGCCTCGACTCATAGCCATGATGAGCTCTTGATCATGTTTCCTTAACCCTCTATTTTTTACGGAAGAATGATCAAGCTGCTGCTCTTGATCATCGTTTC
Text = 'ATCAATGATCAACGTAAGCTTCTAAGCATGATCAAGGTGCTCACACAGTTTATCCACAACCTGAGTGGATGACATCAAGATAGGTCGTTGTATCTCCTTCCTCTCGTACTCTCATGACCACGGAAAGATGATCAAGAGAGGATGATTTCTTGGCCATATCGCAATGAATACTTGTGACTTGTGCTTCCAATTGACATCTTCAGCGCCATATTGCGCTGGCCAAGGTGACGGAGCGGGATTACGAAAGCATGATCATGGCTGTTGTTCTGTTTATCTTGTTTTGACTGAGACTTGTTAGGATAGACGGTTTTTCATCACTGACTAGCCAAAGCCTTACTCTGCCTGACATCGACCGTAAATTGATAATGAATTTACATGCTTCCGCGACGATTTACCTCTTGATCATCGATCCGATTGAAGATCTTCAATTGTTAATTCTCTTGCCTCGACTCATAGCCATGATGAGCTCTTGATCATGTTTCCTTAACCCTCTATTTTTTACGGAAGAATGATCAAGCTGCTGCTCTTGATCATCGTTTC'
k = 3
def FrequencyMap(Text,k):
freq = {}
n = len(Text)
for i in range(n-k+1):
Pattern = Text[i:i+k]
freq[Pattern] = 0
for x in range(n-k+1):
if Pattern == Text[x:x+k]:
freq[Pattern] +=1
return freq
print(FrequencyMap(Text,k))
{'ATC': 21, 'TCA': 17, 'CAA': 12, 'AAT': 10, 'ATG': 15, 'TGA': 25, 'GAT': 21, 'AAC': 3, 'ACG': 7, 'CGT': 5, 'GTA': 4, 'TAA': 6, 'AAG': 12, 'AGC': 10, 'GCT': 10, 'CTT': 17, 'TTC': 12, 'TCT': 16, 'CTA': 3, 'GCA': 3, 'CAT': 16, 'AGG': 5, 'GGT': 4, 'GTG': 5, 'TGC': 8, 'CTC': 14, 'CAC': 5, 'ACA': 7, 'CAG': 2, 'AGT': 2, 'GTT': 11, 'TTT': 16, 'TTA': 10, 'TAT': 6, 'TCC': 7, 'CCA': 8, 'ACC': 5, 'CCT': 9, 'CTG': 10, 'GAG': 6, 'TGG': 4, 'GGA': 7, 'GAC': 13, 'AGA': 8, 'ATA': 7, 'TAG': 5, 'GTC': 1, 'TCG': 7, 'TTG': 17, 'TGT': 10, 'TAC': 7, 'ACT': 9, 'CGG': 5, 'GAA': 7, 'AAA': 4, 'ATT': 11, 'GGC': 3, 'GCC': 8, 'CGC': 4, 'GCG': 4, 'GGG': 1, 'CGA': 7, 'CCG': 3, 'CCC': 1}
Para poder resolver este problema se realizó de la siguiente manera:
- Definimos una función que se le puso FrecuencyMap, en esta función manejaremmos 2 variables Text y K. Como ya sabemos K se refiere a K-mer y text a la informació genética que se dió en un principio.
- Definimos un diccionario vacio que se le puso freq
- Definimos una variable n, la cual se le guardará la operación de que “n” nos de la longitud de Text, que a su vez Text tendrá la guardada la cadena de caraterer de la información genética.
- Definimos un for para recorrer el patrón, la operación del for es la longitud del texto – el K mer + 1
- La variable pattern la igualamos con el texto en que va de la i que recorre el for a i + el número de K mer
- El diccionario freq lo llenaremos con la variable pattern y la igualamos a 0
Al igualarlo a 0 se escribirán todas las bases existentes dentro del texto.
- Realizamos un segundo for, igual al primero para recorrer el texto lo que este se irá guardando en la variable x
- Dentro del for compararemos la variable pattern creada anteriormente con un text con los parámetros que van de x a x+k
- Pattern y ese Texto son idénticos empezará un contador, el cual pondrá el número de bases que se repiten y cuales son
- Imprimimos en pantalla la función creada