legumeinfo / microservices

A collection of microservices developed and maintained by the Legume Information System
https://legumeinfo.org/
Apache License 2.0
3 stars 2 forks source link

Get Funnotate linkout on genes with no gene family assignment #599

Open sammyjava opened 1 year ago

sammyjava commented 1 year ago

The gene linkouts include Funnotate on this record, but there is no gene family assignment. One gets an uninteresting page from Funnotate.

aesev.CIAT22838.gnm1.ann1.Ae0000010 (Ae0000010) Aeschynomene evenia CIAT22838 Unknown protein location: aesev.CIAT22838.gnm1.Unknown:4299-8942 (1) (supercontig) gene family: None

Expected behavior: Funnotate linkout is not provided for genes without gene family assignment.

adf-ncgr commented 1 year ago

I'm not sure there's any way for the linkout service to know this, unless it were to ask another system (e.g. intermine) about it (but how should linkout service know that a link to Funnotate is about gene families anyway?) Linkouts were never supposed to be all that smart about such things. It's kind of obvious in this case because we put the fact that it doesn't have a gene family in the search results, but I don't think we can always guard against hitting uninteresting pages in the targets. An analogous case might be linking to an expression atlas only to find the gene is not expressed. It's a result of some sort that is informative, even if it is boring info. Let me know if I've failed to convince you that I don't need to do real work here...

sammyjava commented 1 year ago

Yeah, I guess not, you don't actually query the mine to see if a gene family assignment exists. I'm gonna leave this up but flag it as "wontfix" as I still consider it to be a bug from an end user's point of view.

adf-ncgr commented 1 year ago

FWIW I've considered whether the linkout service should talk to the mines for other reasons, for example to convert gene ids to protein ids, for cases in which it might be convenient to form links that are based on some related identifier. The older linkout service did consult chado for such things. That said, I think doing id conversions is different than adding logic that requires the linkout service to "know" details about the sites that it's linking to. I guess if we really wanted to we could have the linkout service test the URLs it forms before sending them back and then suppress any that didn't return acceptable HTTP codes, but I'm not sure that's a good idea (just the only way I could think of doing something along these lines that wouldn't involve the linkout service having to have logic that isn't just given in the yaml specs). Open to other ideas if you have any...

sammyjava commented 1 year ago

We'll let it burble here as "wontfix" for a couple of months. :) We may come up with a simple solution.