Valid XHTML 1.0!                  

 

  Projet de programmation
  en Licence professionnelle
  année 2010/2011
 
   Amélioration d'un programme C++ de recherche
   de motifs caractéristiques d'acides aminés
   et ajout d'une interface Web avec des exemples
   et un panneau de saisie.    

 

Présentation du projet

 

Les biologistes utilisent des séquences d'aminés stockées au format Fasta. Lorsque les séquences correspondent à une même fonction, il est classique d'effectuer des alignements de ces séquences afin de trouver des parties de séquences plus ou moins semblables. La recherche de motifs caractéristiques (et non pas simplement de motifs exacts) s'intéresse au même problème mais d'une façon différente car on cherche des parties de séquences :

- rigoureusement identiques ;
- toujours présentes pour un sous-ensemble donné des séquences nommées séquences positives ;
- jamais présentes pour un sous-ensemble donné des séquences nommées séquences négatives.

Voici un exemple fictif mais flagrant de telles séquences


  >Positive1
  PAPAMAMAN
  >Positive2
  PAPIMAMI

  >Negative1
  TONTON
  >Negative2
  TATA
  >Negative3
  TATI

Si partie de séquence signifie sous-chaine d'au moins deux caractères consécutifs, alors le motif caractéristique des séquences positives de l'exemple est MAM. Si on élargit en sous-séquence alors ce motif est PAP.MAM où le symbole . (point) signifie «un seul caractère». P. Galinier, de l'Ecole Polytechnique de Montréal a écrit au cours de l'année 2011 un programme en C++ qui recherche des motifs caractéristiques dans des chaines de caractères dont le code-source et le makefile sont dans l'archive mocar.zip disponible à la demande.

Pour le projet, il faut réaliser deux choses :

  • améliorer le programme C++ qui recherche les motifs caractéristiques en lui ajoutant des options d'exécution gérables par des paramètres en ligne de commande et en modifiant sa lecture du fichier des données.
  • lui adjoindre une interface Web afin de pouvoir exécuter ce programme sur le Web à l'aide d'un panneau de saisie des données et un choix des options à utiliser.

On commencera bien sûr par se documenter sur l'état de l'art du domaine et sur les autres solutions Web possibles. Les sites trouvés seront alors accessibles à partir de la page Web du projet. On viendra aussi améliorer la gestion de la lecture des fichiers d'entrée (actuellement, s'il manque l'indication de classe, le programme «boucle»)...

 

Détail des améliorations à apporter au programme

 

Actuellement, le programme n'a aucune option en ligne de commande. Si on veut utiliser des séquences positives et négatives, il faut changer dans le code source la valeur de use_negative_strings dans prob_motif.cpp. Il est possible de rechercher des sous-chaines ou des sous-séquences mais là encore en modifiant le code-source. On peut accepter de trouver un motif pour toutes les séquences positives sauf un nombre n (mis en dur dans le fichier). Le programme lit des fichiers au format suivant : id classe séquence et le numéro de classe correspondant aux séquences positives est mis dans le programme principal. Il peut trouver un motif caractéristique ou plusieurs motifs caractéristiques.

Il faut donc modifier le programme pour qu'il lise des fichiers Fasta, trouver une façon pratique de spécifier les séquences positives et négatives, ajouter une option en ligne de commande pour choisir entre sous-chaine et sous-séquence, permettre l'utilisation du nombre n d'«erreurs» autorisées ou du pourcentage p de telles erreurs, fournir une option un seul motif ou tous les motifs.

Il faudra penser aussi à améliorer ses sorties du programme pour la ligne de commande et pour la sortie Web.

 

Détail de la page Web à écrire

 

La page Web devra permettre d'entrer (par copier/coller ou par fichier) les séquences positives et les séqeunces négatives, de choisir entre le mode sous-chaine et sous-séquence, de saisir le nombre n d'erreurs ou du pourcentage p de telles erreurs, de choisir entre un seul motif ou tous les motifs.

Il faudra certainement limiter la taille des séquences à saisir car le programme peut mettre beaucoup de temps à s'exécuter avant de se terminer.

En cas de motif(s) trouvé(s), il faudra certainement proposer à l'utilisateur de choisir un motif et de visualiser son positionnement dans les séquences positives.

 

Données réelles à utiliser (en plus de l'exemple du haut de page)

 

La base de données LEAPdb contient douze classes de protéines LEA. On essaiera de trouver les motifs caractéristiques de chaque classe. E. Jaspard, de l'Université d'Angers pourra aider au choix des meilleurs motifs. On pourra les comparer aux motifs utilisés pour caractériser les classes.

Le fichier des séquences Fasta de cette base de données avec une indication de classe en fin d'identifiant fasta est dans leapdb_fasta.txt.

 

 

retour gH    Retour à la page principale de   (gH)