ADN a proteína en Python 3

Teoría de la traducción: ADN ⇒ ARN ⇒ Proteína

La vida depende de la capacidad de las células para almacenar, recuperar y traducir instrucciones genéticas. Estas instrucciones son necesarias para crear y mantener organismos vivos. Durante mucho tiempo, no estaba claro qué moléculas podían copiar y transmitir información genética. Ahora sabemos que esta información es transportada por el ácido dioxirribonucleico o ADN en todos los seres vivos. 
ADN:El ADN es un código discreto presente físicamente en casi todas las células de un organismo. Podemos pensar en el ADN como una string unidimensional de caracteres con cuatro caracteres para elegir. Estos caracteres son A, C, G y T. Representan las primeras letras con los cuatro nucleótidos utilizados para construir el ADN. Los nombres completos de estos nucleótidos son adenina, citosina, guanina y timina. Cada secuencia única de tres caracteres de nucleótidos, a veces denominada triplete de nucleótidos, corresponde a un aminoácido. La secuencia de aminoácidos es única para cada tipo de proteína y todas las proteínas se construyen a partir del mismo conjunto de solo 20 aminoácidos para todos los seres vivos. 

Las instrucciones en el ADN se transcriben primero en ARN y luego el ARN se traduce en proteínas. Podemos pensar en el ADN, cuando se lee como secuencias de tres letras, como un diccionario de la vida. 
Objetivo: Convertir una secuencia dada de ADN en su equivalente Proteico. 
Fuente: descargue una hebra de ADN como archivo de texto de un depósito web público de secuencias de ADN del NCBI . La muestra de nucleótidos es (NM_207618.2), que se puede encontrar aquí . Para descargar el archivo: 

Pasos: Los pasos necesarios para convertir la secuencia de ADN en una secuencia de aminoácidos son: 

1. Code to translate the DNA sequence to a sequence of Amino acids where each Amino acid is
   represented by a unique letter.
2. Download the Amino acid sequence from NCBI to check our solution.

Traducción de codificación

El primer paso es colocar el archivo de texto de la secuencia de ADN original sin alterar en el directorio de ruta de trabajo. Verifique su directorio de ruta de trabajo en el shell de Python, 

>>>pwd

A continuación, debemos abrir el archivo en Python y leerlo. De forma predeterminada, el archivo de texto contiene algunos caracteres ocultos sin formato. Estos caracteres ocultos como «/n» o «/r» deben formatearse y eliminarse. Así que usamos la función replace() y obtenemos el archivo txt de secuencia de ADN alterado del archivo txt original . 

Python

inputfile ="DNA_sequence_original.txt"
f = open(inputfile, "r")
seq = f.read()
   
seq = seq.replace("\n", "") 
seq = seq.replace("\r", "")

A continuación, crearemos una función llamada translate() que convertirá la secuencia de ADN alterada en su equivalente de proteína y la devolverá. Introduciremos la secuencia de ADN alterada como parámetro de la función. 

Python

def translate(seq):
       
    table = {
        'ATA':'I', 'ATC':'I', 'ATT':'I', 'ATG':'M',
        'ACA':'T', 'ACC':'T', 'ACG':'T', 'ACT':'T',
        'AAC':'N', 'AAT':'N', 'AAA':'K', 'AAG':'K',
        'AGC':'S', 'AGT':'S', 'AGA':'R', 'AGG':'R',                 
        'CTA':'L', 'CTC':'L', 'CTG':'L', 'CTT':'L',
        'CCA':'P', 'CCC':'P', 'CCG':'P', 'CCT':'P',
        'CAC':'H', 'CAT':'H', 'CAA':'Q', 'CAG':'Q',
        'CGA':'R', 'CGC':'R', 'CGG':'R', 'CGT':'R',
        'GTA':'V', 'GTC':'V', 'GTG':'V', 'GTT':'V',
        'GCA':'A', 'GCC':'A', 'GCG':'A', 'GCT':'A',
        'GAC':'D', 'GAT':'D', 'GAA':'E', 'GAG':'E',
        'GGA':'G', 'GGC':'G', 'GGG':'G', 'GGT':'G',
        'TCA':'S', 'TCC':'S', 'TCG':'S', 'TCT':'S',
        'TTC':'F', 'TTT':'F', 'TTA':'L', 'TTG':'L',
        'TAC':'Y', 'TAT':'Y', 'TAA':'_', 'TAG':'_',
        'TGC':'C', 'TGT':'C', 'TGA':'_', 'TGG':'W',
    }
    protein =""
    if len(seq)%3 == 0:
        for i in range(0, len(seq), 3):
            codon = seq[i:i + 3]
            protein+= table[codon]
    return protein

