Il DNA dal punto di vista di un informatico
In questo periodo anche a causa della epidemia in corso e del promettente vaccino che è in corso di distribuzione si sentono nominare strane sigle come RNA, mRNA, DNA.
Può esser che ci siamo chiesti cosa significhino o come funzionino.
Ispirato dall'eccellente materiale di Bert Hubert ho deciso di scrivere un articolo in cui intraprendiamo un piccolo viaggio per capire cosa significhino questi termini, ma guardandoli da una prospettiva molto diversa da quella a cui siamo abituati.
Siamo appassionati di tecnologia e di informatica, siamo appassionati di software e di hardware, abituati a lavorare con computer, circuiti elettronici, potremmo rimanere molto sorpresi (io lo sono stato molto) nello scoprire che in realtà il funzionamento di una cella è in molti modi analogo a quello di un computer.
A questo punto mi starete dando del matto, ma provate a seguirmi e vedremo che non è un paragone così strampalato.
Il DNA: il codice sorgente della vita
Il DNA possiamo dire che rappresenti il codice sorgente del nostro corpo e di tutti gli esseri viventi (e quasi-viventi come i virus) di questo pianeta.
In che senso codice sorgente? Come sappiamo il codice sorgente rappresenta l'elenco delle istruzioni che implementano il nostro programma.
Queste istruzioni verranno poi eseguite dalla CPU per realizzare quello che avevamo pianificato.
Allo stesso modo nel DNA vi sono tutte le istruzioni che la cellula andrà ad eseguire per realizzare tutte le funzioni di cui ha bisogno.
A voler essere più precisi potremmo dire il DNA è simile a del byte-code compilato per una macchina virtuale chiamata "il nucleo della cellula" ma forse mi sto lasciando prendere troppo la mano. In ogni caso esattamente come il codice binario, anche il DNA è digitale.
Ebbene sì, come i nostri computer si basano appunto sulla logica digitale binaria (1 o 0, acceso o spento) il nostro DNA è anch'esso digitale, essendo costituito da sole 4 basi (Adenina, Citosina, Guanina e Timina). Quindi non lavora con 2 simboli ma con 4.
All'interno dei nostri computer raggruppiamo le informazioni (bit) in gruppi di 8 simboli, che chiamiamo byte (8 bit = 1 byte).
All'interno del DNA le informazioni sono raggruppate a gruppi di 3. Questo gruppo di 3 basi viene chiamato codone.
Un byte ha dunque 2^8 = 256 possibili combinazioni, mentre un codone ne ha 4^3 = 64.
Non male direi.
Compilazione condizionale
Se prendiamo l'intero DNA umano (genoma), in realtà la maggior parte delle cellule ne usano solo una piccola parte, il che ha senso se ci pensiamo: le cellule del nostro fegato non hanno bisogno delle istruzioni su come generare un neurone.
Tutte le celle però contengono l'intero DNA, quindi l'intera copia del genoma, e quindi per la nostra analogia tutte le celle contengono tutti i sorgenti del codice.
Quindi potremmo dire che il nostro DNA è pieno di #if / #endif
Tutti questi fanno in modo che ogni cella possa eseguire solo i compiti che le appartengono in quel particolare momento della sua evoluzione.
Per essere più precisi infatti possiamo associare le cellule a delle macchine a stati. All'inizio partono come cellule staminali (non specializzate), poi nel corso della loro vita si duplicano più volte (come una fork()
crea un nuovo processo identico) e nel fare questo si specializzano.
Ogni specializzazione possiamo vederla come la scelta di un ramo all'interno di un albero.
Ogni cella può fare delle scelte relative al suo futuro, ognuna delle quali la rende più specializzata. Queste decisioni sono però persistenti per il resto della vita della cella.
Possiamo dire che una cella modifica la propria configurazione un po' come noi andiamo a modificare la configurazione del kernel Linux: se disabilitiamo il supporto ad una classe di periferiche i sorgenti di quei moduli rimarranno ma non verranno più considerati per la compilazione del nostro binario.
Torna al blog