silico.biotoul.fr
 

M2BBS Integration de Donnes Heterogenes - Projets

From silico.biotoul.fr

(Difference between revisions)
Jump to: navigation, search
m (Projets 2013-14)
m (Intégration et préparation des données)
(105 intermediate revisions not shown)
Line 1: Line 1:
 +
<!-- date des présentaions
 +
Admin link to the poll
 +
https://framadate.org/uNPXqVD7MmdkFlF23xH5aPWE/admin
 +
 +
Public link to the poll
 +
https://framadate.org/uNPXqVD7MmdkFlF2
 +
-->
 +
= Projets 2019-20  =
 +
<!--
 +
Les projets s'organisent en 2 parties :
 +
* la partie 1 est individuelle (c'est-à-dire que chacun doit la faire et fournir un rapport).
 +
* la partie 2 est à faire en groupes.
 +
-->
 +
 +
<!-- 4 Groupes sont à former : 4, 4, 4 et 5 personnes. -->
 +
<!-- 4 Groupes sont à former de 4 personnes. -->
 +
 +
== Caractérisation d'ensemble par recoupement de voisinages ==
 +
 +
=== Intégration et préparation des données ===
 +
 +
Outline:
 +
* choisir un organisme. Le même organisme ne peut pas être pris par plusieurs personnes. La liste des choix attribués (premier arrivé, premier servi) sera disponible en fin de cette section.
 +
* fournir un script permettant d'obtenir à partir du graphe de la Gene Ontology et des associations 2 fichiers :
 +
** le premier fournit les associations directes : la liste des gènes annotés directement par un même terme
 +
** le second fournit les associations implicites : la listes des gènes annotés par un même terme ou un de ses descendants (plus spécifiques)
 +
* choisir l'organisme de quelqu'un d'autre (là aussi, ne pas prendre plusieurs fois le même), afin de vérifier que le script précédent fonctionne bien sur un autre organisme.
 +
* utiliser le script sur les 2 organismes et faire une synthèse (par exemple : nombre de gènes annotés sur le génome, nombre de termes par gène, nombre de gènes par terme, ...). L'organisme choisi est-il "bien" annoté par la GO ?
 +
 +
<pre>
 +
Prénom      Organisme                               Autre organisme choisi
 +
Cheryn Microlunatus phosphovorus
 +
Marine      Yersinia pestis
 +
Soufiane Bacillus cereus
 +
Eve Caenorhabditis elegans
 +
Tristan         Drosophila melanogaster
 +
Elise Canis lupus familiaris
 +
Chloé      Plasmodium falciparum
 +
Nicolas      Anaplasma marginale
 +
Juliette Gallus gallus
 +
Clara      Apis mellifera
 +
Geoffrey        Arabidopsis thaliana
 +
Matthieu        Danio rerio
 +
Julien      Ornithorhynchus anatinus
 +
Marion      Pseudomonas fluorescens
 +
Alexandre      Schistosoma mansoni
 +
</pre>
 +
 +
<!--
 +
Organismes choisis :
 +
{| class="wikitable"
 +
|-
 +
|                      ||  Organisme choisi || Autre organisme
 +
|-
 +
| A. Guillaume || ''Sus scrofa'' || ''Rattus norvegicus''
 +
|-
 +
| A. Ségolène || ''Escherichia coli'' || ''Gallus gallus''
 +
|-
 +
| B. Allan  || ''Candida albicans'' || ''Sus scrofa''
 +
|-
 +
| C. Eva || ''Canis lupus familiaris'' || ''Aspergillus nidulans''
 +
|-
 +
| D-S. Kathy || ''Dickeya dadantii'' ||  ''Bos taurus''
 +
|-
 +
| F. Michelle || ''Pseudomonas aeruginosa'' PAO1 || ''Plasmodium falciparum''
 +
|-
 +
| G. Fanny || ''Mus musculus'' || ''Drosophila melanogaster''
 +
|-
 +
| H. Fadoua || ''Rattus norvegicus'' || ''Candida albicans''
 +
|-
 +
| L. Emilien || ''Oriza sativa'' || ''Arabidopsis thaliana''
 +
|-
 +
|  N. Delphine || ''Aspergillus nidulans'' ||  ''Canis lupus familiaris''
 +
|-
 +
| N. Hoang || ''Leishmania major'' || ''Oriza sativa''
 +
|-
 +
| R. Flavien || ''Drosophila melanogaster'' || ''Dickeya dadantii''
 +
|-
 +
| T. Robel || ''Plasmodium falciparum'' || ''Leishmania major''
 +
|-
 +
| T. Anna || ''Agrobacterium tumefaciens'' || ''Mus musculus''
 +
|-
 +
| T. Abdel || ''Bos taurus'' || ''Schizosaccharomyces pombe''
 +
|-
 +
| V. Anaïs  || ''Gallus gallus'' || ''E. coli''
 +
|-
 +
| V. Caroline || ''Schizosaccharomyces pombe'' || ''Pseudomonas aeruginosa'' PAO1
 +
|}
 +
-->
 +
 +
=== Ajout de fonctionnalités à <tt>blastset.py</tt> ===
 +
 +
'''Notation :''' On considère un ensemble requête ''Q'' (query) et un ensemble cible ''T'' (target, appartenant à un jeu de données de référence). Les deux ensembles sont inclus dans l'ensemble des gènes de l'organisme ''G'' (génome). Ils ont respectivement des cardinalités ''q'', ''t'', ''g''.
 +
 +
Il s'agit de proposer d'autres mesures de dissemblance. La première est naïve (non statistique) que l'on nommera ''overlap'' ou ''coverage'' et consiste à considérer quelles fractions des 2 ensembles se correspondent. Pour la cohérence avec les autres mesures la valeur sera de 1 quand aucun élément n'est commun aux 2 ensembles, et 0 pour 2 ensembles identiques. Il s'agit donc de multiplier ''c/q'' par ''c/t'' avec ''c'' le nombre d'éléments communs aux ensembles ''Q'' et ''T'' respectivement de cardinalités ''q'' et ''t'', et de soustraire cette valeur à 1.
 +
 +
La deuxième mesure à ajouter est un <math>\chi^2</math> d'indépendance en considérant les ensembles ''Q'' et ''T'' comme 2 variables qualitatives. Le test est donc à effectuer sur la table de contingence :
 +
{| border='1' cellspacing='0' cellpadding='10'
 +
|-
 +
|            ||  ''T''    || ''G \ T''            || <math>\Sigma</math>
 +
|-
 +
|  ''Q''    ||  ''c''    || ''q - c''            || ''q''
 +
|-
 +
|  ''G \ Q'' ||  ''t - c'' || ''g - q - t + c''    || ''g - q''
 +
|-
 +
|  <math>\Sigma</math>  || ''t''  || ''g - t''  || ''g''
 +
|}
 +
 +
'''Remarque :''' Il est possible de s'autoriser à transformer la mesure non statistique (coverage) afin qu'elle indique la dissemblance entre 2 ensembles (0 : identique, >0 : dissemblable). Ainsi les résultats seront triés dans le même ordre pour coverage et pour les p-valeurs (du <math>\chi^2</math> par exemple).
 +
 +
=== Comparaison des mesures ajoutées ===
 +
 +
Proposez une approche et comparez les différentes mesures intégrées au script. Laquelle est-il préférable d'utiliser ?
 +
 +
=== Comparaison de fonction de regroupement ===
 +
 +
Les voisinages obtenus par différentes fonction de regroupement se ressemblent-ils ?
 +
 +
A partir d'une question biologique, par exemple, les gènes organisés en opéron sont-ils, de manière générale, co-exprimés, reformulez-la en comparaison de voisinage pour y répondre. Pour cela, choisissez deux fonctions de regroupement (par exemple la co-régulation et une autre) et proposez et mettez en oeuvre la comparaison des voisinages obtenus selon ces fonctions de regroupement sur l’organisme que vous avez choisi. Au final, à partir des données intégrées, il s'agira de répondre à la question posée, chiffres et analyses à l'appui.
 +
 +
=== Rapport à rendre ===
 +
 +
Un rapport succinct est demandé. L'objectif est de fournir plutôt un rapport technique pour l'ajout des mesures au script et méthodologique pour la partie comparaison des mesures. Il doit donc être complet, pertinent, ciblé (qui est le lecteur ?), scientifique et rigoureux.
 +
 +
Il doit inclure
 +
* une brève introduction générale décrivant le contexte, les objectifs et le plan de ce qui suit.
 +
* intégration et préparation des données
 +
** données utilisées (sans oublier les versions)
 +
** méthodes d'intégration envisagées, choix et détails dans la réalisation
 +
** synthèse de l'annotation GO de l'organisme choisi
 +
* ajout de fonctionnalités :
 +
** des explications sur les modifications apportées au script original,
 +
** comment utiliser le script modifié,
 +
** un exemple d'utilisation des fonctionnalités ajoutées.
 +
* comparaison des mesures intégrées :
 +
** approches envisagées et méthode pour en sélectionner une
 +
** mise en oeuvre
 +
** synthèse des résultats obtenus
 +
** bilan : quelle mesure utiliser de préférence, pourquoi
 +
** perspectives d'amélioration
 +
* bilan personnel sur cette partie du projet et sur cette UE : motivations ? critiques ? suggestions ? apports ? ... ?
 +
 +
Contraintes :
 +
* Le rapport doit être au format PDF.
 +
* Le rapport peut être en anglais ou en français mais pas les 2.
 +
* Le script modifié et les éventuels jeux de tests utilisés et résultats obtenus doivent être disponibles dans votre github.
 +
 +
=== Sujets alternatifs aux questions 1.2 à 1.4 ===
 +
 +
# Etudier la possibilité d'extrapoler la correction du seuil alpha par fonction de répartition empirique des minPi en fonction de la taille de l'ensemble requête
 +
# Implémenter le filtrage des ensembles cibles considérés par critère de pertinence (strict ou ratio de pertinence) sur :
 +
## pour un graphe orienté sans circuit (DAG)
 +
## pour un arbre
 +
## pour un treillis (ordre des gènes sur le chromosome)
 +
# Implémenter la recherche d'enrichissement sur un graphe par marches aléatoires
 +
 +
= Partie 2 collective 2018-19 (pas à faire): Intégration et exploitation de données hétérogènes dans un modèle graphique =
 +
 +
<!--big>'''En cours d'élaboration.'''</big> Le fond ne va pas changer ; la description de ce qui est demandé va éventuellement gagner en détails mais peu. La description du rapport attendu arrive "bientôt". -->
 +
 +
Le but de cette partie est de mettre en oeuvre certains principes vus jusqu'ici afin de répondre à une question biologique : les gènes co-régulés chez un organisme donné le sont-ils aussi chez ''Escherichia coli'' K-12 MG1655 ?
 +
 +
Afin d'y répondre, il faudra choisir un organisme, déterminer les gènes co-régulés dans les 2 génomes ainsi que la correspondance des gènes entre les 2 génomes.
 +
 +
La co-régulation des gènes peut se trouver dans la littérature et les bases de données mais les connaissances actuelles ne sont pas complètes. Pour pallier ce manque, on pourra choisir de faire une prédiction de la co-régulation avec une approximation : il s'agit de supposer que les gènes co-exprimés sont co-régulés. Pour déterminer les gènes co-exprimés chez un organisme, on se base généralement sur un compendium de données d'expression comprenant suffisamment de conditions expérimentales différentes. A partir des profils d'expression des gènes dans toutes ces conditions, on applique une méthode de clustering pour identifier les ensembles de gènes co-exprimés. Il est bien sûr aussi possible d'utiliser une base de données de référence, si elle existe, ou bien une base de données contenant des scores de co-expression entre les paires de gènes de l'organisme étudié.
 +
 +
La correspondance des gènes entre les 2 génomes peut là aussi, bien sûr, si elle existe être établie à partir d'une base de données de référence, ou bien être calculée selon une méthode d'identification des gènes orthologues 1:1.
 +
 +
Objectifs et problématiques :
 +
* choix d'un organisme
 +
* les gènes orthologues chez ''E. coli'' K-12 MG1655 des gènes co-exprimés dans l'organisme choisi sont-ils aussi co-exprimés ?
 +
* quel est le groupe de gènes le mieux conservé (en termes d'orthologie, de co-expression, et d'annotation) ?
 +
* bonus (à réaliser si vous le souhaitez)
 +
** les ensemble de gènes conservés en co-expression forment-ils un opéron ''chez E. coli'' ?
 +
** vaut-il mieux utiliser les orthologues fournis par String ou Roland B. ? (Si RB vous a fourni ces données)
 +
** associer une ou des annotations aux groupes de gènes co-exprimés
 +
 +
Etapes clés :
 +
* détermination des gènes co-exprimés
 +
* identification des gènes orthologues 1:1 chez ''E. coli''
 +
* constitution des jeux de données (de type ''graph database'')
 +
* correspondance des groupes de gènes co-exprimés chez l'organisme choisi et ''E. coli''
 +
* bonus
 +
** détermination des opérons chez ''E. coli''
 +
** correspondance avec les opérons de ''E. coli''
 +
** mise en oeuvre avec d'autres méthodes pour l'identification des gènes co-exprimés et des orthologues, et comparaison des résultats
 +
** annotation automatique de groupes de gènes
 +
 +
Contraintes :
 +
* Les organismes choisis par les différents groupes doivent être différents (premier arrivé = premier servi).
 +
* Utilisation de Neo4j pour la représentation sous forme de graphe des données intégrées (expression, orthologie, annotation, ...).
 +
 +
<!--
 +
Groupes et organismes :
 +
{| class="wikitable"
 +
|-
 +
| ''Candida albicans'' || ''Pseudomonas aeruginosa'' PAO1 || ''Yersinia pestis'' || ''Plasmodium falciparum'' || ''Bos taurus''
 +
|-
 +
| A. Guillaume
 +
B. Allan 
 +
 +
H. Fadoua
 +
 +
| A. Ségolène
 +
G. Fanny
 +
 +
T. Anna
 +
 +
V. Anaïs
 +
 +
| C. Eva
 +
N. Delphine
 +
 +
R. Flavien
 +
 +
| F. Michelle
 +
N. Hoang
 +
 +
T. Robel
 +
 +
V. Caroline
 +
 +
| D. S. Kathy
 +
L. Emilien
 +
 +
T. Abdel
 +
|}
 +
-->
 +
 +
=== Rapport à rendre ===
 +
 +
Là aussi, un rapport succinct est demandé. L'objectif est de fournir des informations sur la réalisation de cette partie et les choix effectués pour y arriver. Il doit donc être complet, pertinent, scientifique et rigoureux.
 +
 +
Il doit inclure
 +
* une brève introduction générale décrivant le contexte, les objectifs et le plan de ce qui suit.
 +
* Analyse et conception
 +
** choix de l'organisme
 +
** méthode(s) pour la sélection des données utilisées
 +
** méthode(s) pour l'identification des gènes co-régulés
 +
** methode(s) utilisée pour l'identification des gènes orthologues
 +
* Réalisation
 +
** environnement de travail, constitution des données utilisées (modèle ''graph database''), paramétrages des méthodes utilisées, logiciels et banques utilisés
 +
** résultats
 +
* Bilan et perspectives
 +
** synthèses et conclusions sur l'étude demandée
 +
** perspectives d'amélioration de ce type d'étude, pistes d'analyses qu'elle ouvre (sur l'organisme sélectionné, ou plus généralement)
 +
* Bilan du groupe sur cette partie du projet
 +
** part de chacun dans les différents aspects du travail effectué
 +
** difficultés rencontrées
 +
** avis sur les bases de données de types ''graph database''
 +
 +
Contraintes :
 +
* Le rapport doit être au format PDF.
 +
* Le rapport peut être en anglais ou en français mais pas les 2.
 +
* Les scripts et programmes développés et les éventuels jeux de tests utilisés et résultats obtenus doivent être fournis ou disponibles sous forme d'archive.
 +
 +
=== Présentation ===
 +
 +
La présentation orale se fera par groupe. La durée de la présentation ne doit pas dépasser 20 minutes. Elle sera suivie de questions, commentaires et d'une discussion.
 +
 +
La présentation sera sur le thème d'une présentation interne à une équipe ou un institut, c'est-à-dire que le public connaît les enjeux et les contraintes. Elle portera donc davantage sur les choix des méthodes et leur réalisation, ainsi que sur la discussion et les résultats obtenus.
 +
 +
== Calendrier ==
 +
 +
Partie 1 individuelle : Le rapport individuel et l'archive associée sont à remettre par voie électronique '''avant le 15 octobre 2018'''.
 +
 +
Partie 2 collective, les dates indiquées sont les '''dates limites exclues''' (par exemple l'information sur la composition des groupes doit parvenir '''avant''' le 24/09, donc vous avez jusqu'au 23)
 +
* 24/09 détermination des groupes (et information transmise à RB)
 +
* 01/10 choix d'un organisme (et information transmise à RB)
 +
Le rapport collectif est à remettre par voie électronique '''avant le 10 décembre'''.
 +
 +
'''Remarque :''' tout retard sur le calendrier, notamment la remise des livrables, pourra être pris en compte dans la note d'évaluation.
 +
 +
 +
 +
 +
 +
 +
 +
 +
 +
 +
 +
 +
 +
 +
 +
 +
 +
 +
<!--
 +
= Projets 2015-16 =
 +
Le projet consiste à :
 +
# ajouter des fonctionnalités au script Search_enriched_sets.py vu en TP
 +
# sélectionner un organisme pour ensuite constituer des banques d'ensembles de référence (GO, mots-clés, ...)
 +
# développer une méthode pour calculer le contenu en information associé à une annotation
 +
# est-ce que, d'une manière générale, les protéines annotées avec un même mot clé sont connectées dans le graphe de STRINGdb ?
 +
à compléter
 +
 +
Le projet est à réaliser par groupe de 4. Le rapport au format électronique est à rendre avant les vacances de fin d'année.
 +
 +
== Partie 1. Ajout de fonctionnalités à Search_enriched_sets.py ==
 +
 +
'''Notation :''' On considère un ensemble requête Q (query) et un ensemble cible T (target, appartenant à un jeu de données de référence). Les deux ensembles sont inclus dans l'ensemble des gènes de l'organisme G (génome). Ils ont respectivement des cardinalités q, t, g.
 +
 +
Il s'agit de proposer d'autres mesures de similarités. La première est naïve (pas statistique) que l'on nommera ''overlap'' ou ''coverage'' consiste à considérer quelles fractions des 2 ensembles se correspondent (0 pour aucun élément en commun, 1 pour 2 ensembles identiques). Il s'agit donc de multiplier ''c/q'' par ''c/t'' avec ''c'' le nombre d'éléments communs aux ensembles ''Q'' et ''T'' respectivement de cardinalités ''q'' et ''t''.
 +
 +
La deuxième mesure à ajouter est un <math>\chi^2</math> d'indépendance en considérant les ensembles Q et T comme 2 variables qualitatives. Le test est donc à effectuer sur la table de contingence :
 +
{| border='1' cellspacing='0' cellpadding='10'
 +
|-
 +
|        ||  T  || G \ T || <math>\Sigma</math>
 +
|-
 +
|  Q    ||  c  || q - c || q
 +
|-
 +
|  G \ Q ||  t-c || g -q - t + c || g - q
 +
|-
 +
|  <math>\Sigma</math>  || t  || g - t || g
 +
|}
 +
 +
== Partie 2. Constitution d'ensembles de références ==
 +
 +
Sélectionnez tout d'abord un organisme (sur la base de vos intérêts par exemple). Il sera néanmoins plus aisé de constituer des jeux de données concernant un organisme bien étudié (homme, souris, levure, arabette, colibacille, ...) car davantage de données devraient être disponibles. Chaque groupe doit travailler sur un organisme différent.
 +
 +
Ensuite, générez différentes banques d'ensembles à partir de différents critères de regroupement. Il faudra notamment générer les ensembles formés par
 +
* les mots-clés présents sur les fiches UniProt,
 +
* les termes de la Gene Ontology. Il faudra inclure uniquement les termes pertinents, c'est-à-dire non redondant. Par exemple, si on obtient le même ensemble pour un terme T22 et un terme T2 moins spécifique que T22, alors seulement l'ensemble correspondant au terme T22 sera généré (le plus spécifique).
 +
* les voies métaboliques provenant au choix de KEGG, BioCyc,
 +
* les identifiants PubMed : pour chaque publication portant sur l'organisme choisi, il s'agit d'extraire l'ensemble de gènes ou protéines concernés.
 +
* plus une source de données de votre choix, c'est-à-dire que vous trouvez pertinente, et qui sera spécifique de l'organisme choisi.
 +
 +
== Partie 3. Contenu en information ==
 +
 +
Pour cette partie, il s'agit de mettre en oeuvre le concept de contenu en information (information content ou ''IC'' dans la suite) abordé en cours. Sa formule est la suivante :
 +
 +
<math>IC(term) = - \log (p(term))</math> avec <math>p(term) = freq(term) </math>
 +
 +
Ecrire un programme qui, à partir d'une banque de données d'ensembles de références, les affiche par IC décroissant (en affichant également l'IC associé à l'ensemble).
 +
 +
Ajouter cette fonctionnalité au script Search_enriched_sets.py, c'est-à-dire qu'en plus de la p-valeur ou du score d'un ensemble cible, il faudra également afficher l'IC de l'ensemble sur la sortie du programme.
 +
 +
== Partie 4. Analyse ==
 +
 +
Est-ce que, d'une manière générale, les protéines annotées avec un même mot clé sont connectées dans le graphe de STRINGdb ?
 +
 +
== Livrables ==
 +
 +
Le rapport de projet au format PDF doit contenir les points suivants :
 +
* Partie 1. Des explications sur les modifications apportées au script original. Comment utiliser le script modifié. Un exemple d'utilisation des fonctionnalités ajoutées.
 +
* Partie 2. '''Description des données.''' Données sources utilisées. Transformations effectuées.
 +
* Partie 3. Un exemple d'utilisation du programme réalisé.
 +
* Partie 4. Conception et mise en oeuvre de la méthode développée pour répondre à la question posée.
 +
* '''Bilan et perspectives.''' Conclusion et perspectives. Difficultés rencontrées, suggestions sur d'autres approches, d'autres sources de données à exploiter.
 +
* '''Répartition des tâches.''' Description de la part de l'apport de chacun des membres du groupe au projet : bien que chacun devrait participer à toutes les étapes, ce projet peut se décomposer en sous-étapes dont chacune réalisée plus particulièrement par l'un des membres du groupe.
 +
 +
Le tout sera envoyé ou mis à disposition '''avant le 21 décembre 2015''' sous forme d'archive contenant le rapport, les jeu de données, les scripts et programmes réalisés.
 +
 +
-->
 +
 +
 +
 +
 +
 +
 +
 +
<!--
 +
= Projets 2014-15 =
 +
Le projet consiste à sélectionner une source de données pour effectuer la priorisation de gènes candidats. Les principales étapes seront donc les suivantes :
 +
# sélection d'un organisme et définition d'un jeu de données pour l'évaluation des performances. Concertation entre vous afin de pouvoir réaliser le point 5 (mise en commun des données)
 +
# sélection d'une source de données (expression, interaction, annotation ...). A faire également en concertation pour que chacun travaille sur une source de données différente pour le même organisme.
 +
# choix des méthodes pour l'obtention de matrices de dissimilarité
 +
# mise en oeuvre et évaluation sur un jeu de données tests
 +
# mise en commun des matrices pour la fusion des résultats
 +
# comparaison des performances avec les matrices fournies (''E. coli'' K12)
 +
# bilan et perspectives
 +
 +
'''Données fournies'''
 +
* [[silico:enseignement/m2BBS/idh/PaerA.geo.h5|PaerA.geo.h5]]: gene-gene dissimilarity matrix based on GEO expression profiles for ''P. aeruginosa'' PAO1
 +
* [[silico:enseignement/m2BBS/idh/PaerA.string.h5|PaerA.string.h5]]: gene-gene dissimilarity matrix based on STRING network for ''P. aeruginosa'' PAO1
 +
* [[silico:enseignement/m2BBS/idh/PaerA.ncleandb12.abc|PaerA.ncleandb12.abc]]: ''P. aeruginosa'' validation sets extracted from [https://www-abcdb.biotoul.fr ABCdb]. The format is for each line:
 +
 +
* [[silico:enseignement/m2BBS/idh/SaurH.geo.h5|SaurH.geo.h5]]: gene-gene dissimilarity matrix based on GEO expression profiles for ''S. aureus'' NCTC 8325
 +
* [[silico:enseignement/m2BBS/idh/SaurH.string.h5|SaurH.string.h5]]: gene-gene dissimilarity matrix based on STRING network for ''s. aureau'' NCTC 8325
 +
* [[silico:enseignement/m2BBS/idh/SaurH.ncleandb12.abc|SaurH.ncleandb12.abc]]: ''S. aureus'' NCTC 8325 validation sets extracted from [https://www-abcdb.biotoul.fr ABCdb]. The format is for each line: <tt>set_id<tab>gene_id<tab>gene_id<tab>gene_id...</tt>
 +
= Projets 2013-14 =
= Projets 2013-14 =
Line 6: Line 390:
* constitution de jeux de données (et éventuellement de scripts pour convertir les données)
* constitution de jeux de données (et éventuellement de scripts pour convertir les données)
* utilisation du/des script(s)
* utilisation du/des script(s)
-
* remise d'un rapport (conception et réalisation du script, conversion des données, constitution du jeu de test, évaluation, bilan et perspectives. annexe : présentation détaillée du travail de chacun)
+
* remise d'un rapport (conception et réalisation du script, conversion des données, constitution du jeu de test, évaluation, bilan et perspectives)
-
* présentation orale et démonstration
+
 
== Projet 1 : Relation de voisinage représenté par un graphe acyclique orienté (DAG) ==
== Projet 1 : Relation de voisinage représenté par un graphe acyclique orienté (DAG) ==
Line 14: Line 398:
Une recherche s'effectue comme vue pendant les enseignements (avec le script search_enriched_sets.pl) mais la représentation des ensembles et l'algorithme de recherche seront adaptés.
Une recherche s'effectue comme vue pendant les enseignements (avec le script search_enriched_sets.pl) mais la représentation des ensembles et l'algorithme de recherche seront adaptés.
-
Pour la génération de jeu de données, il faudra donc intégrer la structure de la Gene Ontology avec des gènes associés. Pour cela, vous pourrez utiliser la librairie goperl. Cette librairie permet de charger la structure puis d'y ajouter des gènes associations à des gènes. Une des partie de ce projet consistera donc à convertir ces informations en un ficher de format simple de la forme suivante : chaque ligne représente un noeud du graphe selon la syntaxe : <tt>node_id  node_name  nb_genes  child_node_id?[,child_node_id]*  gene_id?[,gene_id]*  ROOT?</tt>
+
Pour la génération de jeu de données, il faudra donc intégrer la structure de la Gene Ontology avec des gènes associés. Pour cela, vous pourrez utiliser la librairie goperl. Cette librairie permet de charger la structure puis d'y ajouter des associations à des gènes. Une des partie de ce projet consistera donc à convertir ces informations en un ficher de format simple de la forme suivante : chaque ligne représente un noeud du graphe selon la syntaxe : <tt>node_id  node_name  nb_genes  child_node_id?[,child_node_id]*  gene_id?[,gene_id]*  ROOT?</tt>
Exemple extrait de [[Media:EcolA.go.closure.2012.dag]] :
Exemple extrait de [[Media:EcolA.go.closure.2012.dag]] :
Line 29: Line 413:
* ROOT indique la racine
* ROOT indique la racine
* GO:0006285 sert à annoter MUG et MUTM, c'est un descendant de GO:0006284 ; par conséquent ce dernier sert également à annoter MUG et MUTM
* GO:0006285 sert à annoter MUG et MUTM, c'est un descendant de GO:0006284 ; par conséquent ce dernier sert également à annoter MUG et MUTM
 +
 +
'''Remarque :''' Lors de la génération du fichier ci-dessus, il sera certainement judicieux d'avoir au préalable supprimé les noeuds qui n'apportent pas d'information : par exemple, un noeud situé entre GO:0006285 et GO:0006284 mais dont les gènes associés seraient les mêmes que GO:0006285 (en l'occurrence MUG et MUTM).
 +
 +
 +
Pour la confrontation des ensembles, il s'agit de produire un script qui charge le fichier ci-dessus dans une représentation interne, puis parcourt cette structure pour ne comparer que les ensembles pertinents et identifier les termes significativement enrichis.
-
Afin de faire une recherche, les étapes requises sont donc : récupérer le DAG de la Gene Onotology, récupérer les associations gene <-> Term GO, intégrer ces 2 informations pour extraire la représentation compacte sous forme de DAG (format de fichier proposé ci-dessous),
 
== Projet 2 : Voisinage représenté par un arbre (tree) ==
== Projet 2 : Voisinage représenté par un arbre (tree) ==
 +
La représentation sous forme d'arbre s'applique à des données telles que des clustering hiérarchiques (de profils d'expression de gènes par exemple) ou bien la [http://www.chem.qmul.ac.uk/iubmb/enzyme/ nomenclature des enzymes] et permet de définir un algorithme encore plus efficace que pour la représentation générique sous forme de DAG. Le format de fichier pour stocker cette information sera donc le format newick (exemple sur un [[Media:EcolA.transcriptome.hcl.tree.nw|clustering de profils d'expression des gènes ''Escherichia coli'']]). Le jeu de tests pourra consister à chercher quel(s) cluster(s), s'il y en a, correspond(ent) à quel(s) [[Media:EcolA.pathways.sets|pathway(s)]].
 +
 +
L'algorithme est donné en page 8 de [1] et est le suivant :
 +
<source lang='perl'>
 +
open newick_file
 +
tok = next_token
 +
stacks = new stack
 +
current_stack = null
 +
do
 +
  if tok == ( # new node/subtree root
 +
      push stacks, new stack
 +
  elsif tok == gene # gene/sibling in the current subtree
 +
      if gene in query
 +
        triplet(nb_common_elements, nb_differing_elements, potentally_pertinent) = (1,0,true)
 +
      else
 +
        triplet(nb_common_elements, nb_differing_elements, potentially_pertinent) = (0,1,false)
 +
      push top_stack, triplet
 +
  elsif tok == ) # all siblings seen for this subtree
 +
      # compute #common #differing
 +
      common = max_common = differing = 0
 +
      foreach triplet in top_stack
 +
        common += triplet.nb_common_elements
 +
        max_common = triplet.nb_common_elements if triplet.nb_common_elements > max_common
 +
        differing += triplet.nb_differing_elements
 +
      # test rule 2
 +
      potentially_pertinent = common > max_common
 +
      # test rule 3
 +
      foreach triplet in top_stack
 +
        compare triplet if triplet.potentially_pertinent and triplet.nb_differing_elements < differing
 +
      # replace top stack by current triplet
 +
      pop stacks # remove top_stack
 +
      push top_stack, triplet(common, differing, potentially_pertinent)
 +
 +
  tok = next_token
 +
until nb_common_elements == |query| or nb_common_elements+nb_differing_elements > threshold or EOF
 +
 +
</source>
 +
 +
== Projet 3 : Voisinage représenté par un treillis (lattice) ==
== Projet 3 : Voisinage représenté par un treillis (lattice) ==
 +
Pour une relation de voisinage de type gènes voisins sur le chromosome, le treillis d'ensembles de gènes imbriqué peut être vu comme implicite et il est encore possible d'améliorer l'efficacité de la recherche. En effet, pour appliquer les règles 2 et 3 de [1] et [2], il suffit de considérer les intervalles définis par les paires de gènes de l'ensemble à caractériser.
 +
L'algorithme est alors le suivant :
 +
<source lang='perl'>
 +
load genome info # circular or linear chromosome(s) then each gene chromosome and position
 +
sort query genes by chromosome then by position
 +
foreach chromosome with query genes
 +
  for i in first to last-1 query gene on that chromosome
 +
      for j in the next query gene after i to last query gene
 +
          check what is more pertinent if i and i+1 are adjacent or j and j+1 are adjacent, maybe jump to next iteration
 +
          compare query set and the set defined by interval i/i+1 .. j/j+1 (or j/j+1 .. i/i+1 if chromosome is circular)
 +
</source>
 +
 +
Format de fichier pour ce type de structure : 1 chromosome par ligne : <tt>chr_id circular|linear [gene_id+]</tt>
 +
# format: chromosomes
 +
# version: 1.0
 +
EcolA01 circular THRL THRA THRB THRC ...
<big>'''Références'''</big>
<big>'''Références'''</big>
Line 44: Line 487:
# [http://www.biomedcentral.com/1471-2105/8/332/abstract  Barriot, R., Sherman, D., Dutour, I., How to decide which are the most pertinent overly-represented features during gene set enrichment analysis (2007) BMC Bioinformatics, 8:332]
# [http://www.biomedcentral.com/1471-2105/8/332/abstract  Barriot, R., Sherman, D., Dutour, I., How to decide which are the most pertinent overly-represented features during gene set enrichment analysis (2007) BMC Bioinformatics, 8:332]
# [http://nar.oxfordjournals.org/cgi/content/short/gkn114v1 De Preter, K., Barriot, R., Speleman, F., Vandesompele, J., Moreau, Y., Positional gene enrichment analysis of gene sets for high resolution identification of overrepresented chromosomal regions (2008) Nucleic Acids Research]
# [http://nar.oxfordjournals.org/cgi/content/short/gkn114v1 De Preter, K., Barriot, R., Speleman, F., Vandesompele, J., Moreau, Y., Positional gene enrichment analysis of gene sets for high resolution identification of overrepresented chromosomal regions (2008) Nucleic Acids Research]
 +
 +
== Calendrier ==
 +
* 11 novembre 2013 : envoi d'un mail indiquant le projet sélectionné (ou avant le 11 novembre si le choix a déjà été fait)
 +
* 24 novembre : envoi d'un mail avec l'état d'avancement et les éventuelles difficultés rencontrées
 +
* 21 décembre : envoi du rapport (format électronique type PDF + scripts et jeux de données)
= Projets 2012-13 =
= Projets 2012-13 =
Line 107: Line 555:
Analyser et interpréter les résultats de sookoos.
Analyser et interpréter les résultats de sookoos.
 +
 +
-->

Revision as of 07:13, 24 September 2019

Contents

Projets 2019-20

Caractérisation d'ensemble par recoupement de voisinages

Intégration et préparation des données

Outline:

  • choisir un organisme. Le même organisme ne peut pas être pris par plusieurs personnes. La liste des choix attribués (premier arrivé, premier servi) sera disponible en fin de cette section.
  • fournir un script permettant d'obtenir à partir du graphe de la Gene Ontology et des associations 2 fichiers :
    • le premier fournit les associations directes : la liste des gènes annotés directement par un même terme
    • le second fournit les associations implicites : la listes des gènes annotés par un même terme ou un de ses descendants (plus spécifiques)
  • choisir l'organisme de quelqu'un d'autre (là aussi, ne pas prendre plusieurs fois le même), afin de vérifier que le script précédent fonctionne bien sur un autre organisme.
  • utiliser le script sur les 2 organismes et faire une synthèse (par exemple : nombre de gènes annotés sur le génome, nombre de termes par gène, nombre de gènes par terme, ...). L'organisme choisi est-il "bien" annoté par la GO ?
Prénom      	Organisme	                              	Autre organisme choisi
Cheryn		Microlunatus phosphovorus
Marine      	Yersinia pestis
Soufiane	Bacillus cereus
Eve		Caenorhabditis elegans
Tristan	        Drosophila melanogaster
Elise		Canis lupus familiaris
Chloé      	Plasmodium falciparum
Nicolas      	Anaplasma marginale
Juliette	Gallus gallus
Clara      	Apis mellifera
Geoffrey        Arabidopsis thaliana
Matthieu        Danio rerio
Julien      	Ornithorhynchus anatinus
Marion      	Pseudomonas fluorescens
Alexandre      	Schistosoma mansoni


Ajout de fonctionnalités à blastset.py

Notation : On considère un ensemble requête Q (query) et un ensemble cible T (target, appartenant à un jeu de données de référence). Les deux ensembles sont inclus dans l'ensemble des gènes de l'organisme G (génome). Ils ont respectivement des cardinalités q, t, g.

Il s'agit de proposer d'autres mesures de dissemblance. La première est naïve (non statistique) que l'on nommera overlap ou coverage et consiste à considérer quelles fractions des 2 ensembles se correspondent. Pour la cohérence avec les autres mesures la valeur sera de 1 quand aucun élément n'est commun aux 2 ensembles, et 0 pour 2 ensembles identiques. Il s'agit donc de multiplier c/q par c/t avec c le nombre d'éléments communs aux ensembles Q et T respectivement de cardinalités q et t, et de soustraire cette valeur à 1.

La deuxième mesure à ajouter est un χ2 d'indépendance en considérant les ensembles Q et T comme 2 variables qualitatives. Le test est donc à effectuer sur la table de contingence :

T G \ T Σ
Q c q - c q
G \ Q t - c g - q - t + c g - q
Σ t g - t g

Remarque : Il est possible de s'autoriser à transformer la mesure non statistique (coverage) afin qu'elle indique la dissemblance entre 2 ensembles (0 : identique, >0 : dissemblable). Ainsi les résultats seront triés dans le même ordre pour coverage et pour les p-valeurs (du χ2 par exemple).

Comparaison des mesures ajoutées

Proposez une approche et comparez les différentes mesures intégrées au script. Laquelle est-il préférable d'utiliser ?

Comparaison de fonction de regroupement

Les voisinages obtenus par différentes fonction de regroupement se ressemblent-ils ?

A partir d'une question biologique, par exemple, les gènes organisés en opéron sont-ils, de manière générale, co-exprimés, reformulez-la en comparaison de voisinage pour y répondre. Pour cela, choisissez deux fonctions de regroupement (par exemple la co-régulation et une autre) et proposez et mettez en oeuvre la comparaison des voisinages obtenus selon ces fonctions de regroupement sur l’organisme que vous avez choisi. Au final, à partir des données intégrées, il s'agira de répondre à la question posée, chiffres et analyses à l'appui.

Rapport à rendre

Un rapport succinct est demandé. L'objectif est de fournir plutôt un rapport technique pour l'ajout des mesures au script et méthodologique pour la partie comparaison des mesures. Il doit donc être complet, pertinent, ciblé (qui est le lecteur ?), scientifique et rigoureux.

Il doit inclure

  • une brève introduction générale décrivant le contexte, les objectifs et le plan de ce qui suit.
  • intégration et préparation des données
    • données utilisées (sans oublier les versions)
    • méthodes d'intégration envisagées, choix et détails dans la réalisation
    • synthèse de l'annotation GO de l'organisme choisi
  • ajout de fonctionnalités :
    • des explications sur les modifications apportées au script original,
    • comment utiliser le script modifié,
    • un exemple d'utilisation des fonctionnalités ajoutées.
  • comparaison des mesures intégrées :
    • approches envisagées et méthode pour en sélectionner une
    • mise en oeuvre
    • synthèse des résultats obtenus
    • bilan : quelle mesure utiliser de préférence, pourquoi
    • perspectives d'amélioration
  • bilan personnel sur cette partie du projet et sur cette UE : motivations ? critiques ? suggestions ? apports ? ... ?

Contraintes :

  • Le rapport doit être au format PDF.
  • Le rapport peut être en anglais ou en français mais pas les 2.
  • Le script modifié et les éventuels jeux de tests utilisés et résultats obtenus doivent être disponibles dans votre github.

Sujets alternatifs aux questions 1.2 à 1.4

  1. Etudier la possibilité d'extrapoler la correction du seuil alpha par fonction de répartition empirique des minPi en fonction de la taille de l'ensemble requête
  2. Implémenter le filtrage des ensembles cibles considérés par critère de pertinence (strict ou ratio de pertinence) sur :
    1. pour un graphe orienté sans circuit (DAG)
    2. pour un arbre
    3. pour un treillis (ordre des gènes sur le chromosome)
  3. Implémenter la recherche d'enrichissement sur un graphe par marches aléatoires

Partie 2 collective 2018-19 (pas à faire): Intégration et exploitation de données hétérogènes dans un modèle graphique

Le but de cette partie est de mettre en oeuvre certains principes vus jusqu'ici afin de répondre à une question biologique : les gènes co-régulés chez un organisme donné le sont-ils aussi chez Escherichia coli K-12 MG1655 ?

Afin d'y répondre, il faudra choisir un organisme, déterminer les gènes co-régulés dans les 2 génomes ainsi que la correspondance des gènes entre les 2 génomes.

La co-régulation des gènes peut se trouver dans la littérature et les bases de données mais les connaissances actuelles ne sont pas complètes. Pour pallier ce manque, on pourra choisir de faire une prédiction de la co-régulation avec une approximation : il s'agit de supposer que les gènes co-exprimés sont co-régulés. Pour déterminer les gènes co-exprimés chez un organisme, on se base généralement sur un compendium de données d'expression comprenant suffisamment de conditions expérimentales différentes. A partir des profils d'expression des gènes dans toutes ces conditions, on applique une méthode de clustering pour identifier les ensembles de gènes co-exprimés. Il est bien sûr aussi possible d'utiliser une base de données de référence, si elle existe, ou bien une base de données contenant des scores de co-expression entre les paires de gènes de l'organisme étudié.

La correspondance des gènes entre les 2 génomes peut là aussi, bien sûr, si elle existe être établie à partir d'une base de données de référence, ou bien être calculée selon une méthode d'identification des gènes orthologues 1:1.

Objectifs et problématiques :

  • choix d'un organisme
  • les gènes orthologues chez E. coli K-12 MG1655 des gènes co-exprimés dans l'organisme choisi sont-ils aussi co-exprimés ?
  • quel est le groupe de gènes le mieux conservé (en termes d'orthologie, de co-expression, et d'annotation) ?
  • bonus (à réaliser si vous le souhaitez)
    • les ensemble de gènes conservés en co-expression forment-ils un opéron chez E. coli ?
    • vaut-il mieux utiliser les orthologues fournis par String ou Roland B. ? (Si RB vous a fourni ces données)
    • associer une ou des annotations aux groupes de gènes co-exprimés

Etapes clés :

  • détermination des gènes co-exprimés
  • identification des gènes orthologues 1:1 chez E. coli
  • constitution des jeux de données (de type graph database)
  • correspondance des groupes de gènes co-exprimés chez l'organisme choisi et E. coli
  • bonus
    • détermination des opérons chez E. coli
    • correspondance avec les opérons de E. coli
    • mise en oeuvre avec d'autres méthodes pour l'identification des gènes co-exprimés et des orthologues, et comparaison des résultats
    • annotation automatique de groupes de gènes

Contraintes :

  • Les organismes choisis par les différents groupes doivent être différents (premier arrivé = premier servi).
  • Utilisation de Neo4j pour la représentation sous forme de graphe des données intégrées (expression, orthologie, annotation, ...).


Rapport à rendre

Là aussi, un rapport succinct est demandé. L'objectif est de fournir des informations sur la réalisation de cette partie et les choix effectués pour y arriver. Il doit donc être complet, pertinent, scientifique et rigoureux.

Il doit inclure

  • une brève introduction générale décrivant le contexte, les objectifs et le plan de ce qui suit.
  • Analyse et conception
    • choix de l'organisme
    • méthode(s) pour la sélection des données utilisées
    • méthode(s) pour l'identification des gènes co-régulés
    • methode(s) utilisée pour l'identification des gènes orthologues
  • Réalisation
    • environnement de travail, constitution des données utilisées (modèle graph database), paramétrages des méthodes utilisées, logiciels et banques utilisés
    • résultats
  • Bilan et perspectives
    • synthèses et conclusions sur l'étude demandée
    • perspectives d'amélioration de ce type d'étude, pistes d'analyses qu'elle ouvre (sur l'organisme sélectionné, ou plus généralement)
  • Bilan du groupe sur cette partie du projet
    • part de chacun dans les différents aspects du travail effectué
    • difficultés rencontrées
    • avis sur les bases de données de types graph database

Contraintes :

  • Le rapport doit être au format PDF.
  • Le rapport peut être en anglais ou en français mais pas les 2.
  • Les scripts et programmes développés et les éventuels jeux de tests utilisés et résultats obtenus doivent être fournis ou disponibles sous forme d'archive.

Présentation

La présentation orale se fera par groupe. La durée de la présentation ne doit pas dépasser 20 minutes. Elle sera suivie de questions, commentaires et d'une discussion.

La présentation sera sur le thème d'une présentation interne à une équipe ou un institut, c'est-à-dire que le public connaît les enjeux et les contraintes. Elle portera donc davantage sur les choix des méthodes et leur réalisation, ainsi que sur la discussion et les résultats obtenus.

Calendrier

Partie 1 individuelle : Le rapport individuel et l'archive associée sont à remettre par voie électronique avant le 15 octobre 2018.

Partie 2 collective, les dates indiquées sont les dates limites exclues (par exemple l'information sur la composition des groupes doit parvenir avant le 24/09, donc vous avez jusqu'au 23)

  • 24/09 détermination des groupes (et information transmise à RB)
  • 01/10 choix d'un organisme (et information transmise à RB)

Le rapport collectif est à remettre par voie électronique avant le 10 décembre.

Remarque : tout retard sur le calendrier, notamment la remise des livrables, pourra être pris en compte dans la note d'évaluation.