2 puntos por GN⁺ 2024-01-11 | 1 comentarios | Compartir por WhatsApp
  • 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
  • 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

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

 
GN⁺ 2024-01-11
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

    • Como biólogo sintético, me parece una buena respuesta. Dicho eso, si uno mira los programas genéticos creados por humanos, aparece una perspectiva más simplificada.
      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...
    • Creo que es así porque el ADN es una estructura de datos, no una fuerza física.
      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.
    • En los libros de texto de biología de sistemas, estas redes suelen explicarse más como compuertas lógicas que como redes neuronales. Claro que también tienen similitudes.
      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.
    • Esto suena a una arquitectura basada en eventos. Una estructura que emite eventos en respuesta a otros eventos, y donde quien envía eventos también es “regulado” por otros eventos.
    • Antes de saltar a conclusiones demasiado esotéricas, es muy posible que esto ocurra porque las redes neuronales son muy generales.
      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.

    • La forma en que hoy entendemos la computación también se basa en gran medida en la observación de la naturaleza. Es una consecuencia natural del estudio de la lógica, y esa exploración se remonta a la Antigüedad, cuando la sofística se institucionalizaba. En ese entonces había pocos métodos sistemáticos para determinar si algo era verdadero, y un criterio importante era si sonaba convincente.
    • Existe todo un campo de optimización inspirada en la naturaleza.
      https://arxiv.org/pdf/1307.4186.pdf
    • Me vienen a la mente las redes neuronales convolucionales.
    • Suelo recomendar este libro: 'Cats’ Paws and Catapults: Mechanical Worlds of Nature and People' (https://www.goodreads.com/book/show/223609.Cats_Paws_and_Cat...) muestra muy bien cómo la biología inspira el diseño humano.
      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

    • Hay un paper de 2021 en el que crearon una proteína de compuerta lógica OR
      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

    • La razón de que surja la aleatoriedad es que la “computación” biológica consiste en reacciones electroquímicas y bucles de retroalimentación, lo cual no encaja bien con el concepto de “ejecución de código” de los lenguajes de programación
      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 se compara con la tasa de error de las operaciones básicas de una CPU, la evolución trata de mutaciones cuando se copia un ejecutable
    • Si se piensa en lo lenta que es la evolución y en cuántas veces se copia o transcribe el ADN dentro de un individuo, la tasa de error del proceso genético en realidad parece ser extremadamente baja
  • 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

    • Siempre he pensado que Lisp es la aproximación más cercana al ADN
  • 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...