Skip to content

Instantly share code, notes, and snippets.

@mahmoud-samy
Created January 17, 2019 13:29
Show Gist options
  • Save mahmoud-samy/5b1be84829d8c3460918245ea690aa75 to your computer and use it in GitHub Desktop.
Save mahmoud-samy/5b1be84829d8c3460918245ea690aa75 to your computer and use it in GitHub Desktop.
ontology graph
MATCH (n) DETACH DELETE n;
LOAD CSV WITH HEADERS FROM "http://localhost:8000/data/con.csv" AS row
CREATE (a:ATOM)
SET a = row,
a.LSTR = toLower(row.STR);
CREATE INDEX ON :ATOM(AUI);
CREATE INDEX ON :ATOM(CUI);
MATCH (n) WHERE EXISTS(n.TTY) RETURN DISTINCT n.TTY LIMIT 25;
MATCH (n:ATOM {TTY: "PT"})
SET n:Concept;
MATCH (n:ATOM) RETURN count(*);
MATCH (n:Concept) RETURN count(*);
CREATE INDEX ON :Concept(AUI);
CREATE INDEX ON :Concept(CUI);
MATCH (c:Concept)
MATCH (a:ATOM)
WHERE c.CUI = a.CUI
CREATE (c)-[:HasSynonym]->(a);
MATCH (a:Concept)-[rel:HasSynonym]->(a)
DELETE rel;
// Rel
LOAD CSV WITH HEADERS FROM "http://localhost:8000/data/rel.csv" AS row
MATCH (c1:Concept {CUI: row.CUI1})
MATCH (c2:Concept {CUI: row.CUI2})
call apoc.merge.relationship(c1,row.RELA,{},{},c2) yield rel
return count(*);
LOAD CSV WITH HEADERS FROM "http://localhost:8000/data/rel.csv" AS row
MATCH (c1:Concept {CUI: row.CUI1})
MATCH (c2:Concept {CUI: row.CUI2})
MATCH (a1:ATOM {AUI: row.AUI1})
MATCH (a2:ATOM {AUI: row.AUI2})
CREATE (a1)-[:RELA {type: row.RELA}]->(a2)
CREATE (c1)-[:RELA {type: row.RELA}]->(c2)
// search
MATCH (c:Concept)-[:HasSynonym]->(a:ATOM)
WHERE a.LSTR STARTS WITH 'cancer'
RETURN c
MATCH (n:ATOM)
WHERE n.LSTR STARTS WITH 'breast'
RETURN n.CUI, n.AUI, n.STR LIMIT 20;
MATCH (c:Concept)-[:HasSynonym]->(a:ATOM)
WHERE a.LSTR STARTS WITH 'breast'
RETURN c.STR LIMIT 20
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment