Closed jakebeal closed 3 years ago
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:
I could represent this design in the following two ways:
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).
@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:
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:
- B represses C. A represses the interaction between B and C.
- 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:
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.
I agree with Jake. I think it is important to remember that SBOL is a language for capturing design intent, not a modelling language. An interaction stimulating or repressing another interaction is a level of abstraction that is widely used in existing synbio designs, and it’s our job to capture those designs in a machine tractable representation - not to be prescriptive about what is an appropriate amount of detail for the designer to include.
On 18 Oct 2020, at 15:48, Jacob Beal notifications@github.com wrote:
@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:
B represses C. A represses the interaction between B and C. 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.
— You are receiving this because you are subscribed to this thread. Reply to this email directly, view it on GitHub, or unsubscribe.
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.
@cjmyers Does this mean that you support this proposal?
Yes
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