diff --git a/.gitignore b/.gitignore index 36a97066..91227690 100644 --- a/.gitignore +++ b/.gitignore @@ -132,3 +132,6 @@ dmypy.json # Pyre type checker .pyre/ + +# emacs backup files +**/*~ diff --git a/docs/architecture/ara/arax.md b/docs/architecture/ara/arax.md new file mode 100644 index 00000000..012e18e3 --- /dev/null +++ b/docs/architecture/ara/arax.md @@ -0,0 +1,380 @@ +[Back to Home](..) + +## ARAX Autonomous Relay Agent Page + +* Accepts queries via TRAPI (Translator API) format that triggers automated answering and ranking. +* Accepts queries using ARAXi: a domain-specific language that allows users more fine-grained control on what algorithms are utilized and how when asking their questions. +* Integrated with numerous Knowledge Sources and Knowledge Providers, with automatic (or optionally, manual) specification of what sources and providers are utilized. + +## Technical User Guide to ARAX +There are two main modes for interacting with ARAX: the first is via posting TRAPI messages to the ARAX [API](https://arax.ncats.io/api/arax/v1.0/ui/). Examples of doing this are included [here](https://github.com/RTXteam/RTX/tree/master/code/ARAX/Examples). + +The second way to interact with ARAX is via the [GUI](https://arax.ncats.io/). There, you will see four different query types: +1. You can build a query graph by clicking on this icon: ![](https://www.dropbox.com/s/uhe2qtqyzei1aw7/graph.PNG?raw=1) +2. You can enter the value of the `query_graph` element in a TRAPI message (circumventing the need to manually POST TRAPI queries) by clicking on this icon: ![](https://www.dropbox.com/s/3gw48t4fp5ty33s/JSON.PNG?raw=1) +3. You can enter ARAXi domain specific language commands by clicking on this icon: ![](https://www.dropbox.com/s/khh6whk095vg63c/DSL.PNG?raw=1) +4. You can enter an ARS PK ID (to pull results from the Automated Reasoning System) after clicking on this icon: ![](https://www.dropbox.com/s/ob7ozbxtilpse6o/ID.PNG?raw=1) + +No matter which method is used, after submitting a query, the results can be viewed via the links on the left vertical bar under *output*: ![](https://www.dropbox.com/s/1gzovgivoszikym/Output.PNG?raw=1). + +If you want to look up an identifier for a specific natural language term, please use the _Synonyms_ link under the *Tools* section of the left vertical bar: ![](https://www.dropbox.com/s/r4a58wg3v3i9imk/Syn.PNG?raw=1) + +Each of the query methods has a link to an example so a user can see what sort of information is to be expected. If you run into any issues with using any aspect of the system, please open an issue [here](https://github.com/RTXteam/RTX/issues). + +ARAX is registered in Smart API [here](http://smart-api.info/registry?q=arax). + +If you would like to deploy your own instance, please see the dependencies listed [here](https://github.com/RTXteam/RTX#installation-and-dependencies), [here](https://github.com/RTXteam/RTX/tree/master/code/reasoningtool/kg-construction#instructions-on-how-to-build-a-new-kg-from-scratch) for how to build the Expander Agent portion of the Knowledge Graph [here](https://github.com/RTXteam/RTX/tree/master/code/reasoningtool/kg-construction#instructions-on-how-to-build-a-new-kg-from-scratch) (more info about this knowledge graph, called KG2, is available [here](../../kp/rtx-kg2)), and the [deployment wiki](https://github.com/RTXteam/RTX/wiki/Deployment-info). + +## Use Cases + +* one-hop query: + +``` +cat <onehop.json +{ + "bypass_cache": false, + "enforce_edge_directionality": false, + "max_results": 100, + "message": { + "query_graph": { + "edges": { + "e00": { + "object": "n01", + "predicates": ["biolink:physically_interacts_with"], + "subject": "n00" + } + }, + "nodes": { + "n00": { + "categories": ["biolink:ChemicalSubstance"], + "ids": ["CHEMBL.COMPOUND:CHEMBL112"] + }, + "n01": { + "categories": ["biolink:Protein"] + } + } + } + }, + "page_number": 1, + "page_size": 100, + "return_minimal_metadata": false, + "stream_progress": false +} +EOF + +curl -X POST \ + "https://arax.ncats.io/api/arax/v1.1/query?bypass_cache=false" \ + -H "accept: application/json" \ + -H "Content-Type: application/json" \ + -d @onehop.json +``` +should result in this response: +``` +{ + "context": "https://raw.githubusercontent.com/biolink/biolink-model/master/context.jsonld", + "datetime": "2021-05-10 11:56:19", + "description": "Normal completion", + "id": "https://arax.ncats.io/api/arax/v1.1/response/9182", + "logs": [ + { + "code": "", + "level": "INFO", + "message": "ARAX Query launching on incoming Query", + "timestamp": "2021-05-10T11:56:19.774118" + }, + ... + ], + "message": { + "knowledge_graph": { + "edges": { + "ARAX/KG2:CHEBI:4056-biolink:physically_interacts_with-CHEMBL.COMPOUND:CHEMBL112": { + "attributes": [ + { + "attribute_source": "infores:rtx_kg2_kp", + "attribute_type_id": "biolink:original_source", + "value": "infores:semmeddb", + "value_type_id": "biolink:InformationResource" + }, + { + "attribute_source": "infores:semmeddb", + "attribute_type_id": "biolink:has_supporting_publications", + "value": [ + "PMID:10872641", + "PMID:11330834", + "PMID:23032911", + "PMID:25319358", + "PMID:25753323", + "PMID:25956474", + "PMID:30293568", + "PMID:30915487", + "PMID:31600996" + ], + "value_type_id": "biolink:Publication" + }, + { + "attribute_source": "infores:arax_ara", + "attribute_type_id": "biolink:knowledge_provider_source", + "value": "infores:rtx_kg2_kp", + "value_type_id": "biolink:InformationResource" + } + ], + "object": "CHEMBL.COMPOUND:CHEMBL112", + "predicate": "biolink:physically_interacts_with", + "subject": "CHEBI:4056" + }, + "ARAX/KG2:CHEMBL.COMPOUND:CHEMBL112-biolink:molecularly_interacts_with-UniProtKB:O00519": { + "attributes": [ + { + "attribute_source": "infores:rtx_kg2_kp", + "attribute_type_id": "biolink:original_source", + "value": "infores:chembl", + "value_type_id": "biolink:InformationResource" + }, + { + "attribute_source": "infores:arax_ara", + "attribute_type_id": "biolink:knowledge_provider_source", + "value": "infores:rtx_kg2_kp", + "value_type_id": "biolink:InformationResource" + } + ], + "object": "UniProtKB:O00519", + "predicate": "biolink:molecularly_interacts_with", + "subject": "CHEMBL.COMPOUND:CHEMBL112" + }, + "ARAX/KG2:CHEMBL.COMPOUND:CHEMBL112-biolink:molecularly_interacts_with-UniProtKB:P08684": { + "attributes": [ + { + "attribute_source": "infores:rtx_kg2_kp", + "attribute_type_id": "biolink:original_source", + "value": "infores:pharos", + "value_type_id": "biolink:InformationResource" + }, + { + "attribute_source": "infores:arax_ara", + "attribute_type_id": "biolink:knowledge_provider_source", + "value": "infores:rtx_kg2_kp", + "value_type_id": "biolink:InformationResource" + } + ], + "object": "UniProtKB:P08684", + "predicate": "biolink:molecularly_interacts_with", + "subject": "CHEMBL.COMPOUND:CHEMBL112" + }, + "ARAX/KG2:CHEMBL.COMPOUND:CHEMBL112-biolink:molecularly_interacts_with-UniProtKB:P10635": { + "attributes": [ + { + "attribute_source": "infores:rtx_kg2_kp", + "attribute_type_id": "biolink:original_source", + "value": "infores:pharos", + "value_type_id": "biolink:InformationResource" + }, + { + "attribute_source": "infores:arax_ara", + "attribute_type_id": "biolink:knowledge_provider_source", + "value": "infores:rtx_kg2_kp", + "value_type_id": "biolink:InformationResource" + } + ], + "object": "UniProtKB:P10635", + "predicate": "biolink:molecularly_interacts_with", + "subject": "CHEMBL.COMPOUND:CHEMBL112" + }, + "ARAX/KG2:CHEMBL.COMPOUND:CHEMBL112-biolink:molecularly_interacts_with-UniProtKB:P12268": { + "attributes": [ + { + "attribute_source": "infores:rtx_kg2_kp", + "attribute_type_id": "biolink:original_source", + "value": "infores:pharos", + "value_type_id": "biolink:InformationResource" + }, + { + "attribute_source": "infores:arax_ara", + "attribute_type_id": "biolink:knowledge_provider_source", + "value": "infores:rtx_kg2_kp", + "value_type_id": "biolink:InformationResource" + } + ], + "object": "UniProtKB:P12268", + "predicate": "biolink:molecularly_interacts_with", + "subject": "CHEMBL.COMPOUND:CHEMBL112" + }, + ... +``` +* two-hop query with several various overlay commands and filtering: + +``` +cat <kitchensink.json +{ + "bypass_cache": false, + "enforce_edge_directionality": false, + "max_results": 100, + "message": {}, + "operations": {"actions": [ + "add_qnode(name=arthritis, key=n00)", + "add_qnode(categories=biolink:Protein, is_set=true, key=n01)", + "add_qnode(categories=biolink:ChemicalSubstance, key=n02)", + "add_qedge(subject=n00, object=n01, key=e00)", + "add_qedge(subject=n01, object=n02, key=e01, predicates=biolink:physically_interacts_with)", + "expand(edge_key=[e00,e01], kp=ARAX/KG2)", + "overlay(action=overlay_clinical_info, observed_expected_ratio=true, virtual_relation_label=C1, subject_qnode_key=n00, object_qnode_key=n02)", + "filter_kg(action=remove_edges_by_attribute, edge_attribute=probably_treats, direction=below, threshold=.8, remove_connected_nodes=t, qnode_key=n02)", + "overlay(action=compute_jaccard, start_node_key=n00, intermediate_node_key=n01, end_node_key=n02, virtual_relation_label=J1)", + "overlay(action=predict_drug_treats_disease, subject_qnode_key=n02, object_qnode_key=n00, virtual_relation_label=P1)", + "resultify(ignore_edge_direction=true)", + "filter_results(action=limit_number_of_results, max_results=15)", + "return(message=true, store=false)" + ]}, + "page_number": 1, + "page_size": 100, + "return_minimal_metadata": false, + "stream_progress": false +} +EOF + +curl -X POST \ + "https://arax.ncats.io/api/arax/v1.1/query?bypass_cache=false" \ + -H "accept: application/json" \ + -H "Content-Type: application/json" \ + -d @kitchensink.json +``` +should result in this response: (This utilizes a few different overlay commands which hit a few databases so this may take a minute or two) +``` +{ + "context": "https://raw.githubusercontent.com/biolink/biolink-model/master/context.jsonld", + "datetime": "2021-05-10 11:36:58", + "description": "Normal completion", + "logs": [ + ... + ], + "message": { + "knowledge_graph": { + "edges": { + "ARAX/KG2:CHEBI:67079-biolink:physically_interacts_with-CHEMBL.TARGET:CHEMBL1641359": { + "attributes": [ + { + "attribute_source": "infores:rtx_kg2_kp", + "attribute_type_id": "biolink:original_source", + "value": "infores:semmeddb", + "value_type_id": "biolink:InformationResource" + }, + { + "attribute_source": "infores:semmeddb", + "attribute_type_id": "biolink:has_supporting_publications", + "value": [ + "PMID:22552402", + "PMID:27320659", + "PMID:30199704" + ], + "value_type_id": "biolink:Publication" + }, + { + "attribute_source": "infores:arax_ara", + "attribute_type_id": "biolink:knowledge_provider_source", + "value": "infores:rtx_kg2_kp", + "value_type_id": "biolink:InformationResource" + } + ], + "object": "CHEMBL.TARGET:CHEMBL1641359", + "predicate": "biolink:physically_interacts_with", + "subject": "CHEBI:67079" + }, + "ARAX/KG2:CHEBI:67079-biolink:physically_interacts_with-CHEMBL.TARGET:CHEMBL3301559": { + "attributes": [ + { + "attribute_source": "infores:rtx_kg2_kp", + "attribute_type_id": "biolink:original_source", + "value": "infores:semmeddb", + "value_type_id": "biolink:InformationResource" + }, + { + "attribute_source": "infores:semmeddb", + "attribute_type_id": "biolink:has_supporting_publications", + "value": [ + "PMID:29427163" + ], + "value_type_id": "biolink:Publication" + }, + { + "attribute_source": "infores:arax_ara", + "attribute_type_id": "biolink:knowledge_provider_source", + "value": "infores:rtx_kg2_kp", + "value_type_id": "biolink:InformationResource" + } + ], + "object": "CHEMBL.TARGET:CHEMBL3301559", + "predicate": "biolink:physically_interacts_with", + "subject": "CHEBI:67079" + }, + "ARAX/KG2:CHEBI:67079-biolink:physically_interacts_with-UniProtKB:O00206": { + "attributes": [ + { + "attribute_source": "infores:rtx_kg2_kp", + "attribute_type_id": "biolink:original_source", + "value": "infores:semmeddb", + "value_type_id": "biolink:InformationResource" + }, + { + "attribute_source": "infores:semmeddb", + "attribute_type_id": "biolink:has_supporting_publications", + "value": [ + "PMID:30099678" + ], + "value_type_id": "biolink:Publication" + }, + { + "attribute_source": "infores:arax_ara", + "attribute_type_id": "biolink:knowledge_provider_source", + "value": "infores:rtx_kg2_kp", + "value_type_id": "biolink:InformationResource" + } + ], + "object": "UniProtKB:O00206", + "predicate": "biolink:physically_interacts_with", + "subject": "CHEBI:67079" + }, + "ARAX/KG2:CHEBI:67079-biolink:physically_interacts_with-UniProtKB:P01137": { + "attributes": [ + { + "attribute_source": "infores:rtx_kg2_kp", + "attribute_type_id": "biolink:original_source", + "value": "infores:semmeddb", + "value_type_id": "biolink:InformationResource" + }, + { + "attribute_source": "infores:semmeddb", + "attribute_type_id": "biolink:has_supporting_publications", + "value": [ + "PMID:15285804" + ], + "value_type_id": "biolink:Publication" + }, + { + "attribute_source": "infores:arax_ara", + "attribute_type_id": "biolink:knowledge_provider_source", + "value": "infores:rtx_kg2_kp", + "value_type_id": "biolink:InformationResource" + } + ], + "object": "UniProtKB:P01137", + "predicate": "biolink:physically_interacts_with", + "subject": "CHEBI:67079" + }, +... +``` + + +## Knowledge Providers Accessed +* [Clinical Data Provider](https://github.com/NCATSTranslator/NCATSTranslator.github.io/wiki/Clinical-Data-Provider) +* [Exposure Provider](https://github.com/NCATSTranslator/NCATSTranslator.github.io/wiki/Exposure-Provider) +* [Molecular Data Provider](https://github.com/NCATSTranslator/NCATSTranslator.github.io/wiki/Molecular-Data-Provider) +* [Service Provider](https://github.com/NCATSTranslator/NCATSTranslator.github.io/wiki/Service-Provider) +* [Genetics Provider](https://github.com/NCATSTranslator/Translator-All/wiki/Genetics-Knowledge-Provider) +* [Connections Hypothesis Provider](https://github.com/NCATSTranslator/Translator-All/wiki/Connections-Hypothesis-Provider) +* [RTX-KG2](https://smart-api.info/registry?q=00bab7d59abe031098d5cb1597f7f1c4) + +## Source Code +* The entire codebase is accessible at https://github.com/RTXteam/RTX/ + +## External Documentation +* ARAXi Domain Specific Language documentation: https://github.com/RTXteam/RTX/blob/master/code/ARAX/Documentation/DSL_Documentation.md +* Project README: https://github.com/RTXteam/RTX/blob/master/README.md diff --git a/docs/architecture/kp/rtx-kg2.md b/docs/architecture/kp/rtx-kg2.md new file mode 100644 index 00000000..ee0ed2e5 --- /dev/null +++ b/docs/architecture/kp/rtx-kg2.md @@ -0,0 +1,282 @@ +## RTX-KG2 Knowledge Provider Page +[Back to Home](..) + +RTX-KG2 is a Translator System Knowledge Provider created/supported/maintained +by +[Team Expander Agent](../../../teams/expander-agent). It +can answer Translator queries that are expressed in +[TRAPI](https://github.com/NCATSTranslator/ReasonerAPI) format, with query +graphs that contain one node or two nodes connected by an edge (i.e., a +"one-hop" query). RTX-KG2 is backed by the RTX-KG2 knowledge graph, which +integrates dozens of upstream knowledge sources into a Biolink-compliant system +hosted in a custom in-memory database (PloverDB). For more information about the +RTX-KG2 knowledge graph and how we built it, see the +[RTX-KG2 build system GitHub project area](https://github.com/RTXteam/RTX-KG2). For +more information about the PloverDB database, see the +[PloverDB GitHub project area](https://github.com/RTXteam/PloverDB). RTX-KG2 is +one of the KPs that is used by the Translator reasoning agent, **ARAX**. For +more information about ARAX, see the +[Expander Agent Page](../../../teams/expander-agent). + +* _Modes of Access_ + + * Via the Translator API (TRAPI) interface; see [the SmartAPI registry](https://smart-api.info/ui/00bab7d59abe031098d5cb1597f7f1c4) + * Download RTX-KG2 knowledge graph in [KGX TSV](https://github.com/biolink/kgx/blob/master/specification/kgx-format.md) format from the [NCATS GitHub git-lfs repository](https://github.com/ncats/translator-lfs-artifacts/tree/main/files). + * Build your own RTX-KG2: [instructions here](https://github.com/RTXteam/RTX-KG2#how-to-build-rtx-kg2-from-its-upstream-sources) + +* Issues using the RTX-KG2 KP should be logged in the [RTX-KG2 issue tracker](https://github.com/RTXteam/RTX-KG2/issues). + +* _How to build your own instance for NCATS Deployment pipeline_ + + +**Use Cases**- + +* one-hop query: + +``` +cat <onehop.json +{ + "message":{ + "query_graph":{ + "nodes":{ + "n00":{ + "ids":["CHEMBL.COMPOUND:CHEMBL112"], + "categories":[ + "biolink:Drug" + ], + "is_set":false + }, + "n01":{ + "categories":[ + "biolink:Gene", + "biolink:Protein" + ], + "is_set":false + } + }, + "edges":{ + "e00":{ + "predicates":[ + "biolink:interacts_with" + ], + "subject":"n00", + "object":"n01", + "exclude":false + } + } + } + } +} +EOF + +curl -X POST \ + "https://arax.ncats.io/api/rtxkg2/v1.3/query?bypass_cache=false" \ + -H "accept: application/json" \ + -H "Content-Type: application/json" \ + -d @onehop.json +``` +should result in this response: +``` +{ + "context": "https://raw.githubusercontent.com/biolink/biolink-model/master/context.jsonld", + "datetime": "2021-04-28 04:54:14", + "description": "Normal completion", + "logs": [ + { + "code": "", + "level": "INFO", + "message": "RTXKG2 Query launching on incoming Query", + "timestamp": "2021-04-28T04:54:14.856515" + }, + ... + ], + "message": { + "knowledge_graph": { + "edges": { + "1447028": { + "attributes": [ + { + "name": "provided_by", + "type": "biolink:provided_by", + "value": [ + "identifiers_org_registry:chembl.compound" + ] + } + ], + "object": "UniProtKB:O00519", + "predicate": "biolink:molecularly_interacts_with", + "subject": "CHEMBL.COMPOUND:CHEMBL112" + }, + "1447029": { + "attributes": [ + { + "name": "provided_by", + "type": "biolink:provided_by", + "value": [ + "identifiers_org_registry:chembl.compound" + ] + } + ], + "object": "UniProtKB:O14965", + "predicate": "biolink:molecularly_interacts_with", + "subject": "CHEMBL.COMPOUND:CHEMBL112" + }, + "1447030": { + "attributes": [ + { + "name": "provided_by", + "type": "biolink:provided_by", + "value": [ + "identifiers_org_registry:chembl.compound" + ] + } + ], + "object": "UniProtKB:O43570", + "predicate": "biolink:molecularly_interacts_with", + "subject": "CHEMBL.COMPOUND:CHEMBL112" + }, + "1447031": { + "attributes": [ + { + "name": "provided_by", + "type": "biolink:provided_by", + "value": [ + "pharos:" + ] + } + ], + "object": "UniProtKB:P00797", + "predicate": "biolink:molecularly_interacts_with", + "subject": "CHEMBL.COMPOUND:CHEMBL112" + }, + "1447032": { + "attributes": [ + { + "name": "provided_by", + "type": "biolink:provided_by", + "value": [ + "identifiers_org_registry:chembl.compound" + ] + } + ], + "object": "UniProtKB:P00915", + "predicate": "biolink:molecularly_interacts_with", + "subject": "CHEMBL.COMPOUND:CHEMBL112" + }, + "1447033": { + "attributes": [ + { + "name": "provided_by", + "type": "biolink:provided_by", + "value": [ + "identifiers_org_registry:chembl.compound" + ] + } + ], + "object": "UniProtKB:P06746", + "predicate": "biolink:molecularly_interacts_with", + "subject": "CHEMBL.COMPOUND:CHEMBL112" + }, + "1447034": { + "attributes": [ + { + "name": "provided_by", + "type": "biolink:provided_by", + "value": [ + "identifiers_org_registry:chembl.compound" + ] + } + ], + "object": "UniProtKB:P07550", + "predicate": "biolink:molecularly_interacts_with", + "subject": "CHEMBL.COMPOUND:CHEMBL112" + }, + ... +``` + +**Knowledge Sources Accessed** - See the [FAQ entry "What data sources are used in KG2?"](https://github.com/RTXteam/RTX/tree/master/code/kg2#what-data-sources-are-used-in-kg2) for details. +* [Biolink model](https://biolink.github.io/biolink-model/) +* [ChEMBL](https://www.ebi.ac.uk/chembl/) +* [DGIdb](https://www.dgidb.org/) +* [DisGeNET](https://www.disgenet.org/) +* [DrugBank](https://go.drugbank.com) +* [DrugCentral](https://drugcentral.org/) +* [EFO](https://www.ebi.ac.uk/efo/) +* [Ensembl](https://ensembl.org) (Ensembl Genes, for human) +* [Gene Ontology annotations](https://www.ebi.ac.uk/GOA/index) (from EBI) +* [HMDB](https://hmdb.ca) +* [IntAct](https://www.ebi.ac.uk/intact/) +* [Jensen Lab Diseases](https://diseases.jensenlab.org/) +* [KEGG](https://www.genome.jp/kegg/) (via API) +* [miRBase](https://mirbase.org) +* [NCBI Gene](https://www.ncbi.nlm.nih.gov/gene) +* [OBO Foundry ontologies](http://www.obofoundry.org/) + * BFO + * CHEBI + * GO-plus + * RO + * UBERON + * FMA + * DDANAT + * CL + * FOODON + * EHDAA2 + * BSPO + * HP + * NBO + * NCBI taxslim + * PATO + * MONDO + * DOID + * PR + * INO + * GENEPIO + * MI +* [PathWhiz](https://smpdb.ca/pathwhiz) +* [Reactome](https://reactome.org) +* [repoDB](https://portal.dbmi.hms.harvard.edu/projects/repoDB/) +* [SemMedDB](https://skr3.nlm.nih.gov/SemMedDB/) +* [SMPDB](https://smpdb.ca) +* [TTD](http://db.idrblab.net/ttd/) +* [UMLS](https://www.nlm.nih.gov/research/umls/index.html) + * UMLS Semantic Types + * ATC + * CPT + * DRUGBANK + * FMA + * GO + * HCPCS + * HCPT + * HGNC + * HL7 + * HPO + * ICD10 + * ICD10AE + * ICD10CM + * ICD10PCS + * ICD9CM + * LNC + * MDR + * MED-RT + * MEDLINEPLUS + * MESH + * NCBI + * NCI + * NDDF + * NDFRT + * OMIM + * PDQ + * PSY + * RXNORM + * SNOMEDCT + * VANDF +* [UniChem](https://www.ebi.ac.uk/unichem/) (cross-references between Chebi, ChEMBL compound, DrugBank, HMDB, KEGG, and DrugCentral identifiers) +* [UniProtKB](https://www.uniprot.org/help/uniprotkb) + +**Source Code** - (include links to your source code). See example below +* Example [python module](https://github.com/RTXteam/RTX/blob/master/code/ARAX/Examples/kg2_api_example.py) that queries the KG2 KP API + +**External Documentation** (List of urls for documentation sites). See example below. +* SmartAPI registry page for RTX-KG2: https://smart-api.info/ui/00bab7d59abe031098d5cb1597f7f1c4 +* Code for the build system for RTX-KG2: https://github.com/RTXteam/RTX/tree/master/code/kg2 +* Code for PloverDB database used by RTX-KG2 service: https://github.com/RTXteam/PloverDB diff --git a/docs/teams/expander-agent.md b/docs/teams/expander-agent.md new file mode 100644 index 00000000..c6458a22 --- /dev/null +++ b/docs/teams/expander-agent.md @@ -0,0 +1,20 @@ +[**Back to Home**](../..) + +# Team Expander Agent + +Expander Agent is the team responsible for the +["ARAX"](../../architecture/ara/arax) autonomous relay agent and the +["RTX-KG2"](../../architecture/kp/rtx-kg2) knowledge provider. + +## Team Contact: + +expander.agent@gmail.com + +## Expander Agent PIs: + +Steve Ramsey: ramseyst@oregonstate.edu + +Eric Deutsch: edeutsch@systemsbiology.org + +David Koslicki: dmk333@psu.edu +