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

SBML transcription and translation arcs not using ports #735

Closed
ugurdogrusoz opened this issue Jul 15, 2024 · 18 comments
Closed

SBML transcription and translation arcs not using ports #735

ugurdogrusoz opened this issue Jul 15, 2024 · 18 comments
Assignees
Labels
bug Something isn't working
Milestone

Comments

@ugurdogrusoz
Copy link
Contributor

(thanks @adrienrougny) Transcription and translation arcs go directly to the process node and not to the ports, unlike normal consumption and production arcs.
Screenshot 2024-07-15 at 11 18 20

@ugurdogrusoz ugurdogrusoz added the bug Something isn't working label Jul 15, 2024
@ugurdogrusoz ugurdogrusoz added this to the version 4.0 milestone Jul 15, 2024
@ugurdogrusoz ugurdogrusoz assigned umut-er and NoorMuhammad1 and unassigned umut-er Jul 15, 2024
@NoorMuhammad1
Copy link
Contributor

The code that connects arcs with ports, only checked for simple "consumption" and "production" arcs. I also added the option for it to check and connect "transcription" and "translation" arcs of both types to the ports.

@hasanbalci
Copy link
Contributor

hasanbalci commented Jul 17, 2024

I am not sure if it is related to this issue but when you export an SBML map with "transcription" and "translation" arcs, and then import it again, the arcs are imported as consumption and production arcs.

@NoorMuhammad1
Copy link
Contributor

Are they imported as simple "consumption" and "production" or "translation consumption" and "translation production"?

@hasanbalci
Copy link
Contributor

As simple "consumption" and "production".

@NoorMuhammad1
Copy link
Contributor

I checked with some examples and it seems to be working for me. Can you please check again just to confirm?

@hasanbalci
Copy link
Contributor

Screen.Recording.2024-07-18.at.05.mp4

@NoorMuhammad1
Copy link
Contributor

It only happens when we use a consumption arc of one type(translation or transcription) and the production arc of another type. If both the arcs are of the same type then this does not happen.

@NoorMuhammad1
Copy link
Contributor

Can we use different types of arc from consumption and production?

@hasanbalci
Copy link
Contributor

hasanbalci commented Jul 18, 2024

I don't know the rules of SBML but if it doesn't give warning while connecting the nodes, it should be possible.

@NoorMuhammad1
Copy link
Contributor

image
So I checked the rules, and they don't specifically say that consumption and production have to be of the same type but the table values for both is opposite.

In the image the S is for source, T is for target and NA is for can't be either.

@hasanbalci
Copy link
Contributor

@NoorMuhammad1 So, the connections are normal, right?

@NoorMuhammad1
Copy link
Contributor

What do you mean by connections?

@hasanbalci
Copy link
Contributor

I mean the map I constructed in the video is correct, right?

@NoorMuhammad1
Copy link
Contributor

I mean the map I constructed in the video is correct, right?

I cannot say for sure, because its using consumption arc of one type and the production arc of another type (translation/transcription). I have not seen any specific rule that prohibits it but I don't know how else to confirm it.

@ugurdogrusoz
Copy link
Contributor Author

ugurdogrusoz commented Jul 20, 2024

We need to investigate:

  • 1. why the scenario Hasan is describing in the video is happening? we put one type of an edge and get another type after export/import.
  • 2. why the following is happening (Genes do not have ports but if we export to and import back as SBML, and then remove the consumption edge to replace it with a new one, it gets connected to the Gene as if it has a port!):
    https://github.com/user-attachments/assets/f7a867fd-7063-4cf7-a986-ce4247410709

You can revert and check to see if these were happening before your fix to this issue.

@NoorMuhammad1
Copy link
Contributor

I found the reasons for both:

  1. The reason for the problem with Hasan's example is that he is using the consumption edge of one type and the production edge of another type for the reaction. Now we converting back from SBML to JSON, the only type of 3 node reactions recognized are mentioned in the picture. According to this, the translation consumption can only connect with translation production and same is true for transciption as well. I looked at the SBML documentation done by Selbi and there is no specific rule prohibiting us from connecting two different types of edges in this case but the rules for conversion from SBML format to JSON only support same type of arcs in the reaction.

  2. For the second issue, the problem was that after reading nodes from the SBML format and then while adding them to the JSON object, the code is adding ports to every node as long as it is a species. I have changed it for just gene right now in my local codebase and it stops port addition for genes. But I just need to confirm that is the lack of ports only necessary for Genes or other types of species as well.

image

NoorMuhammad1 added a commit to iVis-at-Bilkent/sbgnviz.js that referenced this issue Jul 20, 2024
@hasanbalci
Copy link
Contributor

For the second issue, we need to remove ports from here, here and here as well since these code snippets also add ports for species and compartments.
@NoorMuhammad1 Please remove these codes and don't comment them. If we need them later we can find them from history.

@NoorMuhammad1
Copy link
Contributor

Ok i will do that.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
bug Something isn't working
Projects
None yet
Development

No branches or pull requests

4 participants