Skip to content

property-record nodes & relationship factors #28

@tomlue

Description

@tomlue

Tasks

    • add property-records to graph (or explain why not)
    • migrate to factor graph (or explain why not)

A. Add property-record nodes that assign a property+value to other nodes and reference sources? It would:

  1. allow many collaborators on the graph.
  2. allow fine graned access control on uploaded properties.
  3. allows storage of conflicting values
  4. allows storage of multiple values for the same property from different sources

B. Should we use 'factor relationships'?
Our relationships don't handle multiple inputs/outputs, can't be the target of other relationships and can't be associated with property records. This approach won't work for anything but trivial relationships. For example the following statements cannot be well captured:

a. Gefitinib promotes the reaction "EGFR protein binds to EGFR protein"
b. [TGFA protein binds to and affects the activity of EGFR protein] which decreases susceptibility to nickel sulfate
c. X binds to EGFR with affinity Z

In a,b we want to say that something transforms the relationship between two other things.
In c, we want to add a quantitative value to a relationship, but there may be disagreements about what the affinity is.

Factor relationships solve this, for example:

factor-node:
   label: binds-to
   identifier: 100
   ligand: TGFA
   target: EGFR

variable-node:
   label: protein
   name: TGFA

variable-node:
   label: protein
   name: EGFR

relationship:
   input: TGFA
   output: factor_node_100

relationship:
   input: factor_node_100
   output: EGFR

...

This approach creates a bipartite factor graph where:

  1. Every node is either a variable or a factor.
  2. Variables can relate to Factors but not other variables
  3. Factors can relate to variables but not other factors

image

Factor graphs should be able to capture very complex relationships, and support advanced modeling methods.

Metadata

Metadata

Assignees

Labels

questionFurther information is requested

Type

No type

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions