You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Copy file name to clipboardExpand all lines: README.md
+48-19Lines changed: 48 additions & 19 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -3,8 +3,14 @@
3
3
4
4
***
5
5
## Abstract
6
-
> The project will be focused on development of extension for neo4j graph database for querying knowledge graphs storing molecular and chemical information. That would be implemented on top of neo4j-java-driver.
7
-
6
+
> Chemical and pharmaceutical R&D produce large amounts of data of completely different nature, such as chemical structures, recipe and process data, formulation data, and data from various application tests. Altogether these data rarely follow a schema. Consequently, relational data models and databases have frequetly disadvantages mapping these data appropriately. Here, chemical data frequently leads to rather abstract data models, which are difficult to develop, align, and maintain with the domain experts. Upon retrieval computationally expesive joins in not predetermined depths may cause issues.
7
+
> Graph data models promise here advantages:
8
+
> • they can easily be understood by non IT experts from the research domains
9
+
> • due to their plasticity, they can easily be extended and refactored
10
+
> • graph databases such as neo4j are made for coping with arbitrary path lengths
11
+
> Chemical data models usually require a database to be able to deal with chemical structures to be utilized for structure based queries to either identify records or as filtering criteria.
12
+
13
+
> The project will be focused on development of extension for neo4j graph database for querying knowledge graphs storing molecular and chemical information.
8
14
> Task is to enable identification of entry points into the graph via exact/substructure/similarity searches (UC1). UC2 is closely related to UC1, but here the intention is to use chemical structures as limiting conditions in graph traversals originating from different entry points. Both use cases rely on the same integration of RDkit and Neo4j and will only differ in their CYPHER statements.
10) User-defined function `org.rdkit.search.substructure.is(<node object>, '<smiles_string>')`
150
158
* Return boolean answer: does specified `node` object have substructure match provided by `smiles_string`.
151
159
152
-
## Useful links:
153
-
-https://github.com/neo4j/neo4j
154
-
-https://github.com/rdkit/org.rdkit.lucene
160
+
---
161
+
162
+
# Results overview
163
+
164
+
## What was achieved
165
+
166
+
1) Implementation of exact search (100%)
167
+
2) Implementation of substructure search (90%, several minor bugs)
168
+
3) Implementation of condition based graph traversal - usage of function calls in complex queries (100%)
169
+
4) Implementation of similarity search (70%, major performance issues)
170
+
5) Coverage with unit tests (80%, not all invalid arguments for procedures are tested)
171
+
172
+
## What remains to be done
173
+
174
+
<!-- 0) Query features in substructure search (blocking of position in molecule from further substitution; using atom lists on certain positions in molecule) -->
175
+
1) Speed up batch tasks by utilizing several threads (currently waiting for resolving issue on native level)
176
+
2) Speed up the `similarity search` procedures
177
+
3) Solve minor bugs (todos) like unclosed `query` object during SSS
178
+
179
+
## What problems were encountered
180
+
181
+
1) Compatability of native libraries for win64 (beginning of the development)
182
+
2) Lazy streams evaluation and not resolved issue with `query` object during SSS
0 commit comments