biothings / biothings_explorer

TRAPI service for BioThings Explorer

Home Page:https://api.bte.ncats.io

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

Bug: TypeError when there's no results for an Explain-style query

colleenXu opened this issue · comments

I ran an Explain-style query - both ends of the QGraph are set to starting IDs/entities. While both hops retrieve records, there's no overlapping intermediates so there's no results.

However, BTE returns a TypeError close to the end of query execution (after some logs about scoring nothing) that seems to be related to having no results:

Query

{
    "message": {
        "query_graph": {
            "nodes": {
                "creativeQuerySubject": {
                    "ids":["PUBCHEM.COMPOUND:5291"],
                    "categories":["biolink:ChemicalEntity"]
                },
                "nA": {
                    "categories":["biolink:Gene"]
                },
                "creativeQueryObject": {
                    "ids":["MONDO:0011821"],
                    "categories":["biolink:DiseaseOrPhenotypicFeature"]
               }
            },
            "edges": {
                "eA": {
                    "subject": "creativeQuerySubject",
                    "object": "nA",
                    "predicates": [
                        "biolink:regulates",
                        "biolink:affects",
                        "biolink:interacts_with",
                        "biolink:associated_with"
                    ]
                },
                "eB": {
                    "subject": "nA",
                    "object": "creativeQueryObject",
                    "predicates": [
                        "biolink:gene_associated_with_condition",
                        "biolink:biomarker_for",
                        "biolink:affects",
                        "biolink:causes",
                        "biolink:contributes_to"
                    ]
                }
            }
        }
    }
}

