βš–οΈCreate Graph Models

How to create graph models and write lines of evidence.

Graph models allow you to identify important relationships between 2 concepts within your graph. For example, when prioritizing targets you may be interested in specific relationships between a (Concept 1) and a Gene (Concept 2)

To create a graph model navigate to the Graphs tab and select "New Graph".

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 provided with a score that represents the amount of evidence that associates it to 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 you graph model and create a new line of evidence in 3 simple steps.

Step 1: Specify Properties

  • 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

Step 2: Graph Path

This refers to the specific path within your knowledge graph that connects concept A to concept B.

Example

  • Gene is upregulated in the disease population

Query language graph path

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

To make this process easier, you can select from one of your saved queries. Once you have selected from a saved query or typed in a new query, you need add in the conceptA, conceptB, and scoringAndUniqueNode variables.

  • conceptA reffers to the concept A within your graph model

  • conceptB refers to the conept B within your graph model

  • scoringAndUniqueNode refers to the relationship or concept that you would like you scores to be computed on the basis of.

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

Modifier Concept

  • This refers to the object within your graph path what will be used to to compute the score for each line of evidence. The modifier concept must be a concept found within your graph path. This is the scoringAndUniqueNode and will be automatically filled in for you.

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

Step 3: Evidence Weight

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

    • If you are using a custom formula the code must be tested for errors and saved prior to submitting the evidence

    • Example

from math import log10
result_list = []
for r in anchorArray:
    result_list.append(r['https://ontology.biobox.io/BX_000000049'] * -log10(r['https://ontology.biobox.io/BX_000000050']))
sorted_scores = sorted(result_list, key=lambda x: abs(x), reverse=True)
j = 0
sumScore = 0
for i in sorted_scores:
    j += 1
    sumScore += i/j
resulting_score = sumScore

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 when ever 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 bipartite graph. Once the workflow is complete you will be able to use the bipartite graph to create reports.

Last updated