⚖️Create Prioritization Graph Models

How to create a graph model to prioritize data points

Graph models are systems for prioritizing data points between two biological concepts according to the scientific criteria that you care about. For example, when prioritizing targets, you may be interested in specific relationships between a gene and a disease.

Use the top navigation tool bar to select the "Graph Models" tab.

In the left hand panel, you will see all existing graph models in your organization. The evidence and reports associated with the selected reports will be displayed in the center of the page.

To create a new graph model, select "New Graph Model" from the left-hand panel. You will be required to provide a name, description, and 2 concepts from your graph.

The graph model will be used to create reports that rank data points (objects) within your graph. For example, if you create a Disease to Gene graph model, this will allow you to obtain a ranked list of genes associated with a specific disease. Each gene will be assigned a score that represents the amount of evidence associating it with the disease of interest.

Creating Lines of Evidence (Graph Paths)

Evidence is criteria that you define to be important that connect the two concepts within your graph model. Select "Create Evidence" within the evidence tab of your graph model and create a new line of evidence in 3 simple steps.

1

Step 1: Specify Properties

Provide the following details for your line of evidence

  • Name

    • Short descriptive title that will appear within your report.

    • Example: Gene Upregulation.

  • Description

    • Longer description with additional context.

    • Example: Gene is upregulated in disease population of interest compared to healthy controls.

  • Category

    • This will be used to group your lines of evidence within your report.

    • Example: Bulk RNAseq Gene Expression

2

Step 2: Provide a Graph Path

This refers to the specific path within your knowledge graph that connects concept A to concept B. Use query language or Cypher to write the graph query. The concepts and relationships used in the graph path are unique to your custom graph and ontology.

Example

Let's say you wanted to write a line of evidence to indicate that

  • A gene is upregulated in the disease population

Query language graph path

(Gene)<- upregulates <-(DifferentialExpressionDataset)-> experimental group includes ->(TumorSample)-> pathologically confirmed to be ->(Disease)

Adding variables Once you have typed in a new query, you need to specify the conceptA and conceptB

  • conceptA refers to the concept A within your graph model

  • conceptB refers to the conept B within your graph model

Scoring Node

Any concept or relationship in your graph query can be used to compute an overall score for the line of evidence. The underlying data properties associated with the concept or relationship can be factored into the score computation.

For example, if the "upregulates" edge is selected as the scoring node, the associated data properties "p-value" and "log2 fold change" can be used to compute an overall score.

Use the drop-down input to select a concept or relationship to be used as the scoring node.

Test Graph Path

Once you have written out the graph path, select " Test Graph path" to ensure that the path is sound and that data can be retrieved from your graph.

3

Step 3: Evidence Weight & Scoring Formula

The weight is the numerical value associated with the line of evidence. The larger the weight, the greater the importance of the line of evidence. Scores can be positive or negative. A positive score would indicate a good line of evidence that is supportive and a negative score would indicate a contradicting or bad line of evidence e.g. clinical trial failure.

Custom formula

  • This is optional. By default, the score for each line of evidence will be computed using a harmonic sum. If you would like to override this calculation, you can write a python script with a custom formula. Select the custom formula tab to add your own python script.

Example

countSum = 0
for i in anchorArray:
  countSum += i['log2FC']*(1-i['padj'])
if (len(anchorArray)>0):
  resulting_score = countSum/len(anchorArray)
else:
  resulting_score = 0

Once you are satisfied with your formula and weight, submit the dialogue to add the evidence to your model.

Updating the Graph

Once all lines of evidence have been created, a workflow must be launched to compute the scores within your graph. The graph must be updated whenever new evidence is created or existing evidence is updated.

Selecting “Update Graph” will launch this workflow. While the workflow is running, you will be unable to create or update existing evidence within your graph model. Once the workflow is complete, you will be able to use the graph model to create reports.

Last updated