BIO INF Tema 5.- Programació de scripts per a la automatització de tasques bioinformàtiques (2015)

Apunte Catalán
Universidad Universidad Autónoma de Barcelona (UAB)
Grado Biología - 3º curso
Asignatura Bioinformática
Profesor S.
Año del apunte 2015
Páginas 5
Fecha de subida 24/03/2015
Descargas 24
Subido por

Vista previa del texto

BIOINFORMÀTICA arokargomez 3r Biologia UAB Tema 5.- Programació de scripts per a la automatització de tasques bioinformàtiques Programació de scripts per a la automatització de tas ques bioinformàtiques.
L'anàlisi bioinformàtica estàndard. La automatització de tasques mitjançant scripts. Aplicacions.
El cas pràctic que farem és la epidèmia del SARS (Severe acute respiratory syndrome), que va causar una epidèmia molt important. Els primers casos van aparèixer cap a la primera meitat del 2002 a la província de Guandong, a la Xina. El virus el va dientificar el doctor Urbani i es va extendre molt ràpidament, en qüestió de mesos ja es trobaba arreu del mon. A l’abril del 2003 dos grups de científics van completar la seqüència genòmica del SARS-CoV, i gràcies a aquestes tècniques de seqüenciació es va poder combatre el virus.
El virus tenia un genoma de 29751pb de RNA de cadena simple i positiva. El contingut de GC es d’un 41% respecte del total. Té l’estructura gènica típica dels coronavirus i conté 13 gens que codifquen per a 14 proteines.
La capacitat de crear petits programes (scripts) que ens ajudin a fer tasques bioinformàtiques es incleiblement util, ja que pot significar un estalvi molt considerable de temps respecte a fer la mateixa tasca reiteradament a mà.
Cas pràctic: l’epidèmia del SARS En el cas pràctic, primer descarregarem del GenBank la sequencia del genoma del SARS amb el programa Perl. Despres descarregarem del Genbank les sequencies de la proteina Spike a diferents coronavirus animals, per tal d’alinear-les amb ClustalW (també ho farem dintre del programa Perl) i desar l’alineament en diferents formats. Per ultim descarregarem del Genbank la sequencia de nucleòtids del gen Spike de 13 pacients infectats durant els primers mesos de l’epidèmia, i les aliniarem amb ClustalW. Aquest aliniament el desarem en diferents formats.
El llenguatge Perl És un llenguatge interpretat (directament nosaltres escrivim un codi i el programa ja té un intèrpret instalat que executa aquestes comandes que li escrivim per tal de poder-les executar, no cal compliar) orientat a la cerca, extracció i formatat d’arxius de tipus text. És molt fàcil demanar que busqui determinats motius d’una cadena de text, formatejar arxius de diferents maneres, etc. Les seves característiques principals son:      Té una corba d’aprenentage baixa (no cal saber massa per crear scrpits que facin coses utils) i llarga (es poden ampliar els coneixements durant molt de temps).
Tracta la informació d’arxius de text Manipula i processa seqüències llargues fàcilment És òptim per escriure programes que controlen altres programes (per exemple un scrpit de Perl que faci coses amb Clustal) Un programa es pot fer ràpidament (rapid prototyping), ideal per fer coses que s’utilitzen un cop en la recerca del dia a dia del laboratori BIOINFORMÀTICA arokargomez    3r Biologia UAB Portable (el mateix programa serveix per a diferents sistemes operatius) Velocitat: bona però no òptima, podria ser més ràpid Manteniment fàcil Les eines per programar utilitzades en l’assignatura son editors de text, com el bloc de notes de windows (Gedir, Notepad++), directoris de treball en el disc i l’intèrpret de Perl que ha d’estar instal·lat perque entengui el llenguatge de Perl.
Estructura d’un programa    Input: l’usuari dona al programa dades.
Càlculs: el programa processa les dades.
Output: és el resultat dels calculs que el programa li torna a l’usuari.
Exemple d’un programa que suma: Pseudocodi (equival al plantejament): abans d’escriure el llenguatge en Perl podem fer un croquis de quina estructura tindrà el programa.
    Sol·licitar els numeros a sumar: x, y (input) Realitzar la suma: z= x+y (càlculs) Mostrar el resultat: z (output) Escrivim el programa a l’editor i el desem com a sumar.pl Executem el programa a través de la línia de comandes (l’interpret executarà una instrucció rera l’altra, des de l’inici fins al final).
