Open jmcmurry opened 9 years ago
It looks like we're not sharing code (maybe for good reason) between the navbar autocomplete and analyze page autocomplete. I will add the equivalency fiiltering code to remove duplicates here.
For searching on IDs, we don't currently store curies in SciGraph (unless imported from an ontology). There have been some offline discussions but we should make an official ticket in the SciGraph repo.
@kshefchek If you remove duplicates in analyze page autocomplete, will it put multiple exact matching terms in the list? (eg. HP and MP). If so, this is probably fine, perhaps desirable anyway. The user can always remove one if necessary.
If I were to copy the functionality from the navbar autocomplete, we would only be showing the user the collapsed ID/label. But I would think this is desirable over showing the user all equivalent IDs in the phenotype list which would be potentially confusing.
Thinking about https://github.com/monarch-initiative/monarch-app/issues/994#issuecomment-146951868 a little more, we have graph and vocabulary services that accept curies as input. So we could theoretically try to match on a user entered ID assuming it is entered correctly and in the correct format (curie rather than fragment).
For example, a user enters HP:0000175 which has 0 matches in autocomplete, we could attempt a match via the vocabulary/id service and present this to user in the autocomplete box: http://geoffrey.crbs.ucsd.edu:9000/scigraph/vocabulary/id/HP:0000175
Would this behavior be useful while we enable searches on curies?
The analyze autocomplete is now filtering out equivalent classes, @jmcmurry could you clarify the following?
"CURIE or CURIE prefix absolutely needs to be part of the autocomplete box" - Do we still want this?
I think so, but less crucial if we get the species filtering working (eg. autocomplete on only human terms, or only on HPO terms, etc)
"Enable identifiers to be entered eg HP:0011304, not just labels"
I still think this is important but think that scigraph annotator is a better route than building yet another kind of input interface; I hope it would be more forgiving and intuitive.
Easy
Moderately easy?
I would be surprised if the existing backend needed to be modified to make these changes, but please let me know if I'm mistaken.
Needs thought; postpone this