Materials i mètodes


MATERIALS

Format FASTA

Format GFF

Format de la taula d'ús de codons

Format de les matrius de pesos

MÈTODES

Senyals de splicing

Biaix codificant

Pautes obertes de lectura i pautes dels exons

DISSENY DEL NOSTRE PROGRAMA

Resum

Funcionament del programa



MATERIALS

Aquest programa ha estat realitzat en llenguatge Perl i la pàgina web dissenyada en HTML, ambdós en l'EMACS (editor de text de LINUX OS).

El programa EXON-finding treballa amb dos formats de fitxers diferents, explicats a continuació.

Format FASTA

Els fitxers en format FASTA són fitxers en què el seu nom té, o més aviat sol tenir, extensió .fa. Aquest format s'utilitza per enregistrar seqüències. Cada seqüència va precedida d'una línia que comença amb el símbol '>' i segueix una paraula que identificarà la seqüència. A partir de la línia següent trobem enregistrada la seqüència, típicament trencada en línies de 50, 60 o 70 símbols. Un exemple de fitxer en format FASTA podria ser el següent:

>NM_145865.chr16
ctgcctggagagacatctggccaagttctggtgagcaggaaaaatgtctactcgttacca
cactcctctacattttgcagcctccaatggccatgcccactgcgtctcattcctggtcaa
ctttggtgccaacatctttgccctggataatgacttacagactccactggatgctgctgc
gggggccggctgctttctgctgctcacactgcct

>NM_145815.chr19 ccaagtcctctgttctcaaactctgagcccaagggaaccccggccacatctcctccaaac tgggggccccttcatttcccaggtctggatcgattcacttgccgggagagactttttaca actcatctgcagctccgggtgcggttgggggagatagcgaagggtctggcctcgctgtga tctgatttgggattaaaggtttggaaatttaa


Format GFF

Els fitxers en format GFF són fitxers el nom dels quals té extensió .gff. El propòsit d'aquest format és proporcionar una forma estàndard d'enregistrar les anotacions generades a partir de seqüències genòmiques. El seu contingut està organitzat en columnes de la següent manera:

seqid  source  feature  start  end  score  strand  frame [group]
...
on els valors no poden tenir cap espai tret de l'última columna, que a més a més és opcional, i estan separats entre si per una tabulació. La descripció de cadascun dels valors és la següent:

  • seqid
    Identificador de la seqüència a partir de la qual s'obté l'anotació (en el nostre cas, aquesta anotació correspon a la predicció d'un exó).
  • source
    Origen de l'anotació, que en el nostre cas, correspon al nom que li hem donat al nostre programa (EXON-finding). En uns altres casos podria ser el nom de la base de dades de la qual prové l'anotació.

  • feature
    Nom d'allò que estem anotant, o en unes altres paraules, tipus d'anotació. En el context d'aquest programa, hem utilitzat els següents termes: First (primer exó, extrem 5'), Terminal (últim exó, extrem 3'), i Internal (exó que es troba entre el primer i l'últim).

  • start
    Posició dins la seqüència on comença l'anotació. Serà sempre un nombre sencer entre 1 i la longitut de la seqüència i la posició referida formarà part de l'anotació. Aquesta posició ha de ser forçosament més petita o igual que a la posició especificada com a end. Això implica que les posicions de les anotacions fetes al strand negatiu han d'estar especificades respecte al strand positiu.

  • end
    Posició dins la seqüència on acaba l'anotació. Serà sempre un nombre sencer entre 1 i la longitut de la seqüència.

  • score
    Puntuació associada a l'anotació. Pot ser qualsevol número real. És convenient utilitzar un nombre fix de xifres decimals (en el cas d'EXON-finding es dóna la puntuació amb 6 decimals). Si no hi hagués puntuació associada, hi escriurem el símbol del punt '.'.

  • strand
    Serà el símbol + si l'anotació ha estat feta llegint la seqüència de 5' a 3', o el símbol - si l'anotació ha estat feta llegint la seqüència de 3' a 5'. Si aquesta informació no és rellevant, escriurem el símbol del punt '.'.

  • frame
    Pauta de lectura en la qual s'ha fet l'anotació, serà 0, 1 o 2. Utilitzarem el símbol del punt '.' quan la pauta de lectura no sigui rellevant. La pauta 0 indicarà que la primera base de l'anotació correspon a la primera base d'un codó. La pauta 1 indicarà que la primera base de l'anotació és la segona base del seu codó. La pauta 2 indicarà que la primera base de l'anotació és la tercera base del seu codó.

  • [group]
    Aquest és un valor opcional, que pot estar format per lletres o números, i inclús espais, i que es sol fer servir per agrupar anotacions, com ara, exons que pertanyen a un mateix gen. A EXON-finding no s'inclou aquesta columna.

Un exemple de fitxer en format GFF seria el següent:

