Closed edeutsch closed 2 years ago
Per my Slack post, I am on it.
My rough plan to bootstrap this completely independently of arax.ncats.io
:
arax-backup.rtx.ai
instancertx1
containerapache2
/mnt/data/orangeboard/issue-1754
, chown to rt.rt
/mnt/data/orangeboard/issue-1754
, clone the NCATSTranslator/minihackathons
git repo (the tester
branch)kg2
dev-area dev-area to the RTX production
branchproduction
dev-area dev-area to the RTX production
branch/mnt/data/orangeboard/databases/KG2.7.4
on arax-backup.rtx.ai
kg2
devarea, generate symbolic links to the KG2.7.4 database files (cd /mnt/data/orangeboard/kg2/RTX && python3 code/ARAX/ARAXQuery/ARAX_database_manager.py
)production
devarea, generate symbolic links to the KG2.7.4 database files cd /mnt/data/orangeboard/production/RTX && python3 code/ARAX/ARAXQuery/ARAX_database_manager.py
)RTX_OpenAPI_kg2
RTX_OpenAPI_production
http://localhost:5000
is using the local RTX-KG2 API and not the remote one (specifically, a simple curl query against the local ARAX API that entails use of RTX-KG2 should fail if RTX_OpenAPI_kg2
is not running)/mnt/data/orangeboard/issue-1754/minihackathons/scripts
, adapt test_diff.py
to a new file run_workflows_issue1754.py
in which the last line is changed to: run_all(['http://localhost:5000/api/arax/v1.2/query'],['A','B','C'])
, i.e., specifying the localhost "production" endpoint, and workflows A–C, and saving the output JSON file to output_results_backup_prod.json
.RTX_OpenAPI_kg2
RTX_OpenAPI_production
kg2
dev-area on top of the "production" branchproduction
dev-area on top of the "production" branchRTX_OpenAPI_kg2
RTX_OpenAPI_production
test_diff.py
specifying the localhost "production" endpoint, and rename the created file output_results.json
to output_results_after_1748.json
.kg2
and production
dev-areas to the official "production" branch should we need a warm backup service provider for ARAX during the demo.production
branchproduction
branch has a persistent tag so that we can revert if need beproduction
branchkg2
and production
dev-areas on arax.ncats.io
kg2
and production
dev-areas on arax.ncats.io
arax-backup.rtx.ai
arax.ncats.io
#general
channel in the NCATSTranslator
Slack workspaceRTX_OpenAPI_kg2
on arax.ncats.io
RTX_OpenAPI_production
on arax.ncats.io
NCATSTranslator
slack) that the maintenance window is closedARAXTeam
slack) that the maintenance window is closedPasting 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
}
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"
}
]
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"
}
]
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.
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"
}
]
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"
}
]
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.
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
---
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}
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?
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?
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.
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.
OK, @edeutsch from your suggestion, I discern that
anything I am missing?
(UPDATE: C. Ta is also an owner of Workflow B)
I am testing Workflow D now on arax-backup.rtx.ai
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..
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.
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
---
Owners for Workflows A, C, and D have approved. Waiting on approval from the Workflow B owner.
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.
Workflow B owners have also approved.
I am going to deploy this today.
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:
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:
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:
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):
Same goes for RTX/code/UI/OpenAPI/python-flask-server/KG2/openapi_server/__main__.py
in the production
branch, note the while
loop:
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.....
Test of the "hello, world" acetaminophen query on arax-backup.rtx.ai
worked:
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 .....
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(-)
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.
OK, deployed to arax.ncats.io
by restarting the services. Closing out this issue.
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?