Distribució dels SNPs en els gens

MATERIALS I MÈTODES


El nostre projecte es basa en la realització d'un programa que ens permet comparar un fitxer que conté les posicions dels SNPs dins el genoma amb un altre que conté la informació referent a tots els gens del genoma.
Aquest programa ens determinará la distribució dels SNPs dins les diferents regions del genoma i mitjançant el seu anàlisi podrem extreure una sèrie de conclusions.


MATERIALS

Per tal de dur a terme el nostre projecte hem utilitzat una sèrie de recursos:

- bases de dades amb els fitxers que volem analitzar
- eines per realitzar el programa
- programes per analitzar els resultats
- eines per la elaboració de la pàgina web


Bases de dades

Per a dur a terme aquest projecte hem utilitzat bases de dades amb les anotacions de goldenPath de la Universitat de California a Santa Cruz (UCSC). En podem distingir dos tipus: les que contenen les anotacions dels gens i les que contenen les anotacions dels SNPs, tant per humà (H.sapiens) com per a ratolí (M.musculus).


El fitxer de les anotacions dels gens s'anomena refGene.txt, en l'humà conté 23.402 gens en el de ratolí 18.607 ;hem obtingut aquestes dades mitjançant la comanda wc des del terminal: $wc refGene.txt . Podrem trobar aquest fitxer o bé a través de la web a:

http://hgdownload.cse.ucsc.edu/goldenPath/hg17/database/refGene.txt.gz per H.sapiens
http://hgdownload.cse.ucsc.edu/goldenPath/mm4/database/refGene.txt.gz per M.musculus


o bé al servidor de recursos accessible des de les aules de la facultat de Ciències de la Salut i de la Vida de la Universitat Pompeu Fabra, a través dels següents directoris:

/disc8/genomes/H.sapiens/golden_path_200405hg17/database/refGene.txt
/disc8/genomes/M.musculus/golden_path_200310mm4/database/refGene.txt

El format d'aquests fitxers és el següent:

Anotació
del gen
Número cromosoma Cadena (reverse/forward) Inici transcripció Final transcripció Inici regió codificant Final regió codificant Nombre exons Inici i final d'exons
NM_000000 chr0 +/- 00000000 00000000 00000000 00000000 0 00000000,00000000,etc




Les anotacions dels SNPs estan en els fitxers anomenats snp.txt (per a humà) que conté 9.156.175 SNPs i snpMap.txt (per a ratolí) que en conté 408.131 (també ho hem obtingut mitjançant la comanda wc des del terminal). Les podem trobar a través de la web:

http://hgdownload.cse.ucsc.edu/goldenPath/hg17/database/snp.txt.gz per H.sapiens
http://hgdownload.cse.ucsc.edu/goldenPath/mm4/database/snpMap.txt.gz per M.musculus

o bé al servidor de recursos accessible des de les aules de la facultat de Ciències de la Salut i de la Vida de la Universitat Pompeu Fabra, a través dels següents directoris:

/disc8/genomes/H.sapiens/golden_path_200405hg17/database/snp.txt
/disc8/genomes/M.musculus/golden_path_200310mm4/database/snpMap.txt


El format d'aquests fitxers per a humà és el seguent:

Referència Número cromosoma Inici SNP Final SNP Identificador ...
000 chr0 0000000 0000000 rs0000000 ...



I per a ratolí el següent:

Referència Numero cromosoma Inici SNP Final SNP Identificador ...
000 chr0 0000000 0000000 rs0000000 ...




En el nostre programa hem fet una expressió regular que només ens agafa les tres primeres columnes dels fitxers de SNPs, ja que contenen la informació que necessitem: la referència del SNP, el cromosoma on se situa i l'inici que ens determina la posició on el trobarem (com que només varia un nucleòtid no ens cal saber el final). La informació de la resta de columnes la obviarem.
Aquesta expressió regular està adaptada tant per al fitxer d'humà com pel de ratolí.


Eines per a realitzar el programa

Per a la realització del nostre programa hem utilitzat el llenguatge de programació Perl.
El processador de textos que hem utilitzat per a programar és l'emacs, dins el sistema operatiu Linux.


Programes per analitzar resultats

Per tal d'analitzar els resultats obtinguts hem utilitzat el programa Excel del sistema operatiu Microsoft Windows, que ens permet mostrar els resultats d'una manera molt més visual per tal de facilitar la feina a l'hora d'extreure'n les conclusions.


Eines per l'elaboració de la pàgina web

Per a l'elaboració de la pàgina web hem utilitzat l'editor de text emacs (sistem operatiu Linux) i el codi HTML com a llenguatge de programació.
A més, ens hem basat en la pràctica 14 de l'assignatura de Bioinformàtica (Elaboració de pàgines Web) i hem ampliat els coneixements amb la informació de les següents pàgines web:

- HTML con clase
- WebMaestro





MÈTODES

Per a determinar la distribució dels SNPs en els genomes d'humà i de ratolí hem hagut de crear dos programes: un per a determinar SNPs en els cromosomes i un altre per a detectar els mateixos SNPs en les diferents regions del genoma.Tots dos estan adaptats per a la seqüència genòmica i de SNPs tant d'humà com de ratolí, de tal manera que per tractar una espècie o altra no cal modificar cap paràmetre del programa.
A continuació explicarem detalladament l'estructura de cada programa, i si voleu veure'ls podeu clicar en els següents enllaços:

SNPencromosoma.pl
SNPenregio.pl



SNPs EN CROMOSOMES:

El programa que ens trobarà la distribució de SNPs en els diferents cromosomes s'anomena SNPencromosoma.pl .Els resultats obtinguts amb aquest programa ens mostraran la quantitat de SNPs que trobem per cada un dels cromosomes de tingui cada espècie estudiada.

