IFT3295 Démonstration 28 septembre 2011 Shift-And (avec erreurs)

Slides:



Advertisements
Présentations similaires
Création d’une maison avec le logiciel
Advertisements

Informatique Deug2 Sciences Eco S. Maabout 2004/2005.
Introduction à l’Algorithmique
Un exemple de TP collaboratif
Préparé par: Mme Nada FAQIR
Correction contrôle.
Objectifs Présentation et utilisation du langage PERL
Thème : Le droit de propriété
Les outils : - OPTIGEDE -Plate-forme A3P
IN302 – Chapitre 1 Notions de base, connexité. Rappels sur la complexité
11:20:16 Programmation Web PHP Création et manipulation d'images Jérôme CUTRONA
PhpMyAdmin 01:08:02 Programmation Web
Cours facultatif de bureautique
1 Bienvenue Démonstration flash.
MODULE ER13 PROJET INFORMATIQUE DEVELOPPEMENT en EQUIPE
Mai 2000PSK311 PSK31: Un nouveau mode digital © 2000 by HB9HFN.
Présentation sommaire le 01 août 2011
Professeure : Kaoutar Année Scolaire : 2012 / 2013
GLOBAL SPACE-X UN COMPARATIF ENTRE MAGASINS.
Sélection doligonucléotides spécifiques à laide de familles de graines AS Indexation de Texte et Découverte de Motifs Lina (Nantes) mai 2004.
Travail Pratique – Conception et analyse d’algorithmes
Programme de baccalauréat en informatique Algorithmique et programmation IFT-1001 Thierry EUDE Hatem Mahbouli Laboratoire #12 Département dinformatique.
Algorithmique et programmation Informatique Cours 9 12/11/2001.
L’utilisation des bases de données
Règles & conseils de base en PreAO
Structures de données IFT Abder Alikacem La classe string Département dinformatique et de génie logiciel Édition Septembre 2009 Département dinformatique.
Structures de données IFT-2000
16 septembre 2013 Algorithme Boyer-Moore-Horspool
1 GPA435 Systèmes dexploitation et programmation de système Copyright, 2000 © Tony Wong, Ph.D. Chapitre 9 Programmation nawk(1)
INF4420: Sécurité Informatique
Plan de la rencontre #6 Approches pédagogiques pour l ’utilisation des NTIC Scénarios d ’utilisation des NTIC Logiciels-outils et écriture Activité: Réalisation.
Christine Bonnet SOURCES : « Samples » dOracle, « Oracle 8 » R. Chapuis PRO*C – C ++
NORMALISATION DES LANGAGES DE PROGRAMMATION des Automates Programmables Industriels CEI Jean-Jacques DUMÉRY -1-
Exemple : (fichier “ automobile ”)
Structures de données IFT-10541
NORMALISATION DES LANGAGES DE PROGRAMMATION des Automates Programmables Industriels CEI
Introduction Le SQL (Structured  Query Language) est un langage universel de gestion des bases de données. Il a une triple fonction : LDD Langage de Définition.
Création JJ Pellé le 11 octobre 2009
1 Exemples Construction et implantation de types de données abstraits.
ALGORITHME DE TRI Le tri par insertion.
PROJET d’ INFORMATIQUE:
Le glossaire Outil qui permet d’enregistrer des mots, des portions de phrases ou des phrases que l’on tape régulièrement et que l’on pourra récupérer afin.
Labo II : Tableaux et pointeurs
Présenté par : Jabli Mohamed Amine Brahim Raddaoui
Algorithmes sur les sons
1 F o r m a t i o n A R S FTP anonyme, Archie 2 F o r m a t i o n A R S FTP ANONYMOUS m Premier service d'accès à des documents publics. m Repose très.
Josselin FRANCOIS & Axel RICHARD. Présentation de l’application Présentation de l’application Les Modifications apportées Les Modifications apportées.
Recherche exacte de motifs
Master 1 SIGLIS Java Lecteur Stéphane Tallard Chapitre 1 – Objets et Classes Master 1 SIGLIS1Java Lecteur - Chapitre 1 Objets et classes.
Institut Supérieur d’Informatique
Historique 1990 : création 2007 : partenariat Cosoluce : PES v2.
Votre solution de suivi et d’analyse éditique
Alignement de séquences biologiques
Interface Graphique Logiciel de dictées Trenza et Miguet 2006.
3ième Séance Formules et Fonctions
1. CHOIX SERIE S 1S 3 Fin S 4 S 2 S 5 S 6S 8S 9 S 7 S 10.
Modules Chapitre 1 : Système d’exploitation
Une carte mentale, à quoi ça sert ?
Réalisation d’un logiciel de Chiffrement RSA.
A la leçon de français. Les feuilles d’automne Les saisons de l’anneé.
(ou les supprimer) et normaliser les résultats…
Introduction à la programmation (420-PK2-SL) cours 22 Gestion des applications Technologie de l’information (LEA.BW)
Introduction à la programmation (420-PK2-SL) cours 21 Gestion des applications Technologie de l’information (LEA.BW)
GPA435 Systèmes d’exploitation et programmation de système Copyright, 2000 © Tony Wong, Ph.D. Chapitre 7 Neutralisation, redirection, décodage des paramètres,
Cours n°2 Implémentation et exploitation
Les banques de séquences nucléiques
M7-Géoréférencement Choix du code terrain…. Très important : choix du « type de code… » Paramètres divers…
Titre de la présentation idéalement sur deux lignes

