Détail du sujet

04/12/2012 Sujet 103 :  Algorithme multi-threadé pour la recherche et l'élimination de séquences d'ADN chimériques
Auteur : Christophe Demay  Ecrire Site
(Responsable Informatique : Christophe Demay  Ecrire )

L'ADN est le support de l'information génétique. La transcription de l'ADN en ARN au sein des cellules vivantes, puis la traduction de ce dernier en protéine permet le fonctionnement des cellules, le fonctionnement de l'organisme.

Depuis 4 ans, grâce aux technologies de séquençage haut débit, nous sommes en mesure de lire intégralement soit la séquence d'ADN d'un pool de cellules, soit leur séquences d'ARN. De manière schématique, l'identification de ces ARN permet de comprendre les mécanismes du vivant et notamment en s'intéressant à des cellules « malades », de comprendre les mécanismes de la pathologie.

Dans ce projet, nous nous intéressons plus particulièrement à de petites séquences d'ARN d'environ 22 lettres appelées micro ARN ([ref1] miARN), connues pour avoir un rôle régulateur dans l'expression des gènes.

Nous cherchons à identifier ces miARN à partir des données de plusieurs patients. Cette tâche passe par différentes étapes consistants notamment en la localisation et l'élimination d'une séquence utilisée par la technologie de séquençage, appelée ADAPTER ([ref2] ADAPTER) et que l'on retrouve à l'extrémité des miARNs à séquencer.

Les données en entrée sont
- de 10 à 300 millions de mots de 50 lettres (ATCG) par patient (les ARN séquencés)
- la séquence complète du génome de référence (3 milliards de lettres)
- différentes séquences d'ADAPTERS selon les patients

Il s'agit dans un premier temps d'aligner ces séquences sur le génome de référence avec le logiciel SHRimP ([ref3] SHRiMP) afin d'obtenir des "hits". Puis, à l'aide d'un algorithme que nous avons développé, il faudra aligner les séquences d'ADAPTER sur chacun des hits obtenu afin de différencier la partie miARN de la partie ADAPTER.

La taille des fichiers sur lesquels nous travaillons nous oblige à implémenter l'algorithme en langage C. Il est primordial d'utiliser du multithreading afin de pouvoir lancer le programme sur une machine multiprocesseurs/multicores dans le but d'améliorer le temps d'exécution.

Les étudiants sélectionnés devront être motivés et être capables d'implémenter et de tester la méthode afin de la valider. Une bonne connaissance du langage C est requise et un intérêt particulier pour OpenMP et les pthreads (notion de rendez vous, mutex, etc ...) constituera un gros avantage.

Liens associés :
Sujet non-attribué