Difference between revisions of "String"

From Wikili
Jump to: navigation, search
(Gscope StringInteractome)
 
(32 intermediate revisions by 3 users not shown)
Line 6: Line 6:
 
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.  
 
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 chrger Cytoscape avec les données fournies.  
+
Voir aussi ci-dessous comment charger Cytoscape avec les données fournies.  
 +
 
 +
S'utilise surtout à travers [[SringInteractome]] et [[CytoscapeWeb]] ou [[Cytoscape]]
  
 
=Gscope StringInteractome=
 
=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.)
+
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
+
   #accessnum genename
 
   NM_177470 Acaa2
 
   NM_177470 Acaa2
 
   NM_010678 Aff3
 
   NM_010678 Aff3
 +
  
 
<source lang='tcl'>
 
<source lang='tcl'>
StringInteractome {FichierDepart RepertoireParent Org {SeuilString ""} {From ""} {WithoutTextMiningOnly ""} {GetWhat ""}}
+
setgscoperr
 +
gscope puts StringInteractome {FichierDepart RepertoireParent Org {SeuilString ""} {From ""} {WithoutTextMiningOnly ""}}
 +
# (for example, see details described below :)
 +
gscope puts StringInteractome inputFile . Homo_sapiens 700
 +
</source>
 +
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)
 +
<source lang='tcl'>
 +
http://lbgi.igbmc.fr/~ripp/cgi-bin/GscopeServer?EVImm&StringInteractome&/home/ripp/lg.lst&/ici/par/la/SameAsFile&Homo_sapiens
 
</source>
 
</source>
  
 
* FichierDepart (est ici String_essai.txt)
 
* FichierDepart (est ici String_essai.txt)
 
* RepertoireParent va contenir un nouveau répertoire
 
* RepertoireParent va contenir un nouveau répertoire
** appelé Sting_taxid_date qui est créé automatiquement
+
** 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)
 
** 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.
 
* Org est soit Mus_musculus ou "Mus musculus" ou 10090, Homo_sapiens ou "Homo sapiens" ou 9606, Rattus_norvegicus etc.
Line 28: Line 38:
 
* From est FromNM, FromAffy ou FromTest (défaut). Si FromTest on teste chaque valeur pour détecter si c'est NM ou Affy etc.
 
* 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
 
* WithoutTextMiningOnly on ne prend pas ceux qui ne sont trouvés QUE PAR textmining
* GetWhat ne sert plus car on rend tout !
 
  
 
StringInteractome va créer le répertoire RepertoireParent/String_10090_20091213_1655 (ou RepertoireParent/String_essai) qui contiendra
 
StringInteractome va créer le répertoire RepertoireParent/String_10090_20091213_1655 (ou RepertoireParent/String_essai) qui contiendra
  
   AttributeNode contiendra une colonne appelée QueryColor et qui permettra de colorier les gènes de départ
+
   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
+
   Identifiers contient les identifiants String correspondant aux gènes du FichierDepart
 
   QueryOnly.string network avec uniquement les gènes du FichierDepart
 
   QueryOnly.string network avec uniquement les gènes du FichierDepart
   Sandwich.string network avec au moins deux interactions
+
   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.tgz le tar gzip de tout ça.
 
   String_essai.txt le FichierDepart
 
   String_essai.txt le FichierDepart
 
   String_essai_context.txt le contexte dans lequel on a créé cette liste
 
   String_essai_context.txt le contexte dans lequel on a créé cette liste
   Summary.txt un résumé de pour qui on a trouvé un identifiant String  "vide" si non
+
   Summary.txt contient pour chaque query: Query;StringId;PreferredName;''toutes les colonnes du FichierDepart''
   WithAny.parser je sais pas !
+
   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 toutes les interactions
+
   WithAny.string         network avec les gènes du FichierDepart et toutes leurs interactions
 +
 
 +
'''Filtrage des réseaux:'''
 +
 
 +
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=
 
=PHP StringInteractome=
 
tout ça est accessible depuis PHP.  
 
tout ça est accessible depuis PHP.  
 
* par  RrFun::Wscope("EVImm", "StringInteractome", $params);
 
* par  RrFun::Wscope("EVImm", "StringInteractome", $params);
* par PipeWork ... voir le PipeWork [http://genoret.igbmc.fr/genoret/phpRR/lance.php?action=PiWo::PipeWorkEmbedded&whattodo=ImAnnoEarGeneListWithDiaVennString ImAnnoEarGeneListWithDiaVennString]
 
** en gros, il faut appeler ImAnnoString et lui fournir un array des données, les clés à garder dans le bon ordre (NM en premier), le nom de la racine (par ex. String_essai), un texte avec le context
 
  
 
   params est un array de la forme (on voit ici les valeurs prises par défaut)
 
   params est un array de la forme (on voit ici les valeurs prises par défaut)
Line 56: Line 98:
 
         $params["repparent"] = "home/ripp/GenoretWww/ImAnno/ImAnnoEar/String";
 
         $params["repparent"] = "home/ripp/GenoretWww/ImAnno/ImAnnoEar/String";
  
Dans touts les cas on crée un tar gzip .tgz qui peut être télécharger.  
+
Dans touts les cas on crée un tar gzip .tgz qui peut être téléchargé.  
  
 
=Cytoscape=
 
=Cytoscape=
  
 
On a maintenant tout ce qu'il faut pour entrer dans Cytoscape
 
On a maintenant tout ce qu'il faut pour entrer dans Cytoscape
# File/import network from table  table WithAny.string
+
# File/import network from table  WithAny.string
 
# File/import network from table  Sandwich.string
 
# File/import network from table  Sandwich.string
 
# File/import network from table  QueryOnly.string
 
# File/import network from table  QueryOnly.string

Latest revision as of 16:03, 27 June 2013

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

Filtrage des réseaux:

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

  1. File/import network from table WithAny.string
  2. File/import network from table Sandwich.string
  3. File/import network from table QueryOnly.string
  4. import attribute AttributeNode

Quand on fait import network il faut :

  1. select file ...
  2. cocher Show text file import options
    • Delimiter Tab (enlever Space)
    • Show all entries
    • Transfert first line as attribute names
  1. Source Interaction prendre column 2 (PNInitial)
  2. Target Interaction prendre column 4 (PNCopain)
  3. Import
  4. Close la fenêtre de baratin

Quand on fait import Attributes

  1. Select table ...
  2. Show text file import options
    • Delimiter Tab (c'est déjà bon)
    • Show all entries
    • Transfert first line as attribute names
  1. Import
  2. Close la fenêtre de baratin

Avec ça on peut colorier nos gènes

  1. Cliquer sur l'onglet WizMapper
  2. Double-cliquer Node Color (il saute en haut)
  3. Select Value QueryColor
  4. Mapping type Discrete Mapper
  5. Cliquer sur le 1 puis dans sa case vide à droite
  6. Il apparaît trois petits points cliquer dessus pour choisir une couleur

Bonne chance !

              Raymond