Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Consider outputting certain "blank nodes" #155

Open
balhoff opened this issue Sep 22, 2022 · 5 comments
Open

Consider outputting certain "blank nodes" #155

balhoff opened this issue Sep 22, 2022 · 5 comments

Comments

@balhoff
Copy link
Member

balhoff commented Sep 22, 2022

For a logical definition like this:

HP:Astrocytosis EquivalentTo RO:has_part some (PATO:increased_rate and (RO:inheres_in_part_of some (GO:cell_growth and (RO:occurs_in some CL:astrocyte))) and (RO:has_modifier some PATO:abnormal)

The term HP:Astrocytosis will have outgoing edges only where they are inferred to have named class targets, for example RO:has_part PATO:increased_rate, and any property chain inferences that result from the other nested targets.

Creating nodes for all the sub-expressions would allow more complete query, such as:

?s has_part:/inheres_in_part_of: cell_growth: . 
@stimon
Copy link

stimon commented Aug 2, 2023

Hi,

I am facing this specific problem with most of the HP class definitions and saw this has already been noted. Is it planned to implement?
For example, 'Decreased CSF albumin concentration':

'has part' some 
    ('decreased amount'
     and ('characteristic of' some 
        (albumin
         and ('part of' some 'cerebrospinal fluid')))
     and ('has modifier' some abnormal))

Only captures 'Decreased CSF albumin concentration' 'has part' 'decreased amount'

Thanks

@balhoff
Copy link
Member Author

balhoff commented Aug 2, 2023

I've thought about implementing this but haven't had a pressing need, so it's been on the back burner. Are you using relation-graph already?

@stimon
Copy link

stimon commented Aug 2, 2023

Yes, I am. Well, testing things out mostly.
For my current use case, I was planning to manually append the missing ones, at least the most important ones. It is OK for now because it is a limited set of classes of interest, but in the future, it would be great to have the full output :)
I guess this happens as well in the case of ubergraph pruned relations, right?

@balhoff
Copy link
Member Author

balhoff commented Aug 2, 2023

Yes, I am. Well, testing things out mostly.

Great! I don't have much idea of who uses the tool.

I guess this happens as well in the case of ubergraph pruned relations, right?

Yes. One thing you can do now is add property chain axioms for the patterns you want. So for your example above, before running relation-graph, insert an axiom like this into the ontology:

'has part' o 'characteristic of' -> 'has part characteristic of'

For 'has part characteristic of' you could make up whatever relation identifier you want to use.

Then you should end up getting links like:

'Decreased CSF albumin concentration' 'has part characteristic of' 'albumin'

In Ubergraph we have such a property chain for has phenotype affecting, and you get a link from Decreased CSF albumin concentration to albumin: https://api.triplydb.com/s/aeAuePnfn

@stimon
Copy link

stimon commented Aug 2, 2023

Thanks!
I was actually planning to do something similar to what you do with ubergraph-axioms.ofn after realizing there was something like I needed while query-inspecting https://api.triplydb.com/s/b5_9W0PcS (I'm not sure if I'm following the breadcrumbs properly though).

In my case, I need to add axioms following this pattern to connect several of these CSF protein-related phenotypes to the PR proteins they refer to. Let's see if I manage...

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

2 participants