Console Logs

  bte:biothings-explorer-trapi:batch_edge_query Total number of records is (4582) +1ms
  bte:biothings-explorer-trapi:batch_edge_query Start to update nodes... +0ms
  bte:biothings-explorer-trapi:batch_edge_query Update nodes completed! +1s
  bte:biothings-explorer-trapi:QEdge (6) Storing records... +20s
  bte:biothings-explorer-trapi:QEdge (6) Applying Node Constraints to 4582 records. +0ms
  bte:biothings-explorer-trapi:QEdge (6) No constraints. Skipping... +0ms
  bte:biothings-explorer-trapi:QEdge (7) Updating nodes based on edge records... +0ms
  bte:biothings-explorer-trapi:QEdge (7) Updating Entities in "eA" +0ms
  bte:biothings-explorer-trapi:QEdge (7) Collecting Types: "["Gene","ProteinIsoform","Protein","MolecularEntity","SmallMolecule","NucleicAcidEntity","ChemicalMixture","MolecularMixture","Drug","ComplexMolecularMixture","ProcessedMaterial","Food","EnvironmentalFoodContaminant","FoodAdditive","ChemicalEntity"]" +8ms
  bte:biothings-explorer-trapi:QEdge Collected entity ids in records: ["SmallMolecule","ChemicalEntity","NucleicAcidEntity","Gene","Protein"] +135ms
  bte:biothings-explorer-trapi:QNode (8) Node "nA" restored curie. +21s
  bte:biothings-explorer-trapi:QNode Node "nA" intersecting (14)/(2439) curies... +0ms
  bte:biothings-explorer-trapi:QNode Node "nA" kept (0) curies... +8ms
  bte:biothings-explorer-trapi:QEdge (7) Updating Entities in "eA" +9ms
  bte:biothings-explorer-trapi:QEdge (7) Collecting Types: "["MolecularEntity","SmallMolecule","NucleicAcidEntity","ChemicalMixture","MolecularMixture","Drug","ComplexMolecularMixture","ProcessedMaterial","Food","EnvironmentalFoodContaminant","FoodAdditive","ChemicalEntity"]" +0ms
  bte:biothings-explorer-trapi:QEdge Collected entity ids in records: ["SmallMolecule","ChemicalEntity","NucleicAcidEntity"] +105ms
  bte:biothings-explorer-trapi:QNode Node "creativeQuerySubject" intersecting (1)/(4) curies... +105ms
  bte:biothings-explorer-trapi:QNode Node "creativeQuerySubject" kept (1) curies... +0ms
  bte:biothings-explorer-trapi:edge-manager 'eA' Reversed[false] (1)--(0) entities / (4582) records. +21s
  bte:biothings-explorer-trapi:edge-manager 'eA' dropped (0) records. +39ms
  bte:biothings-explorer-trapi:QEdge (6) Storing records... +39ms
  bte:biothings-explorer-trapi:QEdge (6) Applying Node Constraints to 4582 records. +0ms
  bte:biothings-explorer-trapi:QEdge (6) No constraints. Skipping... +0ms
  bte:biothings-explorer-trapi:QEdge (7) Updating nodes based on edge records... +0ms
  bte:biothings-explorer-trapi:QEdge (7) Updating Entities in "eA" +0ms
  bte:biothings-explorer-trapi:QEdge (7) Collecting Types: "["Gene","ProteinIsoform","Protein","MolecularEntity","SmallMolecule","NucleicAcidEntity","ChemicalMixture","MolecularMixture","Drug","ComplexMolecularMixture","ProcessedMaterial","Food","EnvironmentalFoodContaminant","FoodAdditive","ChemicalEntity"]" +0ms
  bte:biothings-explorer-trapi:QEdge Collected entity ids in records: ["SmallMolecule","ChemicalEntity","NucleicAcidEntity","Gene","Protein"] +122ms
  bte:biothings-explorer-trapi:QNode Node "nA" saving (2439) curies... +162ms
  bte:biothings-explorer-trapi:QEdge (7) Updating Entities in "eA" +1ms
  bte:biothings-explorer-trapi:QEdge (7) Collecting Types: "["MolecularEntity","SmallMolecule","NucleicAcidEntity","ChemicalMixture","MolecularMixture","Drug","ComplexMolecularMixture","ProcessedMaterial","Food","EnvironmentalFoodContaminant","FoodAdditive","ChemicalEntity"]" +0ms
  bte:biothings-explorer-trapi:QEdge Collected entity ids in records: ["SmallMolecule","ChemicalEntity","NucleicAcidEntity"] +105ms
  bte:biothings-explorer-trapi:QNode Node "creativeQuerySubject" intersecting (1)/(4) curies... +105ms
  bte:biothings-explorer-trapi:QNode Node "creativeQuerySubject" kept (1) curies... +0ms
  bte:biothings-explorer-trapi:edge-manager Updating all other edges... +229ms
  bte:biothings-explorer-trapi:edge-manager Updating "eB"... +0ms
  bte:biothings-explorer-trapi:edge-manager 'eB' Reversed[true] (2439)--(1) entities / (21) records. +0ms
  bte:biothings-explorer-trapi:edge-manager 'eB' dropped (21) records. +2ms
  bte:biothings-explorer-trapi:QEdge (6) Storing records... +3ms
  bte:biothings-explorer-trapi:QEdge (6) Applying Node Constraints to 0 records. +0ms
  bte:biothings-explorer-trapi:QEdge (6) No constraints. Skipping... +0ms
  bte:biothings-explorer-trapi:QEdge (7) Updating nodes based on edge records... +0ms
  bte:biothings-explorer-trapi:QEdge (7) Updating Entities in "eB" +0ms
  bte:biothings-explorer-trapi:QEdge (7) Collecting Types: "["Gene","ProteinIsoform","Protein","MolecularEntity","SmallMolecule","NucleicAcidEntity","ChemicalMixture","MolecularMixture","Drug","ComplexMolecularMixture","ProcessedMaterial","Food","EnvironmentalFoodContaminant","FoodAdditive","ChemicalEntity"]" +1ms
  bte:biothings-explorer-trapi:QEdge Collected entity ids in records: [] +0ms
  bte:biothings-explorer-trapi:QNode Node "nA" intersecting (2439)/(0) curies... +4ms
  bte:biothings-explorer-trapi:QNode Node "nA" kept (0) curies... +9ms
  bte:biothings-explorer-trapi:QEdge (7) Updating Entities in "eB" +9ms
  bte:biothings-explorer-trapi:QEdge (7) Collecting Types: "["Disease","PhenotypicFeature","BehavioralFeature","ClinicalFinding","DiseaseOrPhenotypicFeature"]" +0ms
  bte:biothings-explorer-trapi:QEdge Collected entity ids in records: [] +0ms
  bte:biothings-explorer-trapi:QNode Node "creativeQueryObject" intersecting (1)/(0) curies... +0ms
  bte:biothings-explorer-trapi:QNode Node "creativeQueryObject" kept (0) curies... +0ms
  bte:biothings-explorer-trapi:edge-manager 'eA' Reversed[false] (1)--(0) entities / (4582) records. +10ms
  bte:biothings-explorer-trapi:edge-manager 'eA' dropped (0) records. +38ms
  bte:biothings-explorer-trapi:QEdge (6) Storing records... +38ms
  bte:biothings-explorer-trapi:QEdge (6) Applying Node Constraints to 4582 records. +0ms
  bte:biothings-explorer-trapi:QEdge (6) No constraints. Skipping... +0ms
  bte:biothings-explorer-trapi:QEdge (7) Updating nodes based on edge records... +0ms
  bte:biothings-explorer-trapi:QEdge (7) Updating Entities in "eA" +0ms
  bte:biothings-explorer-trapi:QEdge (7) Collecting Types: "["Gene","ProteinIsoform","Protein","MolecularEntity","SmallMolecule","NucleicAcidEntity","ChemicalMixture","MolecularMixture","Drug","ComplexMolecularMixture","ProcessedMaterial","Food","EnvironmentalFoodContaminant","FoodAdditive","ChemicalEntity"]" +1ms
  bte:biothings-explorer-trapi:QEdge Collected entity ids in records: ["SmallMolecule","ChemicalEntity","NucleicAcidEntity","Gene","Protein"] +122ms
  bte:biothings-explorer-trapi:QNode Node "nA" saving (2439) curies... +163ms
  bte:biothings-explorer-trapi:QEdge (7) Updating Entities in "eA" +2ms
  bte:biothings-explorer-trapi:QEdge (7) Collecting Types: "["MolecularEntity","SmallMolecule","NucleicAcidEntity","ChemicalMixture","MolecularMixture","Drug","ComplexMolecularMixture","ProcessedMaterial","Food","EnvironmentalFoodContaminant","FoodAdditive","ChemicalEntity"]" +0ms
  bte:biothings-explorer-trapi:QEdge Collected entity ids in records: ["SmallMolecule","ChemicalEntity","NucleicAcidEntity"] +106ms
  bte:biothings-explorer-trapi:QNode Node "creativeQuerySubject" intersecting (1)/(4) curies... +106ms
  bte:biothings-explorer-trapi:QNode Node "creativeQuerySubject" kept (1) curies... +0ms
  bte:biothings-explorer-trapi:edge-manager (10) Edge successfully queried. +231ms
  bte:biothings-explorer-trapi:edge-manager (11) Collecting records... +1ms
  bte:biothings-explorer-trapi:edge-manager (11) 'eA' keeps (4582) records! +0ms
  bte:biothings-explorer-trapi:edge-manager ---------- +0ms
  bte:biothings-explorer-trapi:edge-manager (11) 'eB' keeps (0) records! +0ms
  bte:biothings-explorer-trapi:edge-manager ---------- +1ms
  bte:biothings-explorer-trapi:edge-manager (12) qEdges ["eB"] resulted in (0) records. No complete paths can be formed. +0ms
  bte:biothings-explorer-trapi:edge-manager (12) Collected records for: []! +0ms
  bte:biothings-explorer-trapi:edge-manager (12) Collected (4582) records! +0ms
  bte:biothings-explorer-trapi:edge-manager (13) Edge Manager reporting combined records... +0ms
  bte:biothings-explorer-trapi:Graph Updating BTE Graph now. +0ms
  bte:biothings-explorer-trapi:edge-manager (13) Edge Manager reporting organized records... +234ms
  bte:biothings-explorer-trapi:QueryResult Updating query results now! +0ms
  bte:biothings-explorer-trapi:score Querying 0 combos. +0ms
  bte:biothings-explorer-trapi:score Combos no UMLS ID:  0 +0ms
  bte:biothings-explorer-trapi:QueryResult Successfully got 0 score combos. +1ms
  bte:biothings-explorer-trapi:QueryResult Nodes with "is_set": [] +0ms
  bte:biothings-explorer-trapi:error_handler TypeError: undefined is not iterable (cannot read property Symbol(Symbol.iterator))
  bte:biothings-explorer-trapi:error_handler     at TrapiResultsAssembler.update (/Users/colleenxu/Desktop/biothings_explorer/packages/query_graph_handler/built/results_assembly/query_results.js:257:57)
  bte:biothings-explorer-trapi:error_handler     at process.processTicksAndRejections (node:internal/process/task_queues:95:5)
  bte:biothings-explorer-trapi:error_handler     at async TRAPIQueryHandler.query (/Users/colleenxu/Desktop/biothings_explorer/packages/query_graph_handler/built/index.js:583:9)
  bte:biothings-explorer-trapi:error_handler     at async task (/Users/colleenxu/Desktop/biothings_explorer/packages/bte-server/built/routes/v1/query_v1.js:34:13)
  bte:biothings-explorer-trapi:error_handler     at async runTask (/Users/colleenxu/Desktop/biothings_explorer/packages/bte-server/built/controllers/threading/threadHandler.js:271:26)
  bte:biothings-explorer-trapi:error_handler     at async /Users/colleenxu/Desktop/biothings_explorer/packages/bte-server/built/routes/v1/query_v1.js:18:34 +0ms

(This is the first template ran during this exercise #794 (comment), which is how I discovered this bug)

The code was deployed today to Prod as part of the Octopus release. I tested and it's live.