RAPPORT D ETUDE BIBLIOGRAPHIQUE. Stage de Master Recherche en Informatique



Documents pareils
La gestion de données dans le cadre d une application de recherche d alignement de séquence : BLAST.

MABioVis. Bio-informatique et la

Master IAD Module PS. Reconnaissance de la parole (suite) Alignement temporel et Programmation dynamique. Gaël RICHARD Février 2008

Limitations of the Playstation 3 for High Performance Cluster Computing

UTILISATION DE LA PLATEFORME WEB D ANALYSE DE DONNÉES GALAXY

Baccalauréat ES/L Amérique du Sud 21 novembre 2013

Évaluation et implémentation des langages

Sciences de Gestion Spécialité : SYSTÈMES D INFORMATION DE GESTION

Sujet proposé par Yves M. LEROY. Cet examen se compose d un exercice et de deux problèmes. Ces trois parties sont indépendantes.

Métriques de performance pour les algorithmes et programmes parallèles

Intelligence Artificielle et Systèmes Multi-Agents. Badr Benmammar

Big Data et Graphes : Quelques pistes de recherche

Sujet 1 : Diagnostique du Syndrome de l apnée du sommeil par des techniques d analyse discriminante.

Big data et sciences du Vivant L'exemple du séquençage haut débit

Souad EL Bernoussi. Groupe d Analyse Numérique et Optimisation Rabat http ://

Baccalauréat ES Pondichéry 7 avril 2014 Corrigé

Jade. Projet Intelligence Artificielle «Devine à quoi je pense»


Evaluation des performances de programmes parallèles haut niveau à base de squelettes

Big Data et Graphes : Quelques pistes de recherche

Introduction aux bases de données: application en biologie

Segmentation d'images à l'aide d'agents sociaux : applications GPU

Modélisation aléatoire en fiabilité des logiciels

Info0804. Cours 6. Optimisation combinatoire : Applications et compléments

Programmation linéaire

4.2 Unités d enseignement du M1

Ebauche Rapport finale

L apprentissage automatique

Arithmétique binaire. Chapitre. 5.1 Notions Bit Mot

Programmation parallèle et distribuée

La reconnaissance moléculaire: la base du design rationnel Modélisation moléculaire: Introduction Hiver 2006

Synthèse d'images I. Venceslas BIRI IGM Université de Marne La

V- Manipulations de nombres en binaire

Chaînes de Markov au lycée

Baccalauréat ES Antilles Guyane 12 septembre 2014 Corrigé

Optimisation multi-critère pour l allocation de ressources sur Clouds distribués avec prise en compte de l énergie

Logiciel Libre Cours 3 Fondements: Génie Logiciel

FORMATION CONTINUE SUR L UTILISATION D EXCEL DANS L ENSEIGNEMENT Expérience de l E.N.S de Tétouan (Maroc)

«clustering» et «load balancing» avec Zope et ZEO

VMWare Infrastructure 3

Apprentissage Automatique

INTERSYSTEMS CACHÉ COMME ALTERNATIVE AUX BASES DE DONNÉES RÉSIDENTES EN MÉMOIRE

Plus courts chemins, programmation dynamique

Outil d aide au choix Serveurs Lot 4 Marché Groupement de Recherche

Julien MATHEVET Alexandre BOISSY GSID 4. Rapport RE09. Load Balancing et migration

Annexe 6. Notions d ordonnancement.

Présentation du module Base de données spatio-temporelles

Une bibliothèque de templates pour CUDA

Représentation des Nombres

Conception des systèmes répartis

Console de supervision en temps réel du réseau de capteurs sans fil Beanair

Algorithmes de Transmission et de Recherche de l Information dans les Réseaux de Communication. Philippe Robert INRIA Paris-Rocquencourt

Tests de performance du matériel

Présentation du PL/SQL

4. Utilisation d un SGBD : le langage SQL. 5. Normalisation

Modélisation du comportement habituel de la personne en smarthome

EXPLOITATIONS PEDAGOGIQUES DU TABLEUR EN STG

Projet Active Object

Baccalauréat ES Polynésie (spécialité) 10 septembre 2014 Corrigé

Analyse de la vidéo. Chapitre La modélisation pour le suivi d objet. 10 mars Chapitre La modélisation d objet 1 / 57

Introduction à MATLAB R

Intégration de la dimension sémantique dans les réseaux sociaux

LES OUTILS D ALIMENTATION DU REFERENTIEL DE DB-MAIN

MCMC et approximations en champ moyen pour les modèles de Markov

DES FOURMIS POUR LIVRER DU MAZOUT

Baccalauréat ES/L Métropole La Réunion 13 septembre 2013 Corrigé

Etude d un cas industriel : Optimisation de la modélisation de paramètre de production

Gènes Diffusion - EPIC 2010

Vision industrielle et télédétection - Détection d ellipses. Guillaume Martinez 17 décembre 2007

modélisation solide et dessin technique

Introduction au Data-Mining

Cours de Master Recherche

Livre blanc. Au cœur de Diskeeper 2010 avec IntelliWrite

Grandes lignes ASTRÉE. Logiciels critiques. Outils de certification classiques. Inspection manuelle. Definition. Test

Sauvegarde collaborative entre pairs Ludovic Courtès LAAS-CNRS

Health Monitoring pour la Maintenance Prévisionnelle, Modélisation de la Dégradation

Importance de la défragmentation en environnements virtuels

Le Ro le Hyper V Troisie me Partie Haute disponibilite des machines virtuelles

Introduction au datamining

Représentation d un entier en base b

Initiation au HPC - Généralités

3 Approximation de solutions d équations

L utilisation d un réseau de neurones pour optimiser la gestion d un firewall

Comment reproduire les résultats de l article : POP-Java : Parallélisme et distribution orienté objet

Technologie de déduplication de Barracuda Backup. Livre blanc

COURS SYRRES RÉSEAUX SOCIAUX INTRODUCTION. Jean-Loup Guillaume

Master de Bioinformatique et Biologie des Systèmes Toulouse Responsable : Pr. Gwennaele Fichant

Les clusters Linux. 4 août 2004 Benoît des Ligneris, Ph. D. benoit.des.ligneris@revolutionlinux.com. white-paper-cluster_fr.sxw, Version 74 Page 1

La reconquête de vos marges de manœuvre

Identification de nouveaux membres dans des familles d'interleukines

Objectifs. Clustering. Principe. Applications. Applications. Cartes de crédits. Remarques. Biologie, Génomique

UEO11 COURS/TD 1. nombres entiers et réels codés en mémoire centrale. Caractères alphabétiques et caractères spéciaux.

Communications collectives et ordonnancement en régime permanent pour plates-formes hétérogènes

Rappels sur les suites - Algorithme

INITIATION AU LANGAGE C SUR PIC DE MICROSHIP

Raisonnement probabiliste

Programmation C. Apprendre à développer des programmes simples dans le langage C

Fonctions de plusieurs variables

Hiérarchie matériel dans le monde informatique. Architecture d ordinateur : introduction. Hiérarchie matériel dans le monde informatique

M2-Images. Rendu Temps Réel - OpenGL 4 et compute shaders. J.C. Iehl. December 18, 2013

Transcription:

RAPPORT D ETUDE BIBLIOGRAPHIQUE Stage de Master Recherche en Informatique Université de Rennes 1 Sujet : Analyse des génomes sur GPU Ricardo ASENCIO Février 2007 Encadrant : Dominique LAVENIER 1

Table des matières 1. Introduction... 1 2. L alignement de multiples séquences... 2 3. Méthodes d alignement.... 2 3.1. Programmation dynamique et complexité de calcul... 2 3.2. Construction progressive de l alignement... 3 3.3. Méthodes Itératives... 4 3.4. Les modèles cachés de Markov... 5 3.5. Algorithmes génétiques et recuit simulé... 6 3.6. Recherche de motifs... 6 3.7. BLAST... 7 4. HMMER... 8 4.1. L algorithme de Viterbi :... 8 4.2. L architecture... 8 4.3. HMMer dans les GPUs... 9 4.4. Resultats... 11 5. Conclusion... 11 Références :... 12 2

1. Introduction Dans le domaine de la biologie moléculaire, la recherche d une séquence de protéines dans une base de données est une tâche commune que l on répète très souvent. La conséquence de l augmentation de la taille des banques de séquences biologiques (la taille est doublée toutes les années) est que l on a besoin de trouver une manière de réaliser plus rapidement ces recherches. Cette opération de recherche consiste à trouver des similarités entre une séquence en particulier et un groupe de séquences de notre base de données. Elle permet aux biologistes d identifier des séquences qui partagent les mêmes sous séquences, lesquelles ont une fonctionnalité similaire du point de vue biologique. Les algorithmes utilisés pour détecter les similarités entre les séquences ont une complexité quadratique et comme conséquence un temps élevé de calcul. Pour résoudre ce problème, on utilise fréquemment des heuristiques dans l algorithme de recherche. Le principal inconvénient que l on trouve est que l heuristique la plus performante donne le pire des résultats. Une autre option, pour pouvoir obtenir des résultats de bonne qualité et un temps court, est d utiliser des machines avec de hautes performances. Ici on montre la possibilité d utiliser des cartes graphiques (GPU, Graphics Processing Unit) pour accélérer la recherche dans les bases de données génétiques. Le gain en performances des GPUs et l architecture de type parallèle permettent son utilisation dans un grand nombre de domaines d applications. De plus, depuis quelques années avec l introduction des GPUs programmables, on peut réaliser de tâches qui avant n étaient pas possibles. Comme exemples de ces applications on trouve la calcul scientifique, la géométrie, le traitement des images et la bioinformatique. Cette évolution des GPUs est due principalement au marché des jeux vidéo. Cela conduit à un prix par unité relativement bas et une évolution très rapide dans le développement des futures générations. Maintenant, les cartes graphiques hautes performances ont un rendement dix fois supérieur à celui des CPUs. De plus, les GPUs suivent une croissance plus rapide que celle de la loi de Moore qui affecte les CPUs. Pour conséquent, elles deviennent une alternative plus attractive pour l avenir. Cependant le principal inconvénient est la nécessité d avoir un spécialiste en cartes graphiques pour pouvoir reformuler les algorithmes en utilisant des primitives de graphiques (de triangles, de textures, de sommets et de fragments). De plus on trouve des restrictions dues à l architecture parallèle, telles que l impossibilité d avoir un accès d écriture aléatoire ou la non persistance des états (tous les registres sont effacés avant de traiter un nouveau fragment). Tout d abord, nous allons présenter les différents algorithmes «classiques», puis dans un deuxième temps nous aborderons des algorithmes qui peuvent présenter des avantages au moment de leur implémentation sur une carte graphique et qui seront utilisés durant le stage. 1

2. L alignement de multiples séquences Un alignement de multiples séquences (MSA, multiple sequence alignment) est un alignement de séquences de 3 séquences biologiques ou plus, généralement de protéines, DNA ou RNA. En général, les séquences d entrée ont une relation évolutionnaire par laquelle elles partagent une origine et proviennent d un ancêtre commun. De la MSA résultant, on peut déduire une séquence homologue où on peut réaliser un analyse phylogénétique pour connaître les origines partagées de la séquence. À ce moment on peut trouver des mutations de type insertion ou effacement. Ces méthodes permettent d avoir une connaissance de la conservation des domaines de protéines, des structures secondaires et tertiaires, et des aminoacides ou nucléotides. MSA fait aussi référence au processus d alignement d une sous séquence. A cause de la taille des séquences, on doit trouver des algorithmes pour produire et analyser les alignements. Les MSAs ont besoin de méthodologies plus sophistiquées que l alignement par pairs parce qu elles sont plus complexes à produire en temps de calcul. La plupart des programmes qui réalisent des MSAs utilisent des méthodes heuristiques parce que le coût d alignement des les séquences devient trop cher. 3. Méthodes d alignement. Il existe une grande quantité de méthodes pour réaliser la comparaison de séquences. Ici je vous présente les méthodes les plus importantes, leurs caractéristiques, leurs avantages et leurs limitations. 3.1. Programmation dynamique et complexité de calcul La méthode la plus directe pour produire des MSAs utilise la technique de programmation dynamique pour identifier la solution optimale d alignement. Pour les protéines, cette méthode implique deux jeux de paramètres, un espace (gap penalty) et une matrice de substitution qui assigne des poids ou des probabilités d alignement de chaque paire d aminoacides possible, basés sur la similitude des propriétés chimiques des aminoacides et leur probabilité de mutation. Pour les séquences de nucléotides on peut utiliser une matrice de substitution, mais comme il n existe que 4 caractères standards possibles par séquence et leur nucléotides individuelles ne différent pas beaucoup dans leur probabilité de substitution, les paramètres des séquences de DNA et de RNA usuellement consistent en un espace de pénalisation, un poids positif pour les séquences égales et un poids négatif pour les différentes. Pour une quantité n de séquences, cette méthode requière la construction d une matrice dimensionnelle équivalente à une autre matrice fabriquée par la méthode de programmation standard dynamique de pairs. Donc l espace de recherche augmente exponentiellement et devient dépendant de la taille de la séquence. Trouver l optimum global pour n séquences avec cette méthode devient un problème NP complexe. 2

Pour rendre la technique de programmation dynamique plus performante, on peut réaliser de la programmation dynamique dans chaque pair des séquences et cherche la solution dans son espace proche. La méthode de somme des pairs a été implémentée dans les MSA, mais elle n est pas pratique pour les applications qui ont besoin des alignements simultanés de dizaines ou centaines de séquences. C est pour cette raison que l on utilise les méthodes de programmation dynamique seulement lorsque l on a besoin d une très bonne qualité d alignement et que la quantité des séquences est faible. 3.2. Construction progressive de l alignement Une méthode qui permet l utilisation d heuristiques pendant la recherche est la technique progressive qui construit un MSA en réalisant des alignements de pairs dans les séquences successives qui ont une relation moins forte. Ces méthodes commencent par aligner les deux séquences les plus similaires, et ensuite la séquence suivante plus proche de l alignement obtenu dans le pas précédant. La paire initiale est déterminé par une méthode de clustering comme l addition de voisins basée dans une simple heuristique comme FASTA. Finalement, on obtient un arbre phylogénétique et un alignement. La principale limitation de ces méthodes est la dépendance dans l assignation initiale et la qualité du premier alignement. Les méthodes sont très sensibles à la distribution des séquences dans la liste de recherche ; on améliore la performance si la différence entre les séquences est faible. La performance est dégradée quand toutes les séquences dans l ensemble ont une relation distante parce que les imprécisions dans l alignement initial sont plus probables. La plupart des méthodes modernes progressives modifient leur fonction de pondération avec un poids secondaire qui assigne un facteur scalaire aux membres sur l ensemble de recherche en utilisant une fonction non linéaire basée sur leur distances phylogénétiques à partir de son voisin le plus proche. Une bonne élection du poids peut aider à mitiger les effets d un pauvre alignement initial. Les méthodes d alignement progressives sont suffisamment efficaces pour pouvoir les utiliser sur une grande quantité de séquences et sont couramment utilisées dans les serveurs web pour permettre aux utilisateurs d utiliser leurs services sans avoir la nécessité d installer localement un logiciel. Une méthode de ce type très utilisée est la méthode ClustalW, qui est une variante de la méthode Clustal où on utilise des poids. Cette méthode est utilisée sur plusieurs portails web (GenomeNet, EBI, EMBNet). Elle est très utilisée pour la construction des arbres phylogénétiques et comme entrée pour la prédiction de structures de protéines pour la modélisation homologue. Une autre méthode de ce type est la méthode T-coffee, qui est plus lente que la méthode Clustal, mais qui produit des alignements plus précis dans le cas des ensembles avec une relation faible. T-coffee utilise la sortie de Clustal ou de Lalign (un autre logiciel d alignement) et trouve les différentes régions des alignements locaux de deux séquences. L alignement et l arbre phylogénétique résultants sont utilisés comme un guide pour produire des facteurs de poids plus précis. 3

Comme ces méthodes sont de type heuristique, la convergence vers un optimum global n est pas garantie, la qualité de l alignement peut être difficile à évaluer et la relation avec une vraie entité biologique n est pas très claire. Une méthode semi progressive plus récente, qui améliore la qualité des alignements sans utiliser des heuristiques et permet d obtenir des résultats en un temps polynomial, a été implémentée dans le logiciel Psalign. 3.3. Méthodes Itératives Un ensemble de méthodes qui produisent des MSAs en réduisant les erreurs inhérentes aux méthodes progressives sont classifiées comme itératives parce qu elles travaillent d une façon similaire aux méthodes progressives mais en alignant à chaque fois les séquences initiales et en ajoutant des nouvelles séquences à la MSA. Une raison pour laquelle les méthodes progressives dépendent autant d un alignement initial de bonne qualité est le fait qu incorporer ces alignements dans le résultat final, c'est-à-dire, une fois qu une séquence a été alignée dans le MSA, son alignement n est plus considéré. Cette approximation améliore l efficacité en perdant de la précision. Au contraire, les méthodes itératives peuvent retourner des alignements de pairs qui avaient été calculés antérieurement en ajoutant des sous parties de la séquence recherchée pour améliorer la fonction objectif et avoir un alignement de bonne qualité. Un type un peu différent des méthodes itératives a été implémenté dans divers logiciels, mais l évaluation et la comparaison avec les autres techniques ne permet pas de définir quelle est la meilleure technique. Le logiciel PRRN / PRRP utilise un algorithme appelé hill climbing pour optimiser le poids d alignement de son MSA et il permet, d une façon itérative de corriger le poids d alignement et les régions localement divergentes ( gappy regions ) du MSA. Le PRRP a un rendement optimal quand on l utilise sur un alignement qui était déjà construit par une méthode plus rapide. L alignement des motifs individuels est réalisé avec une matrice de représentation, similaire à une matrice de points dans un alignement de pairs. Une méthode alternative qui utilise des alignements locaux rapides comme points clés pour une procédure globale d alignement est implémentée dans la méthode de Chaos / Dialign. Une troisième méthode basée sur l itération, appelée MUSCLE (multiple sequence alignment by log-expectation) améliore les méthodes progressives par une mesure de distance plus précise entre deux séquences. La mesure de distance est mise à jour après chaque itération (bien que dans la version initiale, MUSCLE contenait seulement 2 ou 3 itérations, dépendant du fait que les améliorations étaient ou non actives). 4

3.4. Les modèles cachés de Markov Les modèles cachés de Markov (Hidden Markov Model, HMM) sont des modèles de probabilité qui peuvent assigner des ressemblances à toutes les combinaisons possibles d espaces, de correspondances et de différences pour déterminer le MSA ou l ensemble de MSA les plus ressemblants. Ces modèles peuvent produire une sortie avec le poids le plus haut, mais aussi ils peuvent générer une famille d alignements possibles qui peut être évaluée pour une signification biologique. Comme ces modèles sont probabilistes, ils ne produisent pas la même solution à chaque fois qu on les utilise sur les mêmes données, donc on ne peut pas garantir la convergence vers un alignement optimal. Bien que ces modèles aient été développés récemment, ils offrent des améliorations significatives du point de vue du temps de calcul, particulièrement pour les séquences qui contiennent des régions qui se recouvrent. Les méthodes de Markov représentent un MSA sous la forme d un graphe d ordre partiel, qui consiste en une série de nœuds qui représentent les entrées possibles dans les colonnes d un MSA. Dans cette représentation, une colonne qui est conservée (où toutes les séquences dans le MSA partagent un caractère particulier dans une position particulière) est codée comme un nœud avec autant de connexions que de caractères possibles dans la colonne suivante à l alignement. Dans un modèle typique de Markov, les états observés sont les colonnes individuelles d alignement et les états cachés représentent la séquence ancestrale d où on suppose que les séquences de l ensemble proviennent. Une variante de la méthode dynamique de programmation pour réaliser la recherche, connue comme l algorithme de Viterbi, est utilisée pour aligner successivement les MSA qui appartiennent à l ensemble de recherche suivant pour produire un nouveau MSA. La différence entre cette méthode et la méthode d alignement progressive reside dans le fait d aligner les séquences au moment de réaliser une nouvelle addition de séquence. Cependant, comme les méthodes progressives, cette technique peut être influencée par l ordre dans lequel les séquences sont intégrées dans l alignement, spécialement si les séquences ont une relation distante. Une grande quantité de logiciels est disponible dans laquelle différentes variantes de ces méthodes ont été implémentées. Ces logiciels sont caractérisés par leur adaptabilité et leur efficacité. Le logiciel le plus simple est POA (Partial Order Alignement), une méthode similaire mais plus généralisée est implémentée dans SAM (Sequence Alignement and Modeling System). SAM a été utilisé comme une source d alignements pour la prédiction des structures de protéines pour participer au développement d une base de données. Ces méthodes peuvent aussi être utilisées pour la recherche dans une base de données avec HMMER. 5

3.5. Algorithmes génétiques et recuit simulé Les techniques d optimisation standard dans la science de l informatique ont été utilisées pour essayer de produire d une façon plus efficace des MSAs de bonne qualité. Dans ces techniques on trouve les algorithmes génétiques, qui ont été utilisés dans la production de MSAs dans une tentative de simuler un processus évolutionnaire qui donne une divergence dans l ensemble de recherche. Cette méthode consiste en le découpage des séries des MSAs possibles en fragments et réarranger ces fragments en introduisant des espaces dans des positions variables. Une fonction générale objectif est optimisée durant la simulation. Une technique pour les séquences de protéines a été implémentée dans le logiciel SAGA (Sequence Alignment by Genetic Algoritm) et son équivalent en RNA est le RAGA. La technique de recuit simulé, pour laquelle un MSA existant produit par une autre méthode, est affinée par une série de réarrangements destinés à trouver des régions optimales d alignements différentes de celles où l alignement d entrée se trouve. Comme dans la méthode de l algorithme génétique, le recuit simulé maximise une fonction objectif comme la fonction de la somme de pairs. Le recuit simulé utilise un «facteur de température» qui détermine le taux auquel les réarrangements arrivent et la similitude entre chaque réarrangement ; dans un usage typique, on alterne des périodes où le taux des réarrangements est élevé et la similitude faible (pour explorer les régions distantes dans l espace d alignement) avec des périodes ou le taux est mois élevé et la similitude est plus forte pour explorer un minimum local dans la nouvelle région. Cette méthode a été implémentée dans le logiciel MSASA (Multiple Sequence Alignment by Simulated Annealing). 3.6. Recherche de motifs La recherche de motifs, aussi connue sous le nom d analyse de profils consiste à trouver une séquence de motifs dans des MSAs globaux pour produire un meilleur MSA et une matrice de poids pour l utiliser dans la recherche de séquences avec des motifs similaires. Des variantes des méthodes d isolement des motifs ont été développées, mais toutes consistent à identifier de petits motifs qui sont conservés dans un alignement plus large et construire une matrice similaire à une matrice de substitution qui reflète l aminoacide ou la composition du nucléotide de chaque position dans le motif fils. On peut redéfinir l alignement en utilisant ces matrices. Dans l analyse de profil standard, la matrice inclut des entrées pour chaque caractère ou espace possible. Alternativement, les algorithmes du type recherche de motifs peuvent identifier des motifs comme des précurseurs aux MSAs au lieu de leur dérivation. Dans beaucoup de cas quand la recherche contient seulement une petite quantité de séquences ou contient seulement des séquences avec une forte relation, on utilise des pseudos comptables pour normaliser la distribution de la matrice de points. Cela permet de corriger les entrées avec une probabilité zéro dans la matrice, en les changeant pour des petites valeurs. 6

L analyse de blocs est une méthode pour trouver des motifs, limitée aux régions sans espaces dans l alignement. Les blocs peuvent être générés par un MSA, ou peuvent être extraits de séquences en utilisant un ensemble de motifs communs générés à partir de familles de gènes connues. Les valeurs des poids sont basées sur l espace des caractères de haute fréquence, et non pas sur le calcul d une matrice de substitution. 3.7. BLAST Blast (Basic Local Alignment Search Tool) est un des algorithmes le plus utilisé dans la comparaison des séquences biologiques parce qu il permet de comparer une séquence avec une base de données et d identifier les séquences qui sont similaires à partir d un seuil déterminé. C est pour cela que cet algorithme est utilisé dans d autres algorithmes qui ont besoin de trouver une approximation dans la recherche de séquences similaires. Cet algorithme a été développé par le National Center for Biotechnology Information (NCBI). Pour utiliser cet algorithme, on a besoin de deux séquences d entrée (la séquence à comparer et une séquence d une base de données). Normalement on trouve plusieurs milliards de nucléotides dans la base de données, et un millier dans la séquence à comparer. Blast utilise une approche heuristique similaire à celle de l algorithme Smith- Waterman pour donner une ponderation à la comparaison des séquences. Grace à l utilisation d une approche heuristique, l algorithme Blast est 50 fois plus rapide que celui de Smith-Waterman. L algorithme Blast peut être divisé en 3 étapes. Tout d abord, Blast cherche une équivalence exacte entre une longueur de la séquence et la base de données. Par exemple, si on a la séquence AGTTAC et la séquence ACTTAG, et une longueur égale à 3, Blast va identifier la sous séquence TTA comme commun aux 2 séquences. Ensuite, on aligne les séquences à partir de la sous séquence en commun, et on continue en cherchant des similitudes. À la fin, on donne un poids, et selon le poids on peut poursuivre à la troisième étape. Ici on voit un exemple qui correspond aux séquences de la première étape. Finalement, Blast réalise un alignement des espaces entre les séquences en utilisant une variante de l algorithme de Smith-Waterman. Les résultats qui sont intéressants statiquement sont donnés à l utilisateur. 7