La tabla del código anterior es de referencia y se puede encontrar en los manuales de biología. Dado que el nucleótido triplete llamado codón forma un solo aminoácido, verificamos si la secuencia de ADN alterada es divisible por 3 en (si len (seq)% 3 == 0:). A continuación, el código se explica por sí mismo donde formamos codones y los emparejamos con los aminoácidos en la tabla. Atlast, formamos la secuencia de aminoácidos también llamada proteína y la devolvemos. 

El último paso es hacer coincidir nuestra secuencia de aminoácidos con la original que se encuentra en el sitio web de NCBI. Compararemos ambas secuencias de aminoácidos en Python, carácter por carácter y devolveremos verdadero si ambas son exactamente la misma copia. Primero descargue el archivo txt
de la secuencia de aminoácidos inalterada y ábralo en Python. Construiremos una función llamada read_seq() para eliminar los caracteres no deseados y formar el archivo  txt de la secuencia de aminoácidos alterada .

Python

def read_seq(inputfile):
    with open(inputfile, "r") as f:
        seq = f.read()
    seq = seq.replace("\n", "")
    seq = seq.replace("\r", "")
    return seq

El último paso es comparar ambos archivos y verificar si ambos son iguales. Si el resultado es verdadero , hemos logrado traducir ADN a proteína. 

Código definitivo 

Python

# Python program to convert
# altered DNA to protein
  
inputfile ="DNA_sequence_original.txt" 
f = open(inputfile, "r")
seq = f.read()
  
seq = seq.replace("\n", "") 
seq = seq.replace("\r", "")
  
def translate(seq):
      
    table = {
        'ATA':'I', 'ATC':'I', 'ATT':'I', 'ATG':'M',
        'ACA':'T', 'ACC':'T', 'ACG':'T', 'ACT':'T',
        'AAC':'N', 'AAT':'N', 'AAA':'K', 'AAG':'K',
        'AGC':'S', 'AGT':'S', 'AGA':'R', 'AGG':'R',                 
        'CTA':'L', 'CTC':'L', 'CTG':'L', 'CTT':'L',
        'CCA':'P', 'CCC':'P', 'CCG':'P', 'CCT':'P',
        'CAC':'H', 'CAT':'H', 'CAA':'Q', 'CAG':'Q',
        'CGA':'R', 'CGC':'R', 'CGG':'R', 'CGT':'R',
        'GTA':'V', 'GTC':'V', 'GTG':'V', 'GTT':'V',
        'GCA':'A', 'GCC':'A', 'GCG':'A', 'GCT':'A',
        'GAC':'D', 'GAT':'D', 'GAA':'E', 'GAG':'E',
        'GGA':'G', 'GGC':'G', 'GGG':'G', 'GGT':'G',
        'TCA':'S', 'TCC':'S', 'TCG':'S', 'TCT':'S',
        'TTC':'F', 'TTT':'F', 'TTA':'L', 'TTG':'L',
        'TAC':'Y', 'TAT':'Y', 'TAA':'_', 'TAG':'_',
        'TGC':'C', 'TGT':'C', 'TGA':'_', 'TGG':'W',
    }
    protein =""
    if len(seq)%3 == 0:
        for i in range(0, len(seq), 3):
            codon = seq[i:i + 3]
            protein+= table[codon]
    return protein
def read_seq(inputfile):
    with open(inputfile, "r") as f:
        seq = f.read()
    seq = seq.replace("\n", "")
    seq = seq.replace("\r", "")
    return seq
  
prt = read_seq("amino_acid_sequence_original.txt")
dna = read_seq("DNA_sequence_original.txt")
  
  
p = translate(dna[20:935])
p == prt 

Salida: Verdadero

Referencia : 

Este artículo es una contribución de Amartya Ranjan Saikia . Si te gusta GeeksforGeeks y te gustaría contribuir, también puedes escribir un artículo usando write.geeksforgeeks.org o enviar tu artículo por correo a review-team@geeksforgeeks.org. Vea su artículo que aparece en la página principal de GeeksforGeeks y ayude a otros Geeks.
Escriba comentarios si encuentra algo incorrecto o si desea compartir más información sobre el tema tratado anteriormente.
 

Publicación traducida automáticamente

Artículo escrito por GeeksforGeeks-1 y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *