Descrizione
Un sorprendente parallelismo tra informatica e biologia.
I link dell’episodio di oggi:
Ingenierizzazione inversa del Codice Sorgente del Vaccino BioNTech/Pfizer - https://berthub.eu/articles/posts/italian-reverse-engineering-source-code-of-the-biontech-pfizer-vaccine/
VACCINI a mRNA (Pfizer-Biontech / Moderna). Come funzionano? - https://www.youtube.com/watch?v=fP0jXMEuk6g
[LIVE] » Programmare il #Vaccino: parliamo di mRNA con Sergio Pistoi - https://www.youtube.com/watch?v=p4G18RUS0pU
——————————————
Sito ufficiale di Pensieri in codice - https://pensieriincodice.it
Attrezzatura:
Shure Microfono Podcast USB MV7* - https://amzn.to/3862ZRf
- Link affiliato: il costo di un qualsiasi acquisto non sarà maggiore per te, ma Amazon mi girerà una piccola parte del ricavato.
I miei progetti social:
Pensieri in codice - https://pensieriincodice.it
Canale Twitch - https://valeriogalano.it/twitch
Daredevel blog - https://valeriogalano.it/daredevel
Newsletter - https://valeriogalano.it/newsletter
Per essere aggiornati sulle novità:
Canale Telegram - https://pensieriincodice.it/canaletelegram
Profilo Instagram - https://valeriogalano.it/instagram
Profilo Twitter - https://valeriogalano.it/twitter
Per partecipare alla discussione:
Gruppo Telegram - http://bit.ly/joinPicTelegram
Servizi professionali:
Lezioni private su Docety - https://valeriogalano.it/docety
Consulenza professionale - https://valeriogalano.it
Sostieni il progetto
Sostieni tramite SatispaySostieni tramite Revolut
Sostieni tramite PayPal
Sostieni utilizzando i link affiliati di Pensieri in codice: Amazon, Todoist, Readwise Reader, Satispay
Partner
GrUSP (Codice sconto per tutti gli eventi: community_PIC)Schrödinger Hat
Crediti
Montaggio - Daniele Galano - https://www.instagram.com/daniele_galano/Voce intro - Costanza Martina Vitale
Musica - Kubbi - Up In My Jam
Musica - Light-foot - Moldy Lotion
Cover e trascrizione - Francesco Zubani
Mostra testo dell'episodio
Quella che segue è una trascrizione automatica dell'episodio.
Pensieri in codice. Idee dal mondo del software a cura di Valerio Galano. Salve a tutti ragazzi e ben ritrovati su Pensieri in codice. Anche questo episodio esce in ritardo sulla tabella di marcia. Però devo dire che questa volta ho parecchie scuse da addurre a mia discolpa. Potrei dirvi che sto facendo i conti con il nuovo sistema di organizzazione delle attività. Potrei dirvi che ho iniziato delle nuove consulenze professionali. Potrei dirvi che ho un nuovo microfono che non funziona con Linux e che quindi mi ha richiesto una specifica installazione di Windows in dual boot sul mio portatile. Ma in effetti penso che l’unica cosa che realmente vi interessi è che sto lavorando un po’ di cose nuove. Infatti ci sono in cantiere un paio di collaborazioni e poi una rubrica che intensificherà un po’ gli appuntamenti con Pensieri in codice e che sono sicuro vi piacerà. Quindi voi pazientate ancora qualche settimana e io vi prometto che ne varrà la pena. Detto questo l’episodio di oggi è fortemente ispirato ad un articolo che ho casualmente incontrato e che mi ha molto colpito perché mi ha fatto finalmente capire il funzionamento del vaccino BioNTech Pfizer. In questo articolo che ovviamente trovate linkato in descrizione si fa una sorta di analisi del codice sorgente del vaccino in modo da spiegare il funzionamento dei singoli componenti. E partendo quindi da questa base ho pensato di provare a rielaborare il tutto e cercare un modo per spiegare il funzionamento del vaccino così come lo spiegherei ad un altro informatico. Quindi sempre tenendo presente che non ho competenze di biologia, virologia o immunologia o altre discipline del genere e che quindi il presente podcast potrebbe contenere degli errori proviamo a spiegare il vaccino BioNTech Pfizer ad un informatico. Partiamo quindi dalle basi e proviamo a capire come funziona un vaccino. L’idea di fondo è un po’ simile a quella dell’aggiornamento di un antivirus. Se infatti pensiamo al nostro sistema immunitario come ad un antivirus per computer ci rendiamo conto che questo può bloccare e combattere i virus solamente se è in grado di riconoscerli. E proprio come un antivirus il sistema immunitario è dotato di una sorta di database, di archivio, nel quale mantiene tutte le informazioni riguardanti i virus che ha già incontrato nel corso della sua storia e che sa di dover combattere. E da questo punto di vista l’unica differenza tra antivirus e sistema immunitario è che gli archivi di quest’ultimo non possono essere aggiornati semplicemente scaricando una versione nuova dal sito della casa madre. La procedura infatti richiede che il sistema immunitario entri in contatto con il virus e lo riconosca come un qualcosa di estraneo da eliminare. Solo a questo punto l’archivio delle minacce verrà aggiornato e per i successivi incontri il sistema saprà già come difendersi perché avrà già sviluppato gli anticorpi necessari. Ora, storicamente questa operazione veniva fatta inoculando alle persone una versione indebolita del virus in modo che questo potesse sollecitare il sistema immunitario senza però fare ammalare la persona. Ma questo tipo di operazione richiede tempi lunghi e molti tentativi e certamente non è questo il caso del vaccino Pfizer che invece si basa su una tecnica moderna chiamata mRNA e che ha permesso non solo di ridurre i tempi di produzione del vaccino ma anche di ottenere lo stesso risultato dei metodi tradizionali in modo molto più preciso ed efficiente. Ora, un vaccino mRNA si basa appunto sull’RNA che può essere considerato come una versione diciamo in esecuzione del DNA. In questa metafora il DNA che come tutti noi sappiamo contiene le istruzioni necessarie per produrre tutte quelle molecole e gli elementi che poi messi insieme formano la vita, va considerato come un file archiviato su un hard disk anzi in realtà questo file è archiviato su un ride di tipo 1 con ridondanza completa poiché ad essere precisi ogni filamento di DNA contiene due volte le stesse informazioni e sempre rimanendo nella metafora proprio come un file che non può essere eseguito direttamente dall’hard drive ma deve essere prima caricato in memoria per essere manipolato così il DNA non può essere utilizzato direttamente e quindi l’RNA ne rappresenta una copia utilizzabile, la sua versione caricata in ram e proprio come per la ram stiamo parlando di un’informazione piuttosto volatile che può sopravvivere solo in determinate condizioni e se trattata in un certo modo ed è quindi per questo motivo che il vaccino va conservato a temperature bassissime e per ogni dose che viene definita di 30 microgrammi in realtà all’interno di una fiala ci sono 30 microgrammi di RNA e tutto il resto è lipidi che servono a proteggere l’RNA fino all’arrivo all’interno delle cellule e per chi se lo stesse chiedendo le informazioni contenute nel vaccino sono circa un kilobyte più o meno mentre le informazioni necessarie per la produzione dell’intero virus SARS-CoV-2 sono di circa 7,5 kilobyte e questo perché ai fini dell’addestramento del nostro sistema immunitario sono sufficienti solo le informazioni riguardanti la famosa proteina spike ed è invece possibile omettere tutto il resto del materiale genetico del virus che non contribuirebbe allo scopo e rischierebbe solo di far ammalare le persone. Quindi in definitiva una volta che l’RNA riesce ad entrare all’interno delle cellule questo viene utilizzato un po’ come un file di word per una stampante. L’RNA è il documento e le cellule sono delle piccole stampanti che iniziano a produrre questa proteina spike. Il sistema immunitario vedendo che tutte le sue piccole stampanti sono state messe in funzione e stanno producendo qualcosa di cui lui non è a conoscenza interviene producendo gli anticorpi e bollando la proteina spike come un nemico. In questo modo se in futuro l’organismo dovesse essere contagiato dal virus SARS-CoV-2 e tutta una serie di sue varianti il nostro antivirus sarà già aggiornato e saprà come reagire. Un altro parallelismo molto interessante tra biologia e informatica riguarda i codici digitali utilizzati. Sappiamo bene che per i computer a livello più basso tutto viene rappresentato fondamentalmente con 0 e 1 quindi con un sistema binario fatto di due cifre. Per quanto riguarda invece la vita essa si basa su 5 nucleotidi adenina, citosina, guanina e tinina o uracile a seconda che si parli di dna o rna. Ora mentre i bit vengono raggruppati di 8 in 8 e rappresentano i byte allo stesso modo i nucleotidi vengono raggruppati 3 per volta e vanno a formare un codone e ciascun codone contiene le informazioni necessarie affinché una cellula utilizzando in particolare un ribosoma sia in grado di produrre un amminoacido. Una volta capite le basi passiamo quindi ad osservare come è fatto il vero e proprio codice che descrive il vaccino e scopriamo che a prima vista esso è molto simile ad un pacchetto utilizzato da un protocollo di trasporto come ad esempio il tcp. Esso infatti si divide in una serie di sezioni ognuna delle quali ha un suo significato e una sua utilità. La prima di queste sezioni è definita CAP o cappello e ricorda molto da vicino il carattere cancelletto punto esclamativo che si trova in testa ad esempio ad uno script per shell. Proprio come questi due caratteri infatti la sezione cappello ha il compito di spiegare al nostro organismo che quel che si trova di fronte non è materiale da scartare ma un codice legittimo con delle sue caratteristiche che il sistema dovrà eseguire. Subito dopo il cappello viene una sezione chiamata REGIONE NON TRADOTTA 5’ questa sezione ha una sua corrispondente verso la fine del pacchetto che si chiama REGIONE 3’. Queste due sezioni in pratica delimitano la parte di RNA che descrive la proteina spike, quella parte di codice da eseguire. Da questo punto di vista c’è una forte somiglianza ad esempio con del codice PHP. Se infatti pensiamo ad un blocco di istruzioni PHP subito ci rendiamo conto che esse sono racchiuse tra due particolari TAG e mi riferisco a minore punto interrogativo PHP e a conclusione punto interrogativo maggiore. Le REGIONI NON TRADOTTE 5’ e 3’ e i TAG di apertura e chiusura di un’area di esecuzione PHP svolgono quindi lo stesso compito e cioè spiegano a chi dovrà eseguire quel codice dove iniziare e dove fermarsi. Un altro meccanismo utilizzato dal vaccino che è molto simile ad un meccanismo utilizzato nell’informatica è quello dell’offuscamento. Abbiamo infatti già detto più volte che all’interno del nostro corpo c’è un potentissimo antivirus che è il sistema immunitario e se noi andassimo a inserire semplicemente un RNA estraneo all’interno del nostro corpo questo non ne sarebbe certamente felice probabilmente lo attaccherebbe e lo distruggerebbe. Per questo motivo è necessario in qualche modo offuscare questo RNA agli occhi del nostro sistema immunitario proprio allo stesso modo di come chi scrive virus cerca di farlo in modo che gli antivirus non possano individuarli e nel vaccino Pfizer questo scopo si è ottenuto sostituendo tutti i nucleotidi U con una molecola della quale non sono in grado di pronunciare il nome ma che è in grado perfettamente di conservare la funzionalità dell’RNA facendo però perdere totalmente interesse al sistema immunitario. Dopo tutte queste sorprendenti analogie non poteva certo mancare il concetto di ottimizzazione come informatici sappiamo infatti che un codice più efficiente può fare una enorme differenza soprattutto se si parla di grandi moli di dati su cui lavorare e dal momento che ora ci troviamo in una situazione di pandemia globale che per forza di cose coinvolge numeri altissimi avere un vaccino che sia il più efficiente possibile è sicuramente un fattore molto importante e quindi se mettiamo a confronto il codice del vaccino e quello del virus nell’articolo in descrizione ne trovate uno stralcio ci accorgiamo che nel vaccino alcuni nucleotidi sono stati sostituiti con delle C e delle G e ciò perché si è scoperto che un’RNA con maggiori concentrazioni di C e G viene convertito in proteine con una maggiore efficienza e se vi state chiedendo come sia possibile che cambiando le istruzioni genetiche si ottenga sempre lo stesso risultato sappiate che questi cambiamenti si dicono sinonimici vi ricordate infatti quando abbiamo parlato di codoni abbiamo detto che ci sono quattro nucleotidi che vengono raggruppati 3 alla volta risulta quindi facile calcolare che i possibili codoni sono 4 alla terza cioè 64 ma in realtà gli amminoacidi che si possono produrre sono solo 20 quindi va da sé che a differenti codoni corrispondono gli stessi amminoacidi ciò che hanno fatto i programmatori del vaccino Pfizer non è stato altro che scegliere il codone per quel determinato amminoacido che però avesse il maggior numero possibile di C o G infine l’ultima somiglianza che questo articolo mi ha fatto venire in mente tra informatica e biologia riguarda gli ambienti di test ora chi sviluppa codice e sa bene di cosa sto parlando a seconda delle esigenze si può spaziare da ambienti grandi e molto complessi ma molto spesso si parla anche di semplici unit test e comunque in ciascuno di questi casi il concetto è quello di riprodurre quelle che saranno un po le condizioni nelle quali il nostro software o la nostra libreria dovrà funzionare e poi eseguire delle verifiche per accertarsi che sia tutto ok e tutto rispondente ai requisiti se vogliamo questo vaccino rappresenta un po un ambiente di test per il nostro sistema immunitario e come tale è solo uno spaccato un sotto insieme di quella che è la realtà e infatti l’RNA di cui abbiamo parlato finora contiene solo le informazioni per rappresentare la proteina spike del virus non tutto il virus se pensiamo quindi ad una di quelle immagini al microscopio del virus che girano tanto su internet dobbiamo immaginare la proteina spike come sola la corona intorno al virus senza tutta la parte centrale questo perché la proteina spike è quella che permette al virus di entrare nelle cellule ed è anche quella che il sistema immunitario è in grado di riconoscere mentre il nucleo chiamiamolo così centrale è l’effettivo virus che porta a tutte le conseguenze che conosciamo quindi un ulteriore problema che i programmatori del vaccino hanno dovuto risolvere è il fatto che questa proteina spike privata della parte interna del virus tendeva a collassare su se stessa e se fosse accaduto questo il nostro sistema immunitario avrebbe sviluppato la resistenza non al virus del SARS-CoV-2 ma ad una proteina spike accartocciata su se stessa quindi fondamentalmente una immunità inutile quindi nel codice dell’RNA è stato anche necessario sostituire due particolari amminoacidi con un terzo chiamato priolina questo semplicemente perché la priolina è un amminoacido molto rigido ed è in grado di far mantenere la giusta forma alla proteina spike bene ragazzi io spero che questo episodio sperimentale vi sia piaciuto vi ricordo che non ho competenze di biologia o virologia quindi prendete tutto quello che ho detto per quello che è cioè un parallelismo con l’informatica e non una spiegazione di biologia per il resto vi invito come al solito a farmi sapere cosa ne pensate di pensieri in codice vi ricordo che mi trovate su telegram twitter instagram eccetera c’è tutto in descrizione e per oggi vi saluto e vi ricordo che un informatico risolve problemi a volte anche usando il computerNascondi