belbio / bep

BEL Enhancement Proposals
http://bep.bel.bio
Apache License 2.0
7 stars 4 forks source link

How to encode domains in BEL #23

Open cthoyt opened 5 years ago

cthoyt commented 5 years ago

Earlier this week, @johnbachman mentioned he wanted to do this. Now, we're working on curating how Tau antibodies are interacting with Tau, and we have the same need. Let's use this issue thread to start collating examples and discussion. CC: @aldisirana

One idea:

p(HGNC:YFG, domain(start_end))

Also it would be good to show some examples with their equivalences to InterPro terms as well

cthoyt commented 5 years ago

@kk0lpej4 had some other ideas as well

adifabio commented 5 years ago

Just a thought, I wouldn’t limit it to domain. URI (Uniform Resource Identifier) is a lot more powerful. So using:

uri(start_end)

You allow it to be more open and flexible. This solution will allow for more potential problem definitions to be solved then just domain.

cthoyt commented 5 years ago

Hey Anselmo, that's an interesting thought! Do you mean that we should consider making it possible to define more functions that would live inside the p() function using URIs?

Might this look like: p(HGNC:YFG, https://example.com/#domain(start_end))?

kk0lpej4 commented 5 years ago

Maybe the following could also be an option? p(HGNC:YFG, domain(ns:name/id, start_end))

For example, the proline-rich domain of tau could be encoded as: p(HGNC:MAPT, domain(INTERPRO:"PSP, proline-rich", start_end)), or p(HGNC:MAPT, domain(INTERPRO:IPR006568, start_end)).

Also, a similar syntax is already available for the encoding of PTMs (from BEL 2.0 specs): p(ns:protein_value, pmod(ns:type_value, <code>, <pos>))

cthoyt commented 5 years ago

Alternative, since by talking about a domain, it's implicit that you're talking about a protein domain(protein entity<ns:type_value>, domain entity<ns:type_value> [, start_end])

Example: domain(HGNC:MAPT, INTERPRO:"PSP, proline-rich")

At least one of: name for a domain or the start/end. Both are allowed