VisBOL / visbol-js

SBOLv rendering in JavaScript
visbol.org
BSD 2-Clause "Simplified" License
10 stars 3 forks source link

Add support for simple interactions with DNA strand #64

Closed cjmyers closed 6 years ago

cjmyers commented 6 years ago

Add support for simple interactions, such as genetic production that connects a CDS to a protein AND inhibition/stimulation that connects a protein to a promoter.

dany-fu commented 6 years ago

Looking at the spec, I gather 1) Degradation (p.58) 2) Inhibition (p.59) 3) Process (p.60) 4) Stimulation (p.61) Am I missing any?

Are there any examples and test files?

cjmyers commented 6 years ago

Yes, that is the complete set for now.

The tricky thing about these is that you will now need to deal with ModuleDefinitions, since these only render for them. Here is an example of inhibition:

https://synbiohub.programmingbiology.org/public/Cello_Parts/AmeR_pAmeR_repression/1 https://synbiohub.programmingbiology.org/public/Cello_Parts/AmeR_pAmeR_repression/1

The AmeR_protein glyph should be above the pAmeR promoter glpyh with the inhibition error pointing from the protein to the promoter.

Here is a simulation example:

https://synbiohub.programmingbiology.org/public/Cello_Parts/Ara_AraC_protein_pBAD_activation/1 https://synbiohub.programmingbiology.org/public/Cello_Parts/Ara_AraC_protein_pBAD_activation/1

In this case, the Ara_AraC_protein glyph would have a simulation arrow point down to the pBad promoter glyph.

Here is a degradation example:

https://synbiohub.programmingbiology.org/public/Cello_Parts/AmeR_protein_degradation/1 https://synbiohub.programmingbiology.org/public/Cello_Parts/AmeR_protein_degradation/1

The Ame_protein glyph would have a degradation arrow leaving it. It could go in any direction, but I think protein on left and arrow going right might look best.

Here is a process example:

https://synbiohub.programmingbiology.org/public/Cello_Parts/AmeR_protein_production/1 https://synbiohub.programmingbiology.org/public/Cello_Parts/AmeR_protein_production/1

The AmeR CDS glyph would have a process arrow pointing up to the AmeR_protein glyph.

For now, we are assuming you will only have ModuleDefinitions with a single Interaction as above. We are also assuming that the types of objects are fairly simple, as above.

Here is one for extra credit:

https://synbiohub.programmingbiology.org/public/Cello_Parts/Ara_AraC_protein_complex_formation/1 https://synbiohub.programmingbiology.org/public/Cello_Parts/Ara_AraC_protein_complex_formation/1

This involves a protein, a small molecule, and a complex. The protein and small molecule should have process arrows that point to the complex. The exact layout is not fixed. One example that might look good is to have the reactants on the left and the product on the right.

On Jun 10, 2018, at 3:38 PM, Dany notifications@github.com wrote:

Looking at the spec, I gather

Degradation (p.58) Inhibition (p.59) Process (p.60) Stimulation (p.61) Am I missing any? Are there any examples and test files?

— You are receiving this because you authored the thread. Reply to this email directly, view it on GitHub https://github.com/VisBOL/visbol-js/issues/64#issuecomment-396084005, or mute the thread https://github.com/notifications/unsubscribe-auth/ADWD99VdLxWKvuXpkTBhpZeWOIpuFVZaks5t7ZHegaJpZM4TB1Tk.

dany-fu commented 6 years ago

You showed us a diagram when we met in May that had these interactions, could you link that here or email it? We'd like to have a reference for how the interactions and glyphs are positioned in respect to each other

cjmyers commented 6 years ago

Figure 28 here is one example: http://sbolstandard.org/wp-content/uploads/2018/01/BBF-RFC114-SBOL2.2.0.pdf

There are several examples in this paper: https://pubs.acs.org/doi/pdf/10.1021/acssynbio.7b00459

Here is one from that paper (left-side only):

1

cjmyers commented 6 years ago

Note that initially we are not doing anything this complex. The diagram on the left has four interactions in one diagram, but for now, we are going to assume a single interaction in a diagram. Our stretch goals is rendering diagrams like this, but it is a lot more involved since layout becomes an issue.

dany-fu commented 6 years ago

Should the interaction to be rendered on the sequence/circuit or the individual segments below it? Or both?

cjmyers commented 6 years ago

It should be rendered with the DNA FunctionalComponent below the protein FunctionalComponent. In the case of inhibition or stimulation, the arrow should go downwards from the protein to the promoter. In the case of genetic production, it should go from the CDS up to the protein.

On Jun 22, 2018, at 10:05 PM, Dany notifications@github.com wrote:

Should the interaction to be rendered on the sequence/circuit or the individual segments below it? Or both?

— You are receiving this because you authored the thread. Reply to this email directly, view it on GitHub https://github.com/VisBOL/visbol-js/issues/64#issuecomment-399581837, or mute the thread https://github.com/notifications/unsubscribe-auth/ADWD92u1t5TANoRK_ASolpH1oK4Gtsldks5t_VwBgaJpZM4TB1Tk.

asadeg02 commented 6 years ago

inhibition-interaction

@cjmyers Thanks for your quick reply. Above is what we have for inhibition right now, but our question is should we render interactions like this (As separate segments, assuming that we only deal with simple interactions here, having up to 2 participants and not sharing their participant with each other) or should we add the protein glyph and the inhibition arrow pointing to the promoter above the promote in the sequence that promoter is participating in? Thanks again.

asadeg02 commented 6 years ago

screenshot from 2018-06-22 18-20-35 Just to clarify more on the issue, above is the rendering for the sbol file containing inhibition before adding the support to render interactions of type inhibition. my question is that should I add protein and inhibition arrow above the promoter in the pAmeR segment or should I do it the way I am doing right now(in a separate box or segment)? I'm asking this question because the way we need to take care of the layout and segment padding would be different depending on the approach we choose. Thanks

cjmyers commented 6 years ago

The protein will not be on a line, so the first diagram you sent is correct, and I think it looks good.

On Jun 22, 2018, at 11:27 PM, asadeg02 notifications@github.com wrote:

https://user-images.githubusercontent.com/32320836/41801540-37435180-7649-11e8-947b-2ca5c5394f05.png Just to clarify more on the issue, above is the rendering for the sbol file containing inhibition before adding the support to render interactions of type inhibition. my question is that should I add protein and inhibition arrow above the promoter in the pAmeR segment or should I do it the way I am doing right now(in a separate box or segment)? I'm asking this question because the way we need to take care of the layout and segment padding would be different depending on the approach we choose. Thanks

— You are receiving this because you authored the thread. Reply to this email directly, view it on GitHub https://github.com/VisBOL/visbol-js/issues/64#issuecomment-399599671, or mute the thread https://github.com/notifications/unsubscribe-auth/ADWD96p_AE4kpnU5WOi45T58sH-simc4ks5t_W9ngaJpZM4TB1Tk.