2 Punkte von GN⁺ 2024-01-11 | 1 Kommentare | Auf WhatsApp teilen
  • DNA lässt sich schwer als sequenziell ausgeführter Programmcode verstehen, doch Genexpression und zelluläre Signalwege besitzen Regulationsmechanismen, die mit IF/WHILE-artiger Logik vergleichbar sind
  • Transkriptionsaktivatoren und Transkriptionsrepressoren entsprechen grob IF bzw. WHILE, insofern sie die Transkription von Genen abhängig von Bedingungen einschalten oder verhindern
  • Unabhängige Eingabe-Ausgabe-Blöcke wie bei Funktionsaufrufen sind in Zellen schwer zu realisieren, und Reaktionen, die im selben Raum ablaufen, können sich gegenseitig beeinflussen
  • GOTO-ähnliche Beispiele finden sich in bedingten Netzwerkverbindungen, Feedforward-Loops und verzweigten Pfaden, doch die große Einschränkung ist, dass DNA nicht sequenziell ausgeführt wird
  • Biologische Systeme sind überwiegend parallel und analog; daher sollte man die Metapher von Computercode vorsichtig verwenden, auch wenn es in der synthetischen Biologie Beispiele für Logikgatter gibt

Grenzen der Analogie zwischen DNA und Programmiersprachen

  • DNA wird nicht wie Computercode sequenziell ausgeführt; viele Transkriptionsvorgänge laufen gleichzeitig parallel ab
  • Eine Zeile Computercode hat eine strenge und konsistente Bedeutung, während codierende DNA in Aminosäuren übersetzt wird und die Funktion eines Proteins aus komplexen chemischen Wechselwirkungen zwischen Aminosäuren entsteht
  • Ein Stück codierende DNA ist außerhalb des Protein-Kontexts, den es erzeugt, schwer eigenständig zu verstehen
  • Auch in biologischen Systemen gibt es Pfade, die ähnlich wie Computer funktionieren, doch solche Vergleiche sollten eher auf Proteinebene als auf DNA-Ebene mit Vorsicht behandelt werden

Genregulation nahe an IF und WHILE

  • Ein Transkriptionsaktivator kann als IF-ähnliches Beispiel gelten, weil ein bestimmtes Gen transkribiert wird, wenn er vorhanden ist
    • Allerdings endet das Ereignis nicht, bevor das Signal verschwindet; da das Programm weiterläuft, solange die Zelle lebt, wirkt ein IF immer wie Teil einer Schleife
  • Ein Transkriptionsrepressor wird mit WHILE verglichen, da ein Gen transkribiert wird, solange der Repressor nicht vorhanden ist
  • Auch Transkriptionsinterferenz lässt sich als eine Form nahe an IF oder WHILE interpretieren
    • Beispiel: if(x transcribed){not y transcribed}
    • Diese Interferenz ist nicht zwingend binär, sondern tritt häufiger als graduelle Reaktion auf
  • Auch auf RNA-Ebene kommt es durch antisense RNA zu Transkriptionsinterferenz, die oft eine negative Feedback-Schleife bereitstellt
    • In diesem Fall ist die Interferenz kein direkt auf DNA-Ebene stattfindendes IF-Statement-Analogon

Funktionsaufrufe und modulare Pfade

  • Eine Struktur, die einem Funktionsaufruf exakt entspricht, ist schwer zu finden
    • Ereignisse innerhalb der Zelle finden im selben Raum statt und können sich jederzeit gegenseitig beeinflussen
    • Organellen können als Kompartimente zwar funktionsähnliche Eigenschaften haben, sind aber keine einfachen Eingabe-Ausgabe-Geräte, sondern sehr komplexe Strukturen
  • Einige modulare Pfade lassen sich lose mit Funktionsaufrufen vergleichen
    • Beispiel: In apoptosis signaling kann ein Abschnitt, in dem ein bestimmter Input zu einem nahezu konstanten Effekt führt, wie ein einzelner Codeblock behandelt werden
    • Wenn man den Prozess zwischen Caspase-Aktivierung und cytochrome leakage als einen Block betrachtet, lassen sich mehrere Mechanismen kürzer beschreiben
  • Der Prozess, Proteine mit Ubiquitin zu markieren, kann wie ein Funktionsaufruf zur Degradation interpretiert werden
  • Ein nuclear receptor kann als Beispiel für einen Funktionsaufruf gesehen werden, weil er nach Aktivierung durch einen Liganden vom Zytoplasma in den Zellkern wandert und dort Genrepression bzw. -aktivierung sowie nachgelagerte Prozesse auslöst
  • Bei komplexen Proteinen, die aus mehreren Untereinheiten zusammengesetzt sind, wird der Austausch einer einzelnen Untereinheit mit einem Funktionsaufruf oder dem Konzept der Komposition verglichen

