RTXteam / RTX

Software repo for Team Expander Agent (Oregon State U., Institute for Systems Biology, and Penn State U.)
https://arax.ncats.io/
MIT License
33 stars 21 forks source link

testing and roll-out (to production) of code patch for Zombie issue 1744 #1754

Closed edeutsch closed 2 years ago

edeutsch commented 2 years ago

This didn't get much traction in Slack, so posting over here as well:

On Nov 30's Architecture call, the proposed change to ARAX came up. The question came up if we had tested the demo queries before and after the change. I opined that there should not be any change, but admitted that we hadn't done the experiment. I asked if anyone had a tool to easily perform the experiment. Apparently there was not, but Chris created it here: https://github.com/NCATSTranslator/minihackathons/pull/368

Is anyone willing to perform the experiment so we can report?

saramsey commented 2 years ago

Per my Slack post, I am on it.

saramsey commented 2 years ago

My rough plan to bootstrap this completely independently of arax.ncats.io:

saramsey commented 2 years ago

Pasting here the script (and associated query JSON file) that I used to test whether the local ARAX is running and if it is using the local RTX-KG2 API. I ran run-curl.sh once with the RTX_OpenAPI_kg2 service running, and once when it was not running, and compared the JSON outputs from the two tests.

First, run-curl.sh

#!/usr/bin/env bash
curl -X POST "http://localhost:5000/api/arax/v1.2/query" \
     -H "accept: application/json" \
     -H "Content-Type: application/json" \
     -d @kg2-test.json 

Now, kg2-test.json:

{
    "message": {},
    "operations":   {
    "actions": [
        "add_qnode(ids=[CHEMBL.COMPOUND:CHEMBL112], key=n00)",
        "add_qnode(ids=[UniProtKB:P55000], key=n01)",
        "add_qedge(subject=n00, object=n01, key=e00)",
        "expand(edge_key=e00,kp=RTX-KG2)",
        "resultify()",
        "return(message=true, store=false)"
    ]
    },
    "submitter": "sramsey via curl script (working on issue 1754)",
    "stream_progress": true
}
saramsey commented 2 years ago

Here are the results of running Workflow A through the ARAX and RTX-KG2 services (using the code in the RTX "production" branch) in the "production" (and, via Expand, the local "kg2" dev-area) on the arax-backup.rtx.ai instance:

[
    {
        "endpoint": "http://localhost:5000/api/arax/v1.2/query",
        "query": "A.0_RHOBTB2_direct_inverse.json",
        "status_code": 200,
        "result_count": 4,
        "timedelta": "0:00:09.849588"
    },
    {
        "endpoint": "http://localhost:5000/api/arax/v1.2/query",
        "query": "A.0_RHOBTB2_direct.json",
        "status_code": 200,
        "result_count": 2,
        "timedelta": "0:00:09.164961"
    },
    {
        "endpoint": "http://localhost:5000/api/arax/v1.2/query",
        "query": "A.2_RHOBTB2_twohop.json",
        "status_code": 200,
        "result_count": 500,
        "timedelta": "0:02:37.830905"
    },
    {
        "endpoint": "http://localhost:5000/api/arax/v1.2/query",
        "query": "A.2a_expanded_RHOBTB2_twohop.json",
        "status_code": 200,
        "result_count": 57,
        "timedelta": "0:00:17.739659"
    }
]
saramsey commented 2 years ago

Results running against arax.ncats.io look consistent with the above results, confirming that at least for workflow A, we have replicated the same environment on arax-backup.rtx.ai as the "production" ARAX on arax.ncats.io:

[
    {
        "endpoint": "https://arax.ncats.io/api/arax/v1.2/query",
        "query": "A.0_RHOBTB2_direct_inverse.json",
        "status_code": 200,
        "result_count": 4,
        "timedelta": "0:00:09.401267"
    },
    {
        "endpoint": "https://arax.ncats.io/api/arax/v1.2/query",
        "query": "A.0_RHOBTB2_direct.json",
        "status_code": 200,
        "result_count": 2,
        "timedelta": "0:00:09.049903"
    },
    {
        "endpoint": "https://arax.ncats.io/api/arax/v1.2/query",
        "query": "A.2_RHOBTB2_twohop.json",
        "status_code": 200,
        "result_count": 500,
        "timedelta": "0:02:12.360804"
    },
    {
        "endpoint": "https://arax.ncats.io/api/arax/v1.2/query",
        "query": "A.2a_expanded_RHOBTB2_twohop.json",
        "status_code": 200,
        "result_count": 57,
        "timedelta": "0:00:13.623891"
    }
]
saramsey commented 2 years ago

OK, I have determined that the local "production" ARAX on arax-backup.rtx.ai was using KG2.7.3, which kind of invalidates the test, in my view, because the baseline test environment (which was using KG2.7.3c) is not representative of the production ARAX (which is using KG2.7.4c). I am working on installing KG2.7.4 on arax-backup.rtx.ai, and have updated the checklist status to reflect the backtracking that I will have to do.

saramsey commented 2 years ago

Results from running the script that runs workflows A, B, and C against the ARAX on arax-backup.rtx.ai:

[
    {
        "endpoint": "http://localhost:5000/api/arax/v1.2/query",
        "query": "A.0_RHOBTB2_direct_inverse.json",
        "status_code": 200,
        "result_count": 4,
        "timedelta": "0:00:09.349294"
    },
    {
        "endpoint": "http://localhost:5000/api/arax/v1.2/query",
        "query": "A.0_RHOBTB2_direct.json",
        "status_code": 200,
        "result_count": 2,
        "timedelta": "0:00:09.095879"
    },
    {
        "endpoint": "http://localhost:5000/api/arax/v1.2/query",
        "query": "A.2_RHOBTB2_twohop.json",
        "status_code": 200,
        "result_count": 500,
        "timedelta": "0:04:29.489499"
    },
    {
        "endpoint": "http://localhost:5000/api/arax/v1.2/query",
        "query": "A.2a_expanded_RHOBTB2_twohop.json",
        "status_code": 200,
        "result_count": 57,
        "timedelta": "0:00:17.546676"
    },
    {
        "endpoint": "http://localhost:5000/api/arax/v1.2/query",
        "query": "B.3a_DILI-two-hop-chemical-entity.json",
        "status_code": 200,
        "result_count": 500,
        "timedelta": "0:17:29.640524"
    },
    {
        "endpoint": "http://localhost:5000/api/arax/v1.2/query",
        "query": "B.2e_DILI-fourth-one-hop-from-PUBCHEM.COMPOUND_5865_Prednisone.json",
        "status_code": 200,
        "result_count": 500,
        "timedelta": "0:00:53.466859"
    },
    {
        "endpoint": "http://localhost:5000/api/arax/v1.2/query",
        "query": "B.2b_DILI-fourth-one-hop-from-MESH_D000077185_Resveratrol.json",
        "status_code": 200,
        "result_count": 500,
        "timedelta": "0:00:36.003846"
    },
    {
        "endpoint": "http://localhost:5000/api/arax/v1.2/query",
        "query": "B.2c_DILI-fourth-one-hop-from-MESH_D000077385_Silybin.json",
        "status_code": 200,
        "result_count": 500,
        "timedelta": "0:00:34.447075"
    },
    {
        "endpoint": "http://localhost:5000/api/arax/v1.2/query",
        "query": "B.2a_DILI-fourth-one-hop-from-CHEBI_41879_Dexamethasone.json",
        "status_code": 200,
        "result_count": 500,
        "timedelta": "0:00:48.018624"
    },
    {
        "endpoint": "http://localhost:5000/api/arax/v1.2/query",
        "query": "B.2f_DILI-fourth-one-hop-from-CHEMBL.COMPOUND_CHEMBL50_Quercetin.json",
        "status_code": 200,
        "result_count": 500,
        "timedelta": "0:00:37.304941"
    },
    {
        "endpoint": "http://localhost:5000/api/arax/v1.2/query",
        "query": "B.1_DILI-three-hop.json",
        "status_code": 200,
        "result_count": 500,
        "timedelta": "0:11:28.621694"
    },
    {
        "endpoint": "http://localhost:5000/api/arax/v1.2/query",
        "query": "B.3b_DILI-two-hop-drug.json",
        "status_code": 200,
        "result_count": 500,
        "timedelta": "0:17:25.182875"
    },
    {
        "endpoint": "http://localhost:5000/api/arax/v1.2/query",
        "query": "B.2d_DILI-fourth-one-hop-from-PUBCHEM.COMPOUND_5877_Methylprednisone.json",
        "status_code": 200,
        "result_count": 500,
        "timedelta": "0:00:49.461212"
    },
    {
        "endpoint": "http://localhost:5000/api/arax/v1.2/query",
        "query": "C3.json",
        "status_code": 200,
        "result_count": 500,
        "timedelta": "0:05:03.216575"
    },
    {
        "endpoint": "http://localhost:5000/api/arax/v1.2/query",
        "query": "C1.json",
        "status_code": 200,
        "result_count": 360,
        "timedelta": "0:00:36.184212"
    },
    {
        "endpoint": "http://localhost:5000/api/arax/v1.2/query",
        "query": "C2.json",
        "status_code": 200,
        "result_count": 40,
        "timedelta": "0:05:39.176852"
    }
]
saramsey commented 2 years ago

Results from running workflows A, B, and C against the ARAX on arax.ncats.io in the production dev-area:

[
    {
        "endpoint": "https://arax.ncats.io/api/arax/v1.2/query",
        "query": "A.0_RHOBTB2_direct_inverse.json",
        "status_code": 200,
        "result_count": 4,
        "timedelta": "0:00:08.417852"
    },
    {
        "endpoint": "https://arax.ncats.io/api/arax/v1.2/query",
        "query": "A.0_RHOBTB2_direct.json",
        "status_code": 200,
        "result_count": 2,
        "timedelta": "0:00:08.876546"
    },
    {
        "endpoint": "https://arax.ncats.io/api/arax/v1.2/query",
        "query": "A.2_RHOBTB2_twohop.json",
        "status_code": 200,
        "result_count": 500,
        "timedelta": "0:02:35.136842"
    },
    {
        "endpoint": "https://arax.ncats.io/api/arax/v1.2/query",
        "query": "A.2a_expanded_RHOBTB2_twohop.json",
        "status_code": 200,
        "result_count": 57,
        "timedelta": "0:00:17.265293"
    },
    {
        "endpoint": "https://arax.ncats.io/api/arax/v1.2/query",
        "query": "B.3a_DILI-two-hop-chemical-entity.json",
        "status_code": 200,
        "result_count": 500,
        "timedelta": "0:18:15.817551"
    },
    {
        "endpoint": "https://arax.ncats.io/api/arax/v1.2/query",
        "query": "B.2e_DILI-fourth-one-hop-from-PUBCHEM.COMPOUND_5865_Prednisone.json",
        "status_code": 200,
        "result_count": 500,
        "timedelta": "0:00:56.655926"
    },
    {
        "endpoint": "https://arax.ncats.io/api/arax/v1.2/query",
        "query": "B.2b_DILI-fourth-one-hop-from-MESH_D000077185_Resveratrol.json",
        "status_code": 200,
        "result_count": 500,
        "timedelta": "0:00:36.963599"
    },
    {
        "endpoint": "https://arax.ncats.io/api/arax/v1.2/query",
        "query": "B.2c_DILI-fourth-one-hop-from-MESH_D000077385_Silybin.json",
        "status_code": 200,
        "result_count": 500,
        "timedelta": "0:00:35.931920"
    },
    {
        "endpoint": "https://arax.ncats.io/api/arax/v1.2/query",
        "query": "B.2a_DILI-fourth-one-hop-from-CHEBI_41879_Dexamethasone.json",
        "status_code": 200,
        "result_count": 500,
        "timedelta": "0:00:50.559213"
    },
    {
        "endpoint": "https://arax.ncats.io/api/arax/v1.2/query",
        "query": "B.2f_DILI-fourth-one-hop-from-CHEMBL.COMPOUND_CHEMBL50_Quercetin.json",
        "status_code": 200,
        "result_count": 500,
        "timedelta": "0:00:38.808611"
    },
    {
        "endpoint": "https://arax.ncats.io/api/arax/v1.2/query",
        "query": "B.1_DILI-three-hop.json",
        "status_code": 200,
        "result_count": 500,
        "timedelta": "0:11:26.581144"
    },
    {
        "endpoint": "https://arax.ncats.io/api/arax/v1.2/query",
        "query": "B.3b_DILI-two-hop-drug.json",
        "status_code": 200,
        "result_count": 500,
        "timedelta": "0:17:53.446880"
    },
    {
        "endpoint": "https://arax.ncats.io/api/arax/v1.2/query",
        "query": "B.2d_DILI-fourth-one-hop-from-PUBCHEM.COMPOUND_5877_Methylprednisone.json",
        "status_code": 200,
        "result_count": 500,
        "timedelta": "0:00:52.495491"
    },
    {
        "endpoint": "https://arax.ncats.io/api/arax/v1.2/query",
        "query": "C3.json",
        "status_code": 200,
        "result_count": 500,
        "timedelta": "0:05:12.426959"
    },
    {
        "endpoint": "https://arax.ncats.io/api/arax/v1.2/query",
        "query": "C1.json",
        "status_code": 200,
        "result_count": 360,
        "timedelta": "0:00:44.698166"
    },
    {
        "endpoint": "https://arax.ncats.io/api/arax/v1.2/query",
        "query": "C2.json",
        "status_code": 200,
        "result_count": 40,
        "timedelta": "0:05:39.848785"
    }
]
saramsey commented 2 years ago

Diffing the two sets of results, dropping differences in endpoint names and timestamps:

]rt@5d5ebba937d1:/mnt/data/orangeboard/issue-1754/minihackathons/scripts$ diff output_results_backup_prod.json save/output_results_real_prod.json | grep -v timedelta | grep -v endpoint
3c3
---
7c7
---
10c10
---
14c14
---
17c17
---
21c21
---
24c24
---
28c28
---
31c31
---
35c35
---
38c38
---
42c42
---
45c45
---
49c49
---
52c52
---
56c56
---
59c59
---
63c63
---
66c66
---
70c70
---
73c73
---
77c77
---
80c80
---
84c84
---
87c87
---
91c91
---
94c94
---
98c98
---
101c101
---
105c105
---
108c108
---
112c112
---

so the results appear to be the same, at least in terms of numbers of results returned for each sub-workflow query.

saramsey commented 2 years ago

Now, I will show diffs of the output files for running workflows A, B, and C through the arax-backup.rtx.ai ARAX endpoint using the production code and using the production code plus PR1748. No difference:

rt@5d5ebba937d1:/mnt/data/orangeboard/issue-1754/minihackathons/scripts$ diff output_results_backup_prod.json  output_results_backup_prod_PR1748.json  | grep -v timedelta
7c7
---
14c14
---
21c21
---
28c28
---
35c35
---
42c42
---
49c49
---
56c56
---
63c63
---
70c70
---
77c77
---
84c84
---
91c91
---
98c98
---
105c105
---
112c112
---
saramsey commented 2 years ago

Checking for zombie processes inside the rtx1 container:

ubuntu@ip-172-31-48-139:/home/ubuntu$ sudo docker exec rtx1 ps axwf
  PID TTY      STAT   TIME COMMAND
 2997 ?        Rs     0:00 ps axwf
 2655 pts/3    Ss     0:00 bash
 2770 pts/3    S      0:00  \_ su - rt
 2771 pts/3    S+     0:00      \_ -su
 2065 pts/4    Ss     0:00 bash
 2344 pts/4    S      0:00  \_ su - rt
 2345 pts/4    S+     0:00      \_ -su
 1475 pts/1    Ss+    0:00 bash
  996 pts/2    Ss     0:00 bash
 1011 pts/2    S      0:00  \_ su - rt
 1012 pts/2    S+     0:00      \_ -su
    1 pts/0    Ss+    0:00 bash
   38 ?        Ss     0:01 /usr/sbin/apache2 -k start
   41 ?        Sl     0:13  \_ /usr/sbin/apache2 -k start
   42 ?        Sl     0:13  \_ /usr/sbin/apache2 -k start
 2709 ?        S      1:15 python3 -u -m openapi_server
 2747 ?        S      0:35 python3 -u -m openapi_server

both the ARAX and RTX-KG2 API services are still running:

ubuntu@ip-172-31-48-139:~$ sudo docker exec rtx1 service RTX_OpenAPI_production status
 * /mnt/data/orangeboard/production/RTX/code/UI/OpenAPI/python-flask-server/RTX_OpenAPI_production.start is running
ubuntu@ip-172-31-48-139:~$ sudo docker exec rtx1 service RTX_OpenAPI_kg2 status
 * /mnt/data/orangeboard/kg2/RTX/code/UI/OpenAPI/python-flask-server/KG2/RTX_OpenAPI_kg2.start is running

