-
Notifications
You must be signed in to change notification settings - Fork 9
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Multiple x-bte operations not working (records dropped during edge-management) #756
Comments
This issue seems to be isolated to ci/dev/local instances. AKA behavior seems normal, unaffected on prod/test Example query
based on BioThings TTD pubchem_treats_mondo-rev Send this query to the instance you want to test. Should get 568 results if it works, and 0 if it doesn't work...
|
And another example using MyDisease: works fine on prod/test but has the problem on ci/dev/local click to expand
querying only MyDisease through BTE instances This should retrieve 4 results. Based on pheno -> disease operation
|
And my last bits of investigation for now!
Biolink/Monarch API queries that work and use MONDO/HP as input
Non-rev operations that still have this problem
"Forward" operation in MyDisease: should have 67 results
association-based operation (so forward/reverse isn't really important): should have 64 results
|
This is also happening when DOID/MGI IDs are used as input. This is blocking me from testing the BioThings AGR work https://github.com/NCATS-Tangerine/translator-api-registry/blob/master/AGR/agr.yaml for #260. DOID Example
Run MyVariant through BTE: http://localhost:3000/v1/smartapi/09c8782d9f4027712e65b95424adba79/query Based on MyVariant's operation
MGI ID example
Run MGIGene2Pheno through BTE: http://localhost:3000/v1/smartapi/77ed27f111262d0289ed4f4071faa619/query
|
I'm testing my BioThings AGR work and I think there's another bug here (I don't know how old it is). Queries that end up with multiple starting IDs will only keep records for the 1st ID. I have 3 diff scenarios where I noticed this behavior. While I was mostly testing DOID/MGI input, I think this applies to any input namespace. Test 0: starting with two IDs (shortest explanation!) click to expand
First, run a smartapi_sync so your local instance has the BioThings AGR registration info (just added).
Console logs (mgi_console_logs.txt) show that while there were two starting IDs, n0 only had 1 ID during edge management so records were dropped
The response (mgi.txt) only has info from the first starting ID: (based off these two test examples: here and here) EDIT: This is also happening with namespaces that aren't problematic. For example, with this query starting with 2 HGNC IDs...the results for the 2nd ID are missing.
Test 1: start with 1 DOID, then another ID is added by NodeNorm (focus on RGD output) click to expand
Same start as test 0 (make sure your local instance has the BioThings AGR registration info). Example query:
I'm missing my expected answer, In the console logs (odd_response.txt), I see signs that records are dropped.
My investigation:
Test 2: start with 1 DOID, then IDs are added during node/ID-expansion (focus on HGNC output) click to expand
Example query:
While I get my expected answer
The console logs also show that the starting
But the response only seems to have HGNC IDs for the starting DOID, and not for the other 7 descendants. This is based on a quick comparison of:
|
And here's a compilation of test queries for the original bug (MONDO, HP, DOID, MGI input). These don't require doing any overrides. They pass if there's >=1 result. They don't test for the "multiple curies -> dropping records" behavior I described in the previous post MONDO input
query BioThings TTD through BTE (
HP input
query MyDisease through BTE (
DOID input
query MyVariant through BTE (
MGI input
Query MGIGene2Pheno through BTE(
|
Looks like an error with the Biothings JQ, I'll see about fixing it. |
I've pushed a fix which should address this issue. |
Looks like the fix works! I ran my tests with main branches (CI) and everything worked as-intended: I also successfully tested in dev:
|
Closing this issue since the changes have been deployed to Prod with the Feb 2024 release. I've confirmed that I can query BTE prod with the example queries in Test 0 of #756 (comment) and in #756 (comment), and everything works as-expected. |
New info: this is affecting existing operations. A very similar "records dropped during edge-management" is happening with multiple BioThings TTD operations:
The way I tested this was using a local copy of the yaml, commenting out all the operations in the list except the ones you're testing, and then using the operation's testExample info to write a test query.
I now suspect that this occurs when specific namespaces are used as input (HP, MONDO). This reminds me of #591. I also wonder if this happened with the most recent code changes (JQ, typescript/pnpm/restructuring) or from something older...
Previous info from Slack:
I'm also having issues locally with two new operations I'm trying to make. I think there's an issue with the edge-management or api-response-transform...
To recreate the issue:
clinvar-gene-phenoHP-rev
andclinvar-variant-phenoHP-rev
queries
To test
clinvar-gene-phenoHP-rev
, run this query:To test
clinvar-variant-phenoHP-rev
, replace Gene with SequenceVariantIn both cases, it looks like something is going on with n0 during edge-management (no curies from records??) and all the records get dropped...
The text was updated successfully, but these errors were encountered: