Bioinformàtica - 1er trimestre curs 2012/2013 - UPF
Els conceptes i competències que heu d'adquirir al llarg d'aquesta pràctica són:
L'emacs és un editor per a fitxers de texte. Per engegar-lo hem d'escriure des del shell:
$ emacs nomdelfitxer
Ens apareixerà una nova finestra amb l'emacs i podrem començar immediatament a escriure. Moltes opcions són al menu desplegable que apareix a la primera línia de la finestra, però no totes. La forma ''standard'' d'accedir i executar comandes a l'emacs es utilitzant una combinació de tecles, prement primer la tecla de control Ctrl i mentres la mantenim apretada, prémer la tecla corresponent de l'alfabet. La nomenclatura C-x, per exemple, vol dir prémer la tecla x mentre estem prement la tecla de control Ctrl. Teniu en compte que x vol dir x en minúscules.
Als menús de l'emacs un fitxer es referit com a buffer, apart de file. Per exemple, quan volem enregistrar allò que hem escrit, hem d'anar a l'opció Files i Save Buffer, o be apretar C-x C-s.
Per tal de practicar una mica heu de crear els seguents fitxers, cadascun dels quals correspon als codons que codifiquen un aminoàcid determinat (especificat al nom del fitxer):
CCU CCC CCA CCG
ACU ACC ACA ACG
GCU GCC GCA GCG
CUU GUC GUA GUG
Podeu editar mes d'un fitxer al mateix temps. Escolliu l'opció Files i Split Window (o be premeu C-x C-2) i se us dividira la finestra en dos. Podeu cambiar entre les noves finestres dins l'editor picant amb el ratoli a la que voleu canviar (o be premeu C-x C-o). Per tal de carregar o crear un nou fitxer a una de les noves finestres heu d'anar a Files i Open File (o be premeu C-x C-f) i a l'última linia de la finestra haureu d'escriure el nom del fitxer. Fixeu-vos que l'editor assumeix que el voleu crear (o carregar) des del directori actual. Si heu de crear o carregar un fitxer en un altre directori heu d'esborrar el que us ha ficat, i escriure-ho vosaltres mateixos. No hi ha navegació amb el ratolí pels directoris com al Windows!
Per anar al començament del fitxer que estem editant premem la tecla Home o Inicio, i per anar al final la tecla End o Fin. També podem utilitzar les tecles de pàgina amunt Page Up o Re Pág, i pàgina avall Page Down o Av Pág.
Per tal de copiar i enganxar (Copy&Paste) texte a l'editor, heu de seleccionar el texte amb el botó esquerra del ratolí, posicionar el cursor allà on volem empegar el texte (amb el ratolí també o amb les fletxes) i o be, prémer C-y, o be el boto del mig del ratolí.
Per tenir una referència més exhaustiva de les comandes del emacs consulteu l' Emacs Reference Card.
Si voleu veure en acció un programador experimentat utilitzant funcionalitats avançades de l'Emacs, vegueu el següent video de la conferència WebRebels que va tenir lloc el 24 i 25 de maig passat a Oslo:
Més videos d'aquest tipus i nivell, illustrant altres funcionalitats els trobareu a http://emacsrocks.com.
Recordeu que podem obtenir un petit manual d'utilització de qualsevol comanda d'unix amb la comanda man, per exemple:
man ls
El símbol > serveix per redireccionar el que ens surt per pantalla, com ara:
$ man ls > manualls.txt
ens crea el fitxer manualls.txt que conte tot el texte que podem veure mitjançant la comanda man ls. Si fem cat manualls.txt veurem el contingut del fitxer, però en aquest cas ens adonarem que no hi cap a la finestra del terminal i només veiem la part final. Per tal de veure el contingut en parts que hi caben a la pantalla hem d'utilitzar la comanda more:
$ more manualls.txt
Així com el símbol > crea i omple un fitxer amb qualsevol contingut que anava a ser volcat a la finestra terminal, el símbol » fa el mateix, però sense crear el fitxer de nou i simplement afegint el contingut al final, per exemple, si fem:
$ man cp >> manualls.txt
i more manualls.txt veurem que a continuació del manual de la comanda ls hem afegit el contingut del manual de la comanda cp.
Per tal d'il.lustrar el funcionament d'altres comandes, editem els seguent fitxer que anomenarem amincodon.txt:
Phe UUU Phe UUC Leu UUA Leu UUG Leu CUU Leu CUC Leu CUA Leu CUG Ile AUU Ile AUC Ile AUA Met AUG Val GUU Val GUC Val GUA Val GUG Ser UCU Ser UCC Ser UCA Ser UCG Pro CCU Pro CCC Pro CCA Pro CCG Thr ACU Thr ACC Thr ACA Thr ACG Ala GCU Ala GCC Ala GCA Ala GCG Tyr UAU Tyr UAC Stop UAA Stop UAG His CAU His CAC Gin CAA Gin CAG Asn AAU Asn AAC Lys AAA Lys AAG Asp GAU Asp GAC Glu GAA Glu GAG Cys UGU Cys UGC Stop UGA Trp UGG Arg CGU Arg CGC Arg CGA Arg CGG Ser AGU Ser AGC Arg AGA Arg AGG Gly GGU Gly GGC Gly GGA Gly GGG
la comanda cut mostra parts seleccionades de cada linia d'un fitxer, provem el seguent:
$ cut -c 1-3 amincodon.txt
sovint voldrem fer varies manipulacions a un mateix fitxer, una darrera de l'altra, durant les quals els resultats intermitjos no en son importants. El sistema unix ens proveeix una forma simple de encadenar sortides de programes com a entrades a altres programes mitjançant el concepte de pipe, o canonada. Anomenarem pipe al simbol ''|'' que ficat entre dues comandes redirecciona la sortida del programa que hi ha a l'esquerra del pipe, cap a l'entrada del programa que hi ha a la dreta del pipe.
per exemple ens pot interessar veure poc a poc la sortida de la comanda anterior, aleshores podem fer:
$ cut -c 1-3 amincodon.txt | more
la comanda cut te opcions addicionals que permeten referirse a columnes específiques d'un fitxer de texte sense haver de treballar amb les limitacions d'un rang de símbols. Proveu:
$ cut -d ' ' -f 1 amincodon.txt
a partir d'aquest punt de la pràctica anirem aprenent noves comandes i funcionalitats en forma d'exercicis curts numerats.
1. averigueu mitjançant el manual del unix que fan les opcions -d i -f, i deduiu per què necessitem l'opció -d.
la comanda sort ordena de forma creixent el contingut d'un
fitxer, proveu:
$ sort amincodon.txt
2. ara averigueu mitjançant el manual (man sort) com podeu fer perquè la comanda sort us tregui el fitxer ordenat de forma decreixent a l'alfabet ...
... i proveu d'obtenir el nom de l'aminoàcid ordenat de forma creixent
alfabèticament i mostrant-ho pel terminal pàgina per pàgina.
la comanda egrep ens permet buscar patrons dins de fitxers, per exemple
proveu de fer
$ egrep Pro amincodon.txt
3. ara heu de crear els cuatre fitxers pro.txt, val.txt, ala.txt i thr.txt que contindran els seus codons respectius, sense fer anar l'editor (pista: necessitareu un redireccionament).
4. ara combinarem aquests cuatre fitxers mitjançant la comanda
paste que ens permetrà tenir les correspondencies d'aquests
aminoàcids amb els seus codons de forma tabulada, proveu:
$ paste pro.txt val.txt ala.txt thr.txt
5. ara editeu el seguent fitxer abreviat.txt:
Ala A Arg R Asn N Asp D Cys C Gln Q Glu E Gly G His H Ile I Leu L Lys K Met M Phe F Pro P Ser S Ter X Thr T Trp W Tyr Y Val V
una altra forma de combinar fitxers és amb la comanda join. La comanda join combina fitxers que tenen en comu alguna de les seves columnes. Aquesta comanda necessita que tots dos fitxers estiguin ordenats en ordre alfabètic ascendent. La sintaxi d'aquesta comanda és:
$ join fitxer1 fitxer2
6. proveu d'utilitzar la comanda join sobre la versió ordenada de amincodon.txt i abreviat.txt.
7. ara proveu de mostrar per pantalla només els parells <codons,abreviatura>.
8. editeu un fitxer de texte que es digui, per exemple, prova.txt amb
el contingut seguent:
barcelona madrid barcelona
proveu la comanda uniq sobre el fitxer prova.txt:
$ uniq prova.txt
ara proveu la comanda uniq amb l'opció -c de la següent manera:
$ uniq -c prova.txt
9. ara modifiqueu el fitxer prova.txt per tal d'obtenir el següent contingut:
barcelona barcelona madrid
i proveu un altre cop
$ uniq prova.txt
i tambe amb l'opció -c
$ uniq -c prova.txt
què és el que fa la comanda uniq?
per tal d'il.lustrar en el contexte de la bioinformàtica la utilització de les comandes anteriors abordarem una pregunta senzilla:
Quants transcrits de mRNA podem trobar anotats al genoma humà ?
Primer de tot, ens hem de fer amb un conjunt d'anotacions dels transcrits de mRNA al genoma humà. Entre les bases de dades disponibles farem anar el UCSC Genome Browser. Seguiu de forma estricta les següents passes:
si no us en sortiu de baixar-vos el fitxer, el podeu obtenir simplement seguint
el següent enllaç
(per enregistrar-lo
us caldrà prémer el botó dret del ratolí i escollir l'opció
"Guardar Enllaç Com...", "Save Link As..." en anglès, o similar).
ara mireu el contingut del fitxer que acabem de baixar del UCSC genome browser
a la finestra terminal, amb la comanda (penseu si esteu al directori on es
troba el fitxer, sino us hi haureu de moure):
$ more transcrits_humans.txt
observeu que el fitxer te 4 columnes separades per tabulacions, on la primera linia te els noms de les columnes i on cada linia conté el cromosoma, la posició cromosòmica de començament de la transcripció, la posicio cromosòmica de final de la transcripció i el nombre d'exons del transcrit.
per tal de saber el nombre de transcrits anotats només ens cal per tant
contar el nombre de línies del fitxer, que ho farem amb la comanda:
$ wc transcrits_humans.txt
ara intenteu respondre vosaltres sols a les següents qüestions: