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.