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
+123-8Lines changed: 123 additions & 8 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -3,8 +3,16 @@
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.
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
7
8
+
> Graph data models promise here advantages:
9
+
> - they can easily be understood by non IT experts from the research domains
10
+
> - due to their plasticity, they can easily be extended and refactored
11
+
> - graph databases such as neo4j are made for coping with arbitrary path lengths
12
+
13
+
> 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.
14
+
15
+
> The project will be focused on development of extension for neo4j graph database for querying knowledge graphs storing molecular and chemical information.
8
16
> 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.
* Smiles value is converted into specfied _fingerprint type_ (if possible) and compared with nodes which have _property_ (`'fp'` in this case)
157
+
* Threshold is a lower bound for the score value
158
+
*_Current implementation uses single thread and on a huge database may take a lot of time (>3 minutes)_
159
+
10) User-defined function `org.rdkit.search.substructure.is(<node object>, '<smiles_string>')`
160
+
* Return boolean answer: does specified `node` object have substructure match provided by `smiles_string`.
161
+
162
+
---
163
+
164
+
# Results overview
165
+
166
+
## What was achieved
167
+
168
+
1) Implementation of exact search (100%)
169
+
2) Implementation of substructure search (90%, several minor bugs)
170
+
3) Implementation of condition based graph traversal - usage of function calls in complex queries (100%)
171
+
4) Implementation of similarity search (70%, major performance issues)
172
+
5) Coverage with unit tests (80%, not all invalid arguments for procedures are tested)
173
+
174
+
## What remains to be done
64
175
176
+
<!-- 0) Query features in substructure search (blocking of position in molecule from further substitution; using atom lists on certain positions in molecule) -->
177
+
1) Speed up batch tasks by utilizing several threads (currently waiting for resolving issue on native level)
178
+
2) Speed up the `similarity search` procedures
179
+
3) Solve minor bugs (todos) like unclosed `query` object during SSS
<license.licenseResolver>${project.baseUri}src/main/license</license.licenseResolver> <!-- todo: does not work -->
26
+
<!--<license.descriptionTemplate>${project.baseUri}src/main/resources/license/license-header.txt</license.descriptionTemplate> <!– todo: does not work –>-->
0 commit comments