Consider the following pattern:
(subject:gene)<-[has_locus]-(variant)-[relation]->(object:disease)
Where relation is one of:
- pathogenic
- likely pathogenic
- has phenotype
- marker/mechanism
- contributes to
...
In many cases, multiple variants of a single gene are linked to a disease via multiple relations (commonly pathogenic and likely pathogenic). Currently, the solr loader seems to pick a relation at random (although this may not be the case and it may in fact be deterministic for a given db).
This is also an issue with combining orthology statements from multiple sources (panther and zfin) where panther specifies whether two orthologs have a 1 to 1 relationship whereas zfin does not.
One option is to store the set of relations linking two nodes. Another option would be to configure a relation priority, where the relation with the highest priority is designated while the others are retrievable via the evidence graph.
@mbrush @selewis @cmungall thoughts?
Consider the following pattern:
(subject:gene)<-[has_locus]-(variant)-[relation]->(object:disease)
Where relation is one of:
...
In many cases, multiple variants of a single gene are linked to a disease via multiple relations (commonly pathogenic and likely pathogenic). Currently, the solr loader seems to pick a relation at random (although this may not be the case and it may in fact be deterministic for a given db).
This is also an issue with combining orthology statements from multiple sources (panther and zfin) where panther specifies whether two orthologs have a 1 to 1 relationship whereas zfin does not.
One option is to store the set of relations linking two nodes. Another option would be to configure a relation priority, where the relation with the highest priority is designated while the others are retrievable via the evidence graph.
@mbrush @selewis @cmungall thoughts?