Coder Social home page Coder Social logo

ncatstranslator / relay Goto Github PK

View Code? Open in Web Editor NEW
5.0 7.0 22.0 2.28 MB

Autonomous relay system for NCATS Biomedical Data Translator

License: MIT License

Python 71.21% CSS 18.01% HTML 8.66% Dockerfile 0.07% Shell 1.52% Smarty 0.54%
ncats-translator ars trapi ncats-dpi-ifx

relay's People

Contributors

andrewsu avatar aojesanmi avatar bettyli037 avatar brettasmi avatar caodac avatar caseyta avatar cbizon avatar chevvak2 avatar edeutsch avatar jdr0887 avatar jeffhhk avatar kannabhargav avatar kevinxin90 avatar mapleknight avatar markdwilliams avatar patrickkwang avatar phillipsowen avatar shervinabd92 avatar southalln avatar sstemann avatar tziomics avatar vemonet avatar wangk8 avatar yakaboskic avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar

relay's Issues

Suggestion: ARS designed to allow ReasonerStdAPI to be received incrementally from ARA's

  • Motivation: UX/UI studies show that if an end user needs to wait longer than some short amount of time (say, 0.5 seconds), then they will get frustrated with the system unless they are aware of what is happening in the background while they wait for their results.

  • ReasonerStdAPI already has a log feature that ARAs utilize to show their reasoning steps.

  • If ARA's can share with the ARS this log and/or partial results in ReasonerStdAPI (instead of waiting until the very end after all reasoning has taken place), then the eventual ARS GUI can take advantage of this to show the end user "what's happening in the background" as they wait for results.

  • As an additional bonus, the ARS having access to this information as it comes in will demonstrate to an end user how integrated the system as a whole has become.

Note: this feature request is motivated by a discussion with @edeutsch, @MarkDWilliams and Christine Colvis at the April 2020 Kickoff Relay.

Update Agent URLs from SmartAPI registration for Status Page

Noel Southall (Link Broker) 10:58 AM
Wanted to follow-up about that ARS status page error for ARAX --- currently, I was using a very old snapshot from SmartAPI, so we updated it.
However, we list the endpoint for the ARAX agent in ARS as: https://arax.ncats.io/devED/api/arax/v1.0/query?bypass_cache=false
and that SmartAPI entry that you pointed me to lists:
https://arax.ncats.io/api/arax/v1.0
So, that's another problem with the current mapping. Should we further update the ARS registration for the ARAX agent to this SmartAPI url?

Eric Deutsch (Expander Agent) 10:59 AM
yes please!
If we update info in our SmartAPI registration, should we also let you know?
Or is the new information pulled automatically?

Noel Southall (Link Broker) 11:02 AM
Well, we hadn't completely settled on where the best metadata is in the SmartAPI entry .... so I was linking it on URL, but that's clearly not a good idea. Can I update the agent name to map to the SmartAPI resource name too - then I might be able to catch updates to a URL?

Seems to be extra leading h in genetics provider url in ARS status page

From the Last Message link in the https://ars.transltr.io/ars/app/status page:

"logs": [ "No connection adapters were found for 'hhttps://translator.broadinstitute.org/genetics_provider/trapi/v1.0/query'", "Tr_ars.url: hhttps://translator.broadinstitute.org/genetics_provider/trapi/v1.0/query" ] }, "url": "hhttps://translator.broadinstitute.org/genetics_provider/trapi/v1.0/query", "ref": "b589286f-5d74-412c-b506-a68d1fed324b" } }

hhttps://translator.broadinstitute.org/genetics_provider/trapi/v1.0/query
should be
https://translator.broadinstitute.org/genetics_provider/trapi/v1.0/query

The presentation of the "Use Cases" for "NCATSTranslator / Relay" should be standardized and have text descriptions

The presentation of the Use Cases is currently

  1. variable in format
  2. lacks English descriptions

I recommend that
A. A template for "best practice" of submitting a Use Case is created
B. More English descriptive text is added. It is hard to reverse engineer on the fly by eyeballing a use case what the intended question is, in some cases.

For example, the template might be

TITLE: Compound-Disease-Disease (no specific names of entities should be in the title)
SPECIFIC EXAMPLE IN THIS USE CASE: rheumatoid arthritis - lung cancer - compound
English Description: This is a query to find a compound that is known to treat one disease that also treats a related disease.
Key identifier mappings to help interpret this query and that can be changed to customize the query (optional): DOID:7148 = rheumatoid arthritis
Query: (do not use curly quotes!)
{ "query_message": { "query_graph": { "nodes": [ { "node_id": "n0", "curie": "", "type": "biolink:ChemicalSubstance" }, { "node_id": "n1", "curie": "DOID:7148", "type": "biolink:Disease" }, { "node_id": "n2", "curie": "", "type": "biolink:Disease" }, { "node_id": "n3", "curie": "", "type": "biolink:Gene" } ], "edges": [ { "edge_id": "e0", "source_id": "n0", "target_id": "n1" }, { "edge_id": "e1", "source_id": "n1", "target_id": "n2" }, { "edge_id": "e2", "source_id": "n2", "target_id": "n3" } ] }, "query_options": { "psev-context": "DOID:7148", "query_kps": "true" } } }

Note that the above is my attempt to understand one of the current use cases. I trust that my best interpretation shows that I did not interpret it correctly. :)

change Content-type header from text/html to application/json

Minor suggestion... Currently API calls (e.g., https://ars.transltr.io/ars/api/messages/fc7414d4-1f64-48f6-a4be-0775a6486227) use Content-Type: text/html in the response header. So that my browser plugin identifies it correctly as json for pretty formatting, would be nice if that were switched to Content-type: application/json.

(A bit confused because it looks like it should already be set up that way in https://github.com/NCATSTranslator/Relay/blob/master/tr_sys/tr_ars/api.py#L78 ?)

Dockerize ARS

Agents will not be individually dockerized but included in the main ARS

Add CORS support

Would you add CORS support in the ARS?

Access-Control-Allow-Origin: *
Access-Control-Allow-Headers: Content-Type
Access-Control-Allow-Methods: GET, POST, OPTIONS

Implement ARS Query Brower

High level thoughts:

  • live instance to allow people to browse queries and answers
  • includes all queries that have ever been submitted and their answer graphs
  • static answer graphs - includes version of the answer graph

Interface between ARAs and the ARS after an ARA receives a query and before it returns results

This topic was brought up at the architecture meeting on July 16th prompted by David (ARAx) presentation where he referred to user intentions. We propose we discuss this interface to ask user preferences. One example is to ask a user about preference towards innovative but not necessarily scientifically validated results as those to receive highest ranks or towards well-validated results. This interface relates to the iterative process between the ARS and the ARAs as referred to in the FOA.

Change Timeout for Queries

ARAGORN's use case query functions when sent directly to their service but times out at the ARS level.

Provide callback for message updates following initial creation

Currently, ARS service agent/actors POST queries to resources synchronously and holds that connection open as long as is needed for the service action to be performed. The preferred behavior would be to provide a callback for services to POST responses and updates directly to the ARS, with the agent/actor service just replying with an initial status of 'in progress' or something.

Tie Actor to specific Translator API version

As new versions of the Translator API are released, we will need to know which versions to POST and what type of response to expect back. This most likely requires and update to the Agent/Actor model - to allow specific properties, like API version.

Improve Agent query endpoint not TRAPI compliant

One of the test queries we currently use to probe service status is a one-hop query, and this is currently returning a non-status 200 response for improve agent. We have yet to fully converge on a standard for error responses from Reasoner API services, but the current convention is to return a status 200 response if the message was received and is TRAPI compliant. See, for example, NCATSTranslator/ReasonerAPI#140

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.