Download - Perl 17 i 18/des/2007 Programació en Perl: aplicacions bioinformàtiques Universitat de Girona
![Page 1: Perl 17 i 18/des/2007 Programació en Perl: aplicacions bioinformàtiques Universitat de Girona](https://reader038.vdocuments.pub/reader038/viewer/2022110104/5665b4951a28abb57c9266be/html5/thumbnails/1.jpg)
Perl 17 i 18/des/2007
Programació en Perl: aplicacions bioinformàtiques
Universitat de Girona
![Page 2: Perl 17 i 18/des/2007 Programació en Perl: aplicacions bioinformàtiques Universitat de Girona](https://reader038.vdocuments.pub/reader038/viewer/2022110104/5665b4951a28abb57c9266be/html5/thumbnails/2.jpg)
Perl 17 i 18/des/2007
Punts a tractarPunts a tractar
• Sistema local de gestió de la informació biològica
• El llenguatge Perl: característiques i instal·lació
• Estratègies de programació
• Variables en Perl
• Seqüències i cadenes
• Control de fluxe
• Expressions regulars
• Subrutines
• Mòduls
• Exemple integrador
• Com seguir avançant?
![Page 3: Perl 17 i 18/des/2007 Programació en Perl: aplicacions bioinformàtiques Universitat de Girona](https://reader038.vdocuments.pub/reader038/viewer/2022110104/5665b4951a28abb57c9266be/html5/thumbnails/3.jpg)
Perl 17 i 18/des/2007
SISTEMA LOCAL DE GESTIÓ DE LA INFORMACIÓ BIOLÒGICA
SISTEMA LOCAL DE GESTIÓ DE LA INFORMACIÓ BIOLÒGICA
![Page 4: Perl 17 i 18/des/2007 Programació en Perl: aplicacions bioinformàtiques Universitat de Girona](https://reader038.vdocuments.pub/reader038/viewer/2022110104/5665b4951a28abb57c9266be/html5/thumbnails/4.jpg)
Perl 17 i 18/des/2007
El problema de la integració de dadesEl problema de la integració de dades
ANÀLISI BIOINFORMÀTIC ESTÀNDARANÀLISI BIOINFORMÀTIC ESTÀNDAR
2. Anàlisis i emmagatzements
successius
1. Extracció via Internet i
emmagatzement local
Bases de dades locals
Ex. arxius o BBDD
Fonts de dades externes: GenBank, EMBL-EBI, SWISSPROT,…
Ex. Gens amb una det. funció, o proteïnes amb una det. estructura, o mutants que
afecten a un fenotip donat, …
Interfícies htmlScripts cgi
Eines d’anàlisiEx. BLAST, predicció
d’estructura, …
Secundàries
Primàries
Terciàries
3. Consulta i visualització
![Page 5: Perl 17 i 18/des/2007 Programació en Perl: aplicacions bioinformàtiques Universitat de Girona](https://reader038.vdocuments.pub/reader038/viewer/2022110104/5665b4951a28abb57c9266be/html5/thumbnails/5.jpg)
Perl 17 i 18/des/2007
El problema de la integració de dadesEl problema de la integració de dades
Dues maneres d’operar:
1. Manual: efectuar tot el procés manualment
2. Automatitzat: crear aplicacions o scripts amb un llenguatge adeqüat que automatitzin l’extracció d’informació i concatenin el tractament de les dades
La capacitat de crear petits programes que ajudin a fer tasques bioinformàtiques pot ser increïblement útil; pot significar un estalvi molt considerable de temps respecte a fer el mateix manualment!!!
![Page 6: Perl 17 i 18/des/2007 Programació en Perl: aplicacions bioinformàtiques Universitat de Girona](https://reader038.vdocuments.pub/reader038/viewer/2022110104/5665b4951a28abb57c9266be/html5/thumbnails/6.jpg)
Perl 17 i 18/des/2007
Exemple d’una plataforma de gestió automatitzadaExemple d’una plataforma de gestió automatitzada
Estimar polimorfisme nucleotídic a partir de seqüències de DNA de les bases de dades públiques (GenBank)Input: organismes, gens o identificadors del GenBank
![Page 7: Perl 17 i 18/des/2007 Programació en Perl: aplicacions bioinformàtiques Universitat de Girona](https://reader038.vdocuments.pub/reader038/viewer/2022110104/5665b4951a28abb57c9266be/html5/thumbnails/7.jpg)
Perl 17 i 18/des/2007
Exemple d’una plataforma de gestió automatitzadaExemple d’una plataforma de gestió automatitzada
Get sequences
& annotations
INPUT: GenBank query, or submitted
sequences
Minimum number ofsequences per category
Clustalparameters
CDS, exon, intron, 5’UTR, 3’UTR, promoter, etc.
Group byspecies & gene
Sequences &annotations
Sequencesorganized incategories
Alignmentvalidation
Su
bg
rou
ps
Read geneannotations
Extract generegions
Sequences,positions and orientations
Polymorphism
Syn & Non-synpolymorphisms
Linkagedisequilibrium
Codon bias
DIVERSITYANALYSIS
Web-basedoutput
Alignments
Jalview
OUTPUT
MySQLdatabase
QUALITYASSESSMENT ALIGNMENT
DATA MINING
AMNIS
Aligns
Sourcedata
GENOMELOCATIONConsensus
BLAT
Minimum
similarity &
Minimum
number of
seqsper category
ClustalW
Muscle
T-Coffee
![Page 8: Perl 17 i 18/des/2007 Programació en Perl: aplicacions bioinformàtiques Universitat de Girona](https://reader038.vdocuments.pub/reader038/viewer/2022110104/5665b4951a28abb57c9266be/html5/thumbnails/8.jpg)
Perl 17 i 18/des/2007
Exemple d’una plataforma de gestió automatitzadaExemple d’una plataforma de gestió automatitzada
![Page 9: Perl 17 i 18/des/2007 Programació en Perl: aplicacions bioinformàtiques Universitat de Girona](https://reader038.vdocuments.pub/reader038/viewer/2022110104/5665b4951a28abb57c9266be/html5/thumbnails/9.jpg)
Perl 17 i 18/des/2007
1. Extracció de dades mitjançant Screen scraping de
pàgines web
2. Execució automatitzada de programes d’anàlisi de
seqüències (CLUSTAL, MUSCLE, T-COFFEE, BLAT)
3. Connexió a base de dades per a l’emmagatzematge i
consulta d’informació
4. Creació d’una interfície HTML per a fer consultes i
mostrar resultats
5. Concatenació automatitzada de tots els passos anteriors
Tot això és possible mitjançant la creació de petits
scripts amb el llenguatge de programació Perl
Exemple d’una plataforma de gestió automatitzadaExemple d’una plataforma de gestió automatitzada
![Page 10: Perl 17 i 18/des/2007 Programació en Perl: aplicacions bioinformàtiques Universitat de Girona](https://reader038.vdocuments.pub/reader038/viewer/2022110104/5665b4951a28abb57c9266be/html5/thumbnails/10.jpg)
Perl 17 i 18/des/2007
EL LLENGUATGE PERL: CARACTERÍSTIQUES I INSTAL·LACIÓ
EL LLENGUATGE PERL: CARACTERÍSTIQUES I INSTAL·LACIÓ
![Page 11: Perl 17 i 18/des/2007 Programació en Perl: aplicacions bioinformàtiques Universitat de Girona](https://reader038.vdocuments.pub/reader038/viewer/2022110104/5665b4951a28abb57c9266be/html5/thumbnails/11.jpg)
Perl 17 i 18/des/2007
El llenguatge Perl: característiquesEl llenguatge Perl: característiques
PERL, Practical Extraction and Report Language (Larry Wall 1986) http://www.perl.com/
• Un llenguatge interpretat orientat a la cerca, extracció i formatejat d’arxius de text
• Característiques:
– Corba d’aprenentatge baixa i llarga– Manipula i processa seqüències llargues fàcilment– Molt utilitzat a laboratoris de biologia molecular per a la
creació de pàgines web dinàmiques– Els programes es poden fer en pocs minuts (rapid
prototyping), ideal per a resoldre les necessitats del dia a dia dels laboratoris de recerca
– Portable– Velocitat bona, tot i que no òptima
![Page 12: Perl 17 i 18/des/2007 Programació en Perl: aplicacions bioinformàtiques Universitat de Girona](https://reader038.vdocuments.pub/reader038/viewer/2022110104/5665b4951a28abb57c9266be/html5/thumbnails/12.jpg)
Perl 17 i 18/des/2007
Eines per a programarEines per a programar
• Editor de text– Bloc de notes (Notepad)– Notepad++, EditPlus, …– IDE Perl: Komodo, PerlE
• Intèrpret de Perl + Consola DOS– http://www.activestate.com/store/download_file.aspx?binGUID=e5c71329-b7a6-
4563-8199-e1483f751c4f
• Directori de treball al disc– Exemple: C:\scripts\
![Page 13: Perl 17 i 18/des/2007 Programació en Perl: aplicacions bioinformàtiques Universitat de Girona](https://reader038.vdocuments.pub/reader038/viewer/2022110104/5665b4951a28abb57c9266be/html5/thumbnails/13.jpg)
Perl 17 i 18/des/2007
El llenguatge Perl: instal·lacióEl llenguatge Perl: instal·lació
![Page 14: Perl 17 i 18/des/2007 Programació en Perl: aplicacions bioinformàtiques Universitat de Girona](https://reader038.vdocuments.pub/reader038/viewer/2022110104/5665b4951a28abb57c9266be/html5/thumbnails/14.jpg)
Perl 17 i 18/des/2007
El llenguatge Perl: instal·lacióEl llenguatge Perl: instal·lació
http://www.activestate.com/store/download_file.aspx?binGUID=e5c71329-b7a6-4563-8199-e1483f751c4f
![Page 15: Perl 17 i 18/des/2007 Programació en Perl: aplicacions bioinformàtiques Universitat de Girona](https://reader038.vdocuments.pub/reader038/viewer/2022110104/5665b4951a28abb57c9266be/html5/thumbnails/15.jpg)
Perl 17 i 18/des/2007
ESTRATÈGIES DE PROGRAMACIÓESTRATÈGIES DE PROGRAMACIÓ
![Page 16: Perl 17 i 18/des/2007 Programació en Perl: aplicacions bioinformàtiques Universitat de Girona](https://reader038.vdocuments.pub/reader038/viewer/2022110104/5665b4951a28abb57c9266be/html5/thumbnails/16.jpg)
Perl 17 i 18/des/2007
L’art de programarL’art de programar
• Programar és una manera de solucionar problemes resolubles de manera iterativa i gradual
• El procés de programar inclou:
– Plantejar– Escriure / Codificar / Editar– Executar– Revisar errors (debugging)– Guardar i Backups
![Page 17: Perl 17 i 18/des/2007 Programació en Perl: aplicacions bioinformàtiques Universitat de Girona](https://reader038.vdocuments.pub/reader038/viewer/2022110104/5665b4951a28abb57c9266be/html5/thumbnails/17.jpg)
Perl 17 i 18/des/2007
El procés de programarEl procés de programar
Exemple: Un programa que cerca dianes de restricció en el DNA
• Imaginar un disseny general per al programa• Escriure el “pseudo-codi” amb comentaris
– Identificar els inputs requerits (les dades o informació que ha de subministrar l’usuari)
– Fer un esboç del procés– Preveure les fases intermitges– Decidir com es donarà l’output (arxiu, pantalla, taula,
gràfic, BBDD,…)
• Escriure el programa en codi Perl • Refinar el model previ en els seus detalls no
anticipats
![Page 18: Perl 17 i 18/des/2007 Programació en Perl: aplicacions bioinformàtiques Universitat de Girona](https://reader038.vdocuments.pub/reader038/viewer/2022110104/5665b4951a28abb57c9266be/html5/thumbnails/18.jpg)
Perl 17 i 18/des/2007
Un programa que sumaUn programa que suma
Pseudo-codi (plantejament):1. Sol·licitar els números a sumar2. Fer la suma3. Mostrar el resultat
En Perl (només els comentaris):#Sol·licitar els números a sumar
#Fer la suma
#Mostrar el resultat
![Page 19: Perl 17 i 18/des/2007 Programació en Perl: aplicacions bioinformàtiques Universitat de Girona](https://reader038.vdocuments.pub/reader038/viewer/2022110104/5665b4951a28abb57c9266be/html5/thumbnails/19.jpg)
Perl 17 i 18/des/2007
Programació bàsicaProgramació bàsica
• Intèrpret i programa (script) nom.pl#!/usr/bin/perl
print “mi primer script de perl”;
• Executar programes: anem a DOS (línia de comandes) i escribim
C:>perl primer.pl– o bé (en Windows)C:>primer.pl
– Resultat: C:>mi primer script de perl
#!/usr/bin/perl#primer.plprint "El meu primer script en Perl!";
C:\>perl primer.pl
C:\>primer.pl
El meu primer script en Perl!C:\>_
![Page 20: Perl 17 i 18/des/2007 Programació en Perl: aplicacions bioinformàtiques Universitat de Girona](https://reader038.vdocuments.pub/reader038/viewer/2022110104/5665b4951a28abb57c9266be/html5/thumbnails/20.jpg)
Perl 17 i 18/des/2007
Com funciona un scriptCom funciona un script
• Les instruccions s’executen una rera l’altre, des del principi:
#!/usr/bin/perl# preámbulo...print “Puedo calcular!\n”;#hacer cálculos$suma = 3 + 4;#mostrar el resultadoprint ”La suma de 3 + 4 es “,$suma,”.\n”;
El símbol # serveix per introduir comentaris; tot el que hi hagi darrera de # en una línia, no s’interpreta
• Exercici: editar i executar
#!/usr/bin/perl#suma.plprint "Puc calcular!\n";#fer els càlculs$suma = 3 + 4;#mostrar el resultatprint "La suma de 3 + 4 es $suma";
![Page 21: Perl 17 i 18/des/2007 Programació en Perl: aplicacions bioinformàtiques Universitat de Girona](https://reader038.vdocuments.pub/reader038/viewer/2022110104/5665b4951a28abb57c9266be/html5/thumbnails/21.jpg)
Perl 17 i 18/des/2007
VARIABLES EN PERLVARIABLES EN PERL
![Page 22: Perl 17 i 18/des/2007 Programació en Perl: aplicacions bioinformàtiques Universitat de Girona](https://reader038.vdocuments.pub/reader038/viewer/2022110104/5665b4951a28abb57c9266be/html5/thumbnails/22.jpg)
Perl 17 i 18/des/2007
Tipus de dadesTipus de dades
• Text (o cadena de caracters, string)“cadena numero 1”, ‘cadena numero 2’
• Números1, 49, 28.2, -109, 6.04E23
• Caracters especialsprint “Nueva linea\n<aqui y un tab\t<aqui.\n”;
• Exercici (última instrucció): C:>perl programa.pl
print "Nova linia\n<aqui i un tab\t<aqui.\n";
C:\>perl programa.plNova linia<aqui i un tab <aqui.
C:\>_
![Page 23: Perl 17 i 18/des/2007 Programació en Perl: aplicacions bioinformàtiques Universitat de Girona](https://reader038.vdocuments.pub/reader038/viewer/2022110104/5665b4951a28abb57c9266be/html5/thumbnails/23.jpg)
Perl 17 i 18/des/2007
Variables escalarsVariables escalars
$a; # sensibles a majúscules i minúscules$A; # $a és diferent de $A
# nom: números, lletres o línies de subratllat$nomDeVariable_Llarg;
$x=42; # assignem el valor de 42 a $xprint 'el valor de $x es ' . $x . "\n";$x='DNA de cadena sencilla'; # canviem valor de $xprint 'pero ara el valor de $x es ' . $x . "\n";
• Proporcionen un lloc on guardar dades temporalment $nom
C:\>perl programa2.plel valor de $x es 42pero ara el valor de $x es DNA de cadena sencilla
![Page 24: Perl 17 i 18/des/2007 Programació en Perl: aplicacions bioinformàtiques Universitat de Girona](https://reader038.vdocuments.pub/reader038/viewer/2022110104/5665b4951a28abb57c9266be/html5/thumbnails/24.jpg)
Perl 17 i 18/des/2007
ExercicisExercicis
Curso de Perl (10 ejercicios) http://bioinformatica.uab.cat/bioinfouab/Resources/CursoPerl/CursoPerl.asp
– Exercici 1A– Exercici 1B
![Page 25: Perl 17 i 18/des/2007 Programació en Perl: aplicacions bioinformàtiques Universitat de Girona](https://reader038.vdocuments.pub/reader038/viewer/2022110104/5665b4951a28abb57c9266be/html5/thumbnails/25.jpg)
Perl 17 i 18/des/2007
ExercicisExercicis
#!/usr/bin/perl# programa3.pl# Programa que almacena una secuencia de DNA
# almacenamos una secuencia de DNA en una variable $DNA = "ACGGGGAGGACGGGAAATTACTACGGGCATTAGC";
# Imprimimos la secuencia en la pantallaprint $DNA;
#salimos del programaexit;
C:\>perl programa3.plACGGGGAGGACGGGAAATTACTACGGGCATTAGCC:\>_
![Page 26: Perl 17 i 18/des/2007 Programació en Perl: aplicacions bioinformàtiques Universitat de Girona](https://reader038.vdocuments.pub/reader038/viewer/2022110104/5665b4951a28abb57c9266be/html5/thumbnails/26.jpg)
Perl 17 i 18/des/2007
ExercicisExercicis
#!/usr/bin/perl# variables.pl# Programa que concatena fragmentos de DNA
# Primero almacenamos dos secuencias de DNA en dos variables$DNA1 = "ACGGGGAGGACGGGAAATTACTACGGGCATTAGC"; $DNA2 = "ATAGTGCCGTGCATGCGACGATTCTGGCATACATC";
# Imprimimos en pantalla las dos secuencias separadamenteprint $DNA1 . "\n";print $DNA2 . "\n\n";
# concatenamos ambas en una tercera variable que se imprime$DNA3 = $DNA1 . $DNA2 ;print "Concatenación de los dos fragmentos de DNA: \n\n";print "$DNA3\n\n";exit;
![Page 27: Perl 17 i 18/des/2007 Programació en Perl: aplicacions bioinformàtiques Universitat de Girona](https://reader038.vdocuments.pub/reader038/viewer/2022110104/5665b4951a28abb57c9266be/html5/thumbnails/27.jpg)
Perl 17 i 18/des/2007
Operadors aritmèticsOperadors aritmètics
• Aritmètics:
+ suma
- resta
* multiplicació
/ divisió
** exponencial
() agrupació
![Page 28: Perl 17 i 18/des/2007 Programació en Perl: aplicacions bioinformàtiques Universitat de Girona](https://reader038.vdocuments.pub/reader038/viewer/2022110104/5665b4951a28abb57c9266be/html5/thumbnails/28.jpg)
Perl 17 i 18/des/2007
Procedència d’operadorsProcedència d’operadors
• Procedència d’operadors com en una calculadora científica:
• Substituir les dues últimes línies per:
#!/usr/bin/perl# operadores.pl$x = 4;$y = 2;$z = 3 + $x * $y;print "$z \n";
print 3 + $x * $y . "\n";print (3 + 4) * 2 . "\n";
![Page 29: Perl 17 i 18/des/2007 Programació en Perl: aplicacions bioinformàtiques Universitat de Girona](https://reader038.vdocuments.pub/reader038/viewer/2022110104/5665b4951a28abb57c9266be/html5/thumbnails/29.jpg)
Perl 17 i 18/des/2007
Abreviatures d’OperadorsAbreviatures d’Operadors
+= Sumar un número a una variable
–= Restar un número d’una variable
*= Multiplicar un número per una variable
/= Dividir una variable per un número
++ Sumar-li 1 a una variable
–– Restar-li 1 a una variable
.= Afegir una cadena a una variable
Per exemple, si $a=2:
$a+=3; $a val 5 $a++ $a val 3$a-=1; $a val 1 $a.=4; $a val 24
![Page 30: Perl 17 i 18/des/2007 Programació en Perl: aplicacions bioinformàtiques Universitat de Girona](https://reader038.vdocuments.pub/reader038/viewer/2022110104/5665b4951a28abb57c9266be/html5/thumbnails/30.jpg)
Perl 17 i 18/des/2007
Arrays (matrius)Arrays (matrius)
#!/usr/bin/perl# matrices1.pl$base1=‘A’; # Esta es una mala solución$base2=‘C’;$base3=‘G’;
# Declarar una matriz@bases = (‘A’,‘C’,‘G’); # Esta es la solución
# por que puedo hacer este tipo de operaciones@old_bases = @bases; # Copia la matriz enteraprint “array de bases:\n”; # Muestra la matriz seguidaprint @bases . “\n”; # Muestra la matriz seguidaprint “@bases”; # Muestra la matriz con separaciones
array de bases:ACGA C G
• Es defineixen amb @nom
![Page 31: Perl 17 i 18/des/2007 Programació en Perl: aplicacions bioinformàtiques Universitat de Girona](https://reader038.vdocuments.pub/reader038/viewer/2022110104/5665b4951a28abb57c9266be/html5/thumbnails/31.jpg)
Perl 17 i 18/des/2007
Operacions amb matriusOperacions amb matrius
#!/usr/bin/perl# matrices2.pl - operaciones con arrays@bases = (‘A’,‘C’,‘G’);
$tercera_base = $bases[2]; # OJO! Empieza por 0 (cero)
# añade T al final = $bases[3]
push @bases,‘T’;
# Elimina, y retorna, el último elemento
$ultima_base = pop @bases;
# Elimina, y retorna, el primer elemento
$primera = shift @bases;
# añade un elemento al principio = $bases[0]
unshift @bases,$primera;
![Page 32: Perl 17 i 18/des/2007 Programació en Perl: aplicacions bioinformàtiques Universitat de Girona](https://reader038.vdocuments.pub/reader038/viewer/2022110104/5665b4951a28abb57c9266be/html5/thumbnails/32.jpg)
Perl 17 i 18/des/2007
Operacions amb matriusOperacions amb matrius
• Entorn (@ARGV)
• Bucles propis
#!/usr/bin/perl# entorno.pl – Llamada entorno.pl Holaprint $ARGV[0] . “\n”; # este el primer argumentoprint $0; # Corresponde al path y nombre del script
foreach $elemento (@bases){ print $elemento.”\n”;}
![Page 33: Perl 17 i 18/des/2007 Programació en Perl: aplicacions bioinformàtiques Universitat de Girona](https://reader038.vdocuments.pub/reader038/viewer/2022110104/5665b4951a28abb57c9266be/html5/thumbnails/33.jpg)
Perl 17 i 18/des/2007
ExercicisExercicis
Curso de Perl (10 ejercicios) http://bioinformatica.uab.cat/bioinfouab/Resources/CursoPerl/CursoPerl.asp
– Exercici 2A– Exercici 2B– Exercici 2C– Exercici 2D– Exercici 2F
![Page 34: Perl 17 i 18/des/2007 Programació en Perl: aplicacions bioinformàtiques Universitat de Girona](https://reader038.vdocuments.pub/reader038/viewer/2022110104/5665b4951a28abb57c9266be/html5/thumbnails/34.jpg)
Perl 17 i 18/des/2007
Hashes (matrius associatives)Hashes (matrius associatives)
• Són similars als arrays però:– Els elements tenen ‘nom’ (claus o keys)– Es defineix amb %nom
#!/usr/bin/perl# hash.pl - Declarar un hash%purinas = (‘A’=>‘Adenina’, ‘G’=>‘Guanina’);
# afegir elements després d’haber definit el hash%pirimidinas = ();$pirimidinas{‘C’}=‘Citosina’; $pirimidinas{‘T’}=‘Timina’;
# puedo hacer este tipo de operacionesprint “G es $purinas{‘G’}\n”; print %purinas.“\n”; # Valores e índices concatenados$queBase = 'T';print "$queBase es $pirimidinas{$queBase}\n";
![Page 35: Perl 17 i 18/des/2007 Programació en Perl: aplicacions bioinformàtiques Universitat de Girona](https://reader038.vdocuments.pub/reader038/viewer/2022110104/5665b4951a28abb57c9266be/html5/thumbnails/35.jpg)
Perl 17 i 18/des/2007
Hashes (keys i values)Hashes (keys i values)
# (…) hashes-keys.pl# Recuperar las claves o los valores en una
matriz@claves = keys %bases;@Datos = values %bases;
print @claves."\n". "@Datos"."\n";
foreach $codigo (@claves) {print "$codigo es $bases{$codigo}\n";
}
C:\>perl hashes_keys.plATCGAdeninaTiminaCitosinaGuaninaA es AdeninaT es TiminaC es CitosinaG es GuaninaC:\>_
![Page 36: Perl 17 i 18/des/2007 Programació en Perl: aplicacions bioinformàtiques Universitat de Girona](https://reader038.vdocuments.pub/reader038/viewer/2022110104/5665b4951a28abb57c9266be/html5/thumbnails/36.jpg)
Perl 17 i 18/des/2007
ExercicisExercicis
Curso de Perl (10 ejercicios) http://bioinformatica.uab.cat/bioinfouab/Resources/CursoPerl/CursoPerl.asp
– Exercici 2G
![Page 37: Perl 17 i 18/des/2007 Programació en Perl: aplicacions bioinformàtiques Universitat de Girona](https://reader038.vdocuments.pub/reader038/viewer/2022110104/5665b4951a28abb57c9266be/html5/thumbnails/37.jpg)
Perl 17 i 18/des/2007
SEQÜÈNCIES I CADENESSEQÜÈNCIES I CADENES
![Page 38: Perl 17 i 18/des/2007 Programació en Perl: aplicacions bioinformàtiques Universitat de Girona](https://reader038.vdocuments.pub/reader038/viewer/2022110104/5665b4951a28abb57c9266be/html5/thumbnails/38.jpg)
Perl 17 i 18/des/2007
Entradadades
Càlcul / Operacions
Sortida dades
Estructura bàsicaEstructura bàsica
![Page 39: Perl 17 i 18/des/2007 Programació en Perl: aplicacions bioinformàtiques Universitat de Girona](https://reader038.vdocuments.pub/reader038/viewer/2022110104/5665b4951a28abb57c9266be/html5/thumbnails/39.jpg)
Perl 17 i 18/des/2007
Entrada/Sortida des del teclatEntrada/Sortida des del teclat
• Entrada des de teclat:
• Exercici 1: editar i executar el programa anterior
• Exercici 2: editar i executar un programa que demani el nom d’usuari i llavors l’imprimeixi
#/usr/bin/perl# ES.pl
print "entra tu edad: ";
$edad = <STDIN>;
print "tu edad en años de perro es " . $edad/7 . "\n";
![Page 40: Perl 17 i 18/des/2007 Programació en Perl: aplicacions bioinformàtiques Universitat de Girona](https://reader038.vdocuments.pub/reader038/viewer/2022110104/5665b4951a28abb57c9266be/html5/thumbnails/40.jpg)
Perl 17 i 18/des/2007
Entrada/Sortida des del teclatEntrada/Sortida des del teclat
• Funcions que ens ajuden a realitzar tasques senzilles:
#/usr/bin/perl
print “Entra tu nombre: ”;
chomp ($name = <>);
print “Hola, $name, encantado de conocerte\n”;
#/usr/bin/perl# chomp.plprint “Entra tu nombre: ”;chomp ($nombre = <>); # <> equivale a <STDIN>print “Hola $nombre!, encantado de conocerte.\n”;
![Page 41: Perl 17 i 18/des/2007 Programació en Perl: aplicacions bioinformàtiques Universitat de Girona](https://reader038.vdocuments.pub/reader038/viewer/2022110104/5665b4951a28abb57c9266be/html5/thumbnails/41.jpg)
Perl 17 i 18/des/2007
Entrada/Sortida a arxiusEntrada/Sortida a arxius
• Per a llegir o escriure dades a arxius de text, és necessari l’ús de filehandles
open(FICHERO,'datos.txt');
– FICHERO : filehandle– ‘datos.txt’ : nombre del fichero
open(FICH_DATOS, 'c:\scripts\myfile.txt')open(FICH_DATOS, 'c:\scripts\myfile.txt');
![Page 42: Perl 17 i 18/des/2007 Programació en Perl: aplicacions bioinformàtiques Universitat de Girona](https://reader038.vdocuments.pub/reader038/viewer/2022110104/5665b4951a28abb57c9266be/html5/thumbnails/42.jpg)
Perl 17 i 18/des/2007
Lectura d’arxiusLectura d’arxius
open MIFICHERO,’datos.txt’; @linea = <MIFICHERO>;
close MIFICHERO;
• Exercici: Llegir la següent seqüència proteica des d’un arxiu i imprimir-la en pantalla
#/usr/bin/perl# FileInArray.plopen(MIFICHERO, “datos.txt”); @array = <MIFICHERO>; # Cargamos fichero en matrizclose MIFICHERO;
1 MNIDDKLEGL FLKCGGIDEM QSSRTMVVMG 30 31 GVSGQSTVSG ELQDSVLQDR SMPHQEILAA 60 61 DEVLQESEMR QQDMISHDEL MVHEETVKND 90 91 EEQMETHERL PQGLQYALNV PISVKQEITF 120121 TDVSEQLMRD KKQIR 135
![Page 43: Perl 17 i 18/des/2007 Programació en Perl: aplicacions bioinformàtiques Universitat de Girona](https://reader038.vdocuments.pub/reader038/viewer/2022110104/5665b4951a28abb57c9266be/html5/thumbnails/43.jpg)
Perl 17 i 18/des/2007
Escriptura a arxiusEscriptura a arxius
#/usr/bin/perl# EscrituraFicheros.pl
open FICHERO, ‘>data.txt’; # Crear para escribiropen FICHERO, ‘>>data.txt’; # ó añadir al final
print FICHERO $proteinSeq;
close FICHERO;
• Exercici: Modifica el programa anterior per escriure la seqüència proteica a un nou arxiu
![Page 44: Perl 17 i 18/des/2007 Programació en Perl: aplicacions bioinformàtiques Universitat de Girona](https://reader038.vdocuments.pub/reader038/viewer/2022110104/5665b4951a28abb57c9266be/html5/thumbnails/44.jpg)
Perl 17 i 18/des/2007
La instrucció “die”La instrucció “die”
• Si l’arxiu no existeix, mostra el missatge d’error i atura el programa
#/usr/bin/perl# FileOrDie.pl open (FICHERO, “EsteFicheroNoExiste.xxx") or
die "No encuentro el fichero";@lineas = <FICHERO>;close FICHERO;
![Page 45: Perl 17 i 18/des/2007 Programació en Perl: aplicacions bioinformàtiques Universitat de Girona](https://reader038.vdocuments.pub/reader038/viewer/2022110104/5665b4951a28abb57c9266be/html5/thumbnails/45.jpg)
Perl 17 i 18/des/2007
CONTROL DE FLUXECONTROL DE FLUXE
![Page 46: Perl 17 i 18/des/2007 Programació en Perl: aplicacions bioinformàtiques Universitat de Girona](https://reader038.vdocuments.pub/reader038/viewer/2022110104/5665b4951a28abb57c9266be/html5/thumbnails/46.jpg)
Perl 17 i 18/des/2007
Entradadades
Entradadades
Operació BOperació BOperació AOperació A
Condició?Condició?
CondicionsCondicions
no OKno OK
OKOK
CondicionsCondicions
![Page 47: Perl 17 i 18/des/2007 Programació en Perl: aplicacions bioinformàtiques Universitat de Girona](https://reader038.vdocuments.pub/reader038/viewer/2022110104/5665b4951a28abb57c9266be/html5/thumbnails/47.jpg)
Perl 17 i 18/des/2007
Decisiones condicionales: ifDecisiones condicionales: if
#!/usr/bin/perl
print “dime tu edad: “;
$edad = <>;
if (($edad <=0) or ($edad >= 100))
{
print “error al leer la edad. \n”;
die “edad ridícula”;
}
print “tu edad en años de perro es” ,$edad/7,”\n”;
• Exercici: editar i executar el programa amb els valors –20, 30, hola
#!/usr/bin/perl# if1.plprint “dime tu edad: “;$edad = <STDIN>;if ($edad <=0){
print “error al leer la edad. \n”; die “edad ridícula”;}print “tu edad en años de perro es ” ,$edad/7,”\n”;
![Page 48: Perl 17 i 18/des/2007 Programació en Perl: aplicacions bioinformàtiques Universitat de Girona](https://reader038.vdocuments.pub/reader038/viewer/2022110104/5665b4951a28abb57c9266be/html5/thumbnails/48.jpg)
Perl 17 i 18/des/2007
OperadoresOperadores
• Comparadors numèrics:== igualtat $a == $b != desigualtat< menor > major<= menor o igual>= major o igual! not lògic
![Page 49: Perl 17 i 18/des/2007 Programació en Perl: aplicacions bioinformàtiques Universitat de Girona](https://reader038.vdocuments.pub/reader038/viewer/2022110104/5665b4951a28abb57c9266be/html5/thumbnails/49.jpg)
Perl 17 i 18/des/2007
OperadoresOperadores
• Comparadors per cadeneseq igualtat $a eq $b ne desigualtatlt menor (less than)
gt major (greather than)
le menor o igual (less or equal to)
ge major o igual (greather or equal to)
=~ pattern matching $a =~ /gattc/
El símbolo ~ se consigue pulsando AltGr+4
![Page 50: Perl 17 i 18/des/2007 Programació en Perl: aplicacions bioinformàtiques Universitat de Girona](https://reader038.vdocuments.pub/reader038/viewer/2022110104/5665b4951a28abb57c9266be/html5/thumbnails/50.jpg)
Perl 17 i 18/des/2007
Atenció
a l’ordre al comparar cadenes:
0, 1, 2, 3, ..., 9, A, ..., Z, a, ..., z
if (“TGCA” lt “acgt”) tornarà VERTADER!!
![Page 51: Perl 17 i 18/des/2007 Programació en Perl: aplicacions bioinformàtiques Universitat de Girona](https://reader038.vdocuments.pub/reader038/viewer/2022110104/5665b4951a28abb57c9266be/html5/thumbnails/51.jpg)
Perl 17 i 18/des/2007
If – elseIf – else
#!/usr/bin/perl# if-else.plprint “entra tu edad: “;$edad = <>;if ( ($edad <= 0) or ($edad > 100) ){ print “error en la edad introducida.\n”;}else { print “tu edad en años de perro “,$edad/7,”\n”;}
printf “tu edad en años de perro es %0.2f \n”, $edad/7;
Per a mostrar valors amb format (ex. 2 decimals), utilitzem printf:
![Page 52: Perl 17 i 18/des/2007 Programació en Perl: aplicacions bioinformàtiques Universitat de Girona](https://reader038.vdocuments.pub/reader038/viewer/2022110104/5665b4951a28abb57c9266be/html5/thumbnails/52.jpg)
Perl 17 i 18/des/2007
If – elsif – elseIf – elsif – else
#!/usr/bin/perl# if-elsif.plprint “Entra tu edad: “;$edad = <>;if ( $edad <= 0 ) { print “eres muy joven para usar un
teclado”;} elsif ( $edad >= 100 ) { print “un perro no puede vivir tanto”;} else { print “tu edad es: “, $edad/7, “\n”;}
![Page 53: Perl 17 i 18/des/2007 Programació en Perl: aplicacions bioinformàtiques Universitat de Girona](https://reader038.vdocuments.pub/reader038/viewer/2022110104/5665b4951a28abb57c9266be/html5/thumbnails/53.jpg)
Perl 17 i 18/des/2007
Entradadades
Entradadades
Operació BOperació BOperació AOperació A
Condició?Condició?
BuclesBucles
fals (no segueixo)fals (no segueixo)
vertadervertader(segueixo)(segueixo)
BuclesBucles
![Page 54: Perl 17 i 18/des/2007 Programació en Perl: aplicacions bioinformàtiques Universitat de Girona](https://reader038.vdocuments.pub/reader038/viewer/2022110104/5665b4951a28abb57c9266be/html5/thumbnails/54.jpg)
Perl 17 i 18/des/2007
• Exercici alternativa: until ($cont > 5)
Instrucció WhileInstrucció While
#!/usr/bin/perl# while.pl$cont = 1;while ($cont <= 5){ print “contador $cont\n”; $cont = $cont + 1;}
![Page 55: Perl 17 i 18/des/2007 Programació en Perl: aplicacions bioinformàtiques Universitat de Girona](https://reader038.vdocuments.pub/reader038/viewer/2022110104/5665b4951a28abb57c9266be/html5/thumbnails/55.jpg)
Perl 17 i 18/des/2007
Instrucció While + arxiusInstrucció While + arxius
#!/usr/bin/perl# Whilefile.plopen(ARCHIVO, “llistat.txt”);while ($linea = <ARCHIVO>){
print $linea;} close(ARCHIVO);
(...)while (<ARCHIVO>){
print $_;} (...)
![Page 56: Perl 17 i 18/des/2007 Programació en Perl: aplicacions bioinformàtiques Universitat de Girona](https://reader038.vdocuments.pub/reader038/viewer/2022110104/5665b4951a28abb57c9266be/html5/thumbnails/56.jpg)
Perl 17 i 18/des/2007
EXPRESSIONS REGULARSEXPRESSIONS REGULARS
![Page 57: Perl 17 i 18/des/2007 Programació en Perl: aplicacions bioinformàtiques Universitat de Girona](https://reader038.vdocuments.pub/reader038/viewer/2022110104/5665b4951a28abb57c9266be/html5/thumbnails/57.jpg)
Perl 17 i 18/des/2007
#!/usr/bin/perl# patterns1.pl#...if ($dna =~/GATTC/) { print “EcoRI encontrado!”;}
$dna =~/GGG[GATC]CCC/; # GGG (luego G ó A ó T ó C) y CCC
$dna =~/GATTC|AAGCTT/; # EcoRI ó Hind III
Cerca de patrons (Pattern Matching)Cerca de patrons (Pattern Matching)
![Page 58: Perl 17 i 18/des/2007 Programació en Perl: aplicacions bioinformàtiques Universitat de Girona](https://reader038.vdocuments.pub/reader038/viewer/2022110104/5665b4951a28abb57c9266be/html5/thumbnails/58.jpg)
Perl 17 i 18/des/2007
MetacaràctersMetacaràcters
. Qualsevol caràcter excepte newline^ Principi de línia$ Final de línia\w Qualsevol caràcter alfanumèric\W Qualsevol caràcter no alfanumèric \s Qualsevol caràcter espaiador\S Qualsevol caràcter no espaiador\d Qualsevol dígit\D Qualsevol caràcter no dígit[…] Qualsevol dels caràcters de dins dels
claudàtors (també: [A-Z], [a-z], [0-9], [A-Za-z], [A-Z0-9], ...)
[^…] Qualsevol caràcter excepte els dels claudàtors
![Page 59: Perl 17 i 18/des/2007 Programació en Perl: aplicacions bioinformàtiques Universitat de Girona](https://reader038.vdocuments.pub/reader038/viewer/2022110104/5665b4951a28abb57c9266be/html5/thumbnails/59.jpg)
Perl 17 i 18/des/2007
QuantificadorsQuantificadors
? 0 o 1 coincidència+ 1 o més coincidències* 0 o més coincidències{N} N coincidències{N,M} Entre N i M coincidències{N, }N o més coincidències{ , M} M o menys coincidències
![Page 60: Perl 17 i 18/des/2007 Programació en Perl: aplicacions bioinformàtiques Universitat de Girona](https://reader038.vdocuments.pub/reader038/viewer/2022110104/5665b4951a28abb57c9266be/html5/thumbnails/60.jpg)
Perl 17 i 18/des/2007
Exemples de patronsExemples de patrons
• Codi postal– $cp =~ /\d\d\d\d\d/;– $cp =~ /\d{5}/;– $cp_us =~ /\d{5}
(-\d{4})?/;
• Identificadors de seqüències com “M58200.2”– $idSecuencia =~
/\w+\.\d+/;
? 0 ó 1 elementos+ 1 ó más elementos* 0 ó más elementos{N,M} Entre N y M elementos{N, } N o más elementos{ , M} M o menos elementos
. Cualquier carácter excepto newline^ Principio de línea$ Final de línea\w Cualquier carácter alfanumérico\W Cualquier carácter no-alfanum. \s Cualquier carácter espaciador\S Cualquier carácter no-espaciador\d Cualquier dígito\D Carácter no dígito
Caràcters que cal “escapar”:\$ \[\| \]\* \\\^ \/
![Page 61: Perl 17 i 18/des/2007 Programació en Perl: aplicacions bioinformàtiques Universitat de Girona](https://reader038.vdocuments.pub/reader038/viewer/2022110104/5665b4951a28abb57c9266be/html5/thumbnails/61.jpg)
Perl 17 i 18/des/2007
Extracció de patronsExtracció de patrons
•Seqüències en FASTA:
>M18580 Clone 305A4, complete sequence
acgtagctactgacatcgacatcatctacatcatatca
gactacgtcagtcagcagctacgactacgacactagca
tgagcagctagcatctacgactactagccagcagacgt
Extraiem l’id (M18580) i la descripció:
/^>(\S+)\s*(.*)$/
$id = $1;
$descripcion = $2;
? 0 ó 1 elementos+ 1 ó más elementos* 0 ó más elementos{N,M} Entre N y M elementos{N, } N o más elementos{ , M} M o menos elementos
. Cualquier carácter excepto newline^ Principio de línea$ Final de línea\w Cualquier carácter alfanumérico\W Cualquier carácter no-alfanum. \s Cualquier carácter espaciador\S Cualquier carácter no-espaciador\d Cualquier dígito\D Carácter no dígito
Caràcters que cal “escapar”:\$ \[\| \]\* \\\^ \/
![Page 62: Perl 17 i 18/des/2007 Programació en Perl: aplicacions bioinformàtiques Universitat de Girona](https://reader038.vdocuments.pub/reader038/viewer/2022110104/5665b4951a28abb57c9266be/html5/thumbnails/62.jpg)
Perl 17 i 18/des/2007
• Llegir una seqüència de DNA d’un arxiu• Imprimir la seqüència per pantalla
Ajuda: utilitza . per concatenar les diferents línies
• Comptar la freqüència d’aparició de cada base (A, G, C, T) Ajuda: utilitza un bucle while() per cada base:
while ($seq =~ /a/g) { $a++; }
Seqüència de DNA:
ExerciciExercici
agtactactcatgcacagctactcagtagctagctacgactacgtgactagcctacgtccagactgactagcacgtagacgactacgtagactagcacagcatgtaagatctactgacaaaaaaaaatgacatgactacgtgcgtgctgctgctga
![Page 63: Perl 17 i 18/des/2007 Programació en Perl: aplicacions bioinformàtiques Universitat de Girona](https://reader038.vdocuments.pub/reader038/viewer/2022110104/5665b4951a28abb57c9266be/html5/thumbnails/63.jpg)
Perl 17 i 18/des/2007
ExerciciExercici
#!/usr/bin/perl# countBases.pl
$sequencia=''; $a=0; $c=0; $g=0; $t=0;open(ARXIU, "sequencia.txt");while ($linia = <ARXIU>){
chomp $linia;$sequencia .= $linia;
} close(ARXIU);print $sequencia,"\n\n";
while ($sequencia =~ /a/g){
$a++;}while ($sequencia =~ /c/g){
$c++;}while ($sequencia =~ /g/g){
$g++;}while ($sequencia =~ /t/g){
$t++;}print $a , " adenines\n";print $c , " citosines\n";print $g , " guanines\n";print $t , " timines\n";
![Page 64: Perl 17 i 18/des/2007 Programació en Perl: aplicacions bioinformàtiques Universitat de Girona](https://reader038.vdocuments.pub/reader038/viewer/2022110104/5665b4951a28abb57c9266be/html5/thumbnails/64.jpg)
Perl 17 i 18/des/2007
Substituir cadenesSubstituir cadenes
• Operador “s”:$RNA =~ s/T/U/g;
s: operador substituirT: patró a substituirU: text que reemplaçarà el patróg: modificador global
![Page 65: Perl 17 i 18/des/2007 Programació en Perl: aplicacions bioinformàtiques Universitat de Girona](https://reader038.vdocuments.pub/reader038/viewer/2022110104/5665b4951a28abb57c9266be/html5/thumbnails/65.jpg)
Perl 17 i 18/des/2007
Traduir cadenesTraduir cadenes
• Operador “tr”:$RNA =~ tr/GATC/CTAG/;
tr: operador traduirCanviarà cada caràcter de l’esquerra pels de la dreta, per ordre:
G C T AA T C G
![Page 66: Perl 17 i 18/des/2007 Programació en Perl: aplicacions bioinformàtiques Universitat de Girona](https://reader038.vdocuments.pub/reader038/viewer/2022110104/5665b4951a28abb57c9266be/html5/thumbnails/66.jpg)
Perl 17 i 18/des/2007
4 funcions útils4 funcions útils
• length: contar la longitud d’una cadena$cadena = ‘ACTTGGAG’;$longCadena = length $cadena;$longCadena és 8 !!!
• reverse: invertir l’ordre d’un cadena o matriu$cadena = ‘ACTTGGAG’;$invertida = reverse $cadena;$invertida és GAGGTTCA !!!
• split: transformar cadenes en matrius$cadena = ‘joan,pere,miquel,roger’;@noms = split /,/, $cadena; # // conté el patró per on tallar # separarà cada caràcter si // està buit@noms és (‘joan’, ‘pere’, ‘miquel’, ‘roger’) !!!
• join: transformar matrius en cadenes@noms = (‘joan’, ‘pere’, ‘miquel’, ‘roger’);$cadena = join /--/, @noms;$cadena és joan--pere--miquel--roger !!!
![Page 67: Perl 17 i 18/des/2007 Programació en Perl: aplicacions bioinformàtiques Universitat de Girona](https://reader038.vdocuments.pub/reader038/viewer/2022110104/5665b4951a28abb57c9266be/html5/thumbnails/67.jpg)
Perl 17 i 18/des/2007
ExercicisExercicis
Curso de Perl (10 ejercicios) http://bioinformatica.uab.cat/bioinfouab/Resources/CursoPerl/CursoPerl.asp
– Exercici 1C– Exercici 1D– Exercici 2H– Exercici 3A– Exercici 4A– Exercici 4B
![Page 68: Perl 17 i 18/des/2007 Programació en Perl: aplicacions bioinformàtiques Universitat de Girona](https://reader038.vdocuments.pub/reader038/viewer/2022110104/5665b4951a28abb57c9266be/html5/thumbnails/68.jpg)
Perl 17 i 18/des/2007
SUBRUTINESSUBRUTINES
![Page 69: Perl 17 i 18/des/2007 Programació en Perl: aplicacions bioinformàtiques Universitat de Girona](https://reader038.vdocuments.pub/reader038/viewer/2022110104/5665b4951a28abb57c9266be/html5/thumbnails/69.jpg)
Perl 17 i 18/des/2007
SubrutinesSubrutines
• Eviten repetir codi a diferents parts del programa o a diferents programes– Es poden guardar en arxius
independents
– Aquests arxius independents tenen l’extensió .pm (perl module)
– L’última línia de l’arxiu ha de ser:
1;
![Page 70: Perl 17 i 18/des/2007 Programació en Perl: aplicacions bioinformàtiques Universitat de Girona](https://reader038.vdocuments.pub/reader038/viewer/2022110104/5665b4951a28abb57c9266be/html5/thumbnails/70.jpg)
Perl 17 i 18/des/2007
#!/usr/bin/perl# subrutinas.plprint "\nresultado: ", suma(2,6), "\n";
sub suma{$valor1 = $_[0];$valor2 = $_[1];return $valor1 + $valor2;
}
#!/usr/bin/perl# minilib.pmsub suma{
$valor1 = $_[0];$valor2 = $_[1];return $valor1 + $valor2;
}1;
#!/usr/bin/perl# principal.pl
use minilib;
print "\nresultado: ”;print suma(2,6);print "\n";
En un sol arxiu .pl
En dos arxius (.pl i .pm)
![Page 71: Perl 17 i 18/des/2007 Programació en Perl: aplicacions bioinformàtiques Universitat de Girona](https://reader038.vdocuments.pub/reader038/viewer/2022110104/5665b4951a28abb57c9266be/html5/thumbnails/71.jpg)
Perl 17 i 18/des/2007
PackagesPackages
#!/usr/bin/perl# miniAN_cliente.pluse ADN; use ARN;
$cadena = “AGC”;$comp = complementa($cadena); # equival
main::complementaprint ADN::complementa($cadena); # :: o bé ->print ARN::complementa($cadena); # :: o bé ->
#!/usr/bin/perlPackage ARN;sub complementa{#(...)}1;
#!/usr/bin/perlPackage ADN;sub complementa{#(...)}1;
![Page 72: Perl 17 i 18/des/2007 Programació en Perl: aplicacions bioinformàtiques Universitat de Girona](https://reader038.vdocuments.pub/reader038/viewer/2022110104/5665b4951a28abb57c9266be/html5/thumbnails/72.jpg)
Perl 17 i 18/des/2007
ExercicisExercicis
Curso de Perl (10 ejercicios) http://bioinformatica.uab.cat/bioinfouab/Resources/CursoPerl/CursoPerl.asp
– Exercici 5C
![Page 73: Perl 17 i 18/des/2007 Programació en Perl: aplicacions bioinformàtiques Universitat de Girona](https://reader038.vdocuments.pub/reader038/viewer/2022110104/5665b4951a28abb57c9266be/html5/thumbnails/73.jpg)
Perl 17 i 18/des/2007
MÒDULSMÒDULS
![Page 74: Perl 17 i 18/des/2007 Programació en Perl: aplicacions bioinformàtiques Universitat de Girona](https://reader038.vdocuments.pub/reader038/viewer/2022110104/5665b4951a28abb57c9266be/html5/thumbnails/74.jpg)
Perl 17 i 18/des/2007
Mòduls PerlMòduls Perl
• Scripts o programes que fan operacions útils i que poden incorporar-se fàcilment al nostre codi
• La funció PPM (Perl Package Manager) d’Active Perl permet la instal·lació automàtica de mòduls
• Exemples:
– LWP: Mòdul d’accés a pàgines web; permet copiar el contingut de pàgines web (codi font) a partir de la URL
– DBI: Mòdul d’accés a bases de dades (ex. MS Access, MySQL, …); permet consultar informació, afegir-la, modificar-la, …
– CGI: Recollida de variables des de formularis web
– BioPerl: Mòduls útils per a la bioinformàtica
![Page 75: Perl 17 i 18/des/2007 Programació en Perl: aplicacions bioinformàtiques Universitat de Girona](https://reader038.vdocuments.pub/reader038/viewer/2022110104/5665b4951a28abb57c9266be/html5/thumbnails/75.jpg)
Perl 17 i 18/des/2007
Instal·lació de mòdulsInstal·lació de mòduls
![Page 76: Perl 17 i 18/des/2007 Programació en Perl: aplicacions bioinformàtiques Universitat de Girona](https://reader038.vdocuments.pub/reader038/viewer/2022110104/5665b4951a28abb57c9266be/html5/thumbnails/76.jpg)
Perl 17 i 18/des/2007
LWPLWP
#!/usr/bin/perl –w# modulo-LWP.pl
use LWP::Simple;
# Formular la URL apropiada $url = "http://www.ncbi.nlm.nih.gov/entrez/viewer.fcgi?
txt=on&list_uids=2779343&db=nucleotide&view=fasta";
# Obtener los contenidos desde la web $content = get $url;print $content;
WEBPAGE
(codi font) Perl Script
= SCREEN SCRAPING
![Page 77: Perl 17 i 18/des/2007 Programació en Perl: aplicacions bioinformàtiques Universitat de Girona](https://reader038.vdocuments.pub/reader038/viewer/2022110104/5665b4951a28abb57c9266be/html5/thumbnails/77.jpg)
Perl 17 i 18/des/2007
Altres mòduls bàsics de PerlAltres mòduls bàsics de Perl
Database (MS Access,
MySQL, Oracle, …)Perl Script
Altres coneixements
necessaris: llenguatge SQL
DBI
Formulari WEB
Perl Script
Cal tenir instal·lat un servidor (IIS,
Apache, …)
CGI
Generar gràfics en diferents
formatsPerl Script
GD
![Page 78: Perl 17 i 18/des/2007 Programació en Perl: aplicacions bioinformàtiques Universitat de Girona](https://reader038.vdocuments.pub/reader038/viewer/2022110104/5665b4951a28abb57c9266be/html5/thumbnails/78.jpg)
Perl 17 i 18/des/2007
Altres mòduls de PerlAltres mòduls de Perl
Perl Script
Mail::Sendmail
Tk
Interfícies gràfiques per als teus
programes Perl
Perl Script
![Page 79: Perl 17 i 18/des/2007 Programació en Perl: aplicacions bioinformàtiques Universitat de Girona](https://reader038.vdocuments.pub/reader038/viewer/2022110104/5665b4951a28abb57c9266be/html5/thumbnails/79.jpg)
Perl 17 i 18/des/2007
BioPerlBioPerl
• Col·lecció de mòduls Perl:
– Manipular seqüències
– Accés a algunes bases de dades moleculars (GenBank, PDB)
– Executar programes habituals (Blast, ClustalW) i recuperar-ne els resultats
• Orientat a Objectes:
– Objectes bàsics: seqüències, estructures, …
![Page 80: Perl 17 i 18/des/2007 Programació en Perl: aplicacions bioinformàtiques Universitat de Girona](https://reader038.vdocuments.pub/reader038/viewer/2022110104/5665b4951a28abb57c9266be/html5/thumbnails/80.jpg)
Perl 17 i 18/des/2007
Un exempleUn exemple
#!/usr/bin/perl# bioperl-ejemplo.pl# Realizar distintas operaciones en una secuenciause Bio::Seq; # indicamos el módulo a utilizar
my $seq = Bio::Seq->new( -seq => 'ATGGGGGTGGTGGTACCCT', -id => 'human_id', -accession_number => 'AL000012', ); # creamos un objeto con datos
print $seq->seq() . “\n”; # muestra la secuenciaprint $seq->revcom->seq() . “\n”;# inversa complementariaprint $seq->alphabet() . “\n”; # ‘dna’,‘rna’,‘protein’print $seq->translate->seq() . “\n”; # trad. a proteina
ATGGGGGTGGTGGTACCCTAGGGTACCACCACCCCCATdnaMGVVVP
![Page 81: Perl 17 i 18/des/2007 Programació en Perl: aplicacions bioinformàtiques Universitat de Girona](https://reader038.vdocuments.pub/reader038/viewer/2022110104/5665b4951a28abb57c9266be/html5/thumbnails/81.jpg)
Perl 17 i 18/des/2007
Ejemplo SeqStatsEjemplo SeqStats
# (...)
use Bio::Tools::SeqStats;
$seq_stats = Bio::Tools::SeqStats->new(-seq=>$seq);
$hash_ref = $seq_stats->count_monomers();
foreach $base (sort keys %$hash_ref) { print "Numero de bases ", $base, "= ",
%$hash_ref->{$base},"\n";}
Numero de Bases A= 2Numero de Bases C= 3Numero de Bases G= 9Numero de Bases T= 5
![Page 82: Perl 17 i 18/des/2007 Programació en Perl: aplicacions bioinformàtiques Universitat de Girona](https://reader038.vdocuments.pub/reader038/viewer/2022110104/5665b4951a28abb57c9266be/html5/thumbnails/82.jpg)
Perl 17 i 18/des/2007
Acceso a bases de datos remotasAcceso a bases de datos remotas
• El package DB permet recuperar seqüències de diferents bases de dades (genbank, genpept, RefSeq, swissprot, EMBL, AceDB, GDB)
use Bio::DB::GenBank;
$gb = new Bio::DB::GenBank();
$seq1 = $gb->get_Seq_by_acc('AF303112');
print ">AF303112\n" , $seq1->seq() , "\n\n";
![Page 83: Perl 17 i 18/des/2007 Programació en Perl: aplicacions bioinformàtiques Universitat de Girona](https://reader038.vdocuments.pub/reader038/viewer/2022110104/5665b4951a28abb57c9266be/html5/thumbnails/83.jpg)
Perl 17 i 18/des/2007
Alguns mòduls de BioPerlAlguns mòduls de BioPerl
Bio :: Seq Sequence object, with features
Bio :: SimpleAlign Multiple alignments held as a set of sequences
Bio :: DB :: GenBank Database object interface to GenBank
Bio :: DB :: NCBIHelper A collection of routines for queries to NCBI DDBB
Bio :: DB :: SwissProt Database object interface to SWISS-PROT retrieval
Bio :: Tools :: Blast Bioperl BLAST sequence analysis object
Bio :: Tools :: BPlite Lightweight BLAST parser
Bio :: Tools :: SeqPattern Bioperl object for a sequence pattern or motif
Bio :: Tools :: SeqStats Object holding statistics for one particular sequence
Bio :: Tools :: Blast :: Run :: StandAloneBlast Bioperl module for running BLAST analyses locally
Bio :: Tools :: Blast :: Run :: RemoteBlast Bioperl module for running BLAST through HTTP
Bio::Tools::Run::Alignment::Clustalw Bioperl module for running ClustalW analyses locally
Bio :: Tools :: Prediction :: Exon Predicted exon feature
Bio :: Tools :: Prediction :: Gene Predicted gene structure feature
Bio :: SeqIO Format conversion of sequences
Bio :: AlignIO Format conversion of alignments
Bio :: Structure :: IO Structure objects of PDB
Browse all modules at http://www.bioperl.org/wiki/Category:Modules
![Page 84: Perl 17 i 18/des/2007 Programació en Perl: aplicacions bioinformàtiques Universitat de Girona](https://reader038.vdocuments.pub/reader038/viewer/2022110104/5665b4951a28abb57c9266be/html5/thumbnails/84.jpg)
Perl 17 i 18/des/2007
ExercicisExercicis
Curso de Perl (10 ejercicios) http://bioinformatica.uab.cat/bioinfouab/Resources/CursoPerl/CursoPerl.asp
– Exercici 10A– Exercici 10B– Exercici 10C (però utilitzant RemoteBlast)
– Exercici 10D
![Page 85: Perl 17 i 18/des/2007 Programació en Perl: aplicacions bioinformàtiques Universitat de Girona](https://reader038.vdocuments.pub/reader038/viewer/2022110104/5665b4951a28abb57c9266be/html5/thumbnails/85.jpg)
Perl 17 i 18/des/2007
EXEMPLE INTEGRADOREXEMPLE INTEGRADOR
![Page 86: Perl 17 i 18/des/2007 Programació en Perl: aplicacions bioinformàtiques Universitat de Girona](https://reader038.vdocuments.pub/reader038/viewer/2022110104/5665b4951a28abb57c9266be/html5/thumbnails/86.jpg)
Perl 17 i 18/des/2007
ExercicisExercicis
Curso de Perl (10 ejercicios) http://bioinformatica.uab.cat/bioinfouab/Resources/CursoPerl/CursoPerl.asp
– Exercici 7A– Exercici 7B– Exercici 7C– Exercici 8A
![Page 87: Perl 17 i 18/des/2007 Programació en Perl: aplicacions bioinformàtiques Universitat de Girona](https://reader038.vdocuments.pub/reader038/viewer/2022110104/5665b4951a28abb57c9266be/html5/thumbnails/87.jpg)
Perl 17 i 18/des/2007
COM SEGUIR AVANÇANT?COM SEGUIR AVANÇANT?
![Page 88: Perl 17 i 18/des/2007 Programació en Perl: aplicacions bioinformàtiques Universitat de Girona](https://reader038.vdocuments.pub/reader038/viewer/2022110104/5665b4951a28abb57c9266be/html5/thumbnails/88.jpg)
Perl 17 i 18/des/2007
Perl web site
http://www.perl.com
Bioperl
http://www.bioperl.org
CPAN: Comprehensive Perl Archive Network
http://www.cpan.org/
FAQs Frequently Asked Questions
http://www.perl.com/pub/q/faqs
Beginners
http://learn.perl.org
Manuales Online
http://www.perl.com/pub/v/documentation
Recursos de PerlRecursos de Perl
![Page 89: Perl 17 i 18/des/2007 Programació en Perl: aplicacions bioinformàtiques Universitat de Girona](https://reader038.vdocuments.pub/reader038/viewer/2022110104/5665b4951a28abb57c9266be/html5/thumbnails/89.jpg)
Perl 17 i 18/des/2007
O'Reilly
Llibres de PerlLlibres de Perl