Rivediamo i colori

Siamo ora al punto di rivedere il nostro processo evolutivo in base alle considerazioni illustrate nell'articolo precedente. Non più singoli nucleotidi, quindi, ma terne di nucleotidi, dette Codoni. Non più colorazione a 16 milioni di colori sulla base di 16^6 combinazioni delle 16 cifre esadecimali sulle 6 posizioni; ma, al suo posto, 20 colori dati dai 20 amminoacidi possibili (quindi con eventuale "sinonimia" di alcuni codoni rispetto alla codifica degli stessi amminoacidi).

L'algoritmo stesso di determinazione casuale dell'evoluzione andrà integrato con la necessità di scartare i tre Codoni di Stop, che non possono essere ammessi all'interno delle sequenze di basi ammesse (e che i programmi stessi di analisi filogenetica considerano "non validi"). In altri termini l'algoritmo diventa:

  • Vario casualmente (indicativamente con frequenza di 1 su 1.000) ogni base.
  • Se nel codone di riferimento è effettivamente avvenuta una variazione, verifico che non sia diventato un Codone di Stop. In questo caso annullo la variazione (scelta evidentemente arbitraria);
  • Sia che sia avvenuta una variazione ammessa, sia che non sia avvenuta nessuna variazione, rimappo (in funzione della sua rappresentazione) il codone secondo uno dei 20 colori corrispondenti ai 20 amminoacidi derivanti.

Prima di partire avremo quindi bisogno sia della tabella di conversione fra Codoni e Amminoacidi (e da qui, in modo ovviamente arbitrario, verso i 20 colori rappresentativi), sia dell'implementazione di un algoritmo di "derivazione" in un qualsiasi linguaggio di programmazione.

Partiamo con la tabella di correlazione. Occorre tenere presente che l'unica considerazione che ho tenuto a mente nello scegliere i colori è stata la loro resa (non troppo scuri, sufficientemente distinguibili l'uno dall'altro).

CodoneAmminoacidoCodice HTMLColore
TTTFenilalanina#FFFFFF
TTCFenilalanina#FFFFFF
TTALeucina#E3F6CE
TTGLeucina#E3F6CE
CTTLeucina#E3F6CE
CTCLeucina#E3F6CE
CTALeucina#E3F6CE
CTGLeucina#E3F6CE
ATTIsoleucina#A9F5BC
ATCIsoleucina#A9F5BC
ATAIsoleucina#A9F5BC
ATGMetionina#FF0000
GTT
Valina#F7BE81
GTC

Valina#F7BE81
GTA
Valina#F7BE81
GTGValina#F7BE81
TCT
Serina#FFFF00
TCC
Serina#FFFF00
TCA
Serina#FFFF00
TCG
Serina#FFFF00
CCT
Prolina#808000
CCC
Prolina#808000
CCA
Prolina#808000
CCG
Prolina#808000
ACTTreonina#00FF00
ACCTreonina#00FF00
ACATreonina#00FF00
ACGTreonina#00FF00
GCCAlanina#008000
GCAAlanina#008000
GCGAlanina#008000
GCTAlanina#008000
TATTirosina#00FFFF
TACTirosina#00FFFF
TAACodone di Stop (Ocra)#808080
TAGCodone di Stop (Ambra)#808080
CATIstidina
#008080
CACIstidina
#008080
CAAGlutammina
#8181F7
CAGGlutammina
#8181F7
AATAsparagina
#2E64FE
AACAsparagina
#2E64FE
AAALisina
#FF00FF
AAGLisina
#FF00FF
GATAcido aspartico
#800080
GACAcido aspartico
#800080
GAAAcido glutammico
#FFA500
GAGAcido glutammico
#FFA500
TGTCisteina
#FF4500
TGCCisteina
#FF4500
TGACodone di Stop (Opale)#808080
TGGTriptofano
#FFC0CB
CGAArginina
#ADFF2F
CGCArginina
#ADFF2F
CGGArginina
#ADFF2F
CGTArginina
#ADFF2F
AGTSerina
#FFFF00
AGCSerina
#FFFF00
AGAArginina
#ADFF2F
AGGArginina
#ADFF2F
GGTGlicina
#FA8072
GGCGlicina
#FA8072
GGGGlicina
#FA8072
GGAGlicina
#FA8072

 

Quando allo pseudocodice da implementare, si tratta, ottimizzazioni a parte, di qualcosa come questo:

img054

che a sua volta sfrutta la banale procedura di evoluzione puntuale:

img053

In base alle impostazioni scelte (TTT che codifica per la Fenilalanina e Fenilalanina mappata sul bianco) abbiamo ancora un organismo iniziale completamente bianco, anche se di 24\times 24 quadratini.

Saranno però gli step successivi ad essere colorati diversamente: con meno colori, ma soprattutto con colori che compariranno più spesso (come quello di Arginina, Leucina e Serina, codificate da ben 6 codoni ognuna) e altri che compariranno con frequenza molto inferiore (come il Triptofano o la Metionina, codificati da un solo codone ognuna).

Nell'articolo seguente presenterò i risultati di questa nuova modalità di organizzare i dati e rappresentarli, traendo spunto dall'albero evolutivo che avevamo a suo tempo stabilito a tavolino.