silico.biotoul.fr
 

M2BBS Integration de Donnes Heterogenes - Projets

From silico.biotoul.fr

(Difference between revisions)
Jump to: navigation, search
m (Projets 2015-16)
m (Intégration et préparation des données)
 
(123 intermediate revisions not shown)
Line 1: Line 1:
-
= Projets 2015-16 =
+
= Projet 2020-21 =
-
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.
+
Les projets s'organisent en 2 parties :
 +
* la partie 1 est individuelle (c'est-à-dire que chacun·e doit la faire et fournir un rapport).
 +
* la partie 2 est à faire en groupe de 4 personnes
-
'''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.
+
'''Calendrier'''
-
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''.
+
* Partie 1 : à rendre mi-novembre (ainsi tou·te·s les participant·e·s pourront démarrer la partie 2)
 +
* Partie 2 : rapport à rendre une semaine avant les présentations du 17/12 8h-12h
-
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 :
+
== Partie 1 Individuelle : enrichissement/Gene Set Enrichment Analysis  ==
-
{| border='1' cellspacing='0' cellpadding='10'
+
-
|-
+
-
|        ||  T  || G \ T || <math>\Sigma</math>
+
-
|-
+
-
|  Q    ||  c  || q - c || q
+
-
|-
+
-
|  G \ Q ||  t-c || g - c || g - q
+
-
|-
+
-
|  <math>\Sigma</math>  || t  || g - t || g
+
-
|}
+
-
= Projets 2014-15 =
+
=== Intégration et préparation des données ===
-
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'''
+
Outline:
-
* [[silico:enseignement/m2BBS/idh/PaerA.geo.h5|PaerA.geo.h5]]: gene-gene dissimilarity matrix based on GEO expression profiles for ''P. aeruginosa'' PAO1
+
* 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.
-
* [[silico:enseignement/m2BBS/idh/PaerA.string.h5|PaerA.string.h5]]: gene-gene dissimilarity matrix based on STRING network for ''P. aeruginosa'' PAO1
+
* Enrichir la base de connaissances faite en TP par l'ajout :
-
* [[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:
+
** des liens d'orthologie avec les gènes ''E. coli''
 +
** des liens de coexpression, d'interaction protéine-protéine, de conservation du contexte génomique pour l'organisme ajouté
 +
* Fournir un script/document (par exemple la procédure réalisée ensemble sur ''E. coli'') permettant de recréer la base de connaissances, ainsi que les fichiers nécessaires pour analyses d'enrichissement en termes GO  :
 +
** 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)
 +
* Utiliser des statistiques descriptives  (par exemple : nombre de gènes annotés sur le génome, nombre de termes par gène, nombre de gènes par terme, ...) afin de discuter de l'avancement de l'annotation de l'organisme choisi.
-
* [[silico:enseignement/m2BBS/idh/SaurH.geo.h5|SaurH.geo.h5]]: gene-gene dissimilarity matrix based on GEO expression profiles for ''S. aureus'' NCTC 8325
+
<pre>
-
* [[silico:enseignement/m2BBS/idh/SaurH.string.h5|SaurH.string.h5]]: gene-gene dissimilarity matrix based on STRING network for ''s. aureau'' NCTC 8325
+
Prénom → Organisme
-
* [[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>
+
Refka → Lactobacillus kunkeei (taxid: 148814)
 +
Laura BS → Vibrio cholerae
 +
Quentin → Picrophilus torridus (strain DSM 9790)
 +
Tomas → Staphylococcus aureus
 +
Pierre → Enterobacter aerogenes
 +
Sophie → Ralstonia Solanacearum (GMI 1000)
 +
Aurélien → Vibrio parahaemolyticus
 +
Valentine → Proteus mirabilis
 +
Laura DF → Clostridium tetanomorphum
 +
Codé → Bacillus subtilis
 +
Antoine → Mycobacterium tuberculosis (strain ATCC 25618 / H37Rv)
 +
Baptiste → Bradyrhizobium sp. ORS 278
 +
Jérémy → Pseudomonas putida KT2440
 +
Alexia → Streptococcus pneumoniae
 +
Safia → Caulobacter crescentus CB15
 +
Houyem → Shigella flexneri
 +
</pre>
-
= Projets 2013-14 =
+
Groupes partie 2 :
 +
* Quentin, Pierre, Aurélien, Codé
 +
* Safia, Refka, Houyem, Laura B
 +
* Tomas, Sophie, Valentine, Laura D
 +
* Jérémy, Baptiste, Antoine, Alexia
-
Le projet consiste en la mise en oeuvre d'un algorithme de recherche de caractéristiques sur-représentées au sein d'un ensemble de gènes par confrontation avec d'autres ensembles de gènes (relation de voisinage). Les caractéristiques/voisinages à rechercher sont constitué(e)s d'ensembles de gènes imbriqués les uns dans les autres selon 3 structures (posets) : (i) arbre, (ii) graphe acyclique orienté ou encore (iii) treillis. Des algorithmes efficaces sont présentés dans [1], et aussi [2] pour la structure en treillis. Vous aurez donc à choisir une des méthodes pour sa mise en oeuvre. Le travail à réaliser se décompose en :
+
=== Ajout de fonctionnalités à <tt>blastsets.py</tt> ===
-
* sélection d'une des méthodes (Projet 1, 2 ou 3 ci-desssous)
+
-
* implémentation sous forme de script(s) Perl
+
-
* constitution de jeux de données (et éventuellement de scripts pour convertir les données)
+
-
* 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)
+
 +
'''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''.
-
== Projet 1 : Relation de voisinage représenté par un graphe acyclique orienté (DAG) ==
+
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'' 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 représentation sous forme de DAG est la plus générique. Il s'agit de l'algorithme 2 présenté dans [1]. Pour ce projet, il est conseillé d'utiliser la relation de voisinage induite par les annotations de la Gene Ontology. Le site http://www.geneontology.org met à disposition l'ontologie (Downloads->Ontologies) et les associations (Downloads->Annotations).
+
-
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.
+
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'
-
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>
+
|-
-
 
+
|            ||  ''T''     || ''G \ T''           || <math>\Sigma</math>
-
Exemple extrait de [[Media:EcolA.go.closure.2012.dag]] :
+
|-
-
# format: dag
+
''Q''   ||  ''c''    || ''q - c''           || ''q''
-
# version: 1.0
+
|-
-
GO:2001001      biological_process: negative regulation of xylan catabolic process      0      GO:2000916,GO:2000922         
+
''G \ Q'' || ''t - c'' || ''g - q - t + c''   || ''g - q''
-
GO:0006285      biological_process: base-excision repair, AP site formation    2      GO:0045007,GO:0045008  MUG,MUTM       
+
|-
-
GO:0006284      biological_process: base-excision repair        8      GO:0006285,GO:0006286,GO:0006287,GO:0006288    ALKA,MUG,MUTM,MUTY,NEI,NTH,TAG,UNG     
+
|  <math>\Sigma</math>  || ''t''   || ''g - t''   || ''g''
-
GO:0015777      biological_process: teichoic acid transport    0                     
+
|}
-
ROOT    Gene Ontology  3646    GO:0003674,GO:0005575,GO:0008150                ROOT
+
-
GO:0008750      molecular_function: NAD(P)+ transhydrogenase (AB-specific) activity    2              PNTA,PNTB     
+
-
 
+
-
'''Commentaires :'''
+
-
* 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
+
-
 
+
-
'''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.
+
-
 
+
-
 
+
-
 
+
-
 
+
-
 
+
-
== 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) ==
+
-
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>
+
-
 
+
-
# [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]
+
-
 
+
-
== 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 =
+
-
 
+
-
'''Calendrier :'''
+
-
* 1 octobre : proposition de projets
+
-
 
+
-
* 2 octobre : sélection d'un projet : envoyer un mail indiquant
+
-
** le projet choisi
+
-
** pour la confrontation ensembliste, l'hypothèse biologique testée et quelles sources de données (et sur quel organisme) vont être confrontées pour tester cette hypothèse.
+
-
 
+
-
* 19 octobre : remise des projets par voie électronique sous la forme :
+
-
** un rapport
+
-
** les scripts réalisés
+
-
 
+
-
Une démo de biomart sera à prévoir pour ceux qui auront choisi le projet n°1.
+
-
 
+
-
'''Contenu du rapport :''' Le contenu est à adapter un fonction du projet. Dans tous les cas, il faudra
+
-
* motiver et documenter les choix effectués
+
-
* décrire les difficultés rencontrées, quelles solutions ont été envisagées, testées, fructueuses ou infructueuses (quoi, pourquoi, comment ?)
+
-
 
+
-
 
+
-
== Projet 1 : ajout d'une source de données (BioCyc) ==
+
-
Récupérer les données BioCyc prétraitées (lin sur cette page en bas) et :
+
'''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).
-
* ajouter à l'instance de serveur BioMart
+
-
* faire un script python pour récupérer, en fonction de l'espèce spécifiée, un fichier d'entrée pour sookoos pour les données BioCyc à partir des services Web du serveur biomart.
+
-
* analyser les pathways biocyc en les confrontant avec sookoos à différents autres critères de regroupement (par exemple les données d'expression).
+
-
* synthétiser et interpréter les résultats de sookoos.
+
-
== Projet 2 : implémentation d'un module Perl pour sookoos ==
+
=== Comparaison des mesures ajoutées ===
-
=== Implémentation du module ===
+
Proposez une approche et comparez les différentes mesures intégrées au script. Laquelle est-il préférable d'utiliser ?
-
Le module Perl Neighborhood fourni permet actuellement de rechercher des ensembles similaires au sein d'ordres partiels sur les ensembles représentés par soit de simples ensembles (sets), soit une hiérarchie sous forme d'arbre (newick), soit une hiérarchie sous forme de graphe (dag). Il s'agit donc de développer un module Perl Neighborhood::Lattice qui permette de rechercher des ensembles similaires sur un ou des chromosomes.
+
=== Rapport à rendre ===
-
L'algorithme pour rechercher les ensembles similaires est le suivant :
+
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.  
-
<source lang='perl'>
+
-
foreach chromosome
+
-
  for i=0..query_length-1
+
-
    left_bound = query[i] # position of gene[i] on the chromosome
+
-
    next if left_bound == query[i-1]+1 # previous iteration was more pertinent
+
-
    for j=i+1..query_length
+
-
      right_bound = query[j]
+
-
      next if right_bound +1 == query[j+1] # next iteration will be more pertinent
+
-
      # compute pvalue or dissimilarity
+
Il doit inclure
-
      ...
+
* une brève introduction générale décrivant le contexte, les objectifs et le plan de ce qui suit. Une partie pédagogique sur l'organisme choisi serait la bienvenue (habitat, mode de vie, caractéristiques particulières, intérêt pour vous et/ou pour la communauté scientifique, ...).
-
      # add to results if significant
+
* 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 (le document détaillé permettant de recréer la base et les fichiers pour les analyses d'enrichissement pourra être fourni à part sous forme de compte rendu RMarkdown s'il est trop similaire à celui réalisé en TP)
 +
** statistiques descriptives sur l'avancement de l'annotation de l'organisme choisi (avec des illustrations pertinentes)
 +
* 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 ? ... ?
-
</source>
+
Contraintes :
 +
* Le rapport doit être au format PDF. La partie ''réalisation'' de "intégration et préparation des données" peut être sommaire et renvoyer vers le compte rendu associé.
 +
* 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 fournis ou disponibles sous forme d'archive ou projet gitlab.
-
'''Remarque :''' Attention, dans le cas de chromosome circulaire, il faut adapter la définition de pertinence et la prise en compte de l'intervalle. En effet, deux gènes de l'ensemble requête définissent un intervalle sur le chromosome et en cas de chromosome circulaire il faut prendre le plus petit des 2 intervalles possibles (Qi..Qj ou Qj..Qi).
+
== Partie 2 collective : Intégration et exploitation de données hétérogènes dans un modèle graphique ==
-
Les autres méthodes à développer sont les suivantes :
+
* Enrichir la base de connaissances faite en TP par les organismes étudiés individuellement par les membres du groupe dans la partie 1, ainsi que l'ajout :
-
* load(filename): pour charger les données.
+
** des liens d'orthologie au minimum avec les gènes ''E. coli'', et si possible des liens d'orthologie entre toutes les paires de gènes de votre base
-
* searchSingleSet(id1, id2, ...): recherche d'ensembles similaires.
+
* Analyser la conservation des clusters identifiés en TP sur ''E. coli'' (et leurs annotations) dans les organismes ajoutés :
 +
** tous les clusters sont-ils présents ? en totalité ou partiellement ? partagent-ils les mêmes annotations ?
 +
** y en a-t-il de supplémentaires ? lesquels sont absents ?
 +
** les annotations enrichies dans ces clusters correspondent-elles à celles observées des clusters de ''E. coli'' ?
-
=== Utilisation du module ===
 
-
Confronter différents critères de regroupement avec la localisation des gènes sur le(s) chromsome(s) (String, GO, ...).
+
=== Rapport à rendre ===
-
Analyser et interpréter les résultats de sookoos.
+
Un rapport synthétique sur les approches envisagées pour la comparaison des clusters, la méthode sélectionnée et les principaux résultats obtenus qui seront ensuite discutés.

Current revision as of 10:40, 25 November 2020

Contents

Projet 2020-21

Les projets s'organisent en 2 parties :

  • la partie 1 est individuelle (c'est-à-dire que chacun·e doit la faire et fournir un rapport).
  • la partie 2 est à faire en groupe de 4 personnes


Calendrier

  • Partie 1 : à rendre mi-novembre (ainsi tou·te·s les participant·e·s pourront démarrer la partie 2)
  • Partie 2 : rapport à rendre une semaine avant les présentations du 17/12 8h-12h

Partie 1 Individuelle : enrichissement/Gene Set Enrichment Analysis

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.
  • Enrichir la base de connaissances faite en TP par l'ajout :
    • des liens d'orthologie avec les gènes E. coli
    • des liens de coexpression, d'interaction protéine-protéine, de conservation du contexte génomique pour l'organisme ajouté
  • Fournir un script/document (par exemple la procédure réalisée ensemble sur E. coli) permettant de recréer la base de connaissances, ainsi que les fichiers nécessaires pour analyses d'enrichissement en termes GO  :
    • 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)
  • Utiliser des statistiques descriptives (par exemple : nombre de gènes annotés sur le génome, nombre de termes par gène, nombre de gènes par terme, ...) afin de discuter de l'avancement de l'annotation de l'organisme choisi.
Prénom → Organisme
Refka → Lactobacillus kunkeei (taxid: 148814)
Laura BS → Vibrio cholerae
Quentin → Picrophilus torridus (strain DSM 9790)
Tomas → Staphylococcus aureus
Pierre → Enterobacter aerogenes
Sophie → Ralstonia Solanacearum (GMI 1000)
Aurélien → Vibrio parahaemolyticus
Valentine → Proteus mirabilis
Laura DF → Clostridium tetanomorphum
Codé → Bacillus subtilis
Antoine → Mycobacterium tuberculosis (strain ATCC 25618 / H37Rv)
Baptiste → Bradyrhizobium sp. ORS 278
Jérémy → Pseudomonas putida KT2440 
Alexia → Streptococcus pneumoniae
Safia → Caulobacter crescentus CB15
Houyem → Shigella flexneri

Groupes partie 2 :

  • Quentin, Pierre, Aurélien, Codé
  • Safia, Refka, Houyem, Laura B
  • Tomas, Sophie, Valentine, Laura D
  • Jérémy, Baptiste, Antoine, Alexia

Ajout de fonctionnalités à blastsets.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 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 ?

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. Une partie pédagogique sur l'organisme choisi serait la bienvenue (habitat, mode de vie, caractéristiques particulières, intérêt pour vous et/ou pour la communauté scientifique, ...).
  • 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 (le document détaillé permettant de recréer la base et les fichiers pour les analyses d'enrichissement pourra être fourni à part sous forme de compte rendu RMarkdown s'il est trop similaire à celui réalisé en TP)
    • statistiques descriptives sur l'avancement de l'annotation de l'organisme choisi (avec des illustrations pertinentes)
  • 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. La partie réalisation de "intégration et préparation des données" peut être sommaire et renvoyer vers le compte rendu associé.
  • 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 fournis ou disponibles sous forme d'archive ou projet gitlab.

Partie 2 collective : Intégration et exploitation de données hétérogènes dans un modèle graphique

  • Enrichir la base de connaissances faite en TP par les organismes étudiés individuellement par les membres du groupe dans la partie 1, ainsi que l'ajout :
    • des liens d'orthologie au minimum avec les gènes E. coli, et si possible des liens d'orthologie entre toutes les paires de gènes de votre base
  • Analyser la conservation des clusters identifiés en TP sur E. coli (et leurs annotations) dans les organismes ajoutés :
    • tous les clusters sont-ils présents ? en totalité ou partiellement ? partagent-ils les mêmes annotations ?
    • y en a-t-il de supplémentaires ? lesquels sont absents ?
    • les annotations enrichies dans ces clusters correspondent-elles à celles observées des clusters de E. coli ?


Rapport à rendre

Un rapport synthétique sur les approches envisagées pour la comparaison des clusters, la méthode sélectionnée et les principaux résultats obtenus qui seront ensuite discutés.