{"id":21614590,"url":"https://github.com/halaway/graph-net-project","last_synced_at":"2026-05-04T16:36:38.807Z","repository":{"id":199994226,"uuid":"704596603","full_name":"halaway/graph-net-project","owner":"halaway","description":"Examining the versatility of database management systems, we use Neo4j along with Spark to establish connections between nodes and optimize user question-oriented queries.","archived":false,"fork":false,"pushed_at":"2023-11-15T03:33:49.000Z","size":7223,"stargazers_count":1,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"main","last_synced_at":"2025-03-18T16:55:44.799Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":"","language":"Python","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/halaway.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2023-10-13T15:47:41.000Z","updated_at":"2023-11-17T06:03:03.000Z","dependencies_parsed_at":"2023-11-15T04:39:00.465Z","dependency_job_id":null,"html_url":"https://github.com/halaway/graph-net-project","commit_stats":null,"previous_names":["halaway/graph-net-project"],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/halaway/graph-net-project","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/halaway%2Fgraph-net-project","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/halaway%2Fgraph-net-project/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/halaway%2Fgraph-net-project/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/halaway%2Fgraph-net-project/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/halaway","download_url":"https://codeload.github.com/halaway/graph-net-project/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/halaway%2Fgraph-net-project/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":32616045,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-05-04T10:08:07.713Z","status":"ssl_error","status_checked_at":"2026-05-04T10:08:02.005Z","response_time":58,"last_error":"SSL_read: unexpected eof while reading","robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":false,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":[],"created_at":"2024-11-24T22:08:29.910Z","updated_at":"2026-05-04T16:36:38.790Z","avatar_url":"https://github.com/halaway.png","language":"Python","funding_links":[],"categories":[],"sub_categories":[],"readme":"# graph-net-project\n\n🚀 This project examines graph-based data storage for managing and connecting nodes from \ncomponents such as _Compounds_, _Diseases_, _Genes_, and _Anatomies_ with an interactive Graphical User Interface for Queries.\n## 📖 Files\n- The _\"nodes_test.tsv\"_ contains over 20,000 nodes pertaining to these four element types with\n  each unique attribute such as _ID_, _Name_, and _Kind_.\n\n| ID                     | Name            | Kind      |\n| ---------------------- |:---------------:| ---------:|\n|Anatomy::UBERON:0000042 | serous membrane | Anatomy   |\n| Compound::DB00396      | Progesterone    | Compound  |\n\n- The _\"edges_test.tsv_\" file contains over 1M edge relationships between a target and source node\n  with individually labeled relationship types referred to by the \"_metaedges.tsv_\" file.\n\n| Metaedge                  | abbreviation     | edges   | source_nodes               | target_nodes     | unbiased   |\n| ------------------------- |:---------------:| ---------:| ---------------------- |:---------------:| ---------:|\n|Anatomy  downregulates Gene|   AdG        |\t   102240\t  |  36                    |  \t15097\t       |      102240|\n|Anatomy - expresses - Gene|  \tAeG\t  |  526407\t|   241 |    18094\t | 453477  |\n|Anatomy - upregulates - Gene|  \t AuG | \t  97848  | \t36  |  15929\t|  97848|\n\n\n# 💡 NOTE \n- Files Can be hosted on a local Python server using:\n    python3 -m http.server\n- The Neo4J Base Server Requires authentication and must remain active.\n- When creating a database, the data should only be loaded once for both Nodes and Edges.\n  \n- To execute a query from the terminal:\n  - run: python3 projectBD.py \u003c\"QUERY SELECTED\"\u003e\n\n \n # Example Node Structure \n![possibleCures](https://github.com/halaway/graph-net-project/assets/31904474/5c04b449-6a48-4b7d-b2af-ed7ee827f602)\n- When finding possible treatments for Diseases that have no direct connection to any Compound, the approach for such a query is to begin by navigating the genes that are _DownRegulated\\UpRegulated_ by a Compound and Anatomy, in the opposite direction, in which the same Disease localizes. This would create the following graph.\n\n\n## 📝 QUERIES\n The following Cypher Queries solve a specific portion of the project using Neo4J as a graph-based NoSQL Store.\n\n\n# Return Disease Name\n    MATCH (n WHERE n.name='Disease' AND \n    n.id ='Disease::DOID:8577') \n    RETURN n\n\n# Return Compounds that Palliate or Treat Disease\n    MATCH m=(n:Data)-[:CpD|CtD]-\u003e(b:Data where \n    b.id='Disease::DOID:7148') RETURN n\n    \n# Return Genes that Cause this Disease\n\n    MATCH p=(a:Data WHERE a.id='Disease::DOID:7148')\n    -[r:DaG]-\u003e(n:Data where n.name ='Gene') RETURN n\n\n# Return Where Disease Occurs\n\n    MATCH p=(a:Data WHERE a.id ='Disease::DOID:7148')\n    -[r:DlA]-\u003e(n:Data) RETURN \n\n# Potential Cures to Diseases\n\n    match p = (d:Data where d.name='Disease')-[:DlA]-\u003e\n    (a:Data where a.name ='Anatomy')-[:AuG|AdG]-\u003e(g:Data where g.name ='Gene')with d,a,g\n    match (n:Data where n.name='Compound')-[:CdG|CuG]-\u003e\n    (f:Data where f.name ='Gene' and f.id = g.id)\n    with d,a,g,n match (n) where not (n)-[:CtD|CpD]-\u003e(d) return n\n\n# Loading Nodes: ALREADY LOADED\n\n    LOAD CSV WITH HEADERS FROM \"http://localhost:8000/nodes_test.tsv\" \n    As row FIELDTERMINATOR \"\\t\"\n    Create (n:Data {name:row.kind, id:row.id, dataName:row.name})\n    \n# Loading Edges: ALREADY LOADED\n    LOAD CSV WITH HEADERS FROM \"http://localhost:8000/edges_test.tsv\" AS row FIELDTERMINATOR \"\\t\"\n    WITH row\n    WHERE row.ource IS NOT NULL AND row.target IS NOT NULL and row.metaedge is not NULL\n    MERGE (s:Data {id: row.ource})\n    MERGE (t:Data {id: row.target})\n    WITH s, t, row\n    CALL apoc.create.relationship(s, row.metaedge, {}, t) YIELD rel\n    RETURN *\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fhalaway%2Fgraph-net-project","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fhalaway%2Fgraph-net-project","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fhalaway%2Fgraph-net-project/lists"}