-
Notifications
You must be signed in to change notification settings - Fork 2
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
Disease prioritization results benchmarking from different disease ontologies #349
Comments
Awesome thank you @AO33 for digging and writing this up. This is very important! @yaseminbridges, this ticket is perhaps a bit.. involved (I think the solution may be a bit more than just injecting the mapping into the analysis code, but actually rewiring the diagnosis in the phenopacket), but it is of critical importance. In the same way we normalise genes, we should normalise diagnoses to Mondo. Of course, this will elicit some push back from Jules I imagine, so we need to debate it (dont start this without talking to him), but I feel, from a Monarch-wide standpoint, that this is the right move! |
Agreed - this is important. I think the best place for this is outside the analysis code - perhaps as a utility function as we have for converting the genes we should have the same for the disease identifiers. |
We discussed this at the berkeley hackathon, we also need to account for the case where the orpha is a superclass of the omim |
Makes this a bit harder. If you like, I can create two tables for you:
However, before we go there: @cmungall are you sure your
is not a bit too general? If someone predicts an Orpha that is much higher in the hierarchy, then the diagnosis IMO is not "as specific as it could be". So I would not say the higher "orpha" diagnosis should be treated as if it was correct; it is not "wrong", but too unspecific. You could predic MONDO:disease and would be always right! |
Here is the before and after disease_id "mondo mapping" benchmark results for exomiser. There were 71/385 exomiser results where pheval was under reporting the rank for the patients disease. This isn't just a pheval issue (although pheval is the best place to solve this problem) because exomiser is reporting different results for the same disease. The real number of times that this "could" be a problem is currently dictated by how any given disease prioritization tool handles its results (i.e. how many times is the tool reporting the same disease, but in different ontology name spaces) |
Attached in the screenshot are the top hits for a single sample run through exomiser's phenotype only mode + pheval runner post processing.
The top two hits (ORPHA:25 and OMIM: 231670) are actually the same disease https://monarchinitiative.org/MONDO:0009281.
The diagnosis reported in the phenopacket for this patient is OMIM:231670 which is ranked number two in the results file.
I ran the "pheval-utils benchmark-comparison" command for this single sample, and the result was in the top3 rather than the top1.
Pheval's current implementation requires the analysis specific tool to output results in the same ontology name space as what is present in the input phenopacket in order for a match to be found during pheval's benchmarking. In this specific instance, this causes the ranking to be incorrectly reported
My current thoughts on how to remedy this issue is to leverage the mondo.sssom.tsv file to map everything to a mondo id during the benchmarking process (https://data.monarchinitiative.org/mappings/latest/mondo.sssom.tsv). This is also the way I have been handling this issue in my own analysis
Then in the following code https://github.com/monarch-initiative/pheval/blob/main/src/pheval/analyse/disease_prioritisation_analysis.py
The text was updated successfully, but these errors were encountered: