Determinazione della struttura di una molecola di RNA tramite una

Università degli Studi di Milano
Polo Didattico e di Ricerca di Crema
Facoltà di Scienze Matematiche, Fisiche e Naturali
Corso di Geometria Computazionale
Determinazione della struttura
di una molecola di RNA
tramite una sequenza di numeri
primi
Studenti:
Luigi Margheritti
Andrea Gardoni
Luca Pola
Massimo Manara
660216
656751
656439
656814
Docente del corso:
Laura Citrini
Anno Accademico 2005/2006
2
Indice
1 Introduzione
1.1 Struttura RNA
1.2 Base Azotata .
1.2.1 Adenina
1.2.2 Citosina
1.2.3 Guanina
1.2.4 Uracile .
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
5
5
7
7
7
8
8
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
2 Il nostro lavoro
2.1 Scopo . . . . . . . . . . . . . .
2.2 Fasi del progetto . . . . . . . .
2.2.1 Ricerca . . . . . . . . . .
2.2.2 Decisioni implementative
2.2.3 Implementazione . . . .
2.3 Risultati Ottenuti . . . . . . . .
2.4 Come usare l’applet Java . . . .
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
9
. 9
. 9
. 9
. 9
. 10
. 12
. 13
Bibliografia
15
A Codice
17
4
Indice
Capitolo 1
Introduzione
1.1
Struttura RNA
L’RNA, o acido ribonucleico vedi Figura 1.1 a Pagina 6, è un polimero organico, derivante dalla polimerazione1 del DNA2 . È il materiale presente anche
nel nucleo di ogni cellula del corpo umano e che assicura il passaggio alla
cellula delle informazioni genetiche contenute nel DNA. Strutturalmente è
molto simile al DNA ma si differenzia da esso perché:
1. l’RNA contiene lo zucchero ribosio anziché il desossiribosio,
2. l’RNA ha come base azotata l’uracile al posto della timina,
3. l’RNA di solito si presenta come singolo filamento anziché doppio come
il DNA [3].
Vi sono tre tipi di RNA:
1. mRNA (messaggero): è una molecola lineare di RNA che rappresenta
una copia dell’informazione contenuta in un gene,
2. rRNA (ribosomale): è un enzima che catalizza la trascrizione, cioè il
trasferimento del messaggio genetico contenuto in un gene dal DNA
all’RNA messaggero,
3. tRNA (transfer): piccola molecola di RNA che trasporta un determinato aminoacido.
1
DNA polimerasi L’enzima che duplica le molecole di DNA.
DNA Acido desossiribonucleico. Molecola che contiene le informazioni genetiche della maggior parte degli organismi viventi. È formata da quattro basi azotate (adenina,
citosina, guanina e timina), collegate tra loro a formare un filamento a doppia elica.
2
6
Capitolo 1. Introduzione
Figura 1.1: DNA ed RNA
1.2 Base Azotata
1.2
7
Base Azotata
In biochimica, per base azotata si intende una delle cinque basi che compongono i nucleotidi del DNA e dell’RNA, ovvero l’adenina e la guanina - le
purine - la citosina, la timina e l’uracile - le pirimidine.[1]
• Nel Dna le basi azotate si accoppiano cosı̀: adenina-timina e citosinaguanina.
• Nel Rna le basi azotate si accoppiano cosı̀: adenina-uracile e citosinaguanina.
1.2.1
Adenina
L’adenina è una delle due basi azotate puriniche che formano i nucleotidi
degli acidi nucleici DNA e RNA. Tramite legami a idrogeno, nel DNA si lega
alla timina (T) e nell’RNA si lega all’uracile (U).
Formula molecolare: C5 H5 N5 .
NH2
N
"bb
"
N"
b "
b
"
b
b N"
N "b
H
1.2.2
Citosina
La citosina è una delle tre basi azotate pirimidiniche che formano i nucleotidi degli acidi nucleici DNA e RNA. tramite legami a idrogeno, nel DNA e
nell’RNA si lega alla guanina.
Legata al ribosio forma la citidina.
La citosina fu scoperta nel 1894, quando venne isolata dai tessuti del timo
dei vitelli. La sua struttura fu ipotizzata nel 1903 e confermata per sintesi
lo stesso anno.
Non è una molecola indefinitamente stabile. Può subire una spontanea
perdita del gruppo amminico e trasformarsi in uracile.
Formula molecolare: C4 H5 N3 0.
8
Capitolo 1. Introduzione
NH2
bN
""b
b
b
b
"b
b
b N"
O
H
1.2.3
Guanina
La guanina è una delle basi azotate puriniche che formano i nucleotidi degli
acidi nucleici DNA e RNA. Tramite legami a idrogeno, nel DNA e nell’RNA
si lega alla citosina (C).
Formula molecolare: C5 H5 N5 0.
O
"bb
"
HN"
N
b "b "
"b
NH2 " b N" b N"
H
1.2.4
Uracile
L’uracile è una delle due basi azotate pirimidiniche che formano i nucleotidi dell’acido nucleico RNA. Tramite legami a idrogeno, nell’RNA si lega
all’adenina (A).
Formula molecolare: C4 H4 N2 02 .
O
bN" H
""b
b
b
b
"b
b
b N"
O
H
Capitolo 2
Il nostro lavoro
2.1
Scopo
Lo scopo del nostro lavoro, è stato quello di creare una sequenza di RNA
composta quindi da (A,C,G,U), le basi azotate; e data questa sequenza, implementare una interfaccia grafica vettoriale [2] in JavaScript che la rappresentasse.
2.2
Fasi del progetto
Per la costruzione del progetto, abbiamo deciso di lavorare per task paralleli, con una suddivisione dei compiti ed una condivisione e discussione dei
risultati trovati o ottenuti.
2.2.1
Ricerca
L’attività di ricerca è servita per produrre il Capitolo 1, l’introduzione all’argomento, infatti nei corsi fondamentali che abbiamo seguito, in genere
non vengono trattati né discussi problemi e teorie di chimica o biochimica.
Tuttavia l’introduzione che abbiamo riportato noi, è soltanto un brevissimo
cenno a quello che potrebbe essere l’argomento in questione.
2.2.2
Decisioni implementative
Questa è stata una decisione molto importante, infatti usare un linguaggio di
programmazione che permetta facilmente di ottenere delle rappresentazioni
grafiche vettoriali è fondamentale.
Il C si è rilevato un valido strumento dal punto di vista della totale libertà
10
Capitolo 2. Il nostro lavoro
da parte del programmatore; ma per l’aspetto grafico risulta poco efficace;
quindi abbiamo scelto l’ambiente Java ed in particolare JavaScript, per noi un
ottimo compromesso tra programmazione e grafica, inoltre attraverso l’uso
di Java, abbiamo ottenuto un Device Indipendent grazie alla Java Virtual
Machine (JVM ), che permette la visualizzazione dell’applet ottenuta su un
qualsiasi Browser-Like che ha una JVM.
2.2.3
Implementazione
Di seguito, riportiamo una breve descrizione degli algoritmi usati nell’applet
per generare la struttura di RNA; tutto il codice è reperibile e consultabile
nell’Appendice A a Pagina 17.
Numeri Primi
L’algoritmo consiste nel trovare i numeri primi in un certo intervallo dato.
Un numero primo si dice tale quando è divisibile per uno e per se stesso,
quindi nell’algoritmo abbiamo testato ogni numero nell’intervallo, dividendolo per tutti i numeri primi trovati in precedenza.
Il codice della funzione è riportato in Codice A.1 a Pagina 17.
Controllo parità
L’algoritmo consiste nel determinare la parità di un numero primo nel formato binario, cioè controllare il numero di uni presenti nella codifica.
Se il numero di uni è pari allora la parità sarà 0 altrimenti sarà 1.
Il codice della funzione è riportato in Codice A.2 a Pagina 17.
Calcolo della sequenza delle basi azotate
Prendendo a coppie due parità dell’output del precedente algoritmo, vengono
determinate le basi:
• (0,0) Uracile
• (1,1) Adenina
• (1,0) Citosina
• (0,1) Guanina
Il codice della funzione è riportato in Codice ?? a Pagina ??.
2.2.3 Implementazione
11
Algoritmo di inversione
Data la sequenza originale (Es.: a1 , a2 · · · an ) la inverte e la salva in un
array. Ottenendo an , an−1 · · · a1 .
Il codice della funzione è riportato in Codice ?? a Pagina ??.
Algoritmo di combinazione
Confrontando la sequenza originale con la sequenza invertita, l’algoritmo
trova tutte le basi azotate accoppiate all’interno di un determinato loop.
Es.:
arraya =GGGCCC
arrayb =CCCGGG
arrayc =0 0 3
• L’arraya , contiene la sequenza originale.
• L’arrayb , contiene la sequenza che ha subito l’inversione
• L’arrayc
– La prima colonna: (0), indica la posizione nell’arraya .
– La seconda colonna: (0), indica la posizione nell’arrayb .
– La terza colonna indica che ci sono 3 accoppiamenti consecutivi
partendo dai punti descritti in precedenza
Gli accoppiamenti possibili sono:
1. AU (Adenina Uracile) - Blu Rosso
2. GC (Guanina Citosina) - Verde Giallo
3. GU (Guanina Uracile) - Verde Rosso
Come output l’algoritmo scrive nella array comb[ ], l’array 3.
Il codice della funzione è riportato in Codice ?? a Pagina ??.
Gestione dell’orientamento
Per la gestione dello spazio, siamo partiti da due punti prefissati (origine),
formati dalle coordinate: (0, 0) e (10, 0).
Ogni volta che dovevamo disegnare un filamento di coppie di basi azotate
complementari, generavamo le coordinate del punto successivo incrementando o decrementando di 10 unità una delle due coordinate.
12
Capitolo 2. Il nostro lavoro
Se il verso andava in basso incrementavamo di 10 unità l’ordinata, se il verso
andava in alto, le decrementavamo di 10 unità.
Per lo spostamento laterale l’ascissa, si incrementava di 10 unità a destra e
decrementava di 10 se era a sinistra.
(0, 0)
y
x
/
_ _ _ _
(20, 20)
L’immagine sopra, mostra l’orientamento del piano dove verrà disegnata la
struttura dell’RNA.
2.3
Risultati Ottenuti
Il risultato ottenuto è la generazione a video della struttura dell’RNA; come
mostrato in Figura 2.1.
Figura 2.1: Struttura RNA
2.4 Come usare l’applet Java
2.4
13
Come usare l’applet Java
Di seguito riportiamo tutto il materiale prodotto e la descrizione su come
utilizzarlo ed inoltre; verrà descritto il funzionamento dell’applet.
1. Relazione completa: geo.pdf.
2. Presentazione del progetto: pre geo.pdf.
3. Home page del progetto dove è possibile reperire i punti 1 e 2.
4. Pagina di inserimento parametri
(a) Inizio sequenza,
(b) Fine sequenza,
5. Pagina dell’output finale con l’applet.
Bibliografia
[1] http://it.wikipedia.org Data accesso 08.02.2006
[2] Laura Citrini (a.a. 2005 -2006), Slides del corso di Geometria Computazionale
http://www.dti.unimi.it/~citrini
[3] Thomas R. Dickson (1989), Corso introduttivo di chimica Nicola
Zanichelli Editore S.p.A. Bologna
16
Bibliografia
Appendice A
Codice
Codice A.1: Numeri Primi
1
for ( i =0; i < j ; i ++) / / n u m [ j ] a r r a y d e i n u m e r i p r i m i
trovati
r = n % num [ i ]; / / m o d d e l n u m e r o c o n t u t t i n . p .
trovati
3
if ( r == 0)
var ++;
5
if ( var == 0)
num [ j ] = n ;
j ++;
// se r = 0 , n d i v i s i b i l e per num [ i ]
// v a r i a b i l e d e d i c a t e che parte con
valore 0
7
/ / s e v = 0 , n è u n n u m e r o p r i m o
// s a l v a t a g g i o in un array
// c o n t a t o r e dell ’ array num
Codice A.2: Controllo della parità
1
itoa (n , bin ,2) ;
3
for ( i =0; i < strlen ( bin ) ; i ++) / / c i c l o s u l b i n a r i o d i n
if ( bin [ i ] == 49)
// se bin [ i ] = 1 (49 in
// t r a s f o r m a z i o n e di n in
binario
ASCII ) , var = var + 1
var ++;
// v a r i a b i l e d e d i c a t e che
parte con valore 0
5
r = var *2;
// mod di 2 di var (1
p r e s e n t i in n b i n a r i o )
7
9
if ( r == 0)
P ( n ) = 0;
else
P ( n ) = 1;
//
//
//
//
s e r = 0 , v a r è p a r i
p a r i t à = 0
s e r ! = 0 , v a r è d i s p a r i
p a r i t à = 1
Indice analitico
A
R
adenina . . . . . . . . . . . . . . . . . . . . . . . . . . 7 RNA . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5
Algoritmo di inversione . . . . . . . . . 11 rRNA . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5
S
B
base azotata . . . . . . . . . . . . . . . . . . . . . 7 scopo del nostro lavoro . . . . . . . . . . . 9
spazio . . . . . . . . . . . . . . . . . . . . . . . . . . 11
C
citosina . . . . . . . . . . . . . . . . . . . . . . . . . . 7 T
coordinate . . . . . . . . . . . . . . . . . . . . . . 11 tRNA . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5
U
D
Device Indipendent . . . . . . . . . . . . . 10 uracile . . . . . . . . . . . . . . . . . . . . . . . . . . . 8
DNA . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5
F
formato binario . . . . . . . . . . . . . . . . . 10
G
grafica vettoriale . . . . . . . . . . . . . . . . . 9
guanina . . . . . . . . . . . . . . . . . . . . . . . . . . 8
J
JavaScript . . . . . . . . . . . . . . . . . . . . . . . 9
M
mRNA . . . . . . . . . . . . . . . . . . . . . . . . . . . 5
N
Numeri Primi . . . . . . . . . . . . . . . . . . . 10
O
orientamento . . . . . . . . . . . . . . . . . . . 11
P
parità . . . . . . . . . . . . . . . . . . . . . . . . . . . 10