Los ribosomas son una de las máquinas más interesantes de este planeta, no sólo por su importancia dentro los procesos biológicos en la vida de cada célula, sino también por la belleza de su estructura y funcionamiento. En esta oportunidad intentaremos comprender de forma general y superficial las tareas que llevan a cabo los ribosomas, pero antes es necesario recordar algunos conceptos:

  • ADN: el ácido desoxirribonucleico es una molécula/estructura biológica que almacena dentro de sí el código genético de todos los organismos vivos (y virus), siendo también responsable de la transmisión hereditaria. El ADN cumple cuatro grandes funciones:
  1. Sirve como almacén de la información para la construcción y mantención de organismos, transmitiéndose de generación en generación.

  2. La división celular es esencial para el crecimiento de un organismo, por lo que en cada división el DNA debe ser replicado y así las células “hijas” tengan una copia de la información genética.

  3. Ácidos nucleicos extracelulares: el eDNA es útil incluso en la muerte de una célula. Si bien aún no está claro su rol completo, se cree que contribuye en la transferencia horizontal de genes, la cual puede proveer nutrientes para su entorno y podría actuar como mediador de iones o antibióticos.

  4. La secuencia de bases y la hebra de ADN son capaces de definir una secuencia mRNA mensajero, proceso denominado transcripción, la cual es una pieza clave para la construcción de proteínas o traducción.

Es a este último proceso al cual pondremos especial atención en esta oportunidad y es en donde los ribosomas juegan un rol protagónico.

Los ribosomas

Ribosoma

Un ribosoma es una máquina biológica macromolecular, esto significa que es una máquina capaz de transfomar energía química en fuerzas mecánicas y/o movimiento. Es muy similar a un programa en el sentido que recibe un estímulo (input), y frente a él produce una respuesta (output). En este caso el input son cadenas de aminoácidos y el output son proteínas. En palabras simples entonces, un ribosoma es una micro-industria en la cual se construyen proteínas.

¿Qué hace un ribosoma?

Como se desprende de la definición anterior, los ribosomas son los encargados de la síntesis de proteínas, hace esto a través de un proceso llamado traducción. El proceso visto desde un ámbito general consta de los siguientes pasos:

  1. La secuencia de ADN que codifica o almacena la información de la cadena de aminoácidos se transfiere hacia un ARN mensajero, para luego ser utilizada en la síntesis/construcción de proteínas. El ARN se diferencia del ADN por un sólo nucleótido, si en el ADN encontramos los nucleótidos: adenina, timina, citosina y guanina, en el ARN tendremos adenina, uracilo, citosina y guanina. La cadena de ADN sirve entonces como modelo o molde para la creación de ARN.
  • Para simular la traducción de ADN a ARN mensajero necesitamos entonces la cadena de ADN, que en este caso se incluye en un archivo .txt con el siguiente contenido:
ATATATCCCGGGAATTTTCGTAGTTAGGCTGATTTTATTGGCGCGAAAATTTTTT

(cada letra representa un nucléotido específico)

De ADN a ARN

  • Para traducir el ADN a ARN mensajero crearemos una función que primero lea la cadena de ADN ubicada en el archivo de texto y luego reemplace el nucleótio timina por el uracilo, retornando luego la cadena de ARN mensajero:
func transcribeADNaARN() (arn string) {

    adn, err := ioutil.ReadFile("cadena_adn.txt")

    if err != nil {
    	log.Fatal(err)
    }

    fmt.Println("CADENA DE ADN: ", string(adn))

    arn = strings.Replace(string(adn), "T", "U", -1)

    return arn
}

Luego de la traducción de ADN a ARN el ribosoma se unirá a la cadena de ARN y comenzará las diversas fases para la construcción de proteínas.

De ARN a proteína (traducción)

Las proteínas son de vital importancia para muchos organismos y son partícipe en una gran variedad de tareas como: la construcción de músculos y tejidos, transporte de nutrientes, funcionan como enzimas, síntesis de hormonas, entre otros.

  • ¿Cómo se construyen entonces las proteínas?