#
# GFF_sample.gff
#
chr1  geneid   Utr      150     500    1   +   .   "bio gene"
chr1  geneid   First    300     500    1   +   0   "bio gene"
chr1  geneid   Internal 750     1000   1   +   0   "bio gene"
chr1  geneid   Terminal 1250    1550   1   +   1   "bio gene"
chr1  geneid   Utr      1250    1800   1   +   .   "bio gene"
#
chr1  geneid   Utr      2600    2880   1   -   .   "rev gene"
chr1  geneid   First    2600    2775   1   -   0   "rev gene"
chr1  geneid   Internal 2350    2500   1   -   1   "rev gene"
chr1  geneid   Terminal 2230    2250   1   -   0   "rev gene"
chr1  geneid   Utr      2000    2250   1   -   .   "rev gene"

Com es pot observar, també es poden incloure línies de comentari que començaran amb el símbol '#'.


Format de la taula d'ús de codons

Aquesta taula pot estar enregistrada en un fitxer de text com a parells de valors codó-proporció:

GGG 0.01708
GGA 0.01931
GGT 0.01366
GGC 0.02494
GAG 0.03882
GAA 0.02751
GAT 0.02145
GAC 0.02706
GTG 0.02860
GTA 0.00609
GTT 0.01030
GTC 0.01501
GCG 0.00727
GCA 0.01550
...

Format de les matrius de pesos

Les matrius de pesos estaran enregistrades de manera que cada fila especifiqui els pesos dels nucleòtids d'una posició determinada. El primer valor serà la posició, i els següents quatre valors seran els corresponents als nucleòtids, l'ordre dels quals vindrà especificat a la primera línia que començarà amb la paraula P0. L'última línia estarà formada per la paraula XX seguida de la posició on comença (o acaba) l'exó. Un exemple d'aquest format és la següent matriu de pesos per puntuar senyals de donors a seqüències d'ADN de l'organisme humà:

P0       A        C       G        T
01   0.302    0.483  -0.305   -0.856
02   0.817   -0.667  -0.743   -0.474
03  -1.143   -0.782   1.123   -1.660
04   -9999    -9999   0.000    -9999
05   -9999    -9999   -9999    0.000
06   1.083   -2.097   0.135   -2.246
07   1.032   -1.093  -0.627   -1.111
08  -1.218   -1.479   1.257   -1.534
09  -0.411   -0.358  -0.136    0.492
XX 3



MÈTODES

Existeixen diferents mètodes per a la predicció d'exons. El proposat en aquest projecte consisteix en la utilització de matrius de pesos, per determinar els senyals de splicing, i en la utilització del biaix codificant dels exons que es tradueixen a proteïna, per determinar en quin grau l'exó predit pot ser realment un exó que es tradueix a proteïna.

Senyals de splicing

Distingirem dos tipus de senyals de splicing: els donors i els acceptors. Els donors determinen l'extrem 5' dels introns, mentre que els acceptors determinen l'extrem 3' dels introns. Sota l'assumpció que tractem amb senyals de splicing canònics, l'extrem 5' d'un intró comença amb el dinucleòtid GT, i l'extrem 3' acaba amb el dinucleòtid AG. Aquests dos dinucleòtids no només es troben en els extrems dels introns, sinó que també es poden trobar en qualsevol punt al llarg de la seqüència. Això fa que els senyals de splicing, ja siguin donors o acceptors, estiguin formats per una cadena de nucleòtids, en la qual es troba el punt de tall GT o AG, i el contingut de la qual ajuda a la maquinària de splicing a determinar el dinucleòtid GT, o AG, en aquella posició concreta, com a punt de tall.

Per tal d'establir a on hi ha un senyal de splicing utilitzarem matrius de pesos (position weight matrices-PWMs): una pels senyals dels donors i una altra pels senyals dels acceptors. Aquestes matrius estaran enregistrades en fitxers de text d'un format determinat per tal que el nostre programa pugui llegir-les.

Considerem que tenim una matriu de pesos per identificar un senyal de splicing, donor o acceptor, que denotarem per M. Assumim que aquesta matriu està organitzada en 4 files, una per a cada nucleòtid A,C,G,T i m columnes, una per a cada posició del senyal, on les posicions aniran desde 0 fins a m-1. Ens referirem a una posició particular de la matriu indexant primer les files, i després les columnes. D'aquesta manera M(C-5) es refereix al pes associat al nucleòtid C quan el trobem a la sisena posició dins el senyal.

Considerem que tenim una seqüència emmagatzemada en un vector s, tal que si la seqüència té n bases, el vector estarà indexat per les posicions 0 a n-1, i ens referirem a una base en particular com, per exemple, s(7) que especifica la vuitena base de la seqüència emmagatzemada al vector s. D'aquesta manera, la puntuació d'un possible senyal de splicing serà calculada sumant els pesos de la matriu que corresponen a un tros de seqüència que comença a la posició p i que estem examinant com a possible senyal de splicing:

