intermine / intermine-ios

Intermine iOS application - developed as part of GSoC 2017 by Nadia Yudina
2 stars 1 forks source link

Gos feedback on templates #38

Open nadia-dev opened 7 years ago

nadia-dev commented 7 years ago

@yochannah, i need your help as i didn't understand the most of it:

  1. tried template - GO Term identifier -> GO Term Name. I'm seeing Lookup - false, is null, GO:0030437 Is it possible to avoid having the 1st two lookups? Naively I would have expected just the GO:0030437 one. - this one i understand
  2. He says: "The results for this are informative but it would be very cool if there could be links to parents and/or children in the appropriate GO DAG so that one could browse more/ less specific terms. That alone would make a very cool tool - an in-your-pocket GO browser!" - I don't really understand what it means...
  3. He says: "I replaced the terminal character of the default with * and it worked fine! However a lot of the returned terms are marked obsolete. It would be good to be able to filter these out either by an option in the template, or perhaps better/ more general/ less cluttered, somehow the ability to facet on each field of the results." - I don't know what are obsolete terms and how do you tell one from non-obsolete...
julie-sullivan commented 7 years ago
  1. Ontology terms have parents and children. OntologyTerm.parents.identifier. The whole ontology is a big tree.

  2. Ontology terms can be marked "obsolete". OntologyTerm.obsolete = TRUE. Obsolete terms are less useful because the aren't used anymore (obviously!). But you wouldn't always want to filter them out, so Gos suggested letting the user filter.

yochannah commented 7 years ago

ok, some more details on the GO Term stuff: all GO Terms are children (mostly indirectly) of one of three parent terms: Biological process, cellular component, and molecular function. I've attached a graph showing some terms that I worked on last year from http://gointermod.apps.intermine.org/#/ontology Search was for GATA1, Cellular component selected on left, and C. elegans and M. musculus manually unchecked in the output species at the top, if you want to look at it some more. the graph is a bit tricky because with too many results it becomes a silly mess.

image

To get there, I've looked through my code and it seems that I run this query (note the 'put your data here' bits in ((((brackets))))

<query model="genomic" view="GOTerm.identifier GOTerm.name GOTerm.parents.identifier GOTerm.parents.name GOTerm.parents.parents.identifier GOTerm.parents.parents.name" sortOrder="GOTerm.parents.parents.name ASC" constraintLogic="A and B"><constraint path="GOTerm.identifier" op="ONE OF" code="A">" ((((ids)))) "</constraint><constraint path="GOTerm.namespace" code="B" op="=" value="((((biological_process or one of the other two))))"/></query>

that's a bit more complex than what you'd need I am guessing since you don't need to create a whole tree, just get the parents for a single term I think? So it's probably easy to build something like this in the query builder:

image

Let's add as a bonus feature if there is time at the end :)