Spurious indirect association/evidence via GraphQL API?

I’ve started to explore the GraphQL API by running queries in the GraphQL playground (Open Targets Platform). One of my test queries, looking for indirect disease associations for a gene, produced strange results that I couldn’t corroborate on the Platform.

The query:

query associatedDiseases {
  target(ensemblId: "ENSG00000160710") {
    id
    approvedSymbol
    associatedDiseases(enableIndirect: true) {
      count
      rows {
        score
        disease {
          id
          name
        }
        datasourceScores {
          id
          score
        }
        datatypeScores {
          id
          score
        }
      }
    }
  }
}

The output:

{
  "data": {
    "target": {
      "id": "ENSG00000160710",
      "approvedSymbol": "ADAR",
      "associatedDiseases": {
        "count": 11197,
        "rows": [
          {
            "score": 0.915009673664289,
            "disease": {
              "id": "EFO_0000222",
              "name": "acute myeloid leukemia"
            },
            "datasourceScores": [
              {
                "id": "chembl",
                "score": 0.9920171593572428
              },
[...]
            ],
            "datatypeScores": [
              {
                "id": "known_drug",
                "score": 0.9920171593572428
              },
[...]

Note the very high score for an association with AML, supported by “known drug”/ChEMBL evidence (among others). Looking on the Platform, this association is only supported by some literature evidence and accordingly gets a very low score (0.08 - looking both from the gene and from the disease side). In addition, the gene profile (Open Targets Platform) shows “no data” for “Known Drugs”.

Where does the high-scoring association (and evidence for it) that I get via the GraphQL API come from?

I would really appreciate it if someone from the OpenTargets team could have a look at this issue. As it stands I don’t think the GraphQL API is reliable for querying indirect disease associations.

Nice to see you here @hendrik,

The short answer is that the query you are performing is not one the Platform UI will show. Here you have more detail…

The web application displays different results when you search for a target or when you query for a disease. This came out on previous occasions, pasting here in case it’s useful: How does the Platform display direct and indirect evidence?

This behaviour of the UI is described in the web application, although I recognise it’s quite easy to miss it. We can probably do a better job at highlighting this:

The most obvious type of association aggregates evidence referring to the specific target and disease. For example, when quantifying the association between inflammatory bowel disease and NOD2, evidence is sometimes collated when annotated with these two terms specifically. The Platform refers to associations described by aggregated evidence between two specific terms in our data sources as direct associations . By default, direct associations are displayed in the web application when listing associated diseases or phenotypes with a target of interest.

However, evidence can sometimes be informative to discriminate targets in similar diseases or phenotypes. For example, when evaluating the inflammatory bowel disease and NOD2 association, other pieces of evidence describing the relationship between Crohn’s disease and NOD2 might as well be informative. To approach this problem systematically, the Platform makes use of the properties of the disease ontology (EFO), to select all evidence referring to NOD2 in the context of inflammatory bowel disease or any of its ontology descendants (including Crohn’s disease). This type of associations is referred in the platform as indirect associations . Indirect associations are displayed in the web application when displaying all the evidence for a target- disease association or listing associated targets with a disease or phenotype of interest.

Coming back to your query, you start by fixing a target target(ensemblId: "ENSG00000160710") and then asking for associated diseasess enabling indirect diseases associatedDiseases(enableIndirect: true). If you remove the enableIndirect parameter it will apply the default behaviour (false) and you will see what it’s shown in the Platform heatmap when you search for ADAR. The response you are receiving is still correct, but it answers a different question. The usual problem with fixing a target and enabling indirect associations is that you will often see as the top results diseases that are high in the ontology as a result of propagating evidence through the ontology. This is the main reason why the web application has this odd change in behaviour. We are currently working on an alternative view of the associations that will hopefully make this distinction clear.

I hope things are going well for you and sorry for the late response.

Hi David! Thank you very much for your response. I was aware of the different behaviours regarding direct/indirect evidence on the Platform. The reason I think there may be a bug is that the high association is not visible when looking from the disease side (Open Targets Platform, search for ADAR), or when looking at the association itself (Open Targets Platform, no chemistry evidence). Sorry for not making that clear in my post.

I see your point now. Let us have a look. Because that endpoint is not used in the frontend is not so exhaustively tested, so there might be something going on there. Let us have a look

@ochoa: Any update on this issue?

Hi @hendrik, thank you for reaching out again! We are still investigating - as mentioned by David, something is off with the endpoint at the back end. We we let you know when the problem is resolved.

Link to the GitHub issue.