ubuntu@ip-172-31-48-139:~$ sudo docker exec rtx1 bash -c "cd /mnt/data/orangeboard/issue-1754 && ./run-curl.sh" {"context": "https://raw.githubusercontent.com/biolink/biolink-model/master/context.jsonld", "datetime": "2021-12-04 23:51:00", "description": "Normal completion", "id": null, "logs": [{"code": "", "level": "DEBUG", "message": "in asynchronous_query", "timestamp": "2021-12-04T23:51:00.855465"}, {"code": "", "level": "DEBUG", "message": "In query_return_stream", "timestamp": "2021-12-04T23:51:00.855583"}, {"code": "", "level": "INFO", "message": "ARAX Query launching on incoming Query", "timestamp": "2021-12-04T23:51:00.855668"}, {"code": "", "level": "INFO", "message": "Creating an empty template TRAPI Response", "timestamp": "2021-12-04T23:51:00.855947"}, {"code": "", "level": "INFO", "message": "Examine input Query for needed information for dispatch", "timestamp": "2021-12-04T23:51:01.079526"}, {"code": "", "level": "DEBUG", "message": "Deserializing message", "timestamp": "2021-12-04T23:51:01.079598"}, {"code": "", "level": "INFO", "message": "Found input processing plan. Sending to the ProcessingPlanExecutor", "timestamp": "2021-12-04T23:51:01.079692"}, {"code": "", "level": "DEBUG", "message": "Entering execute_processing_plan", "timestamp": "2021-12-04T23:51:01.079738"}, {"code": "", "level": "DEBUG", "message": "A single Message is ready and in hand", "timestamp": "2021-12-04T23:51:01.118053"}, {"code": "", "level": "DEBUG", "message": "Found actions", "timestamp": "2021-12-04T23:51:01.118117"}, {"code": "", "level": "INFO", "message": "Parsing input actions list", "timestamp": "2021-12-04T23:51:01.118170"}, {"code": "", "level": "DEBUG", "message": "Parsing action: add_qnode(ids=[CHEMBL.COMPOUND:CHEMBL112], key=n00)", "timestamp": "2021-12-04T23:51:01.118197"}, {"code": "", "level": "DEBUG", "message": "Parsing action: add_qnode(ids=[UniProtKB:P55000], key=n01)", "timestamp": "2021-12-04T23:51:01.119238"}, {"code": "", "level": "DEBUG", "message": "Parsing action: add_qedge(subject=n00, object=n01, key=e00)", "timestamp": "2021-12-04T23:51:01.119315"}, {"code": "", "level": "DEBUG", "message": "Parsing action: expand(edge_key=e00,kp=RTX-KG2)", "timestamp": "2021-12-04T23:51:01.119381"}, {"code": "", "level": "DEBUG", "message": "Parsing action: resultify()", "timestamp": "2021-12-04T23:51:01.119441"}, {"code": "", "level": "DEBUG", "message": "Parsing action: return(message=true, store=false)", "timestamp": "2021-12-04T23:51:01.119491"}, {"code": "", "level": "INFO", "message": "Processing action 'add_qnode' with parameters {'ids': ['CHEMBL.COMPOUND:CHEMBL112'], 'key': 'n00'}", "timestamp": "2021-12-04T23:51:01.819135"}, {"code": "", "level": "INFO", "message": "Adding a QueryNode to Message with input parameters {'key': 'n00', 'ids': ['CHEMBL.COMPOUND:CHEMBL112'], 'name': None, 'categories': None, 'is_set': None, 'option_group_id': None}", "timestamp": "2021-12-04T23:51:01.819245"}, {"code": "", "level": "DEBUG", "message": "Looking up id CHEMBL.COMPOUND:CHEMBL112 in NodeSynonymizer", "timestamp": "2021-12-04T23:51:01.819979"}, {"code": "", "level": "INFO", "message": "id CHEMBL.COMPOUND:CHEMBL112 is found. Adding it to the qnode", "timestamp": "2021-12-04T23:51:01.820813"}, {"code": "", "level": "INFO", "message": "Processing action 'add_qnode' with parameters {'ids': ['UniProtKB:P55000'], 'key': 'n01'}", "timestamp": "2021-12-04T23:51:01.820905"}, {"code": "", "level": "INFO", "message": "Adding a QueryNode to Message with input parameters {'key': 'n01', 'ids': ['UniProtKB:P55000'], 'name': None, 'categories': None, 'is_set': None, 'option_group_id': None}", "timestamp": "2021-12-04T23:51:01.820947"}, {"code": "", "level": "DEBUG", "message": "Looking up id UniProtKB:P55000 in NodeSynonymizer", "timestamp": "2021-12-04T23:51:01.821384"}, {"code": "", "level": "INFO", "message": "id UniProtKB:P55000 is found. Adding it to the qnode", "timestamp": "2021-12-04T23:51:01.821847"}, {"code": "", "level": "INFO", "message": "Processing action 'add_qedge' with parameters {'subject': 'n00', 'object': 'n01', 'key': 'e00'}", "timestamp": "2021-12-04T23:51:01.821933"}, {"code": "", "level": "INFO", "message": "Adding a QueryEdge to Message with parameters {'key': 'e00', 'subject': 'n00', 'object': 'n01', 'predicates': None, 'option_group_id': None, 'exclude': None}", "timestamp": "2021-12-04T23:51:01.821985"}, {"code": "", "level": "INFO", "message": "Processing action 'expand' with parameters {'edge_key': 'e00', 'kp': 'RTX-KG2'}", "timestamp": "2021-12-04T23:51:01.822039"}, {"code": "", "level": "DEBUG", "message": "Applying Expand to Message with parameters {'kp': 'RTX-KG2', 'edge_key': 'e00', 'node_key': None, 'prune_threshold': None}", "timestamp": "2021-12-04T23:51:01.822557"}, {"code": "", "level": "DEBUG", "message": "Sending NodeSynonymizer.get_canonical_curies() a list of 1 curies", "timestamp": "2021-12-04T23:51:01.822999"}, {"code": "", "level": "DEBUG", "message": "Got response back from NodeSynonymizer", "timestamp": "2021-12-04T23:51:01.823449"}, {"code": "", "level": "DEBUG", "message": "Inferred category for qnode n00 is ['biolink:SmallMolecule']", "timestamp": "2021-12-04T23:51:01.823540"}, {"code": "", "level": "DEBUG", "message": "Sending NodeSynonymizer.get_canonical_curies() a list of 1 curies", "timestamp": "2021-12-04T23:51:01.824058"}, {"code": "", "level": "DEBUG", "message": "Got response back from NodeSynonymizer", "timestamp": "2021-12-04T23:51:01.824494"}, {"code": "", "level": "DEBUG", "message": "Inferred category for qnode n01 is ['biolink:Protein']", "timestamp": "2021-12-04T23:51:01.824585"}, {"code": "", "level": "DEBUG", "message": "Making sure QG only uses canonical predicates", "timestamp": "2021-12-04T23:51:01.824622"}, {"code": "", "level": "DEBUG", "message": "Query graph for this Expand() call is: {'nodes': {'n00': {'ids': ['CHEMBL.COMPOUND:CHEMBL112'], 'categories': ['biolink:SmallMolecule'], 'is_set': False, 'constraints': [], 'option_group_id': None, 'name': None}, 'n01': {'ids': ['UniProtKB:P55000'], 'categories': ['biolink:Gene', 'biolink:Protein'], 'is_set': False, 'constraints': [], 'option_group_id': None, 'name': None}}, 'edges': {'e00': {'predicates': ['biolink:related_to'], 'subject': 'n00', 'object': 'n01', 'constraints': [], 'exclude': False, 'option_group_id': None}}}", "timestamp": "2021-12-04T23:51:01.825082"}, {"code": "", "level": "DEBUG", "message": "Expanding qedge e00", "timestamp": "2021-12-04T23:51:01.825163"}, {"code": "", "level": "DEBUG", "message": "Modified QG for this qedge is (n00:['biolink:SmallMolecule'] ['CHEMBL.COMPOUND:CHEMBL112'])-['biolink:related_to']-(n01:['biolink:Gene', 'biolink:Protein'] ['UniProtKB:P55000'])", "timestamp": "2021-12-04T23:51:01.825557"}, {"code": "", "level": "DEBUG", "message": "For e00, pre-prune threshold is 5000", "timestamp": "2021-12-04T23:51:01.825598"}, {"code": "", "level": "DEBUG", "message": "Loading record of KP timeouts", "timestamp": "2021-12-04T23:51:01.825781"}, {"code": "", "level": "DEBUG", "message": "Doing a refresh of local meta map for all KPs", "timestamp": "2021-12-04T23:51:01.826005"}, {"code": "", "level": "DEBUG", "message": "Getting meta info from BTE", "timestamp": "2021-12-04T23:51:01.883411"}, {"code": "", "level": "DEBUG", "message": "Getting meta info from ClinicalRiskKP", "timestamp": "2021-12-04T23:51:03.903155"}, {"code": "", "level": "DEBUG", "message": "Getting meta info from RTX-KG2", "timestamp": "2021-12-04T23:51:03.993289"}, {"code": "", "level": "DEBUG", "message": "Getting meta info from GeneticsKP", "timestamp": "2021-12-04T23:51:06.303200"}, {"code": "", "level": "DEBUG", "message": "Getting meta info from MolePro", "timestamp": "2021-12-04T23:51:06.790088"}, {"code": "", "level": "DEBUG", "message": "Getting meta info from TumorGeneMutationKP", "timestamp": "2021-12-04T23:51:07.540859"}, {"code": "", "level": "DEBUG", "message": "Getting meta info from ICEES-DILI", "timestamp": "2021-12-04T23:51:07.622536"}, {"code": "", "level": "DEBUG", "message": "Getting meta info from ICEES-Asthma", "timestamp": "2021-12-04T23:51:08.226082"}, {"code": "", "level": "DEBUG", "message": "Getting meta info from WellnessKP", "timestamp": "2021-12-04T23:51:08.746620"}, {"code": "", "level": "DEBUG", "message": "Getting meta info from COHD", "timestamp": "2021-12-04T23:51:08.813675"}, {"code": "", "level": "DEBUG", "message": "Getting meta info from CHP", "timestamp": "2021-12-04T23:51:09.262048"}, {"code": "", "level": "DEBUG", "message": "Getting meta info from DrugResponseKP", "timestamp": "2021-12-04T23:51:09.606297"}, {"code": "", "level": "DEBUG", "message": "Will use asyncio to run KP queries concurrently", "timestamp": "2021-12-04T23:51:10.341100"}, {"code": "", "level": "INFO", "message": "Expanding qedge e00 using RTX-KG2", "timestamp": "2021-12-04T23:51:10.341652"}, {"code": "", "level": "DEBUG", "message": "Sending NodeSynonymizer.get_canonical_curies() a list of 1 curies", "timestamp": "2021-12-04T23:51:11.082001"}, {"code": "", "level": "DEBUG", "message": "Got response back from NodeSynonymizer", "timestamp": "2021-12-04T23:51:11.082509"}, {"code": "", "level": "DEBUG", "message": "Sending NodeSynonymizer.get_canonical_curies() a list of 1 curies", "timestamp": "2021-12-04T23:51:11.082998"}, {"code": "", "level": "DEBUG", "message": "Got response back from NodeSynonymizer", "timestamp": "2021-12-04T23:51:11.083380"}, {"code": "", "level": "DEBUG", "message": "RTX-KG2: Sending query to RTX-KG2 API", "timestamp": "2021-12-04T23:51:11.083643"}, {"code": "", "level": "DEBUG", "message": "RTX-KG2: Got results from RTX-KG2.", "timestamp": "2021-12-04T23:51:12.994668"}, {"code": "", "level": "INFO", "message": "RTX-KG2: Query for edge e00 completed (e00: 1, n00: 1, n01: 1)", "timestamp": "2021-12-04T23:51:12.995389"}, {"code": "", "level": "DEBUG", "message": "RTX-KG2: Removing any self-edges from the answer KG", "timestamp": "2021-12-04T23:51:12.995433"}, {"code": "", "level": "DEBUG", "message": "RTX-KG2: After removing self-edges, answer KG counts are: e00: 1, n00: 1, n01: 1", "timestamp": "2021-12-04T23:51:12.995466"}, {"code": "", "level": "DEBUG", "message": "Got answers from all KPs; merging them into one KG", "timestamp": "2021-12-04T23:51:12.995646"}, {"code": "", "level": "DEBUG", "message": "Merging answer into Message.KnowledgeGraph", "timestamp": "2021-12-04T23:51:12.995760"}, {"code": "", "level": "DEBUG", "message": "Sending NodeSynonymizer.get_canonical_curies() a list of 1 curies", "timestamp": "2021-12-04T23:51:12.996314"}, {"code": "", "level": "DEBUG", "message": "Got response back from NodeSynonymizer", "timestamp": "2021-12-04T23:51:12.996788"}, {"code": "", "level": "DEBUG", "message": "Sending NodeSynonymizer.get_canonical_curies() a list of 1 curies", "timestamp": "2021-12-04T23:51:12.997277"}, {"code": "", "level": "DEBUG", "message": "Got response back from NodeSynonymizer", "timestamp": "2021-12-04T23:51:12.997658"}, {"code": "", "level": "DEBUG", "message": "Removed 0 edges fulfilling e00 from the KG because they were orphaned", "timestamp": "2021-12-04T23:51:12.997762"}, {"code": "", "level": "DEBUG", "message": "After merging KPs' answers, total KG counts are: e00: 1, n00: 1, n01: 1", "timestamp": "2021-12-04T23:51:12.997803"}, {"code": "", "level": "DEBUG", "message": "Pruning any paths that are now dead ends (with help of Resultify)", "timestamp": "2021-12-04T23:51:12.997855"}, {"code": "", "level": "DEBUG", "message": "Calling Resultify from Expand for pruning", "timestamp": "2021-12-04T23:51:12.998322"}, {"code": "", "level": "DEBUG", "message": "After removing dead-end paths, KG counts are: e00: 1, n00: 1, n01: 1", "timestamp": "2021-12-04T23:51:12.999234"}, {"code": "", "level": "DEBUG", "message": "Decorating nodes with metadata from KG2c", "timestamp": "2021-12-04T23:51:12.999340"}, {"code": "", "level": "DEBUG", "message": "Looking up corresponding KG2c nodes in sqlite", "timestamp": "2021-12-04T23:51:12.999866"}, {"code": "", "level": "DEBUG", "message": "Adding attributes to nodes in the KG", "timestamp": "2021-12-04T23:51:13.000228"}, {"code": "", "level": "DEBUG", "message": "Decorating edges with EPC info from KG2c", "timestamp": "2021-12-04T23:51:13.001571"}, {"code": "", "level": "DEBUG", "message": "Identified 1 edges to decorate", "timestamp": "2021-12-04T23:51:13.001615"}, {"code": "", "level": "DEBUG", "message": "Looking up EPC edge info in KG2c sqlite", "timestamp": "2021-12-04T23:51:13.002274"}, {"code": "", "level": "DEBUG", "message": "Got 1 rows back from KG2c sqlite", "timestamp": "2021-12-04T23:51:13.002545"}, {"code": "", "level": "DEBUG", "message": "Adding attributes to edges in the KG", "timestamp": "2021-12-04T23:51:13.002580"}, {"code": "", "level": "DEBUG", "message": "Sending NodeSynonymizer.get_canonical_curies() a list of 1 curies", "timestamp": "2021-12-04T23:51:13.003667"}, {"code": "", "level": "DEBUG", "message": "Got response back from NodeSynonymizer", "timestamp": "2021-12-04T23:51:13.004224"}, {"code": "", "level": "DEBUG", "message": "Sending NodeSynonymizer.get_canonical_curies() a list of 1 curies", "timestamp": "2021-12-04T23:51:13.004696"}, {"code": "", "level": "DEBUG", "message": "Got response back from NodeSynonymizer", "timestamp": "2021-12-04T23:51:13.005064"}, {"code": "", "level": "DEBUG", "message": "No KG nodes found that use a different curie than was asked for in the QG", "timestamp": "2021-12-04T23:51:13.005146"}, {"code": "", "level": "INFO", "message": "After Expand, the KG has 2 nodes and 1 edges (e00: 1, n00: 1, n01: 1)", "timestamp": "2021-12-04T23:51:13.005188"}, {"code": "", "level": "INFO", "message": "Processing action 'resultify' with parameters {'': 'true'}", "timestamp": "2021-12-04T23:51:13.015997"}, {"code": "", "level": "DEBUG", "message": "Applying Resultifier to Message with parameters {'': 'true'}", "timestamp": "2021-12-04T23:51:13.016099"}, {"code": "", "level": "DEBUG", "message": "Building helper indexes for faster lookup of edges", "timestamp": "2021-12-04T23:51:13.016263"}, {"code": "", "level": "DEBUG", "message": "Grabbing only required portion of QG", "timestamp": "2021-12-04T23:51:13.016310"}, {"code": "", "level": "DEBUG", "message": "Required qnodes are {'n00', 'n01'}, required qedges are {'e00'}", "timestamp": "2021-12-04T23:51:13.016353"}, {"code": "", "level": "INFO", "message": "Creating result graphs for required portion of QG", "timestamp": "2021-12-04T23:51:13.016401"}, {"code": "", "level": "DEBUG", "message": "Constructing result graphs qnode by qnode", "timestamp": "2021-12-04T23:51:13.016470"}, {"code": "", "level": "DEBUG", "message": "Initiating result graphs with nodes for n00 (is_set=False)", "timestamp": "2021-12-04T23:51:13.016501"}, {"code": "", "level": "DEBUG", "message": "Current count of result graphs is 1", "timestamp": "2021-12-04T23:51:13.016527"}, {"code": "", "level": "DEBUG", "message": "Adding a layer to each result graph for qnode n01 (is_set=False)", "timestamp": "2021-12-04T23:51:13.016556"}, {"code": "", "level": "DEBUG", "message": "Current count of result graphs is 1", "timestamp": "2021-12-04T23:51:13.016661"}, {"code": "", "level": "DEBUG", "message": "Done assigning nodes to result graphs", "timestamp": "2021-12-04T23:51:13.016688"}, {"code": "", "level": "DEBUG", "message": "Adding edges to result graphs", "timestamp": "2021-12-04T23:51:13.016708"}, {"code": "", "level": "DEBUG", "message": "Created 1 required result graphs", "timestamp": "2021-12-04T23:51:13.016742"}, {"code": "", "level": "DEBUG", "message": "Required non-set qnodes are: ['n00', 'n01']", "timestamp": "2021-12-04T23:51:13.016772"}, {"code": "", "level": "DEBUG", "message": "There are a total of 1 result graphs after merging", "timestamp": "2021-12-04T23:51:13.016801"}, {"code": "", "level": "DEBUG", "message": "Loading final result graphs into TRAPI object model", "timestamp": "2021-12-04T23:51:13.016821"}, {"code": "", "level": "INFO", "message": "Resultify created 1 results", "timestamp": "2021-12-04T23:51:13.016915"}, {"code": "", "level": "DEBUG", "message": "Cleaning up the KG to remove nodes not used in the results", "timestamp": "2021-12-04T23:51:13.016950"}, {"code": "", "level": "INFO", "message": "After cleaning, the KG contains 2 nodes and 1 edges", "timestamp": "2021-12-04T23:51:13.016993"}, {"code": "", "level": "INFO", "message": "Running experimental reranker on results", "timestamp": "2021-12-04T23:51:13.017019"}, {"code": "", "level": "DEBUG", "message": "Starting to rank results", "timestamp": "2021-12-04T23:51:13.017066"}, {"code": "", "level": "WARNING", "message": "No non-infinite value was encountered in any edge attribute in the knowledge graph.", "timestamp": "2021-12-04T23:51:13.032458"}, {"code": "", "level": "INFO", "message": "Summary of available edge metrics: {}", "timestamp": "2021-12-04T23:51:13.032489"}, {"code": "", "level": "DEBUG", "message": "Results have been ranked and sorted", "timestamp": "2021-12-04T23:51:13.034350"}, {"code": "", "level": "INFO", "message": "Processing action 'return' with parameters {'message': 'true', 'store': 'false'}", "timestamp": "2021-12-04T23:51:13.034406"}, {"code": "", "level": "INFO", "message": "Processing is complete and resulted in 1 results.", "timestamp": "2021-12-04T23:51:13.034457"}], "message": {"knowledge_graph": {"edges": {"RTX-KG2:CHEMBL.COMPOUND:CHEMBL112-biolink:related_to-UniProtKB:P55000": {"attributes": [{"attribute_source": "infores:rtx-kg2", "attribute_type_id": "biolink:aggregator_knowledge_source", "attributes": null, "description": null, "original_attribute_name": null, "value": "infores:rtx-kg2", "value_type_id": "biolink:InformationResource", "value_url": null}, {"attribute_source": "infores:rtx-kg2", "attribute_type_id": "biolink:knowledge_source", "attributes": null, "description": null, "original_attribute_name": null, "value": "infores:semmeddb", "value_type_id": "biolink:InformationResource", "value_url": null}, {"attribute_source": "infores:arax", "attribute_type_id": "biolink:aggregator_knowledge_source", "attributes": null, "description": null, "original_attribute_name": null, "value": "infores:arax", "value_type_id": "biolink:InformationResource", "value_url": null}, {"attribute_source": null, "attribute_type_id": "biolink:original_edge_information", "attributes": null, "description": "The original RTX-KG2pre edge(s) corresponding to this edge prior to any synonymization or remapping. Listed in (subject)--(relation)--(object)--(source) format.", "original_attribute_name": null, "value": ["UMLS:C0000970---SEMMEDDB:compared_with---NCBIGene:57152---SEMMEDDB:"], "value_type_id": "metatype:String", "value_url": null}, {"attribute_source": "infores:semmeddb", "attribute_type_id": "biolink:publications", "attributes": null, "description": null, "original_attribute_name": null, "value": ["PMID:25894252"], "value_type_id": "biolink:Uriorcurie", "value_url": null}, {"attribute_source": "infores:semmeddb", "attribute_type_id": "bts:sentence", "attributes": null, "description": null, "original_attribute_name": null, "value": {"PMID:25894252": {"object score": 1000, "publication date": "2015 Jun", "sentence": "In conclusion, AAP could cause serious adverse effects during the hepatic development as compared to Ars.", "subject score": 1000}}, "value_type_id": null, "value_url": null}], "object": "UniProtKB:P55000", "predicate": "biolink:related_to", "subject": "CHEMBL.COMPOUND:CHEMBL112"}}, "nodes": {"CHEMBL.COMPOUND:CHEMBL112": {"attributes": [{"attribute_source": null, "attribute_type_id": "biolink:IriType", "attributes": null, "description": null, "original_attribute_name": null, "value": "https://identifiers.org/chembl.compound:CHEMBL112", "value_type_id": "metatype:Uri", "value_url": "https://identifiers.org/chembl.compound:CHEMBL112"}, {"attribute_source": null, "attribute_type_id": "biolink:description", "attributes": null, "description": null, "original_attribute_name": null, "value": "A p-aminophenol derivative with analgesic and antipyretic activities. Although the exact mechanism through which acetaminophen exert its effects has yet to be fully determined, acetaminophen may inhibit the nitric oxide (NO) pathway mediated by a variety of neurotransmitter receptors including N-methyl-D-aspartate (NMDA) and substance P, resulting in elevation of the pain threshold. The antipyretic activity may result from inhibition of prostaglandin synthesis and release in the central nervous system (CNS) and prostaglandin-mediated effects on the heat-regulating center in the anterior hypothalamus. Check for \"https://www.cancer.gov/about-cancer/treatment/clinical-trials/intervention/C198\" active clinical trials using this agent. (\"http://ncit.nci.nih.gov/ncitbrowser/ConceptReport.jsp?dictionary=NCI%20Thesaurus&code=C198\" NCI Thesaurus); A p-aminophenol derivative with analgesic and antipyretic activities. Although the exact mechanism through which acetaminophen exert its effects has yet to be fully determined, acetaminophen may inhibit the nitric oxide (NO) pathway mediated by a variety of neurotransmitter receptors including N-methyl-D-aspartate (NMDA) and substance P, resulting in elevation of the pain threshold. The antipyretic activity may result from inhibition of prostaglandin synthesis and release in the central nervous system (CNS) and prostaglandin-mediated effects on the heat-regulating center in the anterior hypothalamus.; Analgesic antipyretic derivative of acetanilide. It has weak anti-inflammatory properties and is used as a common analgesic, but may cause liver, blood cell, and kidney damage.; UMLS Semantic Type: STY:T121; UMLS Semantic Type: STY:T109", "value_type_id": "metatype:String", "value_url": null}, {"attribute_source": null, "attribute_type_id": "biolink:category", "attributes": null, "description": "Categories of all nodes in this synonym set in RTX-KG2.", "original_attribute_name": null, "value": ["biolink:ChemicalEntity", "biolink:SmallMolecule", "biolink:Drug", "biolink:Procedure", "biolink:MolecularEntity"], "value_type_id": "metatype:Uriorcurie", "value_url": null}, {"attribute_source": null, "attribute_type_id": "biolink:synonym", "attributes": null, "description": "Names of all nodes in this synonym set in RTX-KG2.", "original_attribute_name": null, "value": ["Acetaminophen", "paracetamol", "acetaminophen", "Acetaminophen (TN TYLENOL) [endoplasmic reticulum lumen]", "PARA [cytosol]", "Acetaminophen (TN TYLENOL) [extracellular region]", "ACETAMINOPHEN", "Acetaminophen (JP18/USP)"], "value_type_id": "metatype:String", "value_url": null}, {"attribute_source": null, "attribute_type_id": "biolink:xref", "attributes": null, "description": "Identifiers of all nodes in this synonym set in RTX-KG2.", "original_attribute_name": null, "value": ["LOINC:LP14712-1", "REACT:R-ALL-9728985", "MESH:D000082", "DRUGBANK:DB00316", "RXNORM:161", "DrugCentral:52", "UMLS:C0000970", "CHEBI:46195", "HMDB:HMDB0001859", "REACT:R-ALL-39427", "CHEMBL.COMPOUND:CHEMBL112", "KEGG.COMPOUND:C06804", "LOINC:LA14350-5", "NCIT:C198", "VANDF:4017513", "REACT:R-ALL-158469", "LOINC:MTHU003399", "NDDF:001605", "PDQ:CDR0000039129", "PathWhiz.Compound:1233", "KEGG.DRUG:D00217"], "value_type_id": "metatype:Nodeidentifier", "value_url": null}, {"attribute_source": null, "attribute_type_id": "biolink:publications", "attributes": null, "description": null, "original_attribute_name": null, "value": ["PMID:7452663", "PMID:20829430", "PMID:9013284", "PMID:15879007", "PMID:10956200", "PMID:27042286", "PMID:7328601", "PMID:24894557", "PMID:17202677", "PMID:18722128"], "value_type_id": "biolink:Uriorcurie", "value_url": null}], "categories": ["biolink:SmallMolecule"], "name": "ACETAMINOPHEN"}, "UniProtKB:P55000": {"attributes": [{"attribute_source": null, "attribute_type_id": "biolink:IriType", "attributes": null, "description": null, "original_attribute_name": null, "value": "https://identifiers.org/uniprot:P55000", "value_type_id": "metatype:Uri", "value_url": "https://identifiers.org/uniprot:P55000"}, {"attribute_source": null, "attribute_type_id": "biolink:description", "attributes": null, "description": null, "original_attribute_name": null, "value": "-!- FUNCTION: Has an antitumor activity (PubMed:8742060). Was found to be a marker of late differentiation of the skin. Implicated in maintaining the physiological and structural integrity of the keratinocyte layers of the skin (PubMed:14721776, PubMed:17008884). In vitro down-regulates keratinocyte proliferation; the function may involve the proposed role as modulator of nicotinic acetylcholine receptors (nAChRs) activity. In vitro inhibits alpha-7-dependent nAChR currents in an allosteric manner (PubMed:14506129, PubMed:26905431). In T cells may be involved in regulation of intracellular Ca(2+) signaling (PubMed:17286989). Seems to have an immunomodulatory function in the cornea (By similarity). The function may implicate a possible role as a scavenger receptor for PLAU thereby blocking PLAU-dependent functions of PLAUR such as in cell migration and proliferation (PubMed:25168896). {ECO:0000250|UniProtKB:Q9Z0K7, ECO:0000269|PubMed:14506129, ECO:0000269|PubMed:17286989, ECO:0000269|PubMed:26905431, ECO:0000269|PubMed:8742060, ECO:0000305|PubMed:14721776, ECO:0000305|PubMed:17008884}. -!- SUBUNIT: Homodimer. Interacts with PLAU (PubMed:25168896). Interacts with CHRNA7 (PubMed:26905431). -!- INTERACTION: P55000; P36544: CHRNA7; NbExp=2; IntAct=EBI-8830896, EBI-79333; -!- SUBCELLULAR LOCATION: Secreted {ECO:0000269|PubMed:14506129, ECO:0000269|PubMed:25919322, ECO:0000269|PubMed:26905431}. -!- TISSUE SPECIFICITY: Granulocytes. Expressed in skin. Predominantly expressed in the granular layer of skin, notably the acrosyringium. Identified in several biological fluids such as sweat, saliva, tears, plasma and urine. {ECO:0000269|PubMed:14721776, ECO:0000269|PubMed:17008884}. -!- INDUCTION: Regulated by retinoic acid, EGF and IFNG/IFN-gamma (PubMed:14721776). Down-regulated by IL-13 in cultured human bronchial epithelial cells (related to asthmatic condition) (PubMed:20621062). {ECO:0000269|PubMed:14721776, ECO:0000269|PubMed:20621062}. -!- DISEASE: Mal de Meleda (MDM) [MIM:248300]: A rare autosomal recessive skin disorder, characterized by diffuse transgressive palmoplantar keratoderma with keratotic lesions extending onto the dorsa of the hands and the feet (transgrediens). Patients may have hyperhidrosis. Other features include perioral erythema, lichenoid plaques on the knees and the elbows, and nail abnormalities. {ECO:0000269|PubMed:11285253, ECO:0000269|PubMed:12483299, ECO:0000269|PubMed:12950349, ECO:0000269|PubMed:14756676, ECO:0000269|PubMed:17008884, ECO:0000269|PubMed:19120323, ECO:0000269|PubMed:21690549, ECO:0000269|PubMed:24604124, ECO:0000269|PubMed:25919322}. Note=The disease is caused by variants affecting the gene represented in this entry. -!- CAUTION: It is not certain that ARS and ANUP are identical proteins. {ECO:0000305}. ; Short=SLURP-1; Short=ANUPEvidence Codes from Name: ", "value_type_id": "metatype:String", "value_url": null}, {"attribute_source": null, "attribute_type_id": "biolink:category", "attributes": null, "description": "Categories of all nodes in this synonym set in RTX-KG2.", "original_attribute_name": null, "value": ["biolink:BiologicalEntity", "biolink:Gene", "biolink:Protein"], "value_type_id": "metatype:Uriorcurie", "value_url": null}, {"attribute_source": null, "attribute_type_id": "biolink:synonym", "attributes": null, "description": "Names of all nodes in this synonym set in RTX-KG2.", "original_attribute_name": null, "value": ["SLURP1", "secreted Ly-6/uPAR-related protein 1", "secreted Ly-6/uPAR-related protein 1 (human)", "SLURP1 gene", "SLURP1 (human)", "Slurp1 (mouse)"], "value_type_id": "metatype:String", "value_url": null}, {"attribute_source": null, "attribute_type_id": "biolink:xref", "attributes": null, "description": "Identifiers of all nodes in this synonym set in RTX-KG2.", "original_attribute_name": null, "value": ["UMLS:C1539788", "ENSEMBL:ENSG00000126233", "MGI:1930923", "PR:P55000", "PR:000015251", "UniProtKB:P55000", "OMIM:606119", "HGNC:18746", "NCBIGene:57152"], "value_type_id": "metatype:Nodeidentifier", "value_url": null}, {"attribute_source": null, "attribute_type_id": "biolink:publications", "attributes": null, "description": null, "original_attribute_name": null, "value": ["DOI:10.1038/sj.jid.5700551", "DOI:10.1006/cyto.1996.0001", "PMID:14756676", "DOI:10.1016/j.lfs.2006.12.028", "DOI:10.1007/s00439-002-0838-8", "PMID:25168896", "PMID:17286989", "PMID:10211827", "DOI:10.1101/gr.2596504", "PMID:25919322"], "value_type_id": "biolink:Uriorcurie", "value_url": null}], "categories": ["biolink:Gene", "biolink:Protein"], "name": "SLURP1"}}}, "query_graph": {"edges": {"e00": {"constraints": [], "exclude": false, "object": "n01", "option_group_id": null, "predicates": null, "subject": "n00"}}, "nodes": {"n00": {"categories": null, "constraints": [], "ids": ["CHEMBL.COMPOUND:CHEMBL112"], "is_set": false, "name": null, "option_group_id": null}, "n01": {"categories": null, "constraints": [], "ids": ["UniProtKB:P55000"], "is_set": false, "name": null, "option_group_id": null}}}, "results": [{"confidence": null, "description": "No description available", "edge_bindings": {"e00": [{"attributes": null, "id": "RTX-KG2:CHEMBL.COMPOUND:CHEMBL112-biolink:related_to-UniProtKB:P55000"}]}, "essence": null, "essence_category": null, "id": null, "node_bindings": {"n00": [{"id": "CHEMBL.COMPOUND:CHEMBL112"}], "n01": [{"id": "UniProtKB:P55000"}]}, "reasoner_id": "ARAX", "result_group": null, "result_group_similarity_score": null, "row_data": [1.0, null, null], "score": 1.0, "score_direction": null, "score_name": null}]}, "operations": {"actions": ["add_qnode(ids=[CHEMBL.COMPOUND:CHEMBL112], key=n00)", "add_qnode(ids=[UniProtKB:P55000], key=n01)", "add_qedge(subject=n00, object=n01, key=e00)", "expand(edge_key=e00,kp=RTX-KG2)", "resultify()", "return(message=true, store=false)"]}, "original_question": null, "query_options": {"query_plan": {"counter": 35, "qedge_keys": {"e00": {"BTE": {"description": "Expand was told to use RTX-KG2", "query": null, "status": "Skipped"}, "CHP": {"description": "Expand was told to use RTX-KG2", "query": null, "status": "Skipped"}, "COHD": {"description": "Expand was told to use RTX-KG2", "query": null, "status": "Skipped"}, "ClinicalRiskKP": {"description": "Expand was told to use RTX-KG2", "query": null, "status": "Skipped"}, "DTD": {"description": "Expand was told to use RTX-KG2", "query": null, "status": "Skipped"}, "DrugResponseKP": {"description": "Expand was told to use RTX-KG2", "query": null, "status": "Skip100 55316 0 54903 100 413 4465 33 0:00:12 0:00:12 --:--:-- 10605 on": "Expand was told to use RTX-KG2", "query": null, "status": "Skipped"}, "ICEES-Asthma": {"description": "Expand was told to use RTX-KG2", "query": null, "status": "Skipped"}, "ICEES-DILI": {"description": "Expand was told to use RTX-KG2", "query": null, "status": "Skipped"}, "MolePro": {"description": "Expand was told to use RTX-KG2", "query": null, "status": "Skipped"}, "NGD": {"description": "Expand was told to use RTX-KG2", "query": null, "status": "Skipped"}, "RTX-KG2": {"description": "Returned 1 edges in 2 seconds", "query": {"message": {"query_graph": {"edges": {"e00": {"exclude": false, "object": "n01", "predicates": ["biolink:related_to"], "subject": "n00"}}, "nodes": {"n00": {"categories": ["biolink:SmallMolecule"], "ids": ["CHEMBL.COMPOUND:CHEMBL112"], "is_set": false}, "n01": {"categories": ["biolink:Gene", "biolink:Protein"], "ids": ["UniProtKB:P55000"], "is_set": false}}}}, "submitter": "infores:arax"}, "status": "Done"}, "TumorGeneMutationKP": {"description": "Expand was told to use RTX-KG2", "query": null, "status": "Skipped"}, "WellnessKP": {"description": "Expand was told to use RTX-KG2", "query": null, "status": "Skipped"}, "edge_properties": {"object": ["UniProtKB:P55000"], "predicate": ["biolink:related_to"], "status": "Done", "subject": ["CHEMBL.COMPOUND:CHEMBL112"]}}}}}, "reasoner_id": "ARAX", "restated_question": null, "schema_version": "1.2.0", "status": "OK", "submitter": "sramsey via curl script (working on issue 1754)", "table_column_names": ["score", "essence", "essence_category"], "tool_version": "ARAX 1.2.1", "type": "translator_reasoner_response", "validation_result": null, "workflow": null}

saramsey commented 2 years ago

Based on the above-described test results, I believe the commits for #1744 will not affect results for workflows A, B, and C, and thus that they are safe to merge into the "production" branch. Any concerns or reasons I should pause?

edeutsch commented 2 years ago

Do you have approval from all the workflow owners? I don't see that anywhere. I am fine to merge, but the protocol is that all workflow owners are supposed to sign off on any changes.

I notice you don't mention workflow D in previous comment?

saramsey commented 2 years ago

Hi Eric, thanks for your reply. I didn't test Workflow D, in light of #1755. But now, looking at #1755 more closely, I think I can test as long as I don't use /asyncquery, right?

To solicit approval from the workflow owners, do you know what is the approved/sensible procedure? DM them? Post on the general slack channel in the NCATSTranslator workspace? If DM, is there a list of the owners that I can consult to know whom to DM? Please pardon my ignorance.

edeutsch commented 2 years ago

Hi Eric, thanks for your reply. I didn't test Workflow D, in light of #1755. But now, looking at #1755 more closely, I think I can test as long as I don't use /asyncquery, right?

correct. Plus there's also D.1, D.2, D.3 that aren't a problem?

To solicit approval from the workflow owners, do you know what is the approved/sensible procedure? DM them? Post on the general slack channel in the NCATSTranslator workspace? If DM, is there a list of the owners that I can consult to know whom to DM? Please pardon my ignorance.

