-
Notifications
You must be signed in to change notification settings - Fork 11
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
migrate to Multiomics CTKP, remove other clinicaltrials.gov-based x-bte operations #861
Comments
in_clinical_trials_for
edges for the Plover CTKP instsancein_clinical_trials_for
edges for the Plover CTKP instance
UPDATE: On Friday 9/20, I reverted these changes (commented out) so BTE would still use clinical trials data from MyChem + BioThings repoDB during the automated test run this weekend. PREVIOUSLY... I deployed the following changes on CI (PR, triggering deployment):
Note that Multiomics CTKP only has CI/dev instances right now. So BTE Test/Prod won't use it. I kept TTD's operations because it seems like they use a manual curation process that DOESN'T start with clinicaltrials.gov / AACT Old notes on x-bte operations and clinical trials data
|
However, I see multiple issues using Multiomics CTKP:
|
In order to better support CTKP we need to inject inverse operations as we parse their metakg. Proposed way of implementing this:
|
UPDATE: On Friday 9/20, I reverted these changes (commented out) so BTE would still use clinical trials data from MyChem + BioThings repoDB during the automated test run this weekend. Direct commit: biothings/bte-server@b9e489b |
Modified it to the (existing)
Pending inclusion in biolink.
There's currently just one node ("aging") with that erroneous category. Will fix. |
in_clinical_trials_for
edges for the Plover CTKP instance
Pasting from Slack:
|
Example queries for CTKP (all return in <1s, should have less results to review): (1) Needs "reverse MetaEdge": Disease ID on object
(2) Needs "reverse MetaEdge": Disease ID on subject, flipped version of (1)
(3) Uses original MetaEdge: Chemical ID on subject
(4) Uses original MetaEdge: Chemical ID on object, flipped version of (3)
|
Finding suitable reverse predicates can be really hard. In this case, I find it strange to state that a disease/condition is being tested by a clinical trial of a drug. The drug is being tested, not the disease. |
For chem "mentioned in trials for" disease, maybe disease "mentioned in trials of" chem would work? or disease "mentioned in trials with" chem? There are inverse predicates for all currently-existing predicates in the biolink model that should be used. But I agree that many of the new "treats" inverses have odd wording. I. In practice, BTE will format edges in its response to match the creative-mode query/query-edge direction (flipping them if necessary). This means the inverse predicates won't show in the response for MVP1 creative-mode (I dunno if this was one of your worries?). The "reverse" MetaEdges are just needed for BTE's internal MetaEdge representation and KP-querying process.
|
A thought: if inverse predicates are just an internal construct and never displayed to a human, the simplest and best way to construct them might be "inverse_of_[original_predicate]". |
Probably not, as the concept is asymmetric. We use the "mentioned" predicate when there is more than one intervention stated and it is not [yet] clear which one is being tested. Inverting it by saying that the disease is mentioned in a trial of one of those interventions would imply that the trial is indeed testing that intervention. |
disease "involved in trials that mention" chem then? |
That's quite similar to "target_of_trial_mentioining". :) |
BTE could benefit from using the "reverse MetaEdge creation" on all new Multiomics TRAPI KPs, not just CTKP. @tokebe here's example queries for them. You can use the config here if it's helpful biothings/bte-server#43 Drug Approvals
https://smart-api.info/ui/edc04feaf16c12424737988ce2e90d60 Also has Chem -> Disease MetaEdges (1) Needs "reverse MetaEdge": Disease ID on object
(2) Needs "reverse MetaEdge": Disease ID on subject, flipped version of (1)
(3) Uses original MetaEdge: Chemical ID on subject
(4) Uses original MetaEdge: Chemical ID on object, flipped version of (3)
Microbiome
https://smart-api.info/ui/a8be4ea3fe8fa80a952ead0b3c5e4bc1 Using BiologicalProcess -(correlated_with)-> SmallMolecule MetaEdge as reference. (1) Needs "reverse MetaEdge": SmallMolecule ID on object
(2) Needs "reverse MetaEdge": SmallMolecule ID on subject, flipped version of (1)
(3) Uses original MetaEdge: BiologicalProcess ID on subject
(4) Uses original MetaEdge: BiologicalProcess ID on object, flipped version of (3)
Multiomics
https://smart-api.info/ui/1b6de23ed3c4e0713b20794477ba1e39 Using Protein -(associated_with)-> Disease / PhenotypicFeature MetaEdges as reference. (1) Needs "reverse MetaEdge": Disease ID on object
(2) Needs "reverse MetaEdge": Disease ID on subject, flipped version of (1)
(3) Uses original MetaEdge: Protein ID on subject
(4) Uses original MetaEdge: Protein ID on object, flipped version of (3)
|
@colleenXu I've made PRs for the reverse-metaEdge injection behavior, see branches named |
YAY it all works! I tested...
But note!
And for the PRs...I updated biothings/bte-server#43 to uncomment Multiomics CTKP. Also I made a PR for the upcoming semmeddb override biothings/bte-server#45. That may have a merge conflict with 44. |
In my debug testing I was able to see that a query going to CTKP had multiple IDs on the node and results were still transformed correctly. I've also pushed a change to the logging so it's just one line per KP. |
Absolutely! I just released version 2.4.0 of CTKP, now using |
Current situation:
|
per @gglusman's comment
Whenever this is ready and the SmartAPI record is updated (presumably this one), we should remove the
in_clinical_trials_for
edges based on ChEMBL and add CTKP.The text was updated successfully, but these errors were encountered: