silico.biotoul.fr
 

M1 BBS Graphes - Projets

From silico.biotoul.fr

(Difference between revisions)
Jump to: navigation, search
m (Gene Ontology)
m (Gene Ontology)
(25 intermediate revisions not shown)
Line 1: Line 1:
= Bibliothèque Python =
= Bibliothèque Python =
-
Une partie du projet consiste à terminer la bibliothèque python entamée au cours des TP.
+
Une partie du projet consiste à terminer le module python entamé au cours des TP.
-
La liste des fonctions à terminer est la suivante (correspond à l'ensemble des questions jusqu'à la section Bellman-Ford incluse) :
+
La liste des fonctions à terminer est la suivante (correspond à l'ensemble des questions des 3 premiers TP) :
-
* TP1: dfs, is_acyclic, topological_sort
+
* TP1: bfs, induced_subgraph, clustering_coeficient
-
* TP2: bfs, BellmanFord, best_path (avec le script en ligne de commande)
+
* TP2 : dfs, is_acyclic, topological_sort
 +
* TP3: BellmanFord, <tt>script graphmaster.STRINGdb_path.py</tt>, FloydWarshall et FloydWarshallPath, diameter
 +
<!--
L'algorithme de Floyd-Warshall ainsi que la fonction ''diameter'' (renvoyant le diamètre du graphe) peuvent-être ajoutés et pourront faire l'objet d'un bonus.  
L'algorithme de Floyd-Warshall ainsi que la fonction ''diameter'' (renvoyant le diamètre du graphe) peuvent-être ajoutés et pourront faire l'objet d'un bonus.  
-
<!--, FloydWarshall, FloydWarshallPath, diameter
+
, FloydWarshall, FloydWarshallPath, diameter
* ajouter  
* ajouter  
** une fonction qui renvoie la liste des sommets sources : <tt>sources(g)</tt>
** une fonction qui renvoie la liste des sommets sources : <tt>sources(g)</tt>
Line 13: Line 15:
-->
-->
-
Une attention particulière sera portée à la qualité du code et de ses commentaires. '''Un script de tests/validations devra être fourni (ou bien intégré directement dans la bibliothèque) et testera chacune des fonctions sur un exemple'''.
+
Une attention particulière sera portée à la qualité du code et de ses commentaires.  
 +
 
 +
'''Pour cette partie, il n'est pas demandé de rapport et seul un script de tests/validations devra être fourni (ou bien intégré directement dans la bibliothèque) et testera chacune des fonctions sur un exemple'''.
<!--
<!--
Line 21: Line 25:
= Gene Ontology =
= Gene Ontology =
La deuxième partie du projet consiste à étendre la bibliothèque python afin de fournir des utilitaires pour la Gene Ontology. Ses principales fonctionnalités seront :
La deuxième partie du projet consiste à étendre la bibliothèque python afin de fournir des utilitaires pour la Gene Ontology. Ses principales fonctionnalités seront :
-
* le chargement du graphe représentant la Gene Ontology (fonction fournie)
+
* le chargement du graphe représentant la Gene Ontology (fonction <tt>load_OBO</tt> fournie en TP) disponible sur http://geneontology.org : http://purl.obolibrary.org/obo/go/go-basic.obo
-
* le chargement des associations ''gene product'' - ''GO Term''  (fonction fournie)
+
* le chargement des associations ''GeneProduct'' - ''GOTerm''  (fonction <tt>load_GOA</tt> fournie en TP) concernant un génome de votre choix
-
Une fois ces étapes réalisées, les méthodes à implémenter sont :
+
Une fois ces étapes réalisées, les fonctions à implémenter sont :
-
* détermination du plus long chemin afin d'obtenir la profondeur maximale de chacune des trois ontologies (''biological process'', ''molecular function'' et ''cellular component'')
+
* détermination du plus long chemin possible entre 2 sommets afin d'obtenir la profondeur maximale de chacune des trois ontologies (''biological process'', ''molecular function'' et ''cellular component'')
-
* obtention des ''gene products'' directement associés à un ''GO Term''
+
* obtention des ''GeneProducts'' directement associés à un ''GOTerm''
-
* obtention des ''GO Terms'' directement associés à un ''gene product''
+
* obtention des ''GOTerms'' directement associés à un ''GeneProduct''
-
* obtention des ''gene products'' associés à un ''GO Term'' ou à un de ses descendants (ou ancêtres selon le choix sur l'orientation des arcs lors du chargement du graphe) correspondant à des termes GO plus spécifiques
+
* obtention des ''GeneProducts'' associés à un ''GOTerm'' ou à un de ses descendants (ou ancêtres selon le choix sur l'orientation des arcs lors du chargement du graphe) correspondant à des termes GO plus spécifiques
* pour un ''gene product'', l'obtention des ''GO Terms'' associés en incluant les termes ancêtres (ou descendants ...) correspondant à des termes GO plus généraux
* pour un ''gene product'', l'obtention des ''GO Terms'' associés en incluant les termes ancêtres (ou descendants ...) correspondant à des termes GO plus généraux
-
Pour le chargement du graphe de la Gene Ontology ainsi que le chargement des annotations spécifiques à un organisme, il vous est fourni en exemple un fichier [[Media:GeneOntology.py|GeneOntology.py]] proposant les fonctions <tt>load_OBO</tt> pour le chargement du graphe de la Gene Ontology et <tt>load_GOA</tt> pour le chargement des annotations et leur ajout au graphe précédent. Vous pouvez vous servir de <tt>GeneOntology.py</tt> comme base de départ pour cette partie du projet, auquel cas vous ajouterez donc des fonctions.  
+
'''Remarque :''' Vous êtes libres d'apporter toutes les modifications que vous voulez aux modules commencés en TP ainsi qu'au code fourni pour le chargement de la Gene Ontology et des annotations d'un génome (ex: orientation des arcs, représentation interne du graphe, ...), mais la pertinence et l'efficacité (complexité en temps/espace) seront prises en compte.  
-
'''Remarque :''' Vous êtes libres d'apporter toutes les modifications que vous voulez à la librairie commencée en TP ainsi qu'au code fourni pour le chargement de la Gene Ontology et des annotations d'un génome (ex: sens des arcs, représentation interne du graphe, ...).
+
Pour le '''chargement des annotations''', le format à prendre en charge s'appelle gaf (version 2.1). Vous pourrez travailler sur le(s) fichier(s) de votre choix. Un ensemble de proteomes est disponible sur le FTP de l'EBI : http://ftp.ebi.ac.uk/pub/databases/GO/goa, notamment le répertoire [http://ftp.ebi.ac.uk/pub/databases/GO/goa/proteomes/ proteomes], avec le [http://ftp.ebi.ac.uk/pub/databases/GO/goa/proteomes/README README] qui vous indique à quoi correspondent les colonnes des fichiers. Celles (au minimum) à conserver sont :  
-
 
+
-
Pour le '''chargement du graphe''', vous pouvez utiliser la fonction load_OBO qui charge le format OBO (version 1.2, cf. [[silico:enseignement/m1/graph/GO.format.obo-1_2.html|OBO_1.2]]). Toutes les spécifications du format '''ne sont pas''' à respecter. On ne s'intéressera qu'aux tags : id, name, namespace, def, is_a, relationship. Les termes indiqués ''obsolete'' sont à ignorer. Le fichier à charger sera celui nommé go-basic dans la partie téléchargement de http://geneontology.org.
+
-
 
+
-
Pour le '''chargement des annotations''', le format à prendre en charge s'appelle gaf (version 2.1). Vous pourrez travailler sur le(s) fichier(s) de votre choix. Un ensemble de proteomes est disponible sur le FTP de l'EBI : ftp://ftp.ebi.ac.uk/pub/databases/GO/goa, notamment le répertoire [ftp://ftp.ebi.ac.uk/pub/databases/GO/goa/proteomes/ proteomes], avec le [ftp://ftp.ebi.ac.uk/pub/databases/GO/goa/proteomes/README README] qui vous indique à quoi correspondent les colonnes des fichiers. Celles (au minimum) à conserver sont :  
+
* 2) DB_Object_ID = identifiant unique (id)
* 2) DB_Object_ID = identifiant unique (id)
* 3) DB_Object_Symbol = nom du produit du gène (name)
* 3) DB_Object_Symbol = nom du produit du gène (name)
Line 44: Line 44:
Vous devez donc '''choisir un organisme''' parmi tout ceux disponibles ou bien en prendre un dans la liste ci dessous :
Vous devez donc '''choisir un organisme''' parmi tout ceux disponibles ou bien en prendre un dans la liste ci dessous :
-
# ''E. coli'' [[silico:enseignement/m1/graph/goa/18.E_coli_MG1655.goa|18.E_coli_MG1655.goa]] '''→ Sabrina'''
+
<!-- # ''E. coli'' [[silico:enseignement/m1/graph/goa/18.E_coli_MG1655.goa|18.E_coli_MG1655.goa]] -->
-
# ''M. musculus'' [[silico:enseignement/m1/graph/goa/59.M_musculus.goa|59.M_musculus.goa]] '''Naomi'''
+
# ''M. musculus''     [http://ftp.ebi.ac.uk/pub/databases/GO/goa/proteomes/59.M_musculus.goa 59.M_musculus.goa]                - [[silico:enseignement/m1/graph/goa/59.M_musculus.goa|archive de 2017]]                             Claire
-
# ''H. sapiens'' [[silico:enseignement/m1/graph/goa/25.H_sapiens.goa|25.H_sapiens.goa]] '''→ Moussa'''
+
# ''H. sapiens''       [http://ftp.ebi.ac.uk/pub/databases/GO/goa/proteomes/25.H_sapiens.goa 25.H_sapiens.goa]                  - [[silico:enseignement/m1/graph/goa/25.H_sapiens.goa|archive de 2017]]                               → Moussa
-
# ''C. elegans'' [[silico:enseignement/m1/graph/goa/9.C_elegans.goa|9.C_elegans.goa]] '''Coraline'''
+
# ''C. elegans''       [http://ftp.ebi.ac.uk/pub/databases/GO/goa/proteomes/9.C_elegans.goa 9.C_elegans.goa]                    - [[silico:enseignement/m1/graph/goa/9.C_elegans.goa|archive de 2017]]                                                     Julie
-
# ''G. gallus'' [[silico:enseignement/m1/graph/goa/21457.G_gallus.goa|21457.G_gallus.goa]] '''Océane'''
+
# ''G. gallus''       [http://ftp.ebi.ac.uk/pub/databases/GO/goa/proteomes/21457.G_gallus.goa 21457.G_gallus.goa]              - [[silico:enseignement/m1/graph/goa/21457.G_gallus.goa|archive de 2017]]                                                 Lucie
-
# ''R. norvegicus'' [[silico:enseignement/m1/graph/goa/122.R_norvegicus.goa|122.R_norvegicus.goa]] '''→ Gatépé'''
+
# ''R. norvegicus''   [http://ftp.ebi.ac.uk/pub/databases/GO/goa/proteomes/122.R_norvegicus.goa 122.R_norvegicus.goa]          - [[silico:enseignement/m1/graph/goa/122.R_norvegicus.goa|archive de 2017]]  
-
# ''D. melanogaster'' [[silico:enseignement/m1/graph/goa/17.D_melanogaster.goa|17.D_melanogaster.goa]] '''Tiphaine'''
+
# ''D. melanogaster'' [http://ftp.ebi.ac.uk/pub/databases/GO/goa/proteomes/17.D_melanogaster.goa 17.D_melanogaster.goa]        - [[silico:enseignement/m1/graph/goa/17.D_melanogaster.goa|archive de 2017]]                                   Priscilla
-
# ''A. thaliana'' [[silico:enseignement/m1/graph/goa/217288.A_thaliana.goa|217288.A_thaliana.goa]] '''Magdalena'''
+
# ''A. thaliana''     [http://ftp.ebi.ac.uk/pub/databases/GO/goa/proteomes/217288.A_thaliana.goa 217288.A_thaliana.goa]        - [[silico:enseignement/m1/graph/goa/217288.A_thaliana.goa|archive de 2017]]                                         Margaux
-
# ''D. rerio'' [[silico:enseignement/m1/graph/goa/20721.D_rerio.goa|20721.D_rerio.goa]] '''Sandra'''
+
# ''D. rerio''         [http://ftp.ebi.ac.uk/pub/databases/GO/goa/proteomes/4832498.D_rerio_1.goa 4832498.D_rerio_1.goa]        - [[silico:enseignement/m1/graph/goa/20721.D_rerio.goa|archive de 2017]]                                                   Jean
-
# ''S. aureus'' [[silico:enseignement/m1/graph/goa/22608.S_aureus_NCTC_8325.goa|22608.S_aureus_NCTC_8325.goa]] '''Annabelle'''
+
# ''S. aureus''       [http://ftp.ebi.ac.uk/pub/databases/GO/goa/proteomes/22608.S_aureus_NCTC_8325.goa 22608.S_aureus_NCTC_8325.goa] - [[silico:enseignement/m1/graph/goa/22608.S_aureus_NCTC_8325.goa|archive de 2017]]                                 Asmaa
-
# ''S. cerevisiae'' [[silico:enseignement/m1/graph/goa/71242.S_cerevisiae_ATCC_204508.goa|71242.S_cerevisiae_ATCC_204508.goa]]
+
# ''S. cerevisiae''   [http://ftp.ebi.ac.uk/pub/databases/GO/goa/proteomes/71242.S_cerevisiae_ATCC_204508.goa 71242.S_cerevisiae_ATCC_204508.goa] - [[silico:enseignement/m1/graph/goa/71242.S_cerevisiae_ATCC_204508.goa|archive de 2017]]                           → Anastasiia
-
# ''S. mutans'' [[silico:enseignement/m1/graph/goa/102.S_mutans_ATCC_700610.goa|102.S_mutans_ATCC_700610.goa]]
+
# ''S. mutans''       [http://ftp.ebi.ac.uk/pub/databases/GO/goa/proteomes/102.S_mutans_ATCC_700610.goa 102.S_mutans_ATCC_700610.goa] - [[silico:enseignement/m1/graph/goa/102.S_mutans_ATCC_700610.goa|archive de 2017]]
-
# ''P. putida'' [[silico:enseignement/m1/graph/goa/109.P_putida_KT2440.goa|109.P_putida_KT2440.goa]]
+
# ''P. putida''       [http://ftp.ebi.ac.uk/pub/databases/GO/goa/proteomes/109.P_putida_KT2440.goa 109.P_putida_KT2440.goa]          - [[silico:enseignement/m1/graph/goa/109.P_putida_KT2440.goa|archive de 2017]]
-
# ''C. tetani' [[silico:enseignement/m1/graph/goa/119.C_tetani.goa|119.C_tetani.goa]]
+
# ''C. tetani''        [http://ftp.ebi.ac.uk/pub/databases/GO/goa/proteomes/119.C_tetani.goa 119.C_tetani.goa]                        - [[silico:enseignement/m1/graph/goa/119.C_tetani.goa|archive de 2017]]
-
# ''B. cereus'' [[silico:enseignement/m1/graph/goa/134.B_cereus_ATCC_14579.goa|134.B_cereus_ATCC_14579.goa]]
+
# ''B. cereus''       [http://ftp.ebi.ac.uk/pub/databases/GO/goa/proteomes/134.B_cereus_ATCC_14579.goa 134.B_cereus_ATCC_14579.goa]  - [[silico:enseignement/m1/graph/goa/134.B_cereus_ATCC_14579.goa|archive de 2017]]                   → Catherine
-
# ''D. radiodurans'' [[silico:enseignement/m1/graph/goa/16.D_radiodurans.goa|16.D_radiodurans.goa]]
+
# ''D. radiodurans''   [http://ftp.ebi.ac.uk/pub/databases/GO/goa/proteomes/16.D_radiodurans.goa 16.D_radiodurans.goa]                - [[silico:enseignement/m1/graph/goa/16.D_radiodurans.goa|archive de 2017]]
-
# ''S. thermophilum'' [[silico:enseignement/m1/graph/goa/20300.S_thermophilum.goa|20300.S_thermophilum.goa]]
+
# ''S. thermophilum'' [http://ftp.ebi.ac.uk/pub/databases/GO/goa/proteomes/20300.S_thermophilum.goa 20300.S_thermophilum.goa]        - [[silico:enseignement/m1/graph/goa/20300.S_thermophilum.goa|archive de 2017]]
-
# ''T. thermophilus'' [[silico:enseignement/m1/graph/goa/20981.T_thermophilus_HB8.goa|20981.T_thermophilus_HB8.goa]]
+
# ''T. thermophilus'' [http://ftp.ebi.ac.uk/pub/databases/GO/goa/proteomes/20981.T_thermophilus_HB8.goa 20981.T_thermophilus_HB8.goa] - [[silico:enseignement/m1/graph/goa/20981.T_thermophilus_HB8.goa|archive de 2017]]
-
# ''H. influenzae'' [[silico:enseignement/m1/graph/goa/21.H_influenzae_ATCC_51907.goa|21.H_influenzae_ATCC_51907.goa]] '''→ Kory'''
+
# ''H. influenzae''   [http://ftp.ebi.ac.uk/pub/databases/GO/goa/proteomes/21.H_influenzae_ATCC_51907.goa 21.H_influenzae_ATCC_51907.goa] - [[silico:enseignement/m1/graph/goa/21.H_influenzae_ATCC_51907.goa|archive de 2017]]
-
# ''L. major'' [[silico:enseignement/m1/graph/goa/21780.L_major.goa|21780.L_major.goa]]
+
# ''L. major''         [http://ftp.ebi.ac.uk/pub/databases/GO/goa/proteomes/21780.L_major.goa 21780.L_major.goa]                      - [[silico:enseignement/m1/graph/goa/21780.L_major.goa|archive de 2017]]
-
# ''P. fluorescens'' [[silico:enseignement/m1/graph/goa/21840.P_fluorescens_Pf-5.goa|21840.P_fluorescens_Pf-5.goa]]
+
# ''P. fluorescens''   [http://ftp.ebi.ac.uk/pub/databases/GO/goa/proteomes/21840.P_fluorescens_Pf-5.goa 21840.P_fluorescens_Pf-5.goa] - [[silico:enseignement/m1/graph/goa/21840.P_fluorescens_Pf-5.goa|archive de 2017]]
-
# ''N. crassa'' [[silico:enseignement/m1/graph/goa/22025.N_crassa.goa|22025.N_crassa.goa]]
+
# ''N. crassa''       [http://ftp.ebi.ac.uk/pub/databases/GO/goa/proteomes/22025.N_crassa.goa 22025.N_crassa.goa]                    - [[silico:enseignement/m1/graph/goa/22025.N_crassa.goa|archive de 2017]]
-
# ''A. gambiae'' [[silico:enseignement/m1/graph/goa/22426.A_gambiae.goa|22426.A_gambiae.goa]] '''→ Abdourahmane'''
+
# ''A. gambiae''       [http://ftp.ebi.ac.uk/pub/databases/GO/goa/proteomes/22426.A_gambiae.goa 22426.A_gambiae.goa]                  - [[silico:enseignement/m1/graph/goa/22426.A_gambiae.goa|archive de 2017]]
-
# ''M. truncatula'' [[silico:enseignement/m1/graph/goa/23232.M_truncatula.goa|23232.M_truncatula.goa]]
+
# ''M. truncatula''   [http://ftp.ebi.ac.uk/pub/databases/GO/goa/proteomes/23232.M_truncatula.goa 23232.M_truncatula.goa]            - [[silico:enseignement/m1/graph/goa/23232.M_truncatula.goa|archive de 2017]]
-
# ''O. sativa indica'' [[silico:enseignement/m1/graph/goa/23240.O_sativa_indica.goa|23240.O_sativa_indica.goa]] '''Sébastien'''
+
# ''O. sativa indica'' [http://ftp.ebi.ac.uk/pub/databases/GO/goa/proteomes/23240.O_sativa_indica.goa 23240.O_sativa_indica.goa] - [[silico:enseignement/m1/graph/goa/23240.O_sativa_indica.goa|archive de 2017]]                                                       Han
-
# ''P. parasitica'' [[silico:enseignement/m1/graph/goa/2325912.P_parasitica_CBS_412.66.goa|2325912.P_parasitica_CBS_412.66.goa]]
+
# ''P. parasitica''   [http://ftp.ebi.ac.uk/pub/databases/GO/goa/proteomes/2325912.P_parasitica_CBS_412.66.goa 2325912.P_parasitica_CBS_412.66.goa] - [[silico:enseignement/m1/graph/goa/2325912.P_parasitica_CBS_412.66.goa|archive de 2017]]
-
# ''O. oeni'' [[silico:enseignement/m1/graph/goa/25791.O_oeni.goa|25791.O_oeni.goa]]
+
# ''O. oeni''         [http://ftp.ebi.ac.uk/pub/databases/GO/goa/proteomes/25791.O_oeni.goa 25791.O_oeni.goa]                  - [[silico:enseignement/m1/graph/goa/25791.O_oeni.goa|archive de 2017]]
-
# ''M. smegmatis'' [[silico:enseignement/m1/graph/goa/25827.M_smegmatis.goa|25827.M_smegmatis.goa]]
+
# ''M. smegmatis''     [http://ftp.ebi.ac.uk/pub/databases/GO/goa/proteomes/25827.M_smegmatis.goa 25827.M_smegmatis.goa]        - [[silico:enseignement/m1/graph/goa/25827.M_smegmatis.goa|archive de 2017]]
Line 78: Line 78:
'''Dossier à rendre''' sous la forme d'une archive au format zip ou tar.gz
'''Dossier à rendre''' sous la forme d'une archive au format zip ou tar.gz
-
Le code de la bibliothèque annoté et assorti de jeux de tests (<u>sans le fichier obo</u> qui est le même pour tous).
+
Les modules python annotés et assortis de jeux de tests (<u>sans le fichier obo</u> qui est le même pour tous). Cela devrait correspondre à vos fichiers <tt>graphmaster.py</tt> et <tt>geneontology.py</tt>.
-
Un rapport synthétique au format PDF comprenant ''a minima'' les sections :
+
Un rapport synthétique au format PDF ressemblant à un rapport de projet d'ingéieurie qui comprend en général les sections suivantes :
-
* analyse
+
* Contexte
-
** analyse du contexte, des besoins et des fonctionnalités à fournir
+
: Une très brève introduction sur le cadre et l'objectif du projet. La description de l'organisme choisi.
-
* conception
+
* Analyse
-
** choix d'une représentation  
+
: Analyse du contexte, des besoins et des fonctionnalités à fournir : qu'est-ce qui est disponible et où et qu'est-ce qu'il manque et qu'il faudra réaliser.
-
** choix des algorithmes (avec leur complexité) pour réaliser les fonctionnalités demandées
+
* Conception
-
* réalisation
+
: Fort de l'analyse précédente, présenter l'approche choisie et pourquoi.
-
** choix techniques
+
:* Choix d'une représentation (si différente de celle utilisée en TP) : listes ou matrice d'adjacence, informations sur les sommets, les arcs/arêtes, ...
-
** résultats obtenus sur les données traitées
+
:* Élaboration des algorithmes (avec leur complexité) pour réaliser les fonctionnalités demandées. Par exemple, comment (en français) est conçu votre algorithme pour récupérer tous les ''GeneProducts'' concernés par un ''GOTerm'' ?
-
*** temps d'exécution
+
* Réalisation
-
*** nombre de sommets, d'arcs, nombre de ''gene products'', ... il serait intéressant dans cette partie d'étudier à quel point l'organisme choisi est annoté (nombre de gènes annotés ''vs.'' nombre de gènes dans le génome, en fonction des différentes branches de la GO, distribution du nombre d'annotation par gènes, ...).
+
** Choix techniques s'il y en a (ex: format de fichier utilisé, structures de données propres au langage utilisé, ...)
-
*** résultats des tests réalisés
+
** Résultats obtenus sur les données traitées
-
* bilan et perspectives
+
*** Temps d'exécution
-
** est-ce que les besoins sont satisfaits ?  
+
*** Nombre de sommets, d'arcs, nombre de ''GeneProducts'', de ''GOTerms'' (avec et/ou sans annotations directes), ... il sera intéressant dans cette partie de calculer des statistiques permettant d'étudier à quel point l'organisme choisi est annoté (nombre de gènes annotés ''vs.'' nombre de gènes dans le génome, en fonction des différentes branches de la GO, distribution du nombre d'annotation par gènes, ...).
-
** discussion sur les résultats obtenus par rapport aux choix effectués
+
*** Résultats des tests réalisés
-
** qu'est-ce quil est possible d'améliorer ?
+
* Discussion
 +