Si ya conocemos la cadena/secuencia de RNA tenemos entonces uno de los ingredientes para la construcción de sus correspondientes proteínas. Esto es posible gracias a que sabemos la secuencia de ADN del ARN, ¿qué? Sí, así como transcribimos ADN a ARN sabiendo que debíamos cambiar el nucleótido timina por uracilo, también existe la tabla de codones para la traducir RNA a su respectiva proteína. Esta es la misma técnica que utilizan las células para generar las secuencias proteicas.

Tabla de codones

Esta tabla nos muestra cómo podemos relacionar una secuencia de 4 nucleótidos (A, U, G, C), a un grupo de aminoácidos, los bloques utilizados para construir proteínas.

Construyendo proteínas

Basándonos en la tabla anterior es posible entonces construir proteínas siguiendo estos pasos:

a) Tener la suencia de ARN (traducida de la secuencia ADN)

AUAUAUCCCGGGAAUUUUCGUAGUUAGGCUGAUUUUAUUGGCGCGAAAAUUUUUU

b) Leer secuencias de 3 nucleótidos a la vez (tripletas):

AUA UAU CCC GGG AAU UUU CGU AGU UAG GCU GAU UUU AUU GGC GCG AAA AUU UUU U

c) Usamos la tabla de codones para ver qué aminoácidos corresponden a cada tripleta/codón. El primer círculo partiendo desde el centro representa a la primera letra de la tripleta, el segundo círculo a la segunda letra y el tercer círculo a la última letra de la tripleta/codón.

  • Tener presente que las tripletas UAA, UAG y UGA se conocen como codones de terminación, los cuales (en la mayoría de especies) sirven como señales para que el ribosoma detenga la síntesis proteica.

Llevamos estos pasos al código

a) La función vista anteriormente nos retorna la secuencia de ARN:

func transcribeADNaARN() (arn string) {

    adn, err := ioutil.ReadFile("cadena_adn.txt")

    if err != nil {
    	log.Fatal(err)
    }

    fmt.Println("CADENA DE ADN: ", string(adn))

    arn = strings.Replace(string(adn), "T", "U", -1)

    return arn
}

b) Recorremos la cadena de ARN y leemos secuencias de 3 nucleótidos (tripletas/codones)

func transcribeARNaProteina(arn string) {

  secuenciaProteica := ""

	for i := 0; i <= len(arn)-(3+len(arn)%3); i = i + 3 {

		if codonARN[arn[i:i+3]] == "STOP" {
			break
		}
		secuenciaProteica += codonARN[arn[i:i+3]]
	}

	fmt.Println("SECUENCIA PROTEICA: ", secuenciaProteica)
}

c) Creamos nuestra tabla de codones de ARN, mapeando los codones de terminación con el string “STOP” y así sea más evidente su funcionalidad:

var codonARN = map[string]string{
	"UUU": "F", "CUU": "L", "AUU": "I", "GUU": "V",
	"UUC": "F", "CUC": "L", "AUC": "I", "GUC": "V",
	"UUA": "L", "CUA": "L", "AUA": "I", "GUA": "V",
	"UUG": "L", "CUG": "L", "AUG": "M", "GUG": "V",
	"UCU": "S", "CCU": "P", "ACU": "T", "GCU": "A",
	"UCC": "S", "CCC": "P", "ACC": "T", "GCC": "A",
	"UCA": "S", "CCA": "P", "ACA": "T", "GCA": "A",
	"UCG": "S", "CCG": "P", "ACG": "T", "GCG": "A",
	"UAU": "Y", "CAU": "H", "AAU": "N", "GAU": "D",
	"UAC": "Y", "CAC": "H", "AAC": "N", "GAC": "D",
	"UAA": "STOP", "CAA": "Q", "AAA": "K", "GAA": "E",
	"UAG": "STOP", "CAG": "Q", "AAG": "K", "GAG": "E",
	"UGU": "C", "CGU": "R", "AGU": "S", "GGU": "G",
	"UGC": "C", "CGC": "R", "AGC": "S", "GGC": "G",
	"UGA": "STOP", "CGA": "R", "AGA": "R", "GGA": "G",
	"UGG": "W", "CGG": "R", "AGG": "R", "GGG": "G",
}

Con esto obtendremos como resultado la secuencia proteica:

IYPGNFRS

Lista de aminoácidos presentes:

Como ejercicio puedes unir las piezas de este programa y así tener tu propio ribosoma, el cual además de sintetizar proteínas, traduce cadenas de ADN a ARN.

Ver código completo