EXECUCIÓ DEL PROGRAMA

Per executar aquest programa des del terminal del Linux, cal escriure el seu nom i afegir el nom del fitxer del llistat de SNPs. Si estem utilitzant els ordinadors de la Facultat de Ciències de la Salut i de la Vida de la Universitat Pompeu Fabra escriurem la seguent comanda:

./SNPencromosoma.pl /disc8/genomes/H.sapiens/golden_path_200405hg17/database/snp.txt per H.sapiens
./SNPencromosoma.pl /disc8/genomes/M.musculus/golden_path_200310mm4/database/snpMap.txt per M.musculus

En canvi, si volem executar el programa des de qualsevol altre ordinador, primer ens haurem de baixar els fitxers d'internet, gravar-los a l'ordinador, descomprimir-los sota l'ordre $gzip -d i escriure la següent comanda:

./programa.pl snp.txt per H.sapiens
./programa.pl snpMap.txt per M.musculus


ESTRUCTURA DEL PROGRAMA

Un cop s'executa el programa, aquest comprova que haguem escrit el fitxer que hem d'obrir per a començar i també informa si no és possible obrir-lo.
Es tracta d'un programa molt senzill, basat gairebé únicament en composicions iterativa i condicionals:
1. Tindrem una composició iterativa que ens encaixa cada línia del fitxer amb l'expressió regular.
2. Quan la línia encaixi, mitjancant una composició condicional per a cada cromosoma, comparem la segona posició de l'expressió amb un número de cromosoma.
3. Quan corresponguin al mateix cromosoma ho comptabilitzem i quan ho imprimim obtindrem un llistat de resultats on figurarà el nombre de SNPs per a cada un dels cromosomes.



SNPs EN REGIONS DEL GENOMA:

El segon programa que hem creat s'anomena SNPenregio.pl i l'utilitzarem per a determinar en quines de les següents regions del genoma podem situar els SNPs:
- regions intergèniques
- regions UTR o CDS dins del gen
- exons del gen
- regions donor, acceptor o internes dels introns del gen

EXECUCIÓ DEL PROGRAMA

Per executar aquest programa des del terminal del Linux, cal escriure el seu nom i afegir el nom dels dos fitxers que necessitarà.
Si estem utilitzant els ordinadors de la Facultat de Ciències de la Salut i de la Vida de la Universitat Pompeu Fabra escriurem la següent comanda:

./SNPenregio.pl /disc8/genomes/H.sapiens/golden_path_200405hg17/database/refGene.txt /disc8/genomes/H.sapiens/golden_path_200405hg17/database/snp.txt per H.sapiens
./SNPenregio.pl /disc8/genomes/M.musculus/golden_path_200310mm4/database/refGene.txt /disc8/genomes/M.musculus/golden_path_200310mm4/database/snpMap.txt per M.musculus

En canvi, si volem executar el programa des de qualsevol altre ordinador, primer ens haurem de baixar els fitxers d'internet, gravar-los a l'ordinador, descomprimir-los sota l'ordre $gzip -d i escriure la següent comanda:

./programa.pl refGene.txt snp.txt per H.sapiens
./programa.pl refGene.txt snpMap.txt per M.musculus


ESTRUCTURA DEL PROGRAMA

L'estructura bàsica del programa és:
- Un bucle inicial que enregistra la informació de refGene en un hash.
- Un bucle central que recorre la llista de SNPs.
- Una funció que distingeix els SNPs de gens o regions intergèniques.
- Una funció que situa els SNPs en les diferents regions dels gens.

Un cop s'executa el programa, aquest comprova que hi hagi els dos fitxers necessaris per a començar, també informa si no es possible obrir algun dels dos fitxers en el moment en que la funció ho demana.

1. El primer pas es enregistrar el llistat de gens del fitxer refGene.txt en un hash anomenat %matanotacions (que tenim a la funció llegir_anotacions) mitjançant un bucle que recorre línia per línia i encaixa l'expressió regular que reconeix l'identificador del gen, el cromosoma on es troba, la cadena, l'inici de transcripció, l'inici i final de la regió codificant, el nombre d'exons. L'inici i el final de cada un dels exons s'enregistra en una matriu (@inifiexo) dins del hash, obtenint així dues columnes: la primera conté l'inici de l'exó i la segona el final; cada línia correspon a un exó diferent. Un cop enregistrat, s'ordenen els gens segons l'inici de transcripció en ordre creixent.

2. La lectura del fitxer de SNPs es fa mitjançant un bucle que també encaixa una expressió regular on només ens interessa quedar-nos amb el cromosoma on es troba el SNP i l'inici de la posició on se situa.

3. La funció anomenada buscam_un_gen ens determinarà si el SNP es troba en regió gènica o intergènica. Es tracta d'una funció que treballa com una cerca binària en un diccionari, retornant un nombre de SNPs en regions intergèniques.

4. Si el SNP es troba en un gen, en canvi, entrarà a una altra funció per tal de determinar-ne la situació dins les regions del gen. La funció que utilitzarem s'anomena busca_exons_introns que utilitza una composicó iterativa per recórrer tots els gens per cada cromosoma mentre per mitjà de composicions condicionals classifica el SNP segons a la regió on se situa. Per a determinar les diferents regions ens basem en situar la posició del SNP entre els números que ens determinen inici i fi d'exons, de transcripció i regió codificant.

5. Finalment, s'imprimeixen els resultats que consten del recompte del nombre de SNPs per a cada regió dels cromosomes, aquests resultats els podem redireccionar a un fitxer nou per tal mantenir-los a la memòria.





Introducció Materials i mètodes Anàlisi de dades Conclusions