GOTO und verzweigte Pfade

  • GOTO ist vor allem in sequenziell ausgeführtem Code sinnvoll; da DNA nicht auf diese Weise ausgeführt wird, ist eine direkte Entsprechung schwierig
  • In bedingten Netzwerkverbindungen lassen sich GOTO-ähnliche Strukturen finden
    • Beispiel: Wenn es einen Pfad A→B→C und eine separate Verbindung D→C gibt, kann D bei Aktivierung C direkt beeinflussen, ohne über A und B zu laufen
  • Feedforward-Loops und verzweigte Pfade können so wirken, als würden sie unter bestimmten Bedingungen Zwischenschritte umgehen
  • Es gab auch eine kommentarartige Interpretation, nach der Intron-Splicing einem GOTO ähneln könnte, bei dem der Pointer des Ribosoms andere Werte überspringt; der Kernpunkt bleibt jedoch, dass DNA keine sequenzielle Ausführungsstruktur besitzt

Splicing und programmierähnliche Strukturen auf niedriger Ebene

  • Alternatives Splicing wird mit IF verglichen, weil Exons – bestimmte DNA-Abschnitte – in das Transkript aufgenommen oder daraus ausgeschlossen werden können, das das endgültige Protein codiert
  • Solche Vergleiche auf niedriger Ebene zeigen Ähnlichkeiten zwischen Programmierkonzepten und biologischer Regulation, sind aber schwer als exakte Entsprechungen zu verstehen
  • Um den Informationsfluss in der Zelle zu erklären, muss man nicht nur DNA betrachten, sondern auch Transkripte, Proteine und regulatorische Netzwerke

Logikschaltungen in der synthetischen Biologie

  • In der synthetischen Biologie gibt es Beispiele, bei denen Logikgatter mit biologischen Schaltungen aufgebaut wurden
  • Als einschlägiger Review wird ein Review zu Schaltungen der synthetischen Biologie in Nature Reviews Genetics vorgestellt
  • Siuti et al. 2013 ist ein Beispiel dafür, wie Bakterien genutzt wurden, um Informationen zu speichern und sie zu biologischen Schaltungen zusammenzusetzen, die Logikfunktionen verarbeiten
  • Das Programm biobricks.org wird als Versuch vorgestellt, modulare Bauteile wie Sensoren, Logikfunktionen und Effektoren zu definieren

Zellen ähneln eher analogem Feedback als digitalem Code

  • Zellen haben wie viele physikalische Systeme einen analogen Charakter; in den meisten Situationen zerfallen Variablen nicht in binäre 0/1-Werte
  • Bei der Genexpression wird ein Gen transkribiert, wenn ein Transkriptionsaktivator vorhanden ist; erhöht man jedoch die Konzentration des Aktivators, steigt die Expressionsmenge bis zu einem Sättigungspunkt
  • Auch in biologischen Systemen ist Schaltverhalten möglich
    • Bestimmte regulatorische Netzwerkstrukturen können eine solche Dynamik erzeugen
    • Kooperativität (co-operativity) mit oder ohne positives Feedback ist einer der Mechanismen, die Schaltverhalten implementieren können
  • Als verwandte Konzepte werden ultrasensitivity und eine Frage auf Biology Stack Exchange dazu vorgestellt, ob sich kontinuierliche Variablen in boolesche Variablen verwandeln lassen

