1# Bistable reaction system
2__author__ = "Dilawar Singh"
3__email__ = "dilawar.s.rajput@gmail.com"
4
5import smoldyn
6
7
8def test_getter():
9    s = smoldyn.Simulation(
10        low=[0, 0], high=[10, 10], types="p", output_files=["bistableout.txt"]
11    )
12
13    # species X A B A2 B2
14    X = s.addSpecies("X", difc=0, color="green", display_size=3)
15    A = s.addSpecies("A", difc=1, color="red", display_size=3)
16    B = s.addSpecies("B", difc=1, color="blue", display_size=3)
17    A2 = s.addSpecies("A2", difc=1, color="red", display_size=5)
18    B2 = s.addSpecies("B2", difc=1, color="blue", display_size=5)
19
20    # mol 1 X 5 5
21    X.addToSolution(1, pos=[5, 5])
22
23    express = s.addReaction("express", subs=[X], prds=[X, A, B], rate=1)
24    Adimer = s.addBidirectionalReaction("Adimer", subs=[A, A], prds=[A2], kf=1, kb=1)
25    Bdimer = s.addBidirectionalReaction("Bdimer", subs=[B, B], prds=[B2], kf=1, kb=1)
26    AxB = s.addReaction("AxB", subs=[A2, B], prds=[A2], rate=1)
27    BxA = s.addReaction("BxA", subs=[B2, A], prds=[B2], rate=1)
28    Adegrade = s.addReaction("Adegrade", subs=[A], prds=[], rate=0.01)
29    Bdegrade = s.addReaction("Bdegrade", subs=[B], prds=[], rate=0.01)
30
31    s.addCommand("molcountheader bistableout.txt", cmd_type="B")
32    s.addCommand("molcount bistableout.txt", cmd_type="N", step=10)
33    s.setGraphics("opengl")
34    d = s.count()
35    print(d)
36
37
38def main():
39    test_getter()
40
41
42if __name__ == "__main__":
43    main()
44