Title. Text Title Text Title Text Title Text.
Transcription de la présentation:

IFT3295 Démonstration 28 septembre 2011 Shift-And (avec erreurs)

Plan Présentation en détail de l'algorithme Shift-And (avec erreurs) Présentation de PROSITE

Shift-And (avec erreurs) Wu et Manber (1992) Base du logiciel agrep de Unix Recherche approximative d'un mot dans un texte Permet les insertions, les délétions et les substitutions de caractères

Shift-And (avec erreurs) Exemple : –Texte : aabaacaabacab –Mot : aabac (|mot| = m) –Alphabet : {a, b, c} Pré-traitement : –Pour chaque caractère x de l'alphabet, on construit un tableau de bits S x tel que S x [pos] = 1 si mot pos = x (pour 1 <= pos <= m)

Shift-And (avec erreurs) Pré-traitement : –Pour chaque caractère x de l'alphabet, on construit un tableau de bits S x tel que S x [pos] = 1 si mot pos = x (pour 1 <= pos <= m) aabacaabac Mot : SaSa SbSb ScSc

Shift-And (avec erreurs) Soit k, le nombre d'erreurs que l'on veut permettre On doit construire (k+1) tableaux de bits R de taille m * (n+1) (où n = |texte|) (quoique la plupart des colonnes pourront être oubliées) : –R 0, R 1, …, R k

Shift-And (avec erreurs) Les tableaux R doivent être construits dans l'ordre croissant du nombre d'erreurs Regardons d'abord la construction de R 0, qui est l'équivalent de Shift-Or (recherche exacte)

Shift-And (avec erreurs) Au départ : aabaacaabacab a0 a0 b0 a0 c0 R0R0

Shift-And (avec erreurs) Objectif : trouver 1 sur la ligne m match aabaacaabacab a0 a0 b0 a0 c0 R0R0

Shift-And (avec erreurs) R 0 j+1 [i] = aabaacaabacab a0 a0 b0 a0 c0 R0R0 1 si R 0 j [i-1] = 1 et mot i = texte j+1 0 sinon j+1j i i-1

Shift-And (avec erreurs) aabaacaabacab a0 a0 b0 a0 c0 R0R0 R 0 j+1 [i] = 1 si R 0 j [i-1] = 1 et mot i = texte j+1 0 sinon j+1j i i-1

Shift-And (avec erreurs) aabaacaabacab a01 a0 b0 a0 c0 R0R0 R 0 j+1 [i] = 1 si R 0 j [i-1] = 1 et mot i = texte j+1 0 sinon j+1j i i-1

Shift-And (avec erreurs) aabaacaabacab a01 a0 b0 a0 c0 R0R0 R 0 j+1 [i] = 1 si R 0 j [i-1] = 1 et mot i = texte j+1 0 sinon j+1j i i-1

