INCATools / INCATools/PandaSaurus
Ubergraph filters
Nobody has claimed this yet.
- Dominant language
- Python
- Stars
- 2
- Forks
- 0
- PR merge metrics
- No merged PRs in 30d
Description
STATUS: DRAFT
## Problem
The results of direct queries of ubergraph redundant and non-redundant graphs often give suboptimal results for biologist-facing use cases. The redundant
### Case 1: Most precise object term needed.
Query of object graph => object terms that are too abstract. Query of non-redundant graph fails to => any object term in cases where redundancy stripping assumes users will be able to infer from the properties of a more general class.
Examples:
- Querying for all GO processes from some set of CL terms (e.g. via `capable of`)
- Querying the redundant graph => uselessly abstract GO terms. https://api.triplydb.com/s/EYZJ7_buH
|cell_ontology|GO|
|---|---|
|sensory epithelial cell|biological_process|
|interneuron|biological_process|
|motor neuron|biological_process|
|sensory neuron|biological_process|
|polymodal neuron|biological_process|
* Querying the non-redundant graph gives too little, e.g.,GABAergic only links to GO BP on the most general grouping class.
https://api.triplydb.com/s/166HwhWEo
cell_ontology | GO
-- | --
GABAergic neuron | gamma-aminobutyric acid secretion, neurotransmission
The redundant graph => 67 cell types
cell_ontology | GO
-- | --
basket cell | gamma-aminobutyric acid secretion, neurotransmission
cerebellar Golgi cell | gamma-aminobutyric acid secretion, neurotransmission
GABAergic neuron | gamma-aminobutyric acid secretion, neurotransmission
Kolmer-Agduhr neuron | gamma-aminobutyric acid secretion, neurotransmission
rosehip neuron | gamma-aminobutyric acid secretion, neurotransmission
cerebral cortex GABAergic interneuron | gamma-aminobutyric acid secretion, neurotransmission
GABAergic interneuron | gamma-aminobutyric acid secretion, neurotransmission
...
* What we want:
cell_ontololgy | GO
-- | --
fan Martinotti neuron | biological_process
fan Martinotti neuron | transmission of nerve impulse
fan Martinotti neuron | secretion by cell
fan Martinotti neuron | acid secretion
fan Martinotti neuron | gamma-aminobutyric acid secretion, neurotransmission
fan Martinotti neuron | secretion
fan Martinotti neuron | transport
fan Martinotti neuron | cellular process
fan Martinotti neuron | biological regulation
fan Martinotti neuron | regulation of neurotransmitter levels
fan Martinotti neuron | system process
fan Martinotti neuron | neurotransmitter transport
fan Martinotti neuron | neurotransmitter secretion
fan Martinotti neuron | signal release
fan Martinotti neuron | multicellular organismal process
fan Martinotti neuron | nervous system process
fan Martinotti neuron | gamma-aminobutyric acid secretion
fan Martinotti neuron | gamma-aminobutyric acid transport
fan Martinotti neuron | localization
fan Martinotti neuron | establishment of localization
fan Martinotti neuron | regulation of biological quality
fan Martinotti neuron | organic substance transport
fan Martinotti neuron | export from cell
fan Martinotti neuron | establishment of localization in cell
fan Martinotti neuron | signal release from synapse
-->
cell_ontololgy | GO
-- | --
fan Martinotti neuron | transmission of nerve impulse
f
fan Martinotti neuron | gamma-aminobutyric acid secretion, neurotransmission
* Proposed Solution
For each subject: query for all subClassOf relationships between object terms. Filter out all triples from the original query where the term has subclasses according to this second query. However, this would require many secondary queries and so would be inefficient. Is there some clever way to do this in SPARQL with subqueries?
- [x] #29
### CASE2: Graph-view generation
Aim: simple redundancy stripping that does not assume users can deal with inheritance of properties down the class heirarchy.
{details and examples TBA}
Contributor guide
No contributing guide indexed for this repository
First steps
- Read the whole issue, then the project's contributing guide.
- Comment on the issue to say you are picking it up — it saves two people doing the same work.
- Fork the repository and make your change on a branch.
- Open a pull request that references the issue number.
Research direction
No files or tests are named. Start by reviewing the linked UberGraph redundant and non-redundant query examples, then locate the project entry point that generates those queries. Compare the proposed subclass filtering with the checked-off #29; the Case 2 scope is still marked as forthcoming, so the completion criteria are not yet defined.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- python
- Domain
- data
- Issue type
- Feature
- Difficulty
- 5/5
- Estimated time
- Over a week
- Activity status
- Stale
- Clarity
- Needs clarification
- Newbie friendliness
- 25/100