Showing posts with label switcheo de genes. Show all posts
Showing posts with label switcheo de genes. Show all posts

Thursday, September 07, 2023

¿Por qué la Naturaleza es recursiva?


 

Cuando somos niños nos enseñan que lo definido no puede estar en la definición. Por ejemplo, si la maestra en turno nos pide que definamos una mesa, no podemos decir: "una mesa es una mesa", porque precisamente, usamos lo definido en la definición. Probablemente cualquier maestro de primaria se molestaría si mencionásemos el aforismo de Gertrude Stein: "Una rosa es una rosa es una rosa es una rosa" (https://es.wikipedia.org/wiki/Rosa_es_una_rosa_es_una_rosa_es_una_rosa). Y esa que lo definido puede estar en la definición. Por ejemplo, en matemáticas tenemos las funciones recursivas. Una de ellas define, por ejemplo el factorial en dos pasos: una condición terminal y la parte que se recurre a sí misma, la función recursiva:

0! = 1

n!= n * (n-1)!

Si calculamos el factorial de forma recursiva, tendremos que 

3! = 3 * 2!

pero no podemos resolver la ecuación porque no sabemos cuánto es 2! Entonces, aplicamos la misma función y hallamos que 

2! = 2 * 1!

De nuevo, no sabemos cuánto es 1! y aplicamos la función:

1! = 1 * 0!

Y de nuevo, requerimos calcular 0! Pero por la definición, sabemos que 0! = 1, por lo que ya tenemos ese valor y podemos regresar y calcular los valores temporales de lo que antes no teníamos el resultado.

En el caso de la función iterativa, básicamente 3! = 3 * 2 * 1 = 6.

Niklaus Wirth -dicen- puso un comentario en su compilador de Pascal, que decía: "iteratum humanum est, recursivitum divinum est". Y aunque el científico suizo siempre ha negado ser el autor de dicha frase, rechazando incluso que la hubiese escrito en el código fuente de su compilador, es claro que la frase tiene sentido. Es mucho más elegante matemáticamente la función recursiva que la iterativa.

Se sabe que toda función recursiva puede expresarse de forma iterativa. El problema con las funciones recursivas es que requieren de más recursos (sobre todo en las computadoras), para resolver los problemas planteados. Por ejemplo, en el caso de la función factorial recursiva, hay que llevar una estructura de datos llamada stack, que permite ir metiendo los datos no resueltos temporalmente en una estructura llamada LIFO (last In, First Out), es decir, el primero que metemos es el último que sacamos. Por ejemplo, imaginemos una caja con libros, sellada en la parte inferior. Si empiezo a poner libros, el último libro apilado en dicha caja es el primero que puedo sacar y el primer libro que metí es el último que puedo sacar. En cambio, las funciones iterativas no requieren de guardar resultados intermedios. En ese sentido son directas.

Si vamos a la Naturaleza, al mundo real, tenemos que Mandelbrot armó toda una nueva teoría (en su momento), una geometría que llamó fractal, donde hay una autosimilitud en diversos fenómenos que vemos en nuestro mundo. Por ejemplo, un árbol se compone de un tronco y ramas, que a su vez son "pequeños árboles" los cuales, también tienen ramas más pequeñas. Los árboles tienen una estructura fractal en donde a diferentes escalas se ve la similitud.


Y este es un ejemplo del fenómeno de la recursión. El árbol se recurre a sí mismo para crear árboles más pequeños. Hay otros ejemplos increíbles, como el romanescu. Jamás había visto semejante vegetal en los supermercados y cuando lo vi, lo compré sin dudarlo. Es impresionante porque es en realidad una imagen tridimensional de un fractal. Este es uno de los ejemplos más llamativos de que la Naturaleza, sí, con N mayúscula, está seriamente involucrada con los fractales, descubiertos, o inventados (¿?) por Mandelbrot. El romanescu es una estructura cónica con protuberancias también cónicas más pequeñas que se forman a su vez de otras estructuras cónicas, y así sucesivamente. Esto se entiende con el término “autosimilitud”.


Pero probablemente donde la recursión quede en manifiesto es en la reproducción de los seres vivos. Cuando se fecunda un óvulo humano, por ejemplo, empieza un proceso de creación de un nuevo ser, definido por el ADN directamente. Esta morfogenesis es un misterio realmente. ¿En qué momento el ADN decide que ya estuvo bien de replicarse para empezar a hacer células específicas para músculos, corazón, cerebro, etcétera, no está nada claro. Los biólogos han estudiado estos mecanismos y parece ser que la Naturaleza hace una especie de "switcheo de genes", el cual apaga o prende algunos de estos genes para continuar con el desarrollo del nuevo ser. Parece que la sustancia responsable de esto es la cromatina. Hay muchos estudios que indican que este es el mecanismo para que los genes se enciendan o se apaguen para así, generar un tipo de células o dejar de generar algún otro. Sin embargo, no sé de estudios que indiquen por qué, en un momento determinado, se produce este switcheo de genes.

Aquí les hablaré de lo que creo que en realidad pasa. Primero, ¿Por qué la Naturaleza es recursiva? ¿Por qué -si se necesitan más recursos- la Naturaleza impone el modelo recursivo sobre el iterativo? Mi respuesta es que en el modelo recursivo, está encapsulada toda la información que se necesita. En el modelo iterativo requerimos de un valor externo para que la función se ejecute. Y más de uno podría pensar que eso también pasa en las funciones recursivas, y sí, pero solamente para las matemáticas. En el caso de la reproducción no es necesaria información adicional externa para que la recursividad ocurra.

¿Pero por qué no se requiere información externa? Mi respuesta es esta: no hay necesidad de información externa para empezar un proceso, porque éste funciona hasta que ocurre un umbral. Veamos con el ejemplo del árbol lo que quiero decir: Supongamos que armamos un árbol empezando por su tronco. Este, eventualmente disminuye su grosor y nacen ramas, las cuales a su vez, son como pequeños árboles. Si tomásemos fotos de las ramas, pero acercándonos lo suficiente a las mismas, no podríamos saber si se trata de un tronco o de una rama. He aquí la autosimilitud. Y una vez más, esas ramas puedne generar subramas más pequeñas, autosimilares a las primeras, pero a diferente escala. ¿Y cuándo avaba este proceso? Fácil: cuando no hay suficiente material para crear ramas cada vez más pequeñas. Llega un momento que no hay forma que se creen nuevas ramas. Ese es el umbral del que hablo. 

Entonces, para ilustrar la idea. Supongamos que tenemos una función muy compleja, la cual crea un nuevo ser. No requiere de información externa y si requiriese, se puede dar cualquier valor y empezar el proceso, porque la Naturaleza guiará dicho proceso hasta que ocurra un umbral. Más allá de eso no se pueden generar más células, o más ramas, o más subtroncos, etcétera. Y entonces, el switcheo de genes a lo mejor se da cuando se llega al umbral. Con esto podríamos entender la fase temporal del ADN para encender o apagar genes. Es muy sencillo onceptualmente: cuando se llega a un umbral, se detiene ese proceso y probablemente se inicia otro diferente.

Déjenme ilustrarlo con este ejemplo trivial: imaginemos que tenemos mucha hambre y nos sentamos a comer. Podemos comer abundantemente pero de pronto, nuestro cuerpo nos dirá que ya está satisfecho. Ya habremos llegado a un umbral y entonces pasamos a otra fase, a otro proceso, el de hacer la digestión y dejar de seguir comiendo. En este sentido, el sitcheo de comer a no comer no es una cuestión de "timing", sino de llegar a un umbral. Y cuando se llega a éste, se detiene ese proceso y posiblemente se inicia otro.

Estas explicaciones son, en mi opinión, la razón por la cual la Naturaleza prefiere la recursión como mecanismo de repetición de algún proceso. Y es que ese proceso recursivo tiene siempre una condición terminal, que es el umbral, que es la que decide que se cierra el proceso que se está realizando. Por ello, en la recursión todo está encapsulado. Y si hablamos de biología, en la reproducción de los seres vivos, se producen estos umbrales contínuamente hasta que se crea un nuevo ser completo.

¿Opiniones y argumentos? Los leo.

Sunday, March 19, 2023

La vida es inevitable


Stuart Kauffman es uno de los biólogos teóricos más importantes del mundo. Sus investigaciones lo han llevado a proponer una serie de conceptos que sin duda podrían generar el siguiente paradigma en la definición de vida. El problema central de Kauffman empieza con la interrogante de ¿cómo es que existe la vida? ¿Qué artes hubo que pasar la Naturaleza para que de pronto, elementos inanimados cobraran vida? Entender el mecanismo de creación de vida sin duda nos haría entender no solamente nuestra propia existencia, sino además, tendríamos al menos pistas importantes para sintetizar otras formas de vida.

John von Neumann había hecho notar que la vida no puede existir si no hay un grado de complejidad presente. Una vez alcanzado este estado, se empezaría un mecanismo evolutivo para crear moléculas más complejas y en algún momento llegar a los organismos. Evidentemente este sería un largo y tortuoso camino de prueba y error constante. 

A Kauffman le apasionaba la interrogante de la creación de la vida. ¿Cómo es que un huevo fertilizado de pronto empieza a duplicar sus células hasta que llega un momento en que éstas empiezan a diferenciarse para crear nervios, músculos, tejidos diversos? Kauffman trabajaba en eso cuando dos investigadores, Jacob y Monod, hallaron un mecanismo que pudiese explicar este comportamiento de diferenciación, al cual llamaron “switcheo de genes”. Esta teoría indicaba que en algún momento las células apagan unos genes mientras que encienden otros.

La idea de los investigadores franceses parecía abrir nuevas alternativas a la investigación de la biología genética. Bastaría aislar los componentes para ver cómo se comportaban, pero el trabajo parecía fuera de toda posibilidad real, pues los seres humanos poseen unos cien mil genes, y si consideramos la cantidad de combinaciones que se pueden dar, el análisis que habría que hacer parece sobrepasar todas las expectativas. 


Stuart Kauffman


Kauffman, sin embargo, siguió otro enfoque. En lugar de aislar elementos y ver qué genes eran los que participaban en este esquema que los habilitaba/deshabilitaba, se le ocurrió utilizar un conjunto de instrucciones azarosas que podrían terminar por convertirse en algo complejo que de manera casi absurda, podría considerarse como la vida misma. El investigador creía en la capacidad de la auto-organización en donde en una red de conexiones trabajaría al azar y en algún momento, emergería lo que llamamos vida.

Cabe señalar que estas eran las ideas de Kauffman en 1965. Y en ese entonces, para probar sus ideas, consiguió el poder usar una máquina IBM, un mainframe de ese entonces (estábamos lejos de la computadora personal), a cambio de unos 1000 dólares, que le dio la universidad donde estudiaba aún medicina. Entonces escribió un programa en FORTRAN que generaba una red booleana, similar conceptualmente a las redes de switcheo de genes. En una red booleana los valores solamente pueden ser verdaderos o falsos, hay corriente o no, “0” ó “1”.  

Kauffman comenzó con mil variables booleanas, un valor exageradamente menor a la cantidad de genes que tienen los seres humanos. Se pusieron reglas azarosas que encendían o apagaban esos bits. Imagínenlos como pequeñas lamparitas. Kauffman mismo no sabía qué iba a pasar pero mantendría su programa corriendo paso a paso para ver qué pasaba.

Pero ¿qué podría esperarse? Si los cambios en los bits eran al azar, de acuerdo a reglas ciegas, el sistema podría mantenerse en un estado azaroso por mucho tiempo. ¿Llegaría un momento que se estableciera algún patrón interesante? ¿Qué emergiera alguna propiedad? Kauffman invirtió casi con fe ciega esos 1000 dólares y empezó la simulación. Primer paso, una serie de bits prendidos y otros apagados. Segundo paso igual. Tercer paso, similar… pero de pronto el sistema tuvo un cambio notable, en el paso catorce ¡se repitió el paso 10! Y de ahí en adelante el programa se cicló en una serie de estados reconocibles.

Increíblemente Kauffman parecía haber acertado. Cambio configuraciones y de nuevo, al poco tiempo la máquina le mostró una serie de patrones que se repetían. Había logrado la auto-organización. Esto, no lo sabía Kauffman en ese entonces, se llamaba en teoría de caos un “atractor periódico” pero a pesar de ello, su experimento terminó por definir lo que a la larga se llamaría el “modelo de Kauffman”.

Kauffman había mostrado que el switcheo de genes no necesariamente es especializado. Digamos que la máquina genética tiene una serie de órdenes en donde se emergen nuevas características pero no vía un diseño estructurado específico, sino a partir de un mecanismo como el que Kauffman había usado en su experimento. Eso explicaría, por ejemplo, porqué hay relativamente pocos errores en la creación de un ser humano y esto, genéticamente hablando, no parece incidir en la vida de quienes quizás, tienen un gen que no debería ir donde va. Es decir, en este intercambio genético, en este switcheo de genes, algunas operaciones bien podrían no incidir en la vida del individuo que se está creando y eso parece pasar en la mayoría de los casos.

Partiendo de las ideas de Kauffman, se me ocurrió escribir un programa que hiciese lo que hizo el investigador en su momento. En un par de horas tuve todo funcionando y en mi caso, no usé 1000 “genes”, sino 20. Asumí que debería funcionar y sí, funciona. Después de algunos pasos, los genes (que tienen valores de ceros y unos solamente, se ciclan). La conclusión es que, eventualmente, la vida -como Kauffman nos ha dicho- es inevitable.

A quien le interese mi software, escríbame a morsa@la-morsa.com y se lo mando de forma gratuita a vuelta de correo.