String
STRING - Known and Predicted Protein-Protein Interactions
from http://string.embl.de STRING is a database of known and predicted protein interactions.The interactions include direct (physical) and indirect (functional) associations;;they are derived from four sources: Genomic Context, High-throughput Experiments, (Conserved) Coexpression and Previous Knowledge STRING quantitatively integrates interaction data from these sources for a large number of organisms, and transfers information between these organisms where applicable. The database currently covers 2,590,259 proteins from 630 organisms.
Nous avons implémenté en local au LBGI la base de données PostgreSQL String8.2 et développé quelques outils pour l'interroger : sous Gscope, en PHP.
Voir aussi ci-dessous comment charger Cytoscape avec les données fournies.
S'utilise surtout à travers SringInteractome et CytoscapeWeb ou Cytoscape
Gscope StringInteractome
Il suffit de donner un fichier contenant une liste de gènes ou de probesets (NM, affy, nom de gène, etc.), par exemple le fichier String_essai.txt avec une ligne d'entête (s'il n'y en a pas on mettra data1 data2, etc...). NB: la ligne d'entête doit commencer par #
#accessnum genename NM_177470 Acaa2 NM_010678 Aff3
setgscoperr
gscope puts StringInteractome {FichierDepart RepertoireParent Org {SeuilString ""} {From ""} {WithoutTextMiningOnly ""}}
# (for example, see details described below :)
gscope puts StringInteractome inputFile . Homo_sapiens 700
ou directement en http (ici je donne un exemple avec RepertoireParent qui est '/ici/par/la/SameAsFile' (SameAsFile tel quel dans le texte), et l'orga Homo_sapiens (avec '_' merci)
http://lbgi.igbmc.fr/~ripp/cgi-bin/GscopeServer?EVImm&StringInteractome&/home/ripp/lg.lst&/ici/par/la/SameAsFile&Homo_sapiens
- FichierDepart (est ici String_essai.txt)
- RepertoireParent va contenir un nouveau répertoire
- appelé String_taxid_date qui est créé automatiquement
- ou si RepertoireParent est de la forme /bidule/machin/SameAsFile on créera /bidule/machin/FichierDepart (sans .txt ... ici String_essai)
- Org est soit Mus_musculus ou "Mus musculus" ou 10090, Homo_sapiens ou "Homo sapiens" ou 9606, Rattus_norvegicus etc.
- SeuilString par défaut 700
- From est FromNM, FromAffy ou FromTest (défaut). Si FromTest on teste chaque valeur pour détecter si c'est NM ou Affy etc.
- WithoutTextMiningOnly on ne prend pas ceux qui ne sont trouvés QUE PAR textmining
StringInteractome va créer le répertoire RepertoireParent/String_10090_20091213_1655 (ou RepertoireParent/String_essai) qui contiendra
AttributeNode contient PreferredName, StringId, et toutes les colonnes du FichierDepart. Permet de colorer les noeuds dans Cytoscape selon les colonnes de ce fichier (exemple: colorer selon l'expression). Par défaut, contient une colonne appelée QueryColor qui permettra de colorer les gènes de départ Identifiers contient les identifiants String correspondant aux gènes du FichierDepart QueryOnly.string network avec uniquement les gènes du FichierDepart Sandwich.string network avec les gènes du FichierDepart et ceux possédant au moins deux interactions avec nos gènes de départ String_essai.tgz le tar gzip de tout ça. String_essai.txt le FichierDepart String_essai_context.txt le contexte dans lequel on a créé cette liste Summary.txt contient pour chaque query: Query;StringId;PreferredName;toutes les colonnes du FichierDepart WithAny.parser contient pour chaque query: le nombre d'interactions, le nombre d'interactions uniquement avec les gènes du FichierDepart, le % d'interactions uniquement avec les gènes du FichierDepart et la liste de ces gènes WithAny.string network avec les gènes du FichierDepart et toutes leurs interactions
Il est maintenant possible de filtrer les nœuds du réseau selon l'expression dans une condition.
Par exemple, tu peux garder seulement les nœuds du réseau qui ont une expression dans le muscle.
NB: pas de filtrage sur la liste initiale c'est à dire qu'un nœud de la liste initiale ne sera jamais éliminé.
Le filtre peut être un fichier avec une liste de GeneName (ou probeset ou Sw ou NM).
Il peut être aussi une suite d’argument séparé par des « _ » pour interroger GxDb (pkRe_pkAs_Tag_Min_Max) :
396_1_T_400_600 récupère les gènes qui s’expriment dans la rétine après RMA et qui ont un SI entre 400 et 600
Mais tu n’es pas obligé de remplir chaque champ :
396_1_T récupère les gènes qui s’expriment dans la rétine après RMA 396_1_100_400 == 396_1__100_400 récupère les gènes qui ont une expression entre 100 et 400 après RMA 396_1__100 == 396_1_100 récupère les gènes qui ont une expression supérieur à 100 après RMA 396_0___100 récupère les gènes qui ont une expression inférieur à 100 après RMA
Tu peux aussi choisir plusieurs realexp ou As avec la virgule comme séparateur :
396,398_1,2_T__900 récupère les gènes qui s’expriment dans la rétine ou la glande salivaire avec une expression supérieure à 900 après RMA ou gcRMA
NB : pour chaque gène de la liste de sortie, il peut y avoir qu’une seule probeset qui réponde aux critères.
NB : dans le cas où pkAs est vide ou égale à 0, cela veut dire qu’on prend tous les As
Si tu laisses le SeuilString au défaut, tu peux utiliser sa place dans la liste d’argument pour ton filtre :
gscope puts StringInteractome FichierDepart . Mus_musculus 396_1_T
Si tu veux utiliser un autre SeuilString que le défaut, tu dois utiliser la dernière place dans la liste d’argument :
gscope puts StringInteractome FichierDepart . Mus_musculus 900 "" "" "" "" 396_1_T
En fichier sortie, on conserve les fichiers STRING qui ne sont pas filtrés (on leur rajoute l’extension .NotFiltered) et dans le cas ou tu interroges Gx je crée un fichier en sortie de Gx ; la liste des genesnames
PHP StringInteractome
tout ça est accessible depuis PHP.
- par RrFun::Wscope("EVImm", "StringInteractome", $params);
params est un array de la forme (on voit ici les valeurs prises par défaut) $params["org"] = "Mus_musculus"; (puisque Laëtitia refuse de mettre un défaut dans StringInteractome !!!) $params["seuil"] = ""; $params["from"] = ""; $params["wtmo"] = ""; $params["repparent"] = "home/ripp/GenoretWww/ImAnno/ImAnnoEar/String";
Dans touts les cas on crée un tar gzip .tgz qui peut être téléchargé.
Cytoscape
On a maintenant tout ce qu'il faut pour entrer dans Cytoscape
- File/import network from table WithAny.string
- File/import network from table Sandwich.string
- File/import network from table QueryOnly.string
- import attribute AttributeNode
Quand on fait import network il faut :
- select file ...
- cocher Show text file import options
- Delimiter Tab (enlever Space)
- Show all entries
- Transfert first line as attribute names
- Source Interaction prendre column 2 (PNInitial)
- Target Interaction prendre column 4 (PNCopain)
- Import
- Close la fenêtre de baratin
Quand on fait import Attributes
- Select table ...
- Show text file import options
- Delimiter Tab (c'est déjà bon)
- Show all entries
- Transfert first line as attribute names
- Import
- Close la fenêtre de baratin
Avec ça on peut colorier nos gènes
- Cliquer sur l'onglet WizMapper
- Double-cliquer Node Color (il saute en haut)
- Select Value QueryColor
- Mapping type Discrete Mapper
- Cliquer sur le 1 puis dans sa case vide à droite
- Il apparaît trois petits points cliquer dessus pour choisir une couleur
Bonne chance !
Raymond