See the Translator #general channel. Scroll back to December 3 and start reading.

saramsey commented 2 years ago

OK, @edeutsch from your suggestion, I discern that

anything I am missing?

(UPDATE: C. Ta is also an owner of Workflow B)

saramsey commented 2 years ago

I am testing Workflow D now on arax-backup.rtx.ai

edeutsch commented 2 years ago

I infer the same based on my reading of the #general convo, yes.

If you're planning on tagging them, I would also tag Mark Williams since he's going to be the Demo Driver and probably has the most skin in the game..

saramsey commented 2 years ago

I infer the same based on my reading of the #general convo, yes.

If you're planning on tagging them, I would also tag Mark Williams since he's going to be the Demo Driver and probably has the most skin in the game..

Thank you, that is helpful information. I have updated the checklist above, accordingly.

saramsey commented 2 years ago

Confirmed-- the patch in PR 1748 has no effect on the results for Workflow D:

rt@5d5ebba937d1:/mnt/data/orangeboard/issue-1754/minihackathons/scripts$ diff output_results_backup_prod-D.json  output_results_backup_prod_PR1748-D.json | grep -v timedelta
7c7
---
14c14
---
21c21
---
28c28
---
35c35
---
saramsey commented 2 years ago

Owners for Workflows A, C, and D have approved. Waiting on approval from the Workflow B owner.