Shift-And (avec erreurs) aabaacaabacab a01 a0 b0 a0 c0 R0R0 R 0 j+1 [i] = 1 si R 0 j [i-1] = 1 et mot i = texte j+1 0 sinon j+1j i i-1

Shift-And (avec erreurs) aabaacaabacab a01 a00 b0 a0 c0 R0R0 R 0 j+1 [i] = 1 si R 0 j [i-1] = 1 et mot i = texte j+1 0 sinon j+1j i i-1

Shift-And (avec erreurs) aabaacaabacab a01 a00 b00 a00 c00 R0R0 R 0 j+1 [i] = 1 si R 0 j [i-1] = 1 et mot i = texte j+1 0 sinon

Shift-And (avec erreurs) aabaacaabacab a011 a001 b000 a000 c000 R0R0 R 0 j+1 [i] = 1 si R 0 j [i-1] = 1 et mot i = texte j+1 0 sinon

Shift-And (avec erreurs) Qu'est-ce que ça représente? aabaacaabacab a011 a001 b000 a000 c000 R0R0 j+1j i i-1

Shift-And (avec erreurs) Qu'est-ce que ça représente? aabaacaabacab a011 a001 b000 a000 c000 R0R0 j+1j i i-1

Shift-And (avec erreurs) Qu'est-ce que ça représente? aabaacaabacab a011 a001 b000 a000 c000 R0R0 j+1j i i-1

Shift-And (avec erreurs) Qu'est-ce que ça représente? aabaacaabacab a0110 a0010 b0001 a0000 c0000 R0R0 j+1j i i-1

Shift-And (avec erreurs) Qu'est-ce que ça représente? aabaacaabacab a0110 a0010 b0001 a0000 c0000 R0R0 j+1j i i-1

Shift-And (avec erreurs) Qu'est-ce que ça représente? aabaacaabacab a0110 a0010 b0001 a0000 c0000 R0R0 j+1j i i-1

Shift-And (avec erreurs) Cette transition peut être calculée bien plus efficacement R 0 j+1 = Rshift[R 0 j ] AND S j+1 où S j+1 est la table de pré- traitement du caractère qui est à la position j+1 dans le texte SaSa SbSb ScSc

Shift-And (avec erreurs) Rshift : –On décale les bits à droite d'une position, on élimine le dernier bit et on insère 1 à gauche Rshift[00000] = Rshift[10001] = 11000

Shift-And (avec erreurs) R 0 j+1 = Rshift[R 0 j ] AND S j+1 aabaacaabacab a0 a0 b0 a0 c0 R0R SaSa SbSb ScSc

Shift-And (avec erreurs) aabaacaabacab a0 a0 b0 a0 c0 R0R SaSa SbSb ScSc j+1 j R 0 j+1 = Rshift[R 0 j ] AND S j+1

Shift-And (avec erreurs) aabaacaabacab a01 a00 b00 a00 c00 R0R SaSa SbSb ScSc j+1 j 0 R 0 j+1 = Rshift[R 0 j ] AND S j+1

Shift-And (avec erreurs) aabaacaabacab a01 a00 b00 a00 c00 R0R SaSa SbSb ScSc j+1 j R 0 j+1 = Rshift[R 0 j ] AND S j+1

Shift-And (avec erreurs) aabaacaabacab a01 a00 b00 a00 c00 R0R SaSa SbSb ScSc j+1 j R 0 j+1 = Rshift[R 0 j ] AND S j+1

Shift-And (avec erreurs) aabaacaabacab a01 a00 b00 a00 c00 R0R SaSa SbSb ScSc j+1 j R 0 j+1 = Rshift[R 0 j ] AND S j+1

Shift-And (avec erreurs) aabaacaabacab a011 a001 b000 a000 c000 R0R SaSa SbSb ScSc j+1 j 0 R 0 j+1 = Rshift[R 0 j ] AND S j+1

Shift-And (avec erreurs) aabaacaabacab a011 a001 b000 a000 c000 R0R SaSa SbSb ScSc j+1 j R 0 j+1 = Rshift[R 0 j ] AND S j+1

