- Es difícil ver al ADN como código de programa que se ejecuta secuencialmente, pero la expresión génica y las vías de señalización celular tienen mecanismos de regulación comparables con la lógica tipo IF/WHILE
- Los activadores transcripcionales y los represores transcripcionales corresponden de forma laxa a IF y WHILE, respectivamente, en el sentido de que encienden o bloquean la transcripción de genes según ciertas condiciones
- Es difícil que dentro de una célula existan bloques independientes de entrada-salida como en una llamada a función, y las reacciones que ocurren en el mismo espacio pueden interferir entre sí
- Se pueden encontrar casos parecidos a GOTO en conexiones condicionales de redes, feedforward loops y rutas ramificadas, pero la gran limitación es que el ADN no se ejecuta secuencialmente
- Los sistemas biológicos son, en general, paralelos y analógicos, por lo que la metáfora del código de computadora debe usarse con cuidado, aunque existan ejemplos de compuertas lógicas en biología sintética
Límites de la analogía entre ADN y lenguajes de programación
- El ADN no se ejecuta secuencialmente como el código de computadora; muchas transcripciones ocurren en paralelo al mismo tiempo
- Una línea de código de computadora tiene un significado estricto y consistente, pero el ADN codificante se traduce en aminoácidos, y la función de una proteína surge de interacciones químicas complejas entre esos aminoácidos
- Es difícil entender de forma independiente un fragmento de ADN codificante fuera del contexto de la proteína que produce
- En los sistemas biológicos también hay rutas que se comportan de forma parecida a una computadora, pero esta comparación debe tratarse con más cuidado a nivel de proteínas que a nivel de ADN
Regulación génica cercana a IF y WHILE
- Un activador transcripcional puede verse como un ejemplo similar a IF, porque cuando está presente permite que se transcriba un gen específico
- Sin embargo, como el evento no termina hasta que desaparece la señal y el programa continúa mientras la célula está viva, IF siempre funciona como si fuera parte de un bucle
- Un represor transcripcional se compara con WHILE en el sentido de que un gen se transcribe mientras el represor no esté presente
- La interferencia transcripcional también puede interpretarse de una forma cercana a IF o WHILE
- Ej.:
if(x transcribed){not y transcribed} - Esta interferencia no necesariamente es binaria; con más frecuencia aparece como una respuesta gradual
- Ej.:
- En la etapa de RNA también ocurre interferencia transcripcional mediante antisense RNA, y a menudo proporciona bucles de retroalimentación negativa
- En este caso, la interferencia no es un análogo directo de una sentencia IF a nivel de ADN
Llamadas a funciones y rutas modulares
- Es difícil encontrar una estructura que corresponda exactamente a una llamada a función
- Los eventos dentro de la célula ocurren en el mismo espacio y siempre existe la posibilidad de interferencia
- Los orgánulos pueden tener propiedades similares a funciones como compartimentos, pero no son simples dispositivos de entrada-salida, sino estructuras muy complejas
- Algunas rutas modulares pueden compararse de forma laxa con llamadas a funciones
- Ej.: en apoptosis signaling, tratar como un bloque de código un tramo en el que cierta entrada lleva a un efecto casi constante
- Si se considera como un solo bloque el proceso entre la activación de caspasas y cytochrome leakage, se pueden explicar varios mecanismos de forma más breve
- El proceso de marcar proteínas con ubiquitin puede interpretarse como una llamada a función para su degradación
- Un receptor nuclear (nuclear receptor), cuando es activado por un ligando, se mueve del citoplasma al núcleo y provoca represión o activación génica y procesos posteriores, por lo que puede verse como un ejemplo de llamada a función
- En proteínas complejas ensambladas a partir de varias subunidades, el proceso de reemplazar una sola subunidad se compara con una llamada a función o con el concepto de composición
GOTO y rutas ramificadas
- GOTO tiene sentido principalmente en código de ejecución secuencial, y como el ADN no se ejecuta de esa manera, es difícil establecer una correspondencia directa
- En conexiones condicionales de redes se pueden encontrar estructuras parecidas a GOTO
- Ej.: si existe una ruta A→B→C y una conexión separada D→C, cuando D se activa puede influir directamente en C sin pasar por A y B
- Los feedforward loops y las rutas ramificadas pueden parecer que eluden pasos intermedios bajo ciertas condiciones
- También hubo una interpretación en comentarios que veía el splicing de intrones como algo parecido a un GOTO que hace que el puntero del ribosoma salte ciertos valores, pero el punto central es que el ADN no tiene una estructura de ejecución secuencial
Splicing y estructuras de estilo programación a bajo nivel
- El splicing alternativo se compara con IF en el sentido de que ciertos fragmentos de ADN, los exones, pueden incluirse o excluirse del transcrito que codifica la proteína final
- Estas comparaciones de bajo nivel muestran similitudes entre conceptos de programación y regulación biológica, pero es difícil verlas como equivalentes exactos
- Para describir el flujo de información dentro de la célula, no basta con mirar el ADN: también hay que considerar transcritos, proteínas y redes regulatorias
Circuitos lógicos en biología sintética
- En biología sintética hay casos en los que se construyeron compuertas lógicas con circuitos biológicos
- Como revisión relacionada se presenta una reseña sobre circuitos de biología sintética en Nature Reviews Genetics
- Siuti et al. 2013 es un ejemplo de uso de bacterias para almacenar información y ensamblarla en circuitos biológicos que procesan funciones lógicas
- El programa biobricks.org se presenta como un intento de definir componentes modulares como sensores, funciones lógicas y efectores
Células más cercanas a la retroalimentación analógica que al código digital
- Las células, como muchos sistemas físicos, tienen un carácter analógico, y en la mayoría de las situaciones las variables no se dividen en valores binarios 0/1
- En la expresión génica, cuando está presente un activador transcripcional el gen se transcribe, pero si se aumenta la concentración del activador, el nivel de expresión aumenta hasta llegar a un punto de saturación
- En los sistemas biológicos también es posible el comportamiento de conmutación
- Ciertas estructuras de redes regulatorias pueden generar esa dinámica
- La cooperatividad (co-operativity), con o sin retroalimentación positiva, es uno de los mecanismos que implementan el comportamiento de conmutación
- Como conceptos relacionados, se presentan ultrasensitivity y una pregunta de Biology Stack Exchange sobre si “una variable continua puede convertirse en una variable booleana”
1 comentarios
Opiniones en Hacker News
Puede que el ADN no tenga estructuras de programación, pero en cierto sentido funciona como una red neuronal. Basta ver las “redes reguladoras de genes” (Gene regulatory network).
Algunas proteínas solo cumplen la función de activar otros genes, y estos factores de transcripción son clave en las redes de regulación o en las reacciones en cadena. Se unen a regiones promotoras al inicio de otros genes para encenderlos e iniciar la producción de otras proteínas. Algunos factores de transcripción también actúan como represores.
Estas redes se parecen a las redes neuronales en que procesan información mediante nodos interconectados —genes y proteínas— y modifican la actividad unos de otros. Cuando un factor de transcripción activa o reprime un gen, puede desencadenarse una cadena de eventos, algo similar a cómo las neuronas se activan entre sí.
https://en.m.wikipedia.org/wiki/Gene_regulatory_network
Ha habido bastante avance en diseñar programas para que las células T humanas maten condicionalmente células cancerosas objetivo según la expresión de marcadores de superficie. Esto contrasta con las células CAR-T existentes que ya están en el mercado (Kymriah, etc.). Circuitos simples de células T con compuertas AND ya se están probando en humanos.
Hoy existen varias estrategias para escribir programas de toma de decisiones celulares con circuitos sintéticos. Estamos entrando en una era en la que se escriben programas de ADN y se introducen en el cuerpo humano; ahora que pasamos de pruebas de concepto en bacterias a ensayos clínicos reales en humanos, me pregunto cómo lograr que la gente de ciencias de la computación se interese más en la “biología sintética como programación”.
https://pubmed.ncbi.nlm.nih.gov/33243890/
https://arsenalbio.com/2023/05/16/arsenalbio-announces-prese...
Una afirmación del tipo “si cierta secuencia de ADN interactúa con campos electromagnéticos, gravedad o fuerzas fuerte/débil con propiedades xyz, entonces mutará siguiendo la ruta abc” debería descartarse si no puede respaldarse con análisis estadísticos reproducibles.
Creo que la obsesión de la industria de TI con los modelos de datos ha empujado a la gente hacia una pseudociencia que ignora la entropía y el efecto Lindy. Las estructuras pueden cambiar, pero las fuerzas físicas no. Una estructura de datos no es una fuerza física; se parece más a un modelo mental con fugas que la biología recolecta como basura debido a la entropía y al efecto Lindy.
Es la opinión de un ingeniero eléctrico al que la obsesión con el desarrollo de software le parece extraña, y llena de espejismos estadísticos y logros alucinados.
Las redes reguladoras de genes son un poco más dinámicas que un encendido/apagado estricto, pero como tienen varios tipos de interacciones —como potenciadores y represores— parecen poder modelarse mejor con compuertas lógicas que con redes neuronales típicas.
Con “generales” me refiero a que pueden aproximar o modelar muchos sistemas dinámicos capaces de composición operatoria.
Doy una clase de creatividad e innovación en la universidad. Les muestro a mis estudiantes muchos ejemplos de inventos que surgieron de observar la naturaleza; por ejemplo, el Velcro nació al ver cómo los frutos de bardana se pegaban al pelaje del perro del inventor.
Tengo la intuición de que, si observamos la naturaleza —en especial cómo funciona la mente humana—, todavía quedan descubrimientos por hacer sobre la computación. Imagino que el resultado será algo fundamental, que cambiará la forma misma en que entendemos la computación.
https://arxiv.org/pdf/1307.4186.pdf
Una idea importante es que muchos casos se parecen más a una inspiración que a una copia directa del diseño. La biología opera bajo restricciones muy distintas de las máquinas humanas, así que si un ingeniero o diseñador intenta mantenerse demasiado fiel al original biológico, puede que no le vaya bien.
Siempre pienso en el ADN como programación acumulada durante millones de años: fragmentos de código hacky que apenas funcionan, encadenados sin comentarios ni documentación.
Por qué cierto fragmento de código terminó con esa forma se perdió por completo en el tiempo. Lo único que sabemos es que cambiarlo suele ser malo, que ciertos bloques de código llevan a ciertos comportamientos y que, cuanto más lo miramos, más parece código espagueti.
El gen KMT2D es uno de los ejemplos de genes que regulan la expresión de otros genes. Cuando este gen tiene defectos, a menudo se produce el síndrome de Kabuki
Si no recuerdo mal, en la charla de Bert Hubert “DNA: The Code of Life (SHA2017)” se muestra un ejemplo de comportamiento tipo IF
https://en.wikipedia.org/wiki/KMT2D
https://en.wikipedia.org/wiki/Kabuki_syndrome
https://www.youtube.com/watch?v=EcGM_cNzQmE
En relación con la primera respuesta, Tim Blais de YouTube hizo una canción de eduentretenimiento muy pegadiza sobre máquinas moleculares, basada en la investigación de A. Leigh
La animación también es genial, y muestra cómo un “interruptor” electroquímico puede codificar estados binarios. En principio, con eso también se podrían construir compuertas lógicas
https://www.youtube.com/watch?v=ObvxPSQNMGc
https://pubs.acs.org/doi/10.1021/acs.chemrev.5b00146
https://www.nature.com/articles/s41467-021-26937-x
Algunas empresas intentan usar este enfoque para el diseño de fármacos. Por ejemplo, condiciones como “activar esto solo cuando ambos anticuerpos se hayan unido”
Es una pregunta interesante. La codificación y expresión genética son fundamentalmente probabilísticas, porque así la evolución es posible
En cambio, si las operaciones básicas de una CPU tuvieran una tasa de error similar, sería pésimo. Me pareció interesante el comentario superior sobre construir compuertas lógicas con circuitos biológicos, y a la inversa me pregunto si existe algún caso de un lenguaje de programación probabilístico que haga cómputo con un nivel de ruido parecido al de las células
Una analogía más cercana podría ser un lenguaje de descripción de hardware que sintetiza circuitos analógicos para cómputo. Esos circuitos se parecen a computadoras analógicas afectadas por el ruido de la radiación electromagnética del entorno
En ese sentido, ya se hacía de forma muy básica en la era de la computación predigital
Si hay lactosa en el entorno extracelular y no hay glucosa en el entorno extracelular, se activa el operón lac y se transcriben los genes de absorción y metabolismo de la lactosa, entrando en un bucle while
Mientras haya lactosa, esos genes se siguen transcribiendo
Pero esto no lo hace el ADN por sí solo, sino que ocurre como un componente del sistema celular. En este caso, E. coli siempre produce una cantidad mínima de transportadores de lactosa y de otros azúcares, y estos actúan como sensores en la membrana celular para disparar bucles de retroalimentación. Si no, ¿cómo sabría la célula que hay lactosa?
Cuando hay glucosa, E. coli la usa de forma prioritaria y reduce la regulación de los genes de absorción y metabolismo de otros azúcares. Todo esto es bastante más analógico que digital, por lo que incluso los genes “apagados” pueden seguir transcribiéndose a niveles muy bajos
El ADN se parece más a la RAM, y la CPU podría parecerse más al transcriptoma (ADN → mRNA) y a los ribosomas (mRNA → proteína). En conjunto, la célula ejecuta algo parecido a un ciclo de búsqueda-decodificación-ejecución con múltiples procesos en paralelo
Siempre me ha dado curiosidad el ADN desde la perspectiva de los lenguajes de programación, pero he pensado que se parece más a una estructura de datos que a un lenguaje
Me metí un rato en biología sintética y leí este libro introductorio: https://www.amazon.ca/Introduction-Systems-Biology-Principle...
Si en clases de “ingeniería de sistemas” o “sistemas de control” aprendiste sobre osciladores y sistemas de control de alto nivel aplicados a varias disciplinas de ingeniería, este libro es una buena introducción para entender cómo esos sistemas se “implementan” y funcionan dentro de una célula. Más que bucles “IF” y “WHILE”, se acerca a “cómo se implementan en RNA circuitos lógicos como el algoritmo de búsqueda de rutas de E. coli”
Si te interesa la biología computacional, las clases de George Church son excelentes
Según la descripción del curso, trata los avances en el modelado práctico de las relaciones entre secuencia, estructura y función en redes biológicas complejas, y el análisis funcional genómico cuantitativo e integral. Las tareas incluyen enfoques algorítmicos, estadísticos, de bases de datos y de simulación, además de aplicaciones en medicina, biotecnología, desarrollo de fármacos e ingeniería genética
https://ocw.mit.edu/courses/hst-508-genomics-and-computation...