: Quelques observations remarquables par rapport à l'annotation en GOTerm de l'organisme utilisé.
 +
* Bilan et perspectives
 +
** Est-ce que les besoins sont satisfaits ?  
 +
** Discussion sur les résultats obtenus par rapport aux choix effectués
 +
** Qu'est-ce qu'il est possible d'améliorer ?
 +
** Quelles études permettent les résultats et codes obtenus ?
Pour ces différentes sections, des schémas peuvent venir appuyer votre discours.
Pour ces différentes sections, des schémas peuvent venir appuyer votre discours.
-
<big><big>Date limite d'envoi du dossier :</big></big> avant le 30 décembre
+
<big><big>Date limite d'envoi du dossier :</big></big> avant le 22 décembre
 +
 
 +
 
 +
 
 +
 
 +
<!-- ARCHIVE DOC GeneOntology
= Documentation pour <tt>GeneOntology.py</tt> =
= Documentation pour <tt>GeneOntology.py</tt> =

Revision as of 18:58, 21 December 2022

Bibliothèque Python

Une partie du projet consiste à terminer le module python entamé au cours des TP.

La liste des fonctions à terminer est la suivante (correspond à l'ensemble des questions des 3 premiers TP) :

  • TP1: bfs, induced_subgraph, clustering_coeficient
  • TP2 : dfs, is_acyclic, topological_sort
  • TP3: BellmanFord, script graphmaster.STRINGdb_path.py, FloydWarshall et FloydWarshallPath, diameter


Une attention particulière sera portée à la qualité du code et de ses commentaires.

Pour cette partie, il n'est pas demandé de rapport et seul un script de tests/validations devra être fourni (ou bien intégré directement dans la bibliothèque) et testera chacune des fonctions sur un exemple.


Gene Ontology

La deuxième partie du projet consiste à étendre la bibliothèque python afin de fournir des utilitaires pour la Gene Ontology. Ses principales fonctionnalités seront :

Une fois ces étapes réalisées, les fonctions à implémenter sont :

  • détermination du plus long chemin possible entre 2 sommets afin d'obtenir la profondeur maximale de chacune des trois ontologies (biological process, molecular function et cellular component)
  • obtention des GeneProducts directement associés à un GOTerm
  • obtention des GOTerms directement associés à un GeneProduct
  • obtention des GeneProducts associés à un GOTerm ou à un de ses descendants (ou ancêtres selon le choix sur l'orientation des arcs lors du chargement du graphe) correspondant à des termes GO plus spécifiques
  • pour un gene product, l'obtention des GO Terms associés en incluant les termes ancêtres (ou descendants ...) correspondant à des termes GO plus généraux

Remarque : Vous êtes libres d'apporter toutes les modifications que vous voulez aux modules commencés en TP ainsi qu'au code fourni pour le chargement de la Gene Ontology et des annotations d'un génome (ex: orientation des arcs, représentation interne du graphe, ...), mais la pertinence et l'efficacité (complexité en temps/espace) seront prises en compte.

Pour le chargement des annotations, le format à prendre en charge s'appelle gaf (version 2.1). Vous pourrez travailler sur le(s) fichier(s) de votre choix. Un ensemble de proteomes est disponible sur le FTP de l'EBI : http://ftp.ebi.ac.uk/pub/databases/GO/goa, notamment le répertoire proteomes, avec le README qui vous indique à quoi correspondent les colonnes des fichiers. Celles (au minimum) à conserver sont :

  • 2) DB_Object_ID = identifiant unique (id)
  • 3) DB_Object_Symbol = nom du produit du gène (name)
  • 7) Evidence Code = qualité de l'annotation (evidence-code)
  • 11) DB_Object_Synonym = autres identifiants pour ce produit de gène (aliases).

Vous devez donc choisir un organisme parmi tout ceux disponibles ou bien en prendre un dans la liste ci dessous :

  1. M. musculus 59.M_musculus.goa - archive de 2017 → Claire
  2. H. sapiens 25.H_sapiens.goa - archive de 2017 → Moussa
  3. C. elegans 9.C_elegans.goa - archive de 2017 → Julie
  4. G. gallus 21457.G_gallus.goa - archive de 2017 → Lucie
  5. R. norvegicus 122.R_norvegicus.goa - archive de 2017
  6. D. melanogaster 17.D_melanogaster.goa - archive de 2017 → Priscilla
  7. A. thaliana 217288.A_thaliana.goa - archive de 2017 → Margaux
  8. D. rerio 4832498.D_rerio_1.goa - archive de 2017 → Jean
  9. S. aureus 22608.S_aureus_NCTC_8325.goa - archive de 2017 → Asmaa
  10. S. cerevisiae 71242.S_cerevisiae_ATCC_204508.goa - archive de 2017 → Anastasiia
  11. S. mutans 102.S_mutans_ATCC_700610.goa - archive de 2017
  12. P. putida 109.P_putida_KT2440.goa - archive de 2017
  13. C. tetani 119.C_tetani.goa - archive de 2017
  14. B. cereus 134.B_cereus_ATCC_14579.goa - archive de 2017 → Catherine
  15. D. radiodurans 16.D_radiodurans.goa - archive de 2017
  16. S. thermophilum 20300.S_thermophilum.goa - archive de 2017
  17. T. thermophilus 20981.T_thermophilus_HB8.goa - archive de 2017
  18. H. influenzae 21.H_influenzae_ATCC_51907.goa - archive de 2017
  19. L. major 21780.L_major.goa - archive de 2017
  20. P. fluorescens 21840.P_fluorescens_Pf-5.goa - archive de 2017
  21. N. crassa 22025.N_crassa.goa - archive de 2017
  22. A. gambiae 22426.A_gambiae.goa - archive de 2017
  23. M. truncatula 23232.M_truncatula.goa - archive de 2017
  24. O. sativa indica 23240.O_sativa_indica.goa - archive de 2017 → Han
  25. P. parasitica 2325912.P_parasitica_CBS_412.66.goa - archive de 2017
  26. O. oeni 25791.O_oeni.goa - archive de 2017
  27. M. smegmatis 25827.M_smegmatis.goa - archive de 2017


Votre choix de l'organisme doit être envoyé par mail à R. Barriot. La règle est que deux étudiant·e·s ne doivent pas travailler sur le même organisme (premier arrivé, premier servi).

Dossier à rendre sous la forme d'une archive au format zip ou tar.gz

Les modules python annotés et assortis de jeux de tests (sans le fichier obo qui est le même pour tous). Cela devrait correspondre à vos fichiers graphmaster.py et geneontology.py.

Un rapport synthétique au format PDF ressemblant à un rapport de projet d'ingéieurie qui comprend en général les sections suivantes :

  • Contexte
Une très brève introduction sur le cadre et l'objectif du projet. La description de l'organisme choisi.
  • Analyse
Analyse du contexte, des besoins et des fonctionnalités à fournir : qu'est-ce qui est disponible et où et qu'est-ce qu'il manque et qu'il faudra réaliser.
  • Conception
Fort de l'analyse précédente, présenter l'approche choisie et pourquoi.
  • Choix d'une représentation (si différente de celle utilisée en TP) : listes ou matrice d'adjacence, informations sur les sommets, les arcs/arêtes, ...
  • Élaboration des algorithmes (avec leur complexité) pour réaliser les fonctionnalités demandées. Par exemple, comment (en français) est conçu votre algorithme pour récupérer tous les GeneProducts concernés par un GOTerm ?
  • Réalisation
    • Choix techniques s'il y en a (ex: format de fichier utilisé, structures de données propres au langage utilisé, ...)
    • Résultats obtenus sur les données traitées
      • Temps d'exécution
      • Nombre de sommets, d'arcs, nombre de GeneProducts, de GOTerms (avec et/ou sans annotations directes), ... il sera intéressant dans cette partie de calculer des statistiques permettant d'étudier à quel point l'organisme choisi est annoté (nombre de gènes annotés vs. nombre de gènes dans le génome, en fonction des différentes branches de la GO, distribution du nombre d'annotation par gènes, ...).
      • Résultats des tests réalisés
  • Discussion
Quelques observations remarquables par rapport à l'annotation en GOTerm de l'organisme utilisé.
  • Bilan et perspectives
    • Est-ce que les besoins sont satisfaits ?
    • Discussion sur les résultats obtenus par rapport aux choix effectués
    • Qu'est-ce qu'il est possible d'améliorer ?
    • Quelles études permettent les résultats et codes obtenus ?

Pour ces différentes sections, des schémas peuvent venir appuyer votre discours.

Date limite d'envoi du dossier : avant le 22 décembre