Closed yvandenb closed 5 years ago
Pour compléter ce que nous avns discuté lundi, je te propose de commencer à prototyper avec juste une seule ressource pour déjà t'approprier les choses; en priorité ce sera avec BioGRID comme ressource PPIs...
Je suis en train de faire l'outil avec Biogrid pour commencer, je n'ai pas de soucis pour le premier fichier output "Network", en revanche peut tu ếtre plus explicite pout le fichier output "nodes" ? Aurais-tu un fichier exemple ?
Pour le fichier "Network" un type d'exemple Ce qui est important, c'est de pouvoir construire le graphe réseau avec chaque interaction binaire (le couple interactant A-interactant B) et les attributs associés aux arêtes du graphe (e.g. infos disponibles dans les data source qui qualifient la nature de l'interaction...dans Biogrid ce sera alors comme spécifié dans mon precedent post: col. 5 “Experimental System” (col L du PPI file); col 6 “Experimental Type” (col M du PPI file); col 7 “InteractionScore” (col S du PPI file); col 8 “Phenotypes” (col U du PPI file)) Pour le fichier "Nodes" il s'agit de pouvoir associer les plus d'infos disponibles associés à chaque noeud (gene ou protein). Le plus basique, c'est uniquement la liste de tous les IDs composant le réseau (pour Biogrid, donc: Entrez gene ID et son gene symbol associé comme spécifié dans mon précedent post) et donc sans attributs. Dans un second temps, comme on doit pouvoir naviguer dans le réseau en requetant les attributs des "nodes", il faut donc enrichir ce fichier "nodes". La 1ere façon de faire est d'utiliser les outils d'annotation ProteoRE pour ajouter tous les features qu'on souhiate (donc c'est fait :-) La seconde façon consiste à ajouter des annotations non dispo actuellement; cela correspond à ce que Lisa a fait dans son prototype et qui donne l'output suivant "nodes" suivant:
Avec col 1. l'interactant (format Uniprot) ; col2. un booleen qui indique si cet ID est présent dans la liste fournie par l'user; col3. un booleen qui indique si l'ID est trouvé" dans l'interactome interrogé (e.g. Biogrid, HuMap, biopplex...); col 4, le pathway auquel cet ID appartient (N.B. un ID peut appartenir à plusieurs pathways). Pour cette colonne 4 l'info vient des fichiers Reactome suivant: Si Uniprot AccessNumber as input ID: https://www.reactome.org/; col 4: download/current/UniProt2Reactome.txt si Entrez Gene ID as input ID : https://www.reactome.org/download/current/NCBI2Reactome.txt
Si pas clair tu m'appelles ;-)
J'ajoute la colonne "entrez gene interactor A" lorsque les ids sont fournis à partir d'un fichier tabulé ? Cela doublera la colonne d'id input.
De quel output parles-tu : "network" or "nodes" ? Peux-tu donner un exemple, stp ?
network
Pour rappel, avec Biogrid comme data source: Output «Network» (edges) : ex de nommage « Network_RessourceName_InputFileName » col 1 : INPUT FILE entrez gene ID (=”Entrez Gene Interactor A”); col2 : Entrez Gene Interactor B (colC du PPI File)); col 3: «Gene symbol Interactor A» (col H du PPI file), col 4 « Gene symbol Interactor B » (col I du PPI file); col. 5 “Experimental System” (col L du PPI file); col 6 “Experimental Type” (col M du PPI file); col 7 “InteractionScore” (col S du PPI file); col 8 “Phenotypes” (col U du PPI file) J'imagine que tu parles de la colonne 1 à retourner en output: cela correspond à l'ID fourni par le user qui a matché dans BioGRID (NB: si pas de match, il faut renvoyer avec "NA") donc li'déla serait effectivement d'avoir en col1: l'ID input user; en col2: l'iD matché dans Biogrid; cela doublonne sauf qd il n'y a pas match...qu'en penses-tu ?
Si je comprends bien je ne reprends pas le fichier initial pour ajouter des colonnes, je créer un nouveau fichier c'est bien cela ?
pour le fichier "Network" c'est effectivement un fichier de novo; pour le fichier "nodes_attributes", le plus simple serait me semble t'il, d'en creer également un de novo (i.e. sans reprendre les colonnes de l'input), sinon ça va être compliqué car dans le fichier output "nodes_attributes", il va y avoir des ID venant de la liste input ID du user mais aussi des ID des interactants avec mes proteines et donc qui ne seront pas (tous) présents dans le fichier input user...
Je suis en train de voir l'outil de Lisa, et il s'avère que les ids en input sont cherchés dans l'interactant A ET l'interactant B. Je ne cherche que dans la colonne interactant A si j'ai bien compris ? (codé par Lien il y a un an)
Oui, c'était une specif par défaut; en pratique et selon la "convention" - interactant A=appat (bait) et interactant B= proie (prey) - c'est en tte rigueur avec l'interactant A qu'il faut faire le mapping...on reste donc comme ça pour le moment, mais si j'ai aussi noté que dans BioGrid ou STRING, ce distingo n'est pas fait...on verra à terme s'il faut changer selon l'impact sur les outputs en termes de fiabilité
Est-ce que je prend en compte les ids du type "O15511-2" ou je retire le suffix ?
Voilà une excellente et épineuse question: pour rappel, l'ID Uniprot avec un "-" (dash ou hyphen) correspond à une isoforme de la forme canonique (ID sans "-") d'une protéine. Si l'info est présente pourquoi la masquer et donc la perdre? Je suis pour la maintenir. Tu dois avoir les cas suivants:
J'ai mis en ligne la première version sur dev-migale, elle ne fonctionne pour l'instant qu'avec biogrid.
Testé...et planté...
history shared with David: "Test_PPI" item n°10 et 11
Fatal error: Exit code 1 ()
Traceback (most recent call last):
File "/projet/galaxydev/galaxy/tools/proteore/ProteoRE/tools/Build_protein_interaction_maps/build_protein_interaction_maps.py", line 149, in
L'erreur est corrigé, j'ai aussi ajouté l'interactome "bioplex". En revanche je ne gère pas encore les isoformes ni l'interactome humap.
j'ai ajouté les fichiers sources dans la description
Je ne les vois pas ?
En effet il manquait un petit git pull sur dev-migale. C'est bon maintenant.
History "Test_PPI" shared with David item n°17 Output "Network" construit ne correspond pas à ce qui est attendu: Ici ce que tu construis: Si je considère le Entrez gene ID 7311, il devrait y avoir d'après le fichier source Biogrid, le résultat suivant: Soient 18 PPIs supplémentaires et non une seule que tu retournes (qui correspond à la dernière ligne de mon tableau); je passe aux tests de cohérence sur le fichier "nodes" et te dis...
J'ai corrigé le problème, j'étais parti du principe qu'il n'y avait qu'une seule ligne (et donc une seule interaction) par id alors qu'il y a plusieurs occurence du meme id J'ai donc corrigé les dictionnaires et l'outil. Cela devrait être bon maintenant.
j'ai ajouté le trie automatique de la première colonne sur les fichiers résultats. A jour sur dev-migale
Demande d'amélioration sur les output utilisant "Biogrid" =>
Output "Network_ressourceName": Ajouter une colonne supp dans l'output - à chaque interaction est associé un "Pubmed ID" indqué dans la colone "O" du fichier "BIOGRID-ORGANISM-Homo_sapiens-3.5.167.tab2" - merci d'ajouter cette colonne dans l'output avec le même intitulé
Output "Nodes_ressourceName": Remplacer le nom de la colonne 1 par "Entrez gene ID" (et non "Protein") Creer une nvelle colonne en postion numéro 2 reportant le "Official symbol Interactor" (en fait le gene name, qui sera utile pour la navigation et reperer aisement son nom de gène favori) Remplacer le nom de la colonne actuellement nommée "Present in interactome" par "ID present in ResourceName" avec ResourceName = "Biogrid Human" si "select Database = Biogrid Human" et ainsi de suite avec chaque nom de ressource.
Test avec un jeu de données "Souris" :
History "Test_PPI"
item n°37 et 38 => failed
Fatal error: Exit code 1 ()
Traceback (most recent call last):
File "/projet/galaxydev/galaxy/tools/proteore/ProteoRE/tools/Build_protein_interaction_maps/build_protein_interaction_maps.py", line 234, in
Il faut egalement revoir l'IHM (on en parle lundi ;-))
J'ai mis à jour "building protein interaction maps" sur dev-migale.
Extra, merci => je testerai demain
Ok pour le format des outputs OK bug fixed pour bioGRID souris et OK sur la cohérence des matching OK pour le data manager Il me reste bioplex à tester Pour toi:
En ce qui concerne bioplex le choix de l'espèce me sert pour pour charger le bon dictionnaire pour retrouver les pathways (dictionnaire construit à partir des fichiers https://reactome.org/download/current/UniProt2Reactome.txt et https://www.reactome.org/download/current/NCBI2Reactome.txt).
Je peux cependant ne créer qu'un seul dictionnaire contenant les 3 espèces et charger le même à chaque fois pour ne garder qu'une seule option bioplex pour les espèces homme, souris et rat.
J'ai toutefois du mal à comprendre pourquoi il faut ne garder qu'un menu déroulant avec toutes les options. Je ne vois pas en quoi le fait de choisir l'interactome puis l'espèce pose problème. La façon dont est construite l'interface actuellement me permet de découper et afficher clairement les options (les espèces disponible, les id type en input). Mais peut-être que quelque chose m'échappe.
(il est peut être plus simple de discuter de ça par téléphone)
OK: 16h30 pour un call ?
maintenant c'est bon
ok pour 16h30
Je suis en train de faire la partie humap de l'outil. Ce qui a été fait dans le précédent outils, c'est prendre uniquement des geneID en input et sortir uniquement des uniprot-AC. (la conversion est faite grâce au fichier http://proteincomplexes.org/static/downloads/nodeTable.txt )
Je fais comme pour bioplex ? Je laisse le choix de l'input gene ID ou uniprot-AC et je renvoie en output le type d'accession number donné en input ? Ou alors je ne prends que les geneID en input, auquel cas je renvoies les gene ID en output. Ce qui me parait être le plus censé puisque le fichier des interactions (http://proteincomplexes.org/static/downloads/pairsWprob.txt) est avec des geneID et ils n'ont pas tous d'équivalent uniprot-AC.
La réponse est dans la question ;-) Quelque soit l'option retenue, ce serait bien que le comportement de bioplex à HuMap soit le même...de fait si le point de mapping est le Entrez gene ID alors il faut le dire explicitement et renvoyer sur l'ID converter...ca te va? je vote pour le "kiss (keep it simple and stupid)" principle
Bioplex integre les genes ID et les uniprot-AC dans le meme fichier, ce qui n'est pas le cas pour humap. Donc il me parait moins légitime d'utiliser les uniprot-AC pour humap. (comme biogrid)
On limite donc les input aux genes ID, qui seront aussi en output. Je pose la question car le précédent outil prenait des geneID et renvoyait des uniprot-AC pour humap.
De quel "précedent outil" parles tu ? celui de Lisa ?
oui
Sachant que je ne peux pas ajouter les 'Official Symbol Interactor' pour humap, il n'y aurait ques les geneID
OK alors en résumé: Biogrid : Entrez gene ID Bioplex: AccNum UP et entrez geneID Hu.MAP: entrez gene ID Tu confirmes? cela veut dire documenter et menu "conditional"
oui tout a fais
Alors green light :-)
Ok donc pour humap: uniquement les geneID en inut et en output (pas de colonne 'Official Symbol Interactor' ni 'uniprot-AC' ajoutée)
Bah, si tu as l'info, pourquoi en priver l'utilisateur ? suis en visio-conf et n'ai pas le temps de regarder les surces files bioplex and Cie mais encore une fois si tu as l'info et sachant que le gen symbol est autrement plus parlant que l'ID pour le user, alors il faut la reporter dans l'output node attributes...let me know quesiton collatérale: le gene name (HGNC) est qque chose qui n'est pas proposé dans l'ID-converter, cette info est-elle dispo dans les mappings files Uniprot ? pourras-tu checker à ton temps ?
Ok j'ajoute aussi le 'Official Symbol Interactor' au fichier output nodes, je croyais ne pas l'avoir mais il s'agit du gene name présent dans http://proteincomplexes.org/static/downloads/nodeTable.txt
mise a jour faire sur dev-migale pour build interaction protein map:
Merci David => je testerai lundi matin
Test avec un jeu de données "Human" : History "Test_PPI" item n°59 et 60 Biogrid Human avec Entrez gene ID
Fatal error: Exit code 1 ()
Traceback (most recent call last):
File "/projet/galaxydev/galaxy/tools/proteore/ProteoRE/tools/Build_protein_interaction_maps/build_protein_interaction_maps.py", line 276, in
C'est une erreur de ma part, j'avais modifié la mauvaise fonction ... C'est corrigé maintenant.
Sur les output "nodes_attributes": OK pour col "ID present in Biogrid Human" avec "Biogrid", col "ID present in Hu.MAP pour "HuMAP" mais maintenant pour Bioplex "ID present in Bioplex Human" est devenu "Present in interactome" (qd on selectionne des entrez gene ID, etonnamment ça affiche "ID present in Bioplex Human" qd on indique des "AccNum UP) ??? cf item n°70 et 72 dans "Test_PPI"
Test de cohérence: Biogrid (Human , Mouse) et Bioplex 2.0 : OK Mapping et output à re-spécificier pour HuMAP => David/Yves to be discussed
en lien avec #14 pour la partie visu - cet outil ne gère que la partie mapping entre ID user list et différentes ressources de type "PPIs" data Principe: Créer 1 outil pour “mapper” les IDs (Uniprot AccNum) à partir d’une liste user sur différentes ressources existantes de données PPIs (Protein-Protein Interaction).
• BioGrid : 3 species Human , Mouse, Rattus les Data sont https://downloads.thebiogrid.org/BioGRID/Release-Archive/BIOGRID-3.5.167/ Human: BIOGRID-ORGANISM-Homo_sapiens-3.5.165.tab2.txt Mouse: BIOGRID-ORGANISM-Mus_musculus-3.5.165.tab2.txt Rattus: BIOGRID-ORGANISM-Rattus_norvegicus-3.5.165.tab2.txt Et la doc sur les formats: https://wiki.thebiogrid.org/doku.php/downloads En particulier le format « tab2 » que nous allons utiliser https://wiki.thebiogrid.org/doku.php/biogrid_tab_version_2.0
Le point CRUCIAL consiste à spécifier la colonne de mapping pour chaque data source ET le type d’ID supporté
Regle générale: si pas de mapping : mettre ID source et “NA” en output as usual (pourra être une option e.g. « return ID not found in PPI ressource file)
Mapping rules: Si Entrez gene ID (as ID type of the input file), alors mapping sur colonne A « GeneA » Si Uniprot AccNumber (as ID type of the input file), alors mapping sur colonne C « UniprotA» Et Si UniprotAccNum selectionné : alors proposer une option :
OUTPUT : 2 fichiers « tab » output sont générés :
Output «Network» (edges) : ex de nommage « Network_RessourceName_InputFileName » a. Si ID type is Entrez gene ID : col 1 : INPUT FILE ID (=GeneA); col2 : ID (=GeneB, colB du PPI File)); col 3: « Gene symbol A» (col E du PPI file), col 4 « Gene symbol B » (col F du PPI file), col. 5 “Interaction score » (= col I “pInteraction” du PPI file)
b. Si ID type is UniprotAccNum : col1 : INPUT FILE ID (=UniprotA); col2 : UniprotB (col D « UniprotB » du PPI file) ; col 3 « Gene symbol A» (Col. E du PPI file); col 4 “GeneSymbolB (col.F du PPI file); col 5 col. col. 5 “Interaction score » (= col I “pInteraction” du PPI file)
Ouptut « nodes » : ex de nommage « Nodes_RessourceName_InputFileName » : avec a. Si ID type is Entrez gene ID : col 1. concaténation des IDs présent dans le network, c’est-à-dire (col1 et col2 du fichier output « Network » ci-dessus) b. Si ID type is UniprotAccNum ET option “« Add pathway information from Reactome » selectionné: col 1. concaténation des IDs présent dans le network (c’est-à-dire col1 et col2 du fichier output « Network » ci-dessus UniprotA puis UniprotB) ; col2. PathwayName (col 3 du fichier « UniProt2ReactomeReactions_Human_Mouse_Rattus.txt ») col3. « Pathway URL » (col 2 UniProt2ReactomeReactions_Human_Mouse_Rattus.txt); col 4 EvidenceCode (col 4 du fichier UniProt2ReactomeReactions_Human_Mouse_Rattus.txt).
INPUT: ID type INPUT FILE is Entrez gene ID ID type PPI file: 3 choix possibles d’espèces BIOGRID-ORGANISM-Homo_sapiens-3.5.165.tab2.txt (BioGRID Homo sapiens) BIOGRID-ORGANISM-Mus_musculus-3.5.165.tab2.txt (BioGRID Mus musculus) BIOGRID-ORGANISM-Rattus_norvegicus-3.5.165.tab2.txt (BioGRID Rattus norvegicus)
Mapping rules: Si Input Entrez gene ID type selected: alors mapping is INPUT ID Entrez <-> “Entrez Gene Interactor A” col B du PPI file
OUPUT: 2 fichiers « tab » output sont générés :
Output «Network» (edges) : ex de nommage « Network_RessourceName_InputFileName » col 1 : INPUT FILE entrez gene ID (=”Entrez Gene Interactor A”); col2 : Entrez Gene Interactor B (colC du PPI File)); col 3: «Gene symbol Interactor A» (col H du PPI file), col 4 « Gene symbol Interactor B » (col I du PPI file); col. 5 “Experimental System” (col L du PPI file); col 6 “Experimental Type” (col M du PPI file); col 7 “InteractionScore” (col S du PPI file); col 8 “Phenotypes” (col U du PPI file)
Ouptut « nodes » : ex de nommage « Nodes_RessourceName_InputFileName » : avec ID type is Entrez gene ID : col 1. concaténation des IDs présent dans le network, c’est-à-dire (col1 « Entrez Gene Interactor A » et col2 « Entrez Gene Interactor A » du fichier output « Network » ci-dessus) ; col 2 : concaténation des gene symbol Interactor A et B. Warning : attentino à bien maintenier les liens « Entrez Gene Interactor A » et son correspondant «gene symbol Interactor A » / idem pour « Entrez Gene Interactor B » et son correspondant «gene symbol Interactor B »