Donada una seqüència amb n bases podrem puntuar un màxim de n-m+1 possibles senyals de splicing. Decidirem quins d'aquests senyals poden ser realment considerats com a tals d'acord amb un llindar en la puntuació, tal que només aquells trossos de seqüència que donen una puntuació superior al llindar seran considerats com a senyals de splicing.


Biaix codificant

Els exons que es tradueixen a proteïna solen mostrar un biaix cap a l'utilització de determinats codons, depenent de l'organisme al qual la seqüència d'ADN pertany. Aquest fet permet una interpretació en termes estadístics de la composició de codons d'un exó codificant. Aquesta interpretació consisteix en assumir que la distribució dels codons observada als introns és uniforme, mentre que la distribució dels codons observada als exons codificants divergeix notablement d'aquesta uniformitat.

Aquesta divergència es determina mitjançant la ponderació dels codons observats a la seqüència que analitzem, d'acord amb una taula de l'ús dels codons a les regions codificants de l'organisme que estem analitzant. Donat un fragment de seqüència que es troba entre dos senyals de splicing, contra més codons observem que, d'acord amb la taula, apareixen freqüentment en regions codificants, direm que més gran serà el seu potencial codificant, i per tant serà més plausible que aquest fragment de seqüència correspongui a un exó.

Considerem una taula d'ús de codons que denotarem per T, i que estarà indexada pels codons de forma que T(ACT) es referirà a la proporció, en l'interval [0-1], d'ús del codó ACT en les regions codificants de l'organisme del qual s'ha derivat aquesta taula T. Assumim que tenim una seqüència emmagatzemada en format FASTA, i que volem calcular el biaix codificant d'una regió de q bases que va desde la posició p fins a la posició p+q-1 al vector s que emmagatzema la seqüència. Aquest biaix el calcularem com la raó de versemblança (o likelihood ratio) entre les proporcions esperades, que obtenim a partir de T, dels codons observats, i l'assumpció d'uniformitat per la qual la proporció esperada d'un codó qualsevol és 1/64:

Els productes a l'expressió (1) donaran com a resultat números extremadament petits, per tant haurem de treballar amb el logaritme de l'expressió anterior.


Pautes obertes de lectura i pautes dels exons

Entenem per pauta de lectura, o reading frame, d'un exó la posició de la primera base de l'exó, dins el seu codó, considerant 0 com la primera posició. Si la primera base de l'exó, correspon a la primera base del codó al qual pertany, direm que la pauta és 0, si aquesta primera base del exó és la segona base del seu codó, direm que la pauta és 1, i finalment, si la primera base de l'exó és la tercera base del seu codó, direm que la pauta és 2.

Quan predim un exó cal anotar la seva pauta de lectura, a més a més de les corresponents posicions d'inici i final. Com que aquesta pauta ve determinada per la divisió dels nucleòtids en codons, caldrà primer determinar quines divisions en codons són correctes. Una divisió correcta en codons és aquella en què només podem trobar un codó de stop com a últim codú. Per tant caldrà trobar primer tots els possibles codons de stop i això ens determinarà el que es coneix com open reading frames (ORFs), o pautes obertes de lectura, que no són res més que parts de la seqüència que al dividir-les en codons, només podem trobar un codó de stop com a últim codú. Un cop tenim els ORFs, podrem anotar la pauta de lectura als exons que hem predit dins aquest ORF.

A més a més, respecte a l'exó d'inici, i a l'exó de final, del gen (coneguts com a First i Terminal, respectivament) cal tenir en compte que el primer estarà determinat per un senyal de donor aparellat amb un codó d'inici (ATG), mentre que el segon estarà determinat per un senyal de acceptor aparellat amb un codó de stop (TAA, TGA, TAG). Idealment, a part d'exons interns, hauríem d'intentar predir exons d'inici (First) i de final (Terminal).




DISSENY DEL NOSTRE PROGRAMA

Resum

El nostre treball està dissenyat de la següent manera. Primerament, cal identificar tots els codons de stop possibles. Utilitzant els codons de stop identificats anteriorment, cal determinar totes les pautes obertes de lectura (ORFs). Després, per cada seqüència corresponent a un ORF, es troben tots els possibles senyals de splicing (donors i acceptors) amb una puntuació superior a un llindar donat. A partir dels emparellaments de senyals de donors i acceptors, obtinguts al pas anterior, es calcula el biaix codificant dels possibles exons i s'assigna a cada exó predit una puntuació que serà la suma del biaix codificant més les puntuacions dels senyals de splicing. I per últim, es genera el fitxer de sortida en format GFF amb els exons predits, ordenats per la posició d'inici, de més gran a més petit.


Funcionament del programa

Pel funcionament del programa cal introduir els següents paràmetres en l'ordre indicat:
Seqüència en format FASTA
Matriu de donors
Matriu d'acceptors
Taula d'ús de codons (coding bias)
Cut-off o valor llindar per les senyals
Nombre de prediccions per senyal
Cut-off o valor llindar de cada exó predit
Longitud mínima de la predicció

A continuació detallem les funcions utilitzades pel programa EXON-finding.