MarkDWilliams commented 2 years ago

Provided there isn't an impact on the outcome of the workflows, which it looks like there isn't, I don't have any objections on my end.

saramsey commented 2 years ago

Workflow B owners have also approved.

saramsey commented 2 years ago

I am going to deploy this today.

saramsey commented 2 years ago

Since we are going to eventually update the Dec2021Demo tag to point to the new head of the production branch (right?), I have created a back-up tag Dec2021Demo-20211116 in the unlikely event that we need to revert to the previous tagged state of the production branch. You can see that, at the moment, the two reference identical commits in the production branch:

Screen Shot 2021-12-07 at 11 23 44 AM
saramsey commented 2 years ago

To be absolutely sure that Dec2021Demo is the same as the current tip of the production branch, I made a branch issue-1754 from a checkout of the Dec2021Demo tag, and compared it to the production branch:

Screen Shot 2021-12-07 at 11 34 20 AM
saramsey commented 2 years ago

I've pushed the code patch into the production branch using commits 365f7a4 and f0eea4d, as shown here with a diff of production against the baseline issue-1754 branch:

Screen Shot 2021-12-07 at 11 43 36 AM
saramsey commented 2 years ago

You can see the start of the patch, in RTX/code/UI/OpenAPI/python-flask-server/openapi_server/__main__.py in the production branch (note the while loop):

Screen Shot 2021-12-07 at 11 44 42 AM
saramsey commented 2 years ago

Same goes for RTX/code/UI/OpenAPI/python-flask-server/KG2/openapi_server/__main__.py in the production branch, note the while loop:

Screen Shot 2021-12-07 at 11 45 52 AM
saramsey commented 2 years ago

Having demonstrated that the code patch (and only the code patch) was merged into the production branch, we are ready to deploy it to arax-backup.rtx.ai, as a test.....

saramsey commented 2 years ago

Test of the "hello, world" acetaminophen query on arax-backup.rtx.ai worked:

Screen Shot 2021-12-07 at 11 54 25 AM

note that we are running the current production branch (i.e., with the patch) in both relevant dev-areas on that system:

rt@5d5ebba937d1:/mnt/data/orangeboard/kg2$ cd /mnt/data/orangeboard/kg2/RTX
rt@5d5ebba937d1:/mnt/data/orangeboard/kg2/RTX$ git branch
  issue-1708
  issue-1735
  issue-1744
  master
* production
rt@5d5ebba937d1:/mnt/data/orangeboard/kg2/RTX$ git status
On branch production
Your branch is up-to-date with 'origin/production'.
Changes not staged for commit:
  (use "git add <file>..." to update what will be committed)
  (use "git checkout -- <file>..." to discard changes in working directory)

    modified:   code/ARAX/test_production_api/test_ARAX_api.py
    modified:   code/ARAX/test_production_api/test_ARAX_api_failure_modes.py

Untracked files:
.... LOTS OF JUNK REDACTED .....

and for the production dev-area:

rt@5d5ebba937d1:/mnt/data/orangeboard/kg2/RTX$ cd /mnt/data/orangeboard/production/RTX
rt@5d5ebba937d1:/mnt/data/orangeboard/production/RTX$ git branch
  NewFmt
  issue-1708
  issue-1735
  issue-1744
  master
* production
rt@5d5ebba937d1:/mnt/data/orangeboard/production/RTX$ git status
On branch production
Your branch is up-to-date with 'origin/production'.
Untracked files:
.... LOTS OF JUNK REDACTED .....
saramsey commented 2 years ago

I have updated the code in the /mnt/data/orangeboard/production/RTX repo inside the rtx1 container on arax.ncats.io:

rt@d1fd345478a0:/mnt/data/orangeboard/production/RTX$ git pull origin production
remote: Enumerating objects: 13, done.
remote: Counting objects: 100% (13/13), done.
remote: Compressing objects: 100% (2/2), done.
remote: Total 13 (delta 9), reused 13 (delta 9), pack-reused 0
Unpacking objects: 100% (13/13), done.
From https://github.com/RTXTeam/RTX
 * branch            production -> FETCH_HEAD
   3cf4938..f0eea4d  production -> origin/production
Updating 3cf4938..f0eea4d
Fast-forward
 code/UI/OpenAPI/python-flask-server/KG2/openapi_server/__main__.py | 21 ++++++++++++++++-----
 code/UI/OpenAPI/python-flask-server/openapi_server/__main__.py     | 21 ++++++++++++++++-----

and in the /mnt/data/orangeboard/kg2/RTX repo as well:

rt@d1fd345478a0:/mnt/data/orangeboard/kg2/RTX$ git pull origin production
remote: Enumerating objects: 13, done.
remote: Counting objects: 100% (13/13), done.
remote: Compressing objects: 100% (2/2), done.
remote: Total 13 (delta 9), reused 13 (delta 9), pack-reused 0
Unpacking objects: 100% (13/13), done.
From https://github.com/RTXteam/RTX
 * branch            production -> FETCH_HEAD
   3cf4938..f0eea4d  production -> origin/production
Updating 3cf4938..f0eea4d
Fast-forward
 code/UI/OpenAPI/python-flask-server/KG2/openapi_server/__main__.py | 21 ++++++++++++++++-----
 code/UI/OpenAPI/python-flask-server/openapi_server/__main__.py     | 21 ++++++++++++++++-----
 2 files changed, 32 insertions(+), 10 deletions(-)
saramsey commented 2 years ago

I am planning to restart RTX_OpenAPI_kg2 and RTX_OpenAPI_production on arax.ncats.io inside the rtx1 container, at 21:30 PST Tue Dec. 7, assuming the aforementioned services are not busy at that time. Will do a "maintenance window" announcement via Slack per usual deployment practice.

saramsey commented 2 years ago

OK, deployed to arax.ncats.io by restarting the services. Closing out this issue.