1 Kommentare

 
GN⁺ 2024-01-11
Hacker-News-Meinungen
  • DNA hat vielleicht keine Programmierstrukturen, aber sie hat Aspekte, die wie ein neuronales Netz funktionieren. Siehe „Gene regulatory network“
    Manche Proteine haben ausschließlich die Aufgabe, andere Gene zu aktivieren; solche Transkriptionsfaktoren sind der Kern von Regulationsnetzwerken oder Kettenreaktionen. Sie binden an Promotorregionen am Anfang anderer Gene, schalten diese Gene ein und stoßen so die Produktion weiterer Proteine an. Einige Transkriptionsfaktoren wirken auch hemmend.
    Solche Netzwerke ähneln neuronalen Netzen insofern, als sie Informationen über miteinander verbundene Knoten – Gene und Proteine – verarbeiten und die Aktivität der jeweils anderen verändern. Wenn ein Transkriptionsfaktor ein Gen aktiviert oder hemmt, kann eine Ereigniskette entstehen; das ähnelt der Art, wie Neuronen einander aktivieren.
    https://en.m.wikipedia.org/wiki/Gene_regulatory_network

    • Als synthetischer Biologe halte ich das für eine gute Antwort. Allerdings bekommt man eine stärker vereinfachte Sicht, wenn man sich von Menschen geschaffene genetische Programme ansieht.
      Es gab erhebliche Fortschritte dabei, Programme zu konstruieren, die menschliche T-Zellen dazu bringen, Ziel-Krebszellen bedingt zu töten, abhängig von der Expression von Oberflächenmarkern. Das steht im Gegensatz zu den bestehenden CAR-T-Zellen, die bereits auf dem Markt sind (Kymriah usw.). Einfache AND-Gatter-T-Zell-Schaltkreise werden derzeit am Menschen getestet.
      Inzwischen gibt es mehrere Strategien, um mit synthetischen Schaltkreisen Programme für zelluläre Entscheidungsfindung zu schreiben. Wir treten in eine Ära ein, in der DNA-Programme geschrieben und in den menschlichen Körper eingebracht werden; jetzt, da wir von bakteriellen Proofs of Concept zu echten klinischen Studien am Menschen übergehen, frage ich mich, wie man Menschen aus der Informatik stärker für „synthetische Biologie als Programmierung“ interessieren kann.
      https://pubmed.ncbi.nlm.nih.gov/33243890/
      https://arsenalbio.com/2023/05/16/arsenalbio-announces-prese...
    • Meiner Ansicht nach liegt das daran, dass DNA eine Datenstruktur ist, keine physikalische Kraft.
      Behauptungen der Art, eine bestimmte DNA-Sequenz werde, wenn sie mit elektromagnetischen Feldern, Gravitation, starker/schwacher Wechselwirkung mit den Eigenschaften xyz interagiere, entlang des Pfads abc mutieren, sollte man verwerfen, wenn sie nicht durch reproduzierbare statistische Analysen gestützt werden können.
      Ich denke, die Fixierung der IT-Branche auf Datenmodelle hat Menschen in Pseudowissenschaft getrieben, die Entropie und den Lindy-Effekt ignoriert. Strukturen können sich ändern, physikalische Kräfte nicht. Eine Datenstruktur ist keine physikalische Kraft, sondern eher ein undichtes mentales Modell dafür, wie Biologie aufgrund von Entropie und Lindy-Effekt Garbage Collection betreibt.
      So sieht es ein Elektrotechniker, dem die Besessenheit von Softwareentwicklung seltsam erscheint und der darin viele statistische Trugbilder und halluzinierte Errungenschaften sieht.
    • In Lehrbüchern der Systembiologie werden solche Netzwerke gewöhnlich eher als Logikgatter beschrieben denn als neuronale Netze. Natürlich gibt es auch Ähnlichkeiten.
      Genregulationsnetzwerke sind etwas dynamischer als ein striktes Ein/Aus, aber da es mehrere Arten von Interaktionen gibt, etwa Enhancer und Repressoren, scheinen Logikgatter sie besser modellieren zu können als ein typisches neuronales Netz.
    • Das klingt nach einer eventbasierten Architektur: Sie gibt als Reaktion auf andere Events Events aus, und auch der Sender von Events wird durch andere Events „reguliert“.
    • Bevor man zu allzu esoterischen Schlussfolgerungen springt: Das liegt vermutlich daran, dass neuronale Netze sehr allgemein sind.
      Mit allgemein ist hier gemeint, dass sie viele dynamische Systeme approximieren oder modellieren können, in denen operatorielle Komposition möglich ist.
  • Ich unterrichte an der Universität einen Kurs über Kreativität und Innovation. Ich zeige den Studierenden viele Beispiele für Erfindungen, die aus Naturbeobachtungen entstanden sind; Velcro etwa entstand, nachdem der Erfinder beobachtet hatte, wie Klettenfrüchte am Fell seines Hundes hängen blieben.
    Ich habe die Intuition, dass es noch Entdeckungen im Bereich Computing geben wird, wenn man beobachtet, wie die Natur – insbesondere der menschliche Geist – funktioniert. Ich stelle mir vor, dass die Ergebnisse grundlegend sein werden und unsere Art, Computing zu verstehen, selbst verändern.

    • Auch unser heutiges Verständnis von Berechnung basiert zu einem großen Teil auf Naturbeobachtung. Es ist eine natürliche Folge der Beschäftigung mit Logik, und diese Suche reicht bis in die Antike zurück, als Sophistik institutionalisiert wurde. Damals gab es kaum systematische Methoden, um zu entscheiden, was wahr ist; ein wichtiges Kriterium war, ob etwas plausibel klang.
    • Es gibt ein ganzes Feld der von der Natur inspirierten Optimierung.
      https://arxiv.org/pdf/1307.4186.pdf
    • Mir fallen Convolutional Neural Networks ein.
    • Ich empfehle dieses Buch häufig: 'Cats’ Paws and Catapults: Mechanical Worlds of Nature and People' (https://www.goodreads.com/book/show/223609.Cats_Paws_and_Cat...) zeigt sehr gut, wie Biologie menschliches Design inspiriert.
      Ein wichtiger Gedanke ist, dass viele Beispiele eher Inspiration sind als direkte Kopien eines Designs. Biologie funktioniert unter ganz anderen Einschränkungen als menschliche Maschinen; wenn Ingenieure oder Designer zu sehr versuchen, dem biologischen Original treu zu bleiben, kann das schiefgehen.
  • Ich denke bei DNA immer an Programmierung über Millionen Jahre hinweg: eine Abfolge gerade so funktionierender, hackiger Codestücke ohne Kommentare oder Dokumentation.
    Warum ein bestimmtes Codestück so aussieht, ist in der Zeit vollständig verloren gegangen. Alles, was wir wissen, ist, dass Änderungen meist schlecht sind, dass bestimmte Codeblöcke zu bestimmten Verhaltensweisen führen und dass es umso mehr wie Spaghetticode aussieht, je genauer man hinschaut.

  • Das KMT2D-Gen ist ein Beispiel für ein Gen, das die Expression anderer Gene reguliert. Defekte in diesem Gen führen häufig zum Kabuki-Syndrom
    Wenn ich mich richtig erinnere, zeigt Bert Hubert in seinem Vortrag „DNA: The Code of Life (SHA2017)“ ein Beispiel für IF-ähnliches Verhalten
    https://en.wikipedia.org/wiki/KMT2D
    https://en.wikipedia.org/wiki/Kabuki_syndrome
    https://www.youtube.com/watch?v=EcGM_cNzQmE

  • Im Zusammenhang mit der ersten Antwort: Tim Blais auf YouTube hat auf Basis der Forschung von A. Leigh einen eingängigen Edutainment-Song über molekulare Maschinen gemacht
    Auch die Animation ist großartig und zeigt, wie elektrochemische „Schalter“ binäre Zustände codieren können. Prinzipiell ließen sich damit auch Logikgatter bauen
    https://www.youtube.com/watch?v=ObvxPSQNMGc
    https://pubs.acs.org/doi/10.1021/acs.chemrev.5b00146

    • Es gibt eine Arbeit aus dem Jahr 2021, in der ein Logik-OR-Gatter-Protein gebaut wurde
      https://www.nature.com/articles/s41467-021-26937-x
      Manche Unternehmen wollen solche Ansätze im Wirkstoffdesign einsetzen. Zum Beispiel mit Bedingungen wie: „Aktiviere dies nur, wenn beide Antikörper gebunden haben“
  • Eine interessante Frage. Genetische Codierung und Expression sind grundsätzlich stochastisch. Nur so ist Evolution möglich
    Hätten dagegen die Grundoperationen einer CPU eine ähnlich hohe Fehlerrate, wäre das ziemlich schlecht. Der Top-Kommentar über den Bau von Logikgattern mit biologischen Schaltkreisen war interessant; umgekehrt frage ich mich, ob es Beispiele für probabilistische Programmiersprachen gibt, deren Operationen ein zellähnliches Rauschniveau haben

    • Die Stochastik entsteht, weil biologische „Berechnungen“ aus elektrochemischen Reaktionen und Rückkopplungsschleifen bestehen, und das passt nicht gut zum Begriff der „Codeausführung“ in Programmiersprachen
      Eine passendere Analogie wäre vielleicht eine Hardwarebeschreibungssprache, mit der man analoge Rechenschaltungen synthetisiert. Solche Schaltungen ähneln analogen Computern, die vom Rauschen elektromagnetischer Strahlung aus der Umgebung beeinflusst werden
      In diesem Sinne wurde so etwas in sehr rudimentärer Form bereits in der vor-digitalen Ära des Rechnens gemacht
    • Wenn man es mit der Fehlerrate von CPU-Grundoperationen vergleicht, geht es bei Evolution um Mutationen beim Kopieren von ausführbaren Dateien
    • Wenn man bedenkt, wie langsam Evolution ist und wie oft DNA innerhalb eines Organismus kopiert oder transkribiert wird, dürfte die Fehlerrate genetischer Prozesse in Wirklichkeit extrem niedrig sein
  • Wenn in der Umgebung außerhalb der Zelle Laktose vorhanden ist und keine Glukose, aktiviert sie das lac-Operon, transkribiert die Gene für Laktoseaufnahme und -stoffwechsel und tritt in eine While-Schleife ein
    Solange Laktose vorhanden ist, transkribiert sie diese Gene weiter
    Das geschieht allerdings nicht durch DNA allein, sondern als Teil des zellulären Systems. In diesem Fall produziert E. coli stets eine minimale Menge an Laktose- und anderen Zuckertransportern, die in der Zellmembran wie Sensoren wirken und eine Rückkopplungsschleife auslösen. Wie sollte die Zelle sonst wissen, dass Laktose vorhanden ist?
    Ist Glukose vorhanden, nutzt E. coli sie bevorzugt und reguliert die Gene für Aufnahme und Stoffwechsel anderer Zucker herunter. All das ist eher stark analog als digital, sodass auch „abgeschaltete“ Gene auf sehr niedrigem Niveau weiterhin transkribiert werden können
    DNA ähnelt eher RAM, während die CPU eher dem Transkriptom (DNA → mRNA) und den Ribosomen (mRNA → Protein) entsprechen könnte. Insgesamt läuft in der Zelle so etwas wie ein Fetch-Decode-Execute-Zyklus mit parallelen Mehrfachprozessen

  • Aus Sicht von Programmiersprachen hat mich DNA immer interessiert, aber ich habe sie eher als Datenstruktur denn als Sprache gesehen

    • Ich habe Lisp immer für die naheliegendste Annäherung an DNA gehalten
  • Ich war eine Weile von synthetischer Biologie fasziniert und habe dieses Einführungslehrbuch gelesen: https://www.amazon.ca/Introduction-Systems-Biology-Principle...
    Wenn man in Kursen zu „Systems Engineering“ oder „Regelungssystemen“ Oszillatoren und übergeordnete Steuerungssysteme über verschiedene Ingenieurdisziplinen hinweg kennengelernt hat, ist dieses Buch ein guter Einstieg, um zu verstehen, wie solche Systeme in Zellen „implementiert“ sind und funktionieren. Es geht weniger um „IF“- und „WHILE“-Schleifen, sondern eher darum, „wie logische Schaltungen wie der Pfadfindungsalgorithmus von E. coli in RNA implementiert werden“

  • Wenn dich Computational Biology interessiert, sind die Vorlesungen von George Church hervorragend
    Laut Kursbeschreibung behandelt dieser Kurs Fortschritte bei der realistischen Modellierung der Beziehungen zwischen Sequenz, Struktur und Funktion in komplexen biologischen Netzwerken sowie quantitative, umfassende funktionelle Genomanalysen. Die Aufgaben umfassen algorithmische, statistische, datenbankgestützte und simulationsbasierte Ansätze sowie Anwendungen in Medizin, Biotechnologie, Wirkstoffentwicklung und Gentechnik
    https://ocw.mit.edu/courses/hst-508-genomics-and-computation...