Shift-And (avec erreurs) aabaacaabacab a011 a001 b000 a000 c000 R0R SaSa SbSb ScSc j+1 j R 0 j+1 = Rshift[R 0 j ] AND S j+1

Shift-And (avec erreurs) aabaacaabacab a011 a001 b000 a000 c000 R0R SaSa SbSb ScSc j+1 j R 0 j+1 = Rshift[R 0 j ] AND S j+1

Shift-And (avec erreurs) aabaacaabacab a0111 a0011 b0001 a0000 c0000 R0R SaSa SbSb ScSc j+1 j 0 R 0 j+1 = Rshift[R 0 j ] AND S j+1

Shift-And (avec erreurs) aabaacaabacab a0111 a0011 b0001 a0000 c0000 R0R SaSa SbSb ScSc j+1 j R 0 j+1 = Rshift[R 0 j ] AND S j+1

Shift-And (avec erreurs) aabaacaabacab a0110 a0010 b0001 a0000 c0000 R0R SaSa SbSb ScSc j+1 j R 0 j+1 = Rshift[R 0 j ] AND S j+1

Shift-And (avec erreurs) aabaacaabacab a a b a c R0R SaSa SbSb ScSc R 0 j+1 = Rshift[R 0 j ] AND S j+1

Shift-And (avec erreurs) Nous venons de voir la construction de R 0, qui est l'équivalent de Shift-Or (recherche exacte) Que fait-on pour R 1, R 2, …, R k ? Trois types d'erreurs sont permises : insertions, délétions et substitutions

Shift-And (avec erreurs) Insertion (1er cas) : a a b a a c a a b a c a b a j+1 i = 2 R 0 j+1 [2] = 0

Shift-And (avec erreurs) Insertion (1er cas) : a a b a a c a a b a c a b a a b j+1 i = 2 R 1 j+1 [2] = 1 R 0 j+1 [2] = 0

Shift-And (avec erreurs) Insertion (2e cas) : a a b a a c a a b a c a b a j+1 i = 2 R 0 j+1 [2] = 0

Shift-And (avec erreurs) Insertion (2e cas) : a a b a a c a a b a c a b a b a j+1 i = 2 R 0 j+1 [2] = 0 R 1 j+1 [2] = 1

Shift-And (avec erreurs) Délétion (1er cas) : a a b a a c a a b a c a b a b a a b j+1 i = 5 R 0 j+1 [5] = 0

Shift-And (avec erreurs) Délétion (1er cas) : a a b a a c a a b a c a b a b a a b j+1 i = 5 R 0 j+1 [5] = 0 R 1 j+1 [5] = 1

Shift-And (avec erreurs) Délétion (2e cas) : a a b a a c a a b a c a b a b a a b c j+1 i = 6 R 0 j+1 [6] = 0 R 1 j+1 [6] = 1

Shift-And (avec erreurs) Substitution (1er cas) : a a b a a c a a b a c a b a a b a c j+1 i = 5 R 0 j+1 [5] = 0

Shift-And (avec erreurs) Substitution (1er cas) : a a b a a c a a b a c a b a a b a c j+1 i = 5 R 0 j+1 [5] = 0 R 1 j+1 [5] = 1

Shift-And (avec erreurs) Substitution (2e cas) : a a b a a c a a b a c a b a a b c a j+1 i = 5 R 0 j+1 [5] = 0 R 1 j+1 [5] = 1

Shift-And (avec erreurs) On peut résumer tous ces cas dans la formule de transition suivante : R d j+1 = Rshift[R d j ] AND S j+1 OR Rshift[R d-1 j ] OR Rshift[R d-1 j+1 ] OR R d-1 j

Shift-And (avec erreurs) On peut résumer tous ces cas dans la formule de transition suivante : R d j+1 = Rshift[R d j ] AND S j+1 OR Rshift[R d-1 j OR R d-1 j+1 ] OR R d-1 j

Shift-And (avec erreurs) R d j+1 = Rshift[R d j ] AND S j+1 OR Rshift[R d-1 j OR R d-1 j+1 ] OR R d-1 j aabaacaabacab a0 a0 b0 a0 c0 R1R1

Shift-And (avec erreurs) R d j+1 = Rshift[R d j ] AND S j+1 OR Rshift[R d-1 j OR R d-1 j+1 ] OR R d-1 j aabaacaabacab a0 a0 b0 a0 c0 R1R1

Shift-And (avec erreurs) R d j+1 = Rshift[R d j ] AND S j+1 OR Rshift[R d-1 j OR R d-1 j+1 ] OR R d-1 j R 1 j+1 = Rshift[00000] AND OR Rshift[00000 OR 10000] OR = AND OR Rshift[10000] = OR = aabaacaabacab a0 a0 b0 a0 c0 R1R1 j+1 j

Shift-And (avec erreurs) aabaacaabacab a a b a c R0R SaSa SbSb ScSc

R d j+1 = Rshift[R d j ] AND S j+1 OR Rshift[R d-1 j OR R d-1 j+1 ] OR R d-1 j R 1 j+1 = Rshift[00000] AND OR Rshift[00000 OR 10000] OR = AND OR Rshift[10000] = OR = aabaacaabacab a01 a01 b00 a00 c00 R1R1 j+1 j

Shift-And (avec erreurs) R d j+1 = Rshift[R d j ] AND S j+1 OR Rshift[R d-1 j OR R d-1 j+1 ] OR R d-1 j aabaacaabacab a01 a01 b00 a00 c00 R1R1 j+1 j

Shift-And (avec erreurs) R d j+1 = Rshift[R d j ] AND S j+1 OR Rshift[R d-1 j OR R d-1 j+1 ] OR R d-1 j R 1 j+1 = Rshift[11000] AND OR Rshift[10000 OR 11000] OR = AND OR Rshift[11000] OR = OR OR = aabaacaabacab a01 a01 b00 a00 c00 R1R1 j+1 j

Shift-And (avec erreurs) aabaacaabacab a a b a c R0R SaSa SbSb ScSc

R d j+1 = Rshift[R d j ] AND S j+1 OR Rshift[R d-1 j OR R d-1 j+1 ] OR R d-1 j R 1 j+1 = Rshift[11000] AND OR Rshift[10000 OR 11000] OR = AND OR Rshift[11000] OR = OR OR = aabaacaabacab a011 a011 b001 a000 c000 R1R1 j+1 j

Shift-And (avec erreurs) Il est inutile de garder toutes les colonnes des (k+1) tableaux en mémoire L'idée est de calculer la colonne (j+1) pour R 0, ensuite pour R 1, … et enfin pour R k Ensuite, on pourra oublier la colonne j de tous les tableaux lorsqu'on calculera la colonne (j+2)

Shift-And (avec erreurs) Complexité : –O(kn) lorsque le mot n'est pas trop grand avec k = nombre d'erreurs permises n = longueur du texte - O(kn * nbMotsMachine) sinon

PROSITE Base de données dédiée à l'identification de familles de protéines et de domaines Collection de motifs décrits en tant que patterns ou profils, reliés à la documentation décrivant les familles de protéines ou les domaines en question

PROSITE Pattern = expression régulière Les patterns sont identifiés à partir des alignements multiples des protéines d'une même famille

PROSITE Les patterns choisis représentent des motifs importants dans la séquence (10 à 20 acides aminés) –régions conservées qui ont une signification biologique importante (site catalytique, site de liaison, etc.) On peut identifier la fonction d'une protéine dont la séquence diffère beaucoup avec celles de la base de données si on y retrouve un certain pattern

PROSITE Syntaxe des patterns : –Chaque élément est séparé par - –x : n'importe quel –x(2) : x-x –x(2,4) : x-x, x-x-x ou x-x-x-x –[ALT] : Ala, Leu ou Thr –{AM} : n'importe quel sauf Ala, Met –< (au début) : doit être dans la partie N-terminale –> (à la fin) : doit être dans la partie C-terminale

PROSITE Exemples : –[AC]-x-V-x(4)-{ED} = [Ala or Cys]-any-Val-any-any-any-any-{any but Glu or Asp} –< A-x-[ST](2)-x(0,1)-V = Ala-any-[Ser or Thr]-[Ser or Thr]-(any or none)-Val qui doit être dans la partie N-terminale de la séquence