geneontology / web-gocam

GO-CAM site as an Angular 2+ Application

Home Page:http://geneontology.org/go-cam

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

Several Features & Improvements

lpalbou opened this issue · comments

List of features and improvements discussed:

Home Page

  • Text Content
    • Use "GO Annotations" instead of "standard GO Annotations"
    • Remove Learn More

Browse Page

  • Search Capabilities:
    • include Gene Product ids (e.g.ZDB-GENE-031112-7)
    • include GO-Term id (e.g. GO:0090090)
    • search on multiple fields (*)
    • ontology search (2 ways of doing that, lesser priority - use regulates closure)
    • enable faceted search (e.g. precise when searching for a go term, a gp, a mf, a bp, etc)
  • GO-CAM Matching [need separate ticket and work]
    • Simple Algorithm to compare GO-CAMs
    • Evaluate the current redundancy of GO-CAMs
  • View Models:
    • Change margin & padding to have a more compact view
    • Put buttons under the title
    • Ensure PathwayView link is usable (no it's not)
  • Displayed Columns:
    • Ability to customize the displayed columns (show/hide specific columns)
    • Put the date at the end of the line to lower the focus on that
    • By default, remove the curator column
    • Ability to sort by date (lesser priority)
  • Uberon and other MOD ontologies describing localization [not required at this time]
    • At the moment, we only show data on GO BP/MF/CC, but a number of gocams can only be differentiate based for instance on Uberon.
  • Date:
    • Release date shown based on the last release date in Zenodo (while waiting for a better solution, see geneontology/pipeline#20)
    • Discuss to use the ISO format of amigo (e.g. 20110404)
    • At least have consistency between the dates displayed in the browse table and the recent models
  • Article Tooltip:
    • When multiple authors, add the "et al"
  • Gene Products:
    • Monitor the effects of dustin SYNGO fix on GPs URI (e.g. name & other metadata)
    • Only the GPs found by enabled_by are currently shown / searchable. We want to add the GPs found by has_input relationships as well (both in the table and has a search feature)
    • Show species name either 1 capital letter genus + "." + lowercase species (e.g. C.elegans) or using the uniprot conventions
  • General Presentation:
    • add a hint above the browsing table to specify what represents its content
    • DLK example remove from the front page, the NEDD4 gocam illustration has been put instead
      • curators could provide other relevant examples (2-4) to show on the main page

Alternative Browsing

  • could integrate a ribbon before even searching the models to have an overview of the high-level functions covered by go-cams. The ribbon could also become an alternative way to browse the gocam models (note however some changes would be required since the ribbon is designed to work with a gene, not a given list of gocams)
  • could explore a "cards" page where each card would represent a high-level biological function (possibly from the AGR slim), with a small description, and clicking on it would only show the models related to that function

Group Page

  • add a link to browse all models of that group
    • numbers of models shown per user should represent the models for that group only (for the moment, for all groups)

Group & User Pages

  • since only a text search is done at the moment, searching for instance for "MGI" will return both models from MGI (group) and models from other groups using MGI genes. In relation with allowing for facetted search. Proposal: add a prefix to the search keyword (e.g. group:MGI ; gp:MGI:xxx, go:GO:xxx)

Feedback

  • Check if API to submit ticket to GitHub (yes there is one)
  • Send E-Mail instead of storing feedbacks in a DB
  • Monitor discussion on other choices (e.g. tender)
  • Change: the feedback (without s) button now redirects to the GO helpdesk

Download

  • Include at least SIF format. Coordinate with @kltm for generation with the pipeline
  • the browsing table (/browse) should also give users the ability to export the table in csv/tsv

Documentation

  • Coordinate with Pascale and Kimberly for the Research & Curator pages on wiki
  • External user documentation should be on the site itself (now in /docs) with links to the main noctua/go-cam page (http://wiki.geneontology.org/index.php/Noctua)
    • (optional) improve the documentation with some (interactive) illustrations

Technical comments:

  • update to last version of angular
  • correct any css problems due to the update of angular material
  • for CURIE <-> IRI, should benefit from curie-util-es5
    • CurieUtilService created with accession methods for both CURIE & IRI
    • only use this service to resolve CURIE & IRI (waiting for the db-xrefs to populate the go_context.jsonld)
    • Using noctua.geneontology.org as base URL instead of noctua.berkeleybop.org
  • paving the way for more modularized codes:
    • gorest: scheduled to be available as npm package, including with types (TypeScript)
    • queries (sparql): should all come from a single repo and in the near future, implement/use sparqlr

Overall speed:

  • Correct the CORS problem on the SPARQL query to render the first page, this affects the time to load / show

[EDIT]
Current state of development is updated.

[EDIT2]
Added features / suggestions / corrections from September 17 call

(*): multiple keywords can be either from the same column (e.g. finding the models with two biological processes: GO:0090090 GO:0021999) or from different columns (e.g. finding a model with a gene in a certain location: synapse RAB3)

commented

@lpalbou what is this item? gorest: scheduled to be available as npm package, including with types (TypeScript)

commented

We'll also want to work with others (@tmushayahama @suzialeksander etc.) to choose the look-and-feel toolkits that we'll be using. As well as keeping an eye on making things a little more ADA-compliant.

@kltm some answers:

  • gorest: I was referring to the client-side code retrieving data from the gorest api. I plan to create that as a separate module, so that @tmushayahama can directly use it from Noctua Form & Review... as for the moment, he decided not to use my API but instead to duplicate the SPARQL queries behind my API, even though I warned him those queries will evolve over time (...)

  • Look-And-Feel: let's coordinate on that. I know Tremayne is using Angular Material, I am too. I just have additional scss files to further configure the styling. But yes, it should be harmonized across all apps.

  • ADA-compliant: sure, let me know what you have in mind. For the moment, gocam site scores 79% with LightHouse audit on accessibility but we could improve a few things (e.g. the link for evidence per gocam are only green icons so I could try to put a alt="" somewhere to describe them)

commented
  • gorest, while an good exercise and experiment, I'm not particularly comfortable having this as an API leaking into production software--we need to work on uniformity, common APIs, and libraries. The underlying SPARQL should be available as templates, so there should be little duplication or worry about drift there. As well, given our large es5 base at this point, common libraries should be written in a way so that they can easily be included elsewhere (such as having a standard babel workflow that we work out).

  • For look-and feel, we've already made a lot of use of Bootstrap, so my druthers would be to continue to evolve along those lines. If Material, was there a particular toolkit (a la bootstrap) that we could use more generally, for both standard static pages, Vue components, legacy components, etc.?

  • ADA-compliant, honestly, I was thinking more about a different site; I'll take a bit more of a look around.

  • I noticed that you have https://app.swaggerhub.com/apis/geneontology/gosparql/2.2 , this is the API you are referring to above?

  • You seem to be using your own URL scheme for wiki links; these should be standardized across our presence.

  • We should check back in with @dougli1sqrd about our progress along the lines of the GOOSE replacement (re: https://geneontology.cloud/query/sparql-examples)

  • Links for the Noctua editor should generally be: http://noctua.geneontology.org/ (although note my barista whoops here geneontology/noctua#568).

  • Align on feedback form (apologies, that's on my plate right now)

  • GO logo links should generally go back to the main site.

Answers by Topic:

  • GOREST: the integration of my API inside BioLink is nearly finished, so this is not really an issue. However please remember BioLink can not be used at the moment for any data access on any secured site since BioLink is unsecured (http) and unfortunately so is the RDF endpoint too. We must deploy both BioLink and RDF endpoints to secured https if we want them to be used from https sites such as the next GO site or the Alliance.

    • Yes, https://app.swaggerhub.com/apis/geneontology/gosparql/2.2 is the updated swagger documentation of GORESTI that was available before the NYC meeting in May.
    • SPARQL templates: already discussed many time and we agree. Most of my queries have been in the sparqlr repo for some time (even though I have to update them since they still change quite often): https://github.com/geneontology/sparqlr/tree/master/templates/website. The next step would be to deploy those templates on some shared CDN or repository service or better to include them in OntoBio/BioLink.
    • es5: that's what I did with curie-util-es5 but if we want more "common" libraries, we need to discuss 1) on what 2) for what concrete case, 3) which language and why 4) who will develop it and 5) its priority.
  • ADA-compliant: I already follow a certain number of recommendations and the gocam site scores 79% on accessibility while amigo has 71% and noctua.berkeleybop has 72% (LightHouse Audit). If you have some suggestions to improve our accessibility, please let me know. However, this may not be a priority compared to other developments (general data access, validation checks, go site and documentations, interactive notebooks asked by the SAB, visualization of gocams, gocams matching, etc).

  • GOOSE replacement: since the discussion we had where @dougli1sqrd seems to be in charge of this, I stopped any related development. In the meantime, I have updated the SPARQL endpoint link to switch back to the http://rdf.geneontology.org/#query so /query/sparql-examples should not be used anymore. Btw, I had some security warnings recently on the gocam site due to the yasgui library that uses an old jquery library (< v3.0) with security issues.

  • Feedback Form: I will be waiting for your instructions, but I would have appreciated to be part of that discussion since my feedback button was here before the NYC meeting in May. Also depending of the functionalities you want, the GitHub API (https://developer.github.com/v3/issues/) already allows to post issues with title, body, labels and even assignees.

Any way this ticket can be split to make it more readable?

Hi Suzy, this is a summary of items to complete the gocam site, so it will stay like that to keep track of the progression, however I have created and referenced other tickets for specific topics of that list:

  • Documentation: #8
  • SIF Archive: #7
  • Feedback Form: #9

If there is another topic you would want separate for further discussions, either create or let me know.