silico.biotoul.fr
 

M2BBS - IDH

From silico.biotoul.fr

(Difference between revisions)
Jump to: navigation, search
m (Données et scripts)
m (Données et scripts)
Line 109: Line 109:
  MATCH (n:GOTerm {name: 'reproduction'} ) RETURN n
  MATCH (n:GOTerm {name: 'reproduction'} ) RETURN n
   
   
-
 
+
# IS_A (1)
   mysql -u root -pbioinfo go -B -e "SELECT term1_id, term2_id FROM term2term WHERE relationship_type_id = 1" > neo4j-community-3.0.6/import/go.rel.is_a.dump.txt
   mysql -u root -pbioinfo go -B -e "SELECT term1_id, term2_id FROM term2term WHERE relationship_type_id = 1" > neo4j-community-3.0.6/import/go.rel.is_a.dump.txt
  geany neo4j-community-3.0.6/import/go.rel.is_a.dump.txt
  geany neo4j-community-3.0.6/import/go.rel.is_a.dump.txt
   
   
-
# IS_A (1)
 
  USING PERIODIC COMMIT 1000
  USING PERIODIC COMMIT 1000
  LOAD CSV WITH HEADERS FROM "file:///go.rel.is_a.dump.txt" AS line
  LOAD CSV WITH HEADERS FROM "file:///go.rel.is_a.dump.txt" AS line
Line 122: Line 121:
   
   
  # PART_OF (25)
  # PART_OF (25)
-
  mysql -u root -pbioinfo go -B -e "SELECT term1_id, term2_id FROM term2term WHERE relationship_type_id = 25" > neo4j-community-3.0.6/import/go.rel.is_a.dump.txt
+
  mysql -u root -pbioinfo go -B -e "SELECT term1_id, term2_id FROM term2term WHERE relationship_type_id = 25" > neo4j-community-3.0.6/import/go.rel.part_of.dump.txt
  geany neo4j-community-3.0.6/import/go.rel.part_of.dump.txt
  geany neo4j-community-3.0.6/import/go.rel.part_of.dump.txt
   
   

Revision as of 14:58, 22 September 2016

Contents

Enrichment analysis

Dans cette partie, il s'agit d'analyser un groupe de gènes en le confrontant à des groupes de gènes obtenus selon différentes fonctions de regroupement.

La fonction de regroupement proposée est l'appartenance à une même voie métabolique dans la banque de données BioCyc. Ainsi, pour chaque pathway, un groupe de gène est formé.

Le script python search_enriched_sets.py permet de charger ces ensembles de gènes pré-formés EcolA.biocyc.sets et de chercher les plus similaires à un groupe de gènes d'intérêts. Essayez-le avec ALAS ARGS ASNS ASPS CYSS GLTX GLYQ GLYS HISS ILES par exemple pour vous faire une idée de son fonctionnement.

Remarque : le script python utilise le module scipy.

root> pip install scipy

Comparez les résultats avec ceux obtenus en recherchant parmi les ensembles formés des gènes annotés avec le même terme de la Gene Ontology (EcolA.go.sets). Que constatez-vous ?

Travail à réaliser :

  • Analyser le code source du script search_enriched_sets.py
  • Pour chaque pathway biocyc, proposer le term GO le plus représentatif
  • Visualisation des résultats avec REVIGO

Prise en main de la librairie R/Bioconductor R-STRINGdb

Sites et documentation :

Travail à réaliser :

  • Installer la librairie (si nécessaire)
  • Retrouver l'espèce Escherichia coli K12 MG1655, quel est son identifiant taxonomique/STRINGdb ?
  • Quelle est la différence entre STRINGdb core et STRINGdb periphery ?
  • Télécharger tout le graphe pour E. coli K12 pour un seuil de 400. A quoi correspond ce seuil ? combien d'interactions obtenez-vous ?
  • Afficher le sous graphe pour les groupe de gènes ALAS ARGS ASNS ASPS CYSS GLTX GLYQ GLYS HISS ILES. A quoi correspond la p-valeur affichée ?
  • Télécharger les annotations associées à chaque sommet.

Intégration dans une base de données orientée graphes

Sites et documentations :

install.packages("devtools")
devtools::install_github("nicolewhite/RNeo4j")
library(RNeo4j)

Installation (cf. https://neo4j.com/docs/operations-manual/current/deployment/#linux-installation)

tar tzf neo4j-community-3.0.6-unix.tar.gz
tar xzf neo4j-community-3.0.6-unix.tar.gz
cd neo4j-community-3.0.6/

Démarrage et arrêt du serveur

./bin/neo4j console

Le processus est au premier plan donc pour arrêter le serveur il faut faire Ctrl + C dans le terminal.

Utilisation depuis le navigateur (vérifier le port renseigné lors de la précédente commande)

http://localhost:7474/

Suivre le premier exemple dans Example Graphs intitulé Movie Graph.

Passer ensuite à l'exemple suivant Northwind Graph et adapter les commandes pour importer le modèle suivant :

Requêtes Cypher.

Interfaçage python.

Données et scripts

dnf install libcurl-devel.x86_64

commandes:

  • restauration de la base de données go
mysql -u root -pbioinfo -e 'create database go'
mysql -u root -pbioinfo go < go_daily-termdb-data
  • extraction d'un fichier csv tabulé pour l'import dans neo4j (dans le répertoire import)
 mysql -u root -pbioinfo go -B -e "SELECT id, acc, term_type, name FROM term WHERE acc LIKE 'GO:%' AND is_obsolete=0" > neo4j-community-3.0.6/import/go.terms.csv
  • remplacer les '\t' par des ','
  • import dans neo4j
LOAD CSV WITH HEADERS FROM "file:///go.terms.csv" AS row
CREATE (n:GOTerm)
SET n = row,
 n.id = row.id,
 n.acc = row.acc,
 n.term_type = row.term_type,
 n.name = row.name  

CREATE INDEX ON :GOTerm(id)
CREATE INDEX ON :GOTerm(acc)

MATCH (n:GOTerm) RETURN count(n)
MATCH (n:GOTerm) RETURN n LIMIT 10
MATCH (n:GOTerm {name: 'reproduction'} ) RETURN n

# IS_A (1)
 mysql -u root -pbioinfo go -B -e "SELECT term1_id, term2_id FROM term2term WHERE relationship_type_id = 1" > neo4j-community-3.0.6/import/go.rel.is_a.dump.txt
geany neo4j-community-3.0.6/import/go.rel.is_a.dump.txt

USING PERIODIC COMMIT 1000
LOAD CSV WITH HEADERS FROM "file:///go.rel.is_a.dump.txt" AS line
MATCH (t1:GOTerm),(t2:GOTerm)
WHERE t1.id=line.term1_id AND t2.id=line.term2_id 
WITH t1,t2
CREATE UNIQUE (t1)-[:IS_A]->(t2)

# PART_OF (25)
mysql -u root -pbioinfo go -B -e "SELECT term1_id, term2_id FROM term2term WHERE relationship_type_id = 25" > neo4j-community-3.0.6/import/go.rel.part_of.dump.txt
geany neo4j-community-3.0.6/import/go.rel.part_of.dump.txt

USING PERIODIC COMMIT 1000
LOAD CSV WITH HEADERS FROM "file:///go.rel.part_of.dump.txt" AS line
MATCH (t1:GOTerm),(t2:GOTerm)
WHERE t1.id=line.term1_id AND t2.id=line.term2_id 
WITH t1,t2
CREATE UNIQUE (t1)-[:PART_OF]->(t2)