Bioinfomatique et Perl 1
Bioinformatique Bioinformatique et Perlet Perl
Les éléments de baseLes éléments de base
2Bioinfomatique et Perl
IntroductionIntroduction
ObjectifObjectif : être capable de traiter : être capable de traiter automatiquement de grands volumes automatiquement de grands volumes de données et d’en extraire de données et d’en extraire l’information pertinentel’information pertinente
Exemples Exemples : : Recherches de motifs dans des séquences Recherches de motifs dans des séquences
biologiques nucléiques ou protéiquesbiologiques nucléiques ou protéiques Analyser automatiquement le résultat Analyser automatiquement le résultat
d’une requête BLASTd’une requête BLAST
3Bioinfomatique et Perl
Pourquoi Perl ?Pourquoi Perl ?
PerlPerl : Practical Extraction and Report : Practical Extraction and Report LanguageLanguage
Langage de script, syntaxe flexible, Langage de script, syntaxe flexible, rapide à maîtriserrapide à maîtriser
Particulièrement adapté à l’extraction Particulièrement adapté à l’extraction de données (expressions régulières)de données (expressions régulières)
Très présent dans la communauté Très présent dans la communauté bioinformatique (nombreux modules) bioinformatique (nombreux modules)
4Bioinfomatique et Perl
Infos pratiquesInfos pratiques
http://www.perl.comhttp://www.perl.com et et http://http://www.perl.orgwww.perl.org : sites de références : sites de références
Livres : plusieurs chez O’ReillyLivres : plusieurs chez O’Reilly
http://dept-info.labri.fr/~dutourhttp://dept-info.labri.fr/~dutour : :accès au site du cours Perl pour le accès au site du cours Perl pour le master Bioinfomaster Bioinfo
5Bioinfomatique et Perl
1. Un bref aperçu de Perl1. Un bref aperçu de Perl
Hello, World! (fichier hello.pl, Hello, World! (fichier hello.pl, exécutable)exécutable)
Exécution : ./hello.plExécution : ./hello.pl
#!/usr/bin/perl –w
# Premier programme
print « Hello, World!\n »;
6Bioinfomatique et Perl
Un premier exemple Un premier exemple bioinfobioinfo
(variables, tableaux, boucles)(variables, tableaux, boucles)motif.plmotif.pl
Recherche d’un motif dans une Recherche d’un motif dans une séquenceséquence
Sortie : tableau de toutes les Sortie : tableau de toutes les positionspositions
7Bioinfomatique et Perl
TableauxTableaux
@planetes = (@planetes = ("Mercure""Mercure", , "Venus""Venus", , "Terre""Terre", , "Mars""Mars", , "Jupiter""Jupiter", , "Saturne""Saturne", , "Uranus""Uranus", , "Neptune""Neptune", , "Pluton""Pluton"); );
print print ""troisième planète : $planetes[2]\ntroisième planète : $planetes[2]\n"";;
print print ""les planètes : @planetes\nles planètes : @planetes\n"";;
8Bioinfomatique et Perl
ExerciceExercice
Utiliser Utiliser indexindex plutôt que plutôt que substrsubstr
$pos = index($chaine, $souschaine)$pos = index($chaine, $souschaine)
retourne la position du 1er caractère de retourne la position du 1er caractère de $souschaine$souschaine dans dans $chaine$chaine,,
retourne -1 si pas trouvé.retourne -1 si pas trouvé.
Possibilité de rajouter un 3ème Possibilité de rajouter un 3ème paramètre indiquant l'indice dans paramètre indiquant l'indice dans $chaine$chaine à partir duquel on cherche à partir duquel on cherche $souschaine$souschaine. .
9Bioinfomatique et Perl
2. Autres notions 2. Autres notions incontournablesincontournables
Tables de hachageTables de hachage
Expressions régulièresExpressions régulières
FichiersFichiers
10Bioinfomatique et Perl
Tables de hachageTables de hachage
%trois_vers_un = (%trois_vers_un = ( Ala =>A, Cys=>C, Asp=>D, Glu=>E,Ala =>A, Cys=>C, Asp=>D, Glu=>E,
Phe=>F, Gly=>G, His=>H, Ile=>I,Phe=>F, Gly=>G, His=>H, Ile=>I,Lys=>K, Leu=>L, Met=>M, Asn=>N,Lys=>K, Leu=>L, Met=>M, Asn=>N,Pro=>P, Gln=>Q, Arg=>R, Ser=>S,Pro=>P, Gln=>Q, Arg=>R, Ser=>S,Thr=>T, Val=>V, Trp=>W,Tyr=>YThr=>T, Val=>V, Trp=>W,Tyr=>Y
););print print ""Le code pour l’Arginine (Arg) est Le code pour l’Arginine (Arg) est
$trois_vers_un{Arg}\n";$trois_vers_un{Arg}\n";
11Bioinfomatique et Perl
Recherches de motifsRecherches de motifs
C’est une des fonctionnalités les plus C’est une des fonctionnalités les plus importantes de Perlimportantes de Perl
En particulier, à l’aide d’expressions En particulier, à l’aide d’expressions régulièresrégulières
$sequence = $sequence = ""CCATTGCatC*TACAC...CCATTGCatC*TACAC..."";;
if ($sequence =~ /[^ATGC]/i ) { print if ($sequence =~ /[^ATGC]/i ) { print ""trouvé : $1\ntrouvé : $1\n"; "; }}
if ($sequence =~ /CA.C/i ) { print if ($sequence =~ /CA.C/i ) { print ""trouvé\ntrouvé\n"; "; }}
12Bioinfomatique et Perl
Parcours d’un fichierParcours d’un fichier
Exemple de parcours ligne par ligne d’un Exemple de parcours ligne par ligne d’un fichier passé en paramètre du script Perl :fichier passé en paramètre du script Perl :
Par défaut, Par défaut, $_$_ contient la ligne à chaque contient la ligne à chaque lecture.lecture.
On peut nommer la variable explicitement :On peut nommer la variable explicitement : while ( $ligne = <> ) … while ( $ligne = <> ) …
while ( <> ) { # traitement print $_ ; }
13Bioinfomatique et Perl
3. Traiter une sortie de 3. Traiter une sortie de BLASTBLAST blast.plblast.pl
C’est un exemple très classique en C’est un exemple très classique en bioinfobioinfo
Recherches et occurrences de motifs Recherches et occurrences de motifs dans les séquences Query et Sbjctdans les séquences Query et Sbjct
Attention : le programme ne fait peut-Attention : le programme ne fait peut-être pas exactement ce qu’on espère…être pas exactement ce qu’on espère…(cf résultats attendus : (cf résultats attendus : blast_res.txtblast_res.txt) )
14Bioinfomatique et Perl
ExercicesExercices
Jouez le jeu, ne regardez pas les Jouez le jeu, ne regardez pas les solutions avant…solutions avant…
Rendre correct le programme Rendre correct le programme précédentprécédent
Explorer plusieurs solutionsExplorer plusieurs solutions