PathwayCommons / pathways-search

A web app to search pathways in Pathway Commons
http://www.pathwaycommons.org/pathways/
MIT License
2 stars 4 forks source link

Generic Search #154

Closed jvwong closed 6 years ago

jvwong commented 6 years ago

Support search for other types.

Use case

A user is interested in finding more information about the opioid pathway and lands on a result from Reactome: Opioid Signalling. The user may desire more information about say, the mu-type opioid receptor named 'OPRM1'.

This could include:

a. Drug interactions e.g. Propoxyphene napsylate acts as an agonist | DrugBank b. Protein interactions e.g. GASP-1 interacts with MOR | BIND c. Regulation via microRNAs e.g. hsa-miR-3927-5p regulates OPRM1 | miRTarBase d. Phosphorylation e.g. CAMK2A | PhosphositePlus

Caveat is that an unrestricted PC search of OPRM1 will not necessarily return / rank these well.

integration_pc_muopioid

jvwong commented 6 years ago

Types to include in search:

  1. Pathway
  2. Catalysis
  3. Interaction / MolecularInteraction
  4. TemplateReactionRegulation

tabbed for each class?

jvwong commented 6 years ago

Realized that 'type=interaction' is too generic (see BioPAX class hierarchy below). Also we should use more meaningful text labels.

Consider restricting the search-tabs types. Also need text labels that are more meaningful to users, but this is tricky:

  1. type=Pathway (label = 'Pathway')
  2. type=Catalysis (label = 'Catalysis')
  3. type=MolecularInteraction (label = 'Molecular Interaction')
  4. type= TemplateReactionRegulation (label = 'Transcription/Translation')

screenshot at oct 13 11-21-55

d2fong commented 6 years ago

Ok thats fine.

I found a query that has null names. q=oprm1&type=Catalysis

In that case, what should I display for the title?

d2fong commented 6 years ago

Can you elaborate on what you do to get drugbank results?

jvwong commented 6 years ago

These are toughies...

No names

Sure this is common, e.g. GRK2 phosphorylation of OPRM1 (PSP).

I previously hacked the Viewer to show the URI when no name existed which is not acceptable. Both 'Search' and 'Viewer' components will have to handle SearchHits and URI/objects, respectively, in a generic fashion with sane defaults.

The user needs some useful hints about that object's contents to identify those of interest within a list. In the absence of a human-readable name, a close second could be a list of participants/genes. I wonder how expensive and complicated using traverse is e.g. for GRK2 phosphorylation of OPRM1 (PSP) we can grab the controller genes and controlled genes


Drug bank

I used this query - of course, the resulting 'type=Control' results are of interest but would not be included in our four types above.

Maybe we use 'type=control' (label = 'Reactions') instead of the two specific classes catalysis and templateReactionRegulation?

d2fong commented 6 years ago

@IgorRodchenkov

Hey Igor, Jeff and I noticed that sometimes searchresult.searchit entries have a null name. Do you have any tips to generate a name for these search results in the way Jeff described above?

IgorRodchenkov commented 6 years ago

I think, it's quite common that biopax interaction type objects have no names at all... Yes, we could simply use the biopax type as name or auto-generate a display name using type and participant names (or even states - features, locations), but these would result in too long names (e.g., if there are many participants and we would use left/right/controller/product/etc. property names, and cellular location...). Let's brainstorm and implement 'name auto-fill' in the next release PC10?

IgorRodchenkov commented 6 years ago

@d2fong , @jvwong Reading your comments I thought that it worth clarifying something... PC search query engine does take into account BioPAX ontology - class hierarchy. So, if you filter by type, e.g., by adding '&type=Control', you get Control and its sub-class interactions (Catalysis, etc.); 'type=Entity' - gets you interactions, pathways, physical entities and genes; ''type=Conversion'' - finds only reactions, etc.

IgorRodchenkov commented 6 years ago

Oops, @d2fong @jvwong , I mean - ''type=Conversion'' - finds reactions only (incl. transport).

jvwong commented 6 years ago

Good idea to get a PC10 'name/details' auto-fill field - it could simply be type and say, the first five participant display names: <type>: <gene ID 1>...<gene ID 5>


Lemme recap the potential search tab/types:

  1. Pathway (label='Pathways')
  2. MolecularInteraction (label='Molecular Interaction')
  3. Control (label='Reactions')
  4. TemplateReactionRegulation (label='Transcription/Translation')

Notes

IgorRodchenkov commented 6 years ago

Done in the app-ui repo.