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

SEP 049 -- Higher Order Interactions #104

Closed
jakebeal opened this issue Oct 8, 2020 · 6 comments
Closed

SEP 049 -- Higher Order Interactions #104

jakebeal opened this issue Oct 8, 2020 · 6 comments

Comments

@jakebeal
Copy link
Contributor

jakebeal commented Oct 8, 2020

Biological interactions are often described using "higher-order" language, in which an interaction modulates another interaction. Here, we propose to allow this in SBOL by allowing Participation objects to include interactions as higher-order participants.

Full SEP at: https://github.com/SynBioDex/SEPs/blob/master/sep_049.md

@PrashantVaidyanathan
Copy link
Contributor

I know this SEP is being considered for a vote, and I don't want to throw a wrench into the works. However, I'm still struggling with the idea of introducing higher order interactions, since I feel that such a move potentially moves the standard away from representing what is factually correct view of the world rather than a simplified abstraction.

I've been thinking a lot about this, and have a few points I would like to raise:

a. Equivalence of SBOL designs: Let's say that this SEP is accepted and let's consider a circuit where:

  • in the presence of Small Molecule A, A binds with protein B A-B, and A-B does not repress promoter C.
  • However, in the absence of A, B represses C.

I could represent this design in the following two ways:

  1. B represses C. A represses the interaction between B and C.
  2. B represses C. A forms a complex with B.

I would argue that it would be hard to figure out the equivalence between these two representations (especially programmatically). But more importantly, there is vital and known information about the formation of the complex between A and B that is lost.

b. Convenience for visualization libraries: I also understand that having intermediate forms of representation may not make it easier for visualization. I would argue however, that this penalizes more complete representations. For instance, this reasoning motivates uses to choose Option 1 (in the previous point) over Option 2. And users who use Option 2 do not necessarily get an equivalent representation anyway.

Instead, I would like to propose a newer class, along the lines of an EquivalentInteraction. The EquivalentInteraction class could live at the same level as an Interaction, however, it could allow higher-level interactions, abstractions, interpretations (based on assumptions made in specific hypothesis)
Such a class could potentially contain simplified (and perhaps SBOL Visual-friendly) interpretations and representations of interactions. An Interaction could have multiple EquivalentInteractions. This could also potentially alleviate the following issue specified in the SEP:

Intermediate form representations may not always be available, e.g., we may know that a network should include an inhibition of inhibition, but not yet have committed to choice of whether the higher-level inhibitor will be siRNA binding mRNA or a small molecule binding protein, which are fundamentally different mechanisms of action.

The idea of having an EquivalentInteraction is not completely thought out, but I just wanted to present a possible solution to the issues that I raised.

Regarding the issue of an intermediate state being unknown, perhaps that could be alleviated by using/introducing an UnknownEntity instance (which can later be updated once we know what that entity is).

@jakebeal
Copy link
Contributor Author

@PrashantVaidyanathan Don't worry about throwing wrenches --- this is the right time to bring them up!

My key question with respect to "correctness" and abstraction is this: what is the difference between abstracting a complex and the other abstractions that we routinely make? Consider:

  • representing mRNA
  • representing the intron/exon splicing process in eukaryotes
  • representing the transcription/translation processes, recruitment of nucleic acids, tRNA delivery of amino acids
  • representing transcription/translation initiation, with the presence of sigma factors, ribosomal subunits, chaperone proteins, helicase, etc.

All of these can make a big difference to the behavior of a genetic circuit, but we typically abstract them away. It just happens that they are already bundled into SO terms like "template" and "genetic production". If we had an SO roles for things like "small molecule that inhibits inhibition" we could represent these relationships abstractly without a higher-order interaction.

Finally, note that adding intermediate species doesn't necessarily actually add more information, but may create additional confusion. In your example, for example:

  1. B represses C. A represses the interaction between B and C.
  2. B represses C. A forms a complex with B.

Representation 1 is complete, but abstract. Representation 2, however, has introduced new questions that need to be answered, including:

  • Does AB repress C? (some complexes aren't inactivated, and may even be enhanced!)
  • Does AB unbind as well? What's the ratio of A+B => AB vs. AB => A+B?
  • Does AB interact with other things that B interacts with?
  • How does AB decay, compared to B?
    Some of these might be inferred from absence of specification, but that's starting to build a lot of assumptions into a representation.

Thus, I would argue that in many cases, it is actually more correct to represent a system in a more abstract form that can be completely specified than a more detailed form with missing information.

@jamesamcl
Copy link
Member

jamesamcl commented Oct 18, 2020 via email

@cjmyers
Copy link
Contributor

cjmyers commented Oct 21, 2020

I'm sympathetic with @PrashantVaidyanathan issue. Indeed, this has been the reason I've objected to this proposal in the past. That being said, I'm also sympathetic to the view that we are always performing abstractions, so if we introduced a new class to say we were performing an abstraction then I'm not sure when it would not apply. I think it would end up in the eye-of-the-beholder. I think it is safe to assume also that we can infer that such an abstraction is being used whenever an interaction is a participant, since this must necessarily hide some level of biochemical detail.

So, although I'm still a bit concerned about promoting the omission of detail, I think that it is good if SBOL can represent things at many levels of abstraction. We should try to develop means to infer these abstractions from the detailed ones, so we can still promote full detailed models with simple visualizations.

@jakebeal
Copy link
Contributor Author

@cjmyers Does this mean that you support this proposal?

@cjmyers
Copy link
Contributor

cjmyers commented Oct 21, 2020

Yes

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

No branches or pull requests

4 participants