Qualsevol linia que comenci per # serveix per afegir comentaris, l’intèrpret de Perl no llegeix res que estigui despres d’aquest símbol. Tot el que sigui text es posa entre cometes. Totes les linies, excepte les de comentaris, acaben en ; Existeixen tres tipus de variables en Perl Escalars ($), es veuen en verd. Son variables, per exemple que el dolar x pren valor 2 $y pren valor 9. Es poden crear variables de tipus cadena de text $id Matrius-Arrays (@): permeten guardar llistats. S’escriuen en parentesis i els numeros se separen per comes.
Matrius associatives-Hashes: (%) també es un llistat de coses que per cada element associa la clau i el valor. Per exemple, si en un llistat hi ha tres elements i li volem donar a cada valor l’identificador del GenBank.
BIOINFORMÀTICA arokargomez 3r Biologia UAB Mòduls de Perl Hi ha càlculs molt típics que ja existeixen dins del programa sense haver-ho de programar (com les funcions del Excel). S’anomenen mòduls. Per exemple, per saber quin es el numero mes gran d’una llista, o per saber quant sumen els numeros de la llista.
Bioperl: Una col·lecció de mòduls de Perl. És un projecte open-source que proporciona un codi de Perl reutilitzable per treballar amb dades biològiques.
El mòdul bio::Seq Serveix per crear objectes de seqüències de nucleòtids o aminoàcids.
A la primera linia incorporem el paquet Bio::Seq perque el programa entengui que utilitzarem funcions d’aquest paquet. Després definim la seqüència i el seu identificador en una variable escalar (en aquest cas una cadena de text). Com que es una variable escalar al principi posem el símbol $ ($dna).
Podem definir el seu identificador, que també estarà com a variable escalar $id.
Amb les dos variables creem un objecte que emmagatzemi dades i funcions. Quedarà com $seq = Bio::Seq ->new (-seq=>$dna, -id=>$id); El mòdul Bio::DB::GenBank Si hi ha un ordinador que abusa el GenBank li talla l’accès perque no col·lapsi el servidor. Com a molt es poden descarregar una sequencia cada 5 segons amb una funció anomenada sleep.
És un mòdul de bioperl, a la secció de database, en concret la del GenBank. A pràctiques haurem de descarregar seqüències de GenBank, i aquest mòdul serveix per això. Podem demanar buscar una seqüència pel seu codi d’acces escrivint $genbank_acc = codi d’accés. A la línia següent incroporem el mòdul use Bio::DB::Genbank. Amb això creem un objecte nou de la base de dades Genbank que sigui $db_obj = Bio::DB::GenBank ->new (); BIOINFORMÀTICA arokargomez 3r Biologia UAB I amb això descarreguem la seqüència del codi d’accès corresponent i la desem a l’objecte seqüència $seq_obj = $db_obj->get_Seq_by_acc ($genbank_acc) El mòdul Bio::SeqIO Serveix per a la lectura o escriptura de seqüències en diferents formats (input i output). Primer el cridem amb use Bio::SeqIO i despres creem un objecte nou d’aquest mòdul, on especificarem el nom de l’arxiu de sortida i el format $seqio_obj = Bio::SeqIO ->new(-file=> “>SARS-CoV.gb, format => “genbank”); Despres escribim a l’arxiu de sortida l’objecte seqüència que prèviament hauríem creat, per exemple: El mòdul Bio::ToolS:Run::Alignment::ClustalW Serveix per realitzar alineaments de seqüències amb el programa ClustalW. El nom d’aquest mòdul indica que dins dels aliniaments hi ha altres a més del ClustalW. Aquest programa té una funció anomenada Alignment que serveix per aliniar. Per poder utilitzar aquest mòdul primer cal que ens haguem descarregat les seqüències. El Perl en si no sap aliniar, sino que dins de la carpeta on tinguem les sequencies hem de tenir descarregat el clustalW.
EL mòdul Bio::AlignIO Serveix per escriure i llegir arxius però no per sequencies sino per aliniaments. Son els mateixos passos: incorporar el mòdul, crear l’objecte nou i realitzar l’aliniament dels objectes seqüència que prèviament haurem emmagatzemat en un array. El resultat es un objecte d’aliniament.
BIOINFORMÀTICA arokargomez 3r Biologia UAB ...