V.2002-2003.1 Daniel Gautheret et Denis Thieffry
Tableaux, boucles
Le fichier "seq" contient un tableau "@seq" déclaré selon la syntaxe Perl. Ce tableau contient une séquence d'environ 2000 nt.
Réalisez un programme affichant:
Essayez de programmer l'une des boucle avec for ou while, puis avec foreach.
Pour la boucle "nombre d'occurences", réalisez une version stockant le nombre de nucléotides dans un tableau associatif de type $tab{"A"}; $tab{"G"} etc.
Lecture de fichiers, chaines de caractères, expressions régulières
a) Réalisez un programme lisant un fichier de séquence au format Fasta et comptant les occurrences d'une expression reguliere dans les séquences lues.
b) L'opérateur =~ a pour inconvénient de ne pas compter les occurences chevauchantes d'un motif (par exemple, le motif AGA intervient deux fois dans AGAGA mais n'est vu qu'une fois). A l'aide d'une boucle for avancant pas à pas sur la séquence, modifiez le programme précédent pour compter TOUTES les instances d'un motif. Appliquez ce programme au comptage d'hexamères dans "petiteseq.fasta".
Passage d'arguments, perfectionnement
Réalisez un programme lisant un fichier de séquence au format Fasta et un fichier de motifs dans le même format que "allsites.txt". Le programme recherche ensuite les occurences de chacun des motifs dans les séquences et affiche un message chaque fois qu'un motif est trouvé.
VARIANTE: Modifier le programme pour qu'il accepte les motifs comportant une erreur de type mutation ou délétion par rapport au motif initial.
Parser de Blast
Réalisez un script Perl lisant une sortie de Blast (prenez par exemple la sortie sauvegardée lors des exercices Unix) et affichant pour chaque HSP: