matthiasbock / BooleSim

Systems biology tool: Boolean network simulator
http://matthiasbock.github.io/BooleSim
11 stars 6 forks source link

Possible edge problem #54

Closed matthiasbock closed 10 years ago

matthiasbock commented 10 years ago

It has been reported, that the following network does not render as expected:

A = A
C = C
B = B
K = K
A__B = (B && A) && (A_ppi_B)
B_P = (B) && (K_phos_B) || B_P
B__C = (C && B) && (B_ppi_C)
K_phos_B = K && B
A_ppi_B = A && B
B_ppi_C = B && C
matthiasbock commented 10 years ago

When pasting the network in the rule editor, it comes out like this: screenshot

matthiasbock commented 10 years ago

Expected was something like this: booleantestmodel

matthiasbock commented 10 years ago

It appears to me, that the problem is located within the Boolean network export algorithm of rxncon. The original network underlying the second picture was a rxncon network:

A_ppi_B
B_ppi_C
K_P+_B

A AND B interact to form complex A--B. B AND C interact to form complex B--C. K AND B interact, such that K phosphorylates B to B-P.

rxncon's exporter apparently creates several Boolean rules from one rxncon rule,e.g.

A_ppi_B

becomes

A = A
A__B = (B && A) && (A_ppi_B)
A_ppi_B = A && B

The first rules is superfluous (protentially problematic). The third rule is correct. The second rule is incorrect. Should be

A__B = A_ppi_B

The dependency of A__B upon A and B is inherently present via A_ppi_B, which is only true if A and B are true. The redundant usage of A and B in the second rule is what causes the unexpected edges in picture one. Therefore it is not an error in BooleSim and can only be fixed within rxncon or via manual removal of redundant dependencies in rxncon's export.

Off topic: The OR between K_P+_B and B-P in picture two seems to be misplaced, should not be present.