Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Add transitive closure #29

Open
oneilsh opened this issue Jul 26, 2024 · 0 comments
Open

Add transitive closure #29

oneilsh opened this issue Jul 26, 2024 · 0 comments
Labels
enhancement New feature or request

Comments

@oneilsh
Copy link
Collaborator

oneilsh commented Jul 26, 2024

Being able to take the transitive closure with respect to some predicate would be useful in some cases. These can be really heavy, so rather than have the engine produce them, we should implement it for a local query graph.

Some thought should be given to other predicates hanging off the nodes involved. For example, in this graph: (phenotype Z) <-[has_phenotype]- (disease A) <-[sublass_of]- (disease B) <-[subclass_of]- (disease C) <-[causes]- (Gene G) When computing the transitive closure, the user might want to include z <-[has_phenotype]- C and similar, or even something like A <-[causes some]- G.

(This is motivated by a recent use case. We had a number of patients in EHR data with diagnoses of Lysosomal storage disorders, some very specific diagnoses with a single causal gene directly connected, others more generic, but their subtypes were all caused by the same gene, and others were more generic still, with different subytpes caused by different genes. We wanted to know which patients we could unambiguously identify the causal gene for. This is solvable with lots of queries to the engine (one per LSD subtype), but a transitive closure with features described above would be a more efficient solution.)

@oneilsh oneilsh added the enhancement New feature or request label Jul 26, 2024
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
enhancement New feature or request
Projects
None yet
Development

No branches or pull requests

1 participant