4. HMMER HMMer est une collection de différents programmes qui réalisent différentes taches ayant pour but l analyse des séquences de protéines. Parmi les fonctionnalités que l on y trouve on a l alignement de séquences d un modèle déjà existant, construction d un modèle à partir de l alignement de multiples séquences, indexation d une base de données de HMM, recherche de séquences dans une base de données de HMM et recherche dans une base de données de séquences. Ces deux dernières fonctionnalités sont les plus utilisées. HMMer est basé sur l algorithme de Viterbi codé en C, et ses besoins en temps de calcul sont élevés. Au contraire des systèmes typiques de recherche d homologies, HMMer peut travailler d une façon locale ou globale, selon le modèle HMM. Typiquement, les alignements sont réalisés globalement par rapport à un HMM et localement par rapport à une séquence. 4.1. L algorithme de Viterbi : L algorithme de Viterbi cherche dans le HMM le chemin le plus vraisemblable pour une séquence donnée et la probabilité que ce chemin puisse produire cette séquence. Pour réaliser ces calculs, on calcule le maximum de tous les éléments. L état final le plus vraisemblable dans le HMM est l état avec la plus haute probabilité après l observation finale. Cela peut être utilisé pour trouver le prédécesseur le plus vraisemblable en réexaminant les probabilités de l état précédent et en les multipliant par leurs transitions et en choisissant la plus élevée. Après, si on parcourt le chemin en arrière (traceback), on peut trouver le chemin le plus probable. Ici on a le pseudo-code qui réalise le calcul des probabilités de Viterbi d une observation donnée et réalise une recherche en arrière pour trouver le chemin le plus probable. for i = 1 to length(observ): //observation loop for s in states: //state loop for t in states: //transition loop tmp=ptransition(t,s) prob[i-1][t] prob[i][s]=max(prob[i][s],tmp pemit(s, observ[i])) call traceback(prob[][]) 4.2. L architecture De part la complexité des calculs et la possibilité d appliquer beaucoup de HMMs à la même séquence, ces calculs ont besoin de plusieurs cycles de traitement. 8

Pour accélérer ces calculs, plusieurs plateformes ont été développés, par exemple celle qui utilise les GPUs développée par un équipe de Stanford et celle basée sur Altivec qui a été développée par Lindhal. Ces variantes exigent de changer le code, avec un gain en performance minimal, ou de changer l architecture matérielle, ce qui donne une meilleure performance, mais avec un coût de développement plus élevé. Les opérations HMMer dépendent d une construction précise d une représentation HMM d un MSA de séquences homologues de protéines. Ce HMM peut être appliqué à une base de données d autres séquences pour déterminer leurs homologies, ou il peut être groupé pour faire partie d un ensemble de familles de protéines de HMMs qui seront utilisées pour tester si une séquence de protéines en particulier est liée au modèle de consensus, et prendre en compte les fonctions potentielles des protéines obtenues dans la séquence alignée du HMM (le transfert d homologies et l inférence fonctionnelle). Ces fonctions sont basées sur le profil de l architecture HMM, qui est construit en utilisant le modèle 7-plan. Cette architecture code l insertion, l effacement et la concordance des états relatifs au consensus du model de séquence. L architecture plan-7 est un algorithme de Viterbi et le code qu implémente cette architecture est construit comme cela. Les algorithmes de Viterbi impliquent l initialisation du vecteur d états, les opérations de comparaison pour calculer le chemin le plus probable à l état précédent, et finalement le chemin de Viterbi le plus probable à travers le treillis d états. L utilisation du HMM construit précédemment dans les séquences de protéines va générer un alignement optimal représenté par le chemin de Viterbi. Cette architecture permet la détection d une homologie distante dans une séquence avec une quantité significative d insertions, de répétitions, d effacements et des autres phénomènes. Elle exécute assez bien la fonction de détection d homologues si on a un MSA bien construit avec des régions hautement conservées. 4.3. HMMer dans les GPUs Les cartes graphiques ont une quantité limitée de mémoire très rapide. Pour les bases de données très grandes, on divise la base de données en sous parties qu on peut garder dans la mémoire de la carte graphique sur lesquelles on exécute les algorithmes. Pour simplifier la division de la base de données, on arrange la base de données d une façon telle que les protéines de la même taille restent ensembles. 9

Cela a pour but que les séquences du même groupe aient les mêmes besoins en termes de calcul. Ensuite, on envoie les groupes de données au GPU pendant qu il traite un autre groupe. On enregistre les états de probabilités dans 4 canaux de textures, une texture pour chaque triplet dans le HMM, et on encode l opération maximale pour l état dans le dernier canal. Alors, on doit avoir une texture float4 pour chaque triplet dans le HMM, ayant pour conséquence qu une taille du groupe soit inferieure à la mémoire du GPU. Chaque processeur réalise le calcul de Viterbi, en trouvant le maximum sur toutes les transitions d entrée et en cumulant l état final de probabilité. Les transitions de probabilités sont chargées dans les registres (de types constants) où chaque processeur peut accéder très rapidement. La table de probabilité d émission est gardée sous la forme d un tableau de 2x24 dans la mémoire de textures, représentant 24 aminoacides soit dans l état correspondance soit dans l état insertion. Dû au fait qu on connait l origine des transition non-zéro d un triplet d états avant d exécuter le calcul, les textures dont le «shader» a besoin pour évaluer un triplet sont trouvées et envoyées au GPU comme entrée des unités de texture. Le programme a également besoin d une texture d octets, qui représente les aminoacides dans la même position que les protéines dans le groupe. Le processeur utilise cette texture d aminoacides pour chercher dans le tableau d émission de probabilités l état de correspondance et d insertion de chacune des émissions. Le triplet d état de probabilités, avec la valeur actuelle de la probabilité de l état final, est envoyé par le processeur comme une texture de type virgule flottante de 4 canaux. Le processeur exécute l algorithme sur tout le groupe, en réalisant de cette façon une version HMMer de l algorithme de Viterbi. On le répète en séries pour chaque caractère dans la protéine la plus longue pour chaque état dans le HMM. La boucle externe du processus Viterbi du GPU fait une boucle sur une observation d un aminoacide pour chaque groupe de protéines. La boucle interne utilise ces aminoacides, et les probabilités calculées précédemment des tableaux des états actuels et antérieurs, pour calculer les probabilités de l état le plus vraisemblable dans l observation actuelle. 10

