Skip to content

Commit

Permalink
Add ranking agent docs (#79)
Browse files Browse the repository at this point in the history
* Add ranking agent docs

* updates

---------

Co-authored-by: Chris Bizon <[email protected]>
  • Loading branch information
maximusunc and cbizon authored Sep 25, 2024
1 parent 44b1b81 commit c1bd953
Show file tree
Hide file tree
Showing 4 changed files with 40 additions and 1 deletion.
29 changes: 29 additions & 0 deletions docs/architecture/ara/aragorn.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,29 @@
[Back to ARAs](index.md)

# Aragorn Autonomous Relay Agent Page

Autonomous Relay Agent for Generation Of Ranked Networks (ARAGORN) is an autonomous relay agent supported by the ranking-agent team. Aragorn operates in a federated knowledge environment and queries all known Knowledge Providers (KPs) found in the [SmartAPI registry](https://smart-api.info/).

Aragorn processes data using a collection of supporting services also managed by the ranking-agent team:

* [Strider](https://github.com/ranking-agent/strider) - Responsible for federated querying of known KPs, normalizing identifiers using the Node Normalizer, and formating results.
* [Omnicorp](https://github.com/ranking-agent/aragorn-ranker/blob/master/ranker/modules/omnicorp_overlay.py) - Responsible for annotating nodes and edges with literature co-occurence information to support ranking.
* [Aragorn Ranker](https://github.com/ranking-agent/aragorn-ranker) - Responsible for ranking results using available meta-data information and an algorithm inspired by information flow.

In addition, Aragorn contains algorithms to orchestrate these services to support inferred edges, set-input queries, and path queries.

## Inferred Edges
Aragorn uses a collections of rules learned using AMIE+ on the ROBOKOP graph to expand an inferred query edge into a collection of non-inferred queries. Each of these queries is then sent to Strider. Aragorn then merges the set of results and formats the results, before completing ranking.

## Set-Input Queries
Set-Input queries are primarily handled in Strider, which calls KPs capable of responding to the queries.

## Implementation
Aragorn is asynchronous with results from requests to supporting services returned via callback URLs. Redis is used to handle communication between worker threads to ensure that requests are available despite any difference from the initiating worker.

## Ranking
The Aragorn ranking algorithm transforms a set of known attributes into measures between 0 and 1, and then uses these measures to model flow of information between sets of nodes. An algorithm is used to identify which nodes should be measured (probes) using the query graph connectivity and specificity. The ranking algorithm also transforms weights into the range of [0, 1] to normalize the score between any two prob nodes. The ranking algorithm operates on arbitrary graph shapes and does not directly penalize for path length, result graph structure or query structure. A full list of attributes and how they are transformed for ranking is available in the [Aragron ranker source code](https://github.com/ranking-agent/aragorn-ranker/blob/master/ranker/shared/sources.py).

## Additional Links

- [Ranking Agent](https://github.com/NCATSTranslator/Translator-All/wiki/Ranking-Agent/)
2 changes: 1 addition & 1 deletion docs/architecture/ara/index.md
Original file line number Diff line number Diff line change
Expand Up @@ -12,7 +12,7 @@ Translator "Autonomous Relay Agents" (ARAs) build build upon the knowledge contr

| Team | Name | Documentation | Github Repository |
| ------------------------------------------------------------------------------------- | ------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------- |
| [Ranking Agent](https://github.com/NCATSTranslator/Translator-All/wiki/Ranking-Agent) | Ranking Agent ('Aragorn') | [Aragorn Wiki](https://github.com/NCATSTranslator/Translator-All/wiki/ARAGORN) | [ranking-agent/aragorn](https://github.com/ranking-agent/aragorn) |
| [Ranking Agent](../../teams/ranking-agent.md) | Aragorn | [Aragorn Page](aragorn.md) | [ranking-agent/aragorn](https://github.com/ranking-agent/aragorn) |
| [Expander Agent](../../teams/expander-agent.md) | ARAX | [ARAX Page](arax.md)<br/>[ARAX Wiki](https://github.com/NCATSTranslator/Translator-All/wiki/ARAX) | [RTXteam/RTX](https://github.com/RTXteam/RTX) |
| (im)Proving Agent | Scalable Precision Medicine<br>Oriented Knowledge Engine ('SPOKE') | [SPOKE Wiki](https://github.com/NCATSTranslator/Translator-All/wiki/imProving-Agent) | [BaranziniLab/PSEV](https://github.com/BaranziniLab/PSEV) |
| [Exploring Agent](../../teams/exploring-agent.md) | [BioThings Explorer](https://explorer.biothings.io/) | [BioThings Explorer Page](bte.md) [BioThings Explorer Wiki](<https://github.com/NCATSTranslator/Translator-All/wiki/BioThings-Explorer-(BTE)>) | [biothings/biothings_explorer](https://github.com/biothings/biothings_explorer) |
Expand Down
1 change: 1 addition & 0 deletions docs/teams/index.md
Original file line number Diff line number Diff line change
Expand Up @@ -6,4 +6,5 @@
- [Exploring Agent](exploring-agent.md)
- [Genetics Data Services Provider](genetics-data.md)
- [Multiomics Provider](multiomics-provider.md)
- [Ranking Agent](ranking-agent.md)
- [Service Provider](service-provider.md)
9 changes: 9 additions & 0 deletions docs/teams/ranking-agent.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,9 @@
[Back to Teams](index.md)

# Team Ranking Agent

Ranking Agent is the team responsible for the ["ARAGORN"](../architecture/ara/aragorn.md) autonomous relay agent.

## Ranking Agent PIs:

- Alex Tropsha: alex\_[email protected]

0 comments on commit c1bd953

Please sign in to comment.