RTX icon indicating copy to clipboard operation
RTX copied to clipboard

Get action "chemical_gene_regulation_graph_expansion" into ARAX_infer (MVP question #2)

Open chunyuma opened this issue 2 years ago • 6 comments

This issue summarizes the steps to integrate action chemical_gene_regulation_graph_expansion into ARAX_infer:

  • [x] Train two models (one for predicting increase gene activity while the other for decrease ...`)
  • [x] implement prediction in Infer folder (add a new script creativeCRG.py) Note: CRG means "Chemical regulates gene".
  • [x] Modify ARAX_infer, infer_utilities.py, RTX_Configuration.py, config_dbs.json, ARAX_expander.py and ARAX_database_manager.py
  • [x] Upload the model files to arax-databases.rtx.ai server
  • [x] Update the Document
  • [x] Do unit tests
  • [x] Download transcription factor list and consider the transcription factor for path extraction
  • [ ] Do pre-computation for increasing speed

chunyuma avatar Feb 03 '23 20:02 chunyuma

The action "chemical_gene_regulation_graph_expansion" has been added into ARAX_infer. Please see the instruction in the Document. I also added a few tests in test suites. But some of them have an error described below:

@amykglen and @edeutsch, I tried to add qualifiers in the query graph but got an error: ERROR: [UnknownQEdgeProperty] QueryGraph edge 'r_edge' has an unexpected property 'qualifiers'. This property is not understood and therefore processing is halted, rather than answer an incompletely understood query. Here is an example. It seems like the query graph currently doesn't allow to have qualifiers.

chunyuma avatar Feb 03 '23 22:02 chunyuma

yes, query graphs have qualifier_constraints, not qualifiers. see the TRAPI documentation:

https://github.com/NCATSTranslator/ReasonerAPI/blob/master/docs/reference.md#qedge-

amykglen avatar Feb 04 '23 01:02 amykglen

Thanks @amykglen. Now all chemical_gene_regulation_graph_expansion tests pass.

One more question: What is the function of .filled method in the query_graphedges[key] ?

chunyuma avatar Feb 04 '23 07:02 chunyuma

sorry @chunyuma, I missed your question back in February! QEdge.filled is just a variable that we use within ARAX to signal to Resultify whether a given QEdge has already been processed/expanded. This allows Resultify to tell whether a given QEdge simply had no answers vs. answers haven't even been looked for, which in turn allows it to resultify partially-expanded queries (as needed in #1848)

amykglen avatar Jun 09 '23 16:06 amykglen

@chunyuma what is the status on this item?

edeutsch avatar Jun 14 '23 17:06 edeutsch

Triage from 6/28 AHM: focus first on DrugConflator & g() function before going after this one. Recall remaining TODOs are:

  • [ ] make explanatory paths go through miRNAs or transcription factors
  • [ ] Check that the combination of affects directions makes sense (eg. if "upregulate" the "up regulate something that upregulates" is acceptable, but not "upregulate something that downregulates")
  • [ ] Possibly pre-compute for speed

dkoslicki avatar Jun 28 '23 17:06 dkoslicki

With current xCRG implementation, we won't be precomputing everything, so this can be closed.

dkoslicki avatar May 08 '25 20:05 dkoslicki