4.4. Resultats Un équipe de l université de Stanford a réalisé une comparaison en utilisant plusieurs versions pour différentes plateformes. Ce test a été réalisé sur un Pentium 4 Xeon à 2,8 Ghz, un PowerPC G5 à 2,5 Ghz, et une version hautement optimisée d Altivec. Ils ont fait la comparaison avec une carte graphique ATI 9800XT, une X800XTPE, une carte Nvidia 6800 Ultra et une 7800GTX, possédant chacune 256 Mo. Ils ont également testé une carte ATI R520 avec 512 Mo, où l on voit une grande différence de performance du fait de la quantité de mémoire disponible. 5. Conclusion Les scientifiques ont une besoin d évaluer des bases de données génomiques qui deviennent de plus en plus grandes. Le problème est que la puissance des CPUs n augmente pas de la même manière et son architecture n est pas la mieux adaptée à ce type de taches. C est là que les GPUs ont un avantage, comme on peut constater dans les résultats montrés. Malgré les avantages de l architecture des GPUs, on trouve comme principale difficulté le langage de programmation qui exige aux programmeurs une connaissance d OpenGL. Malgré cet inconvénient, les avantages sont évidents et on voit l intérêt pour les GPUs non seulement de la part des scientifiques, mais aussi de la part des fabriquants de cartes graphiques, qui ont commencé à développer des librairies permettant la programmation de leurs GPUs en langage C (Cuda développé par Nvidia et Stream développé par Ati). L objectif du stage sera la mise en œuvre de l algorithme de comparaison de séquences Blast sur un GPU et évaluer les résultats obtenus en comparaison aux autres plateformes. 11

Références : [1] Daniel Reiter Horn, Mike Houston, Pat Hanrahan. ClawHMMER: A Streaming HMMer-Search Implementation. Stanford University. [2] Ben Wun, Jeremy Buhler, Patrick Crowley. Exploiting Coarse-Grained Parallelism to Accelerate Protein Motif Finding with a Network Processor. Washington University in St.Louis [3] Joseph Landman, Joydeep Ray, J.P. Walters. Accelerating HMMer searches on Opteron processors with minimally invasive recoding. Advanced Micro Devices [4] Ivan Minevskiy, Heidi Lam. Multiple Sequence Alignment. University of British Columbia, Canada [5] Weiguo Liu, Bertil Schmidt, Gerrit Voss. GPU-Clustal: Using Graphics Hardware to Accelerate Multiple Sequence Algnment. Nanyang Technological University [6] Weiguo Liu, Bertil Schmidt, Gerrit Voss. Bio-Sequence Database Scanning on a GPU. Nanyan Technological University [7] Maria Charalamous, Pedro Trancoso, Alexandros Stamatakis. Initial Experiences Porting a Bioinformatics Application to a Graphics Processor. University of Cyprus. [8] John Paul Walters, Bashar Qudah, Vipin Chaudhary. Accelerating the HMMER Sequence Analysis Suite Using Conventional Processors. Wayne State University [9] Nvidia Cuda. http://www.nvidia.com/cuda [10] AMD Stream Computing. http://ati.amd.com/technology/streamcomputing/index.html [11] Wikipedia. BLAST. http://en.wikipedia.org/wiki/blast [12] Thompson, J. D.; F. Plewniak and O. Poch. A comprehensive comparison of multiple sequence alignment programs. Nucleic Acids Research [13] Wallace, I.M.; Blackshields G, Higgins DG. Multiple sequence alignments. Curr Opin Struct Biol [14] Hughey R, Krogh A. Hidden Markov models for sequence analysis: extension and analysis of the basic method. CABIOS [15] HMMER. http://hmmer.janelia.org/ 12