import%20marimo%0A%0A__generated_with%20%3D%20%220.23.16%22%0Aapp%20%3D%20marimo.App(width%3D%22medium%22)%0A%0Aasync%20with%20app.setup(hide_code%3DTrue)%3A%0A%20%20%20%20%23%20Setup%20cell%20for%20marimo%20notebook%2C%20can%20be%20ignored%0A%20%20%20%20import%20marimo%20as%20mo%0A%20%20%20%20import%20sys%0A%0A%20%20%20%20%23%20Import%20packages%20if%20running%20on%20marimo%20playground%0A%20%20%20%20if%20sys.executable%20%3D%3D%20%22%2Fhome%2Fpyodide%2Fthis.program%22%3A%0A%20%20%20%20%20%20%20%20import%20micropip%0A%0A%20%20%20%20%20%20%20%20await%20micropip.install(%0A%20%20%20%20%20%20%20%20%20%20%20%20%5B%22pint_pandas%3C%3D0.7%22%2C%20%22typing_extensions%3E%3D4.15.0%22%2C%20%22simbio%3E%3D1.1.0%22%2C%20%22matplotlib%22%5D%2C%0A%20%20%20%20%20%20%20%20%20%20%20%20verbose%3DFalse%2C%0A%20%20%20%20%20%20%20%20)%0A%0A%0A%40app.cell(hide_code%3DTrue)%0Adef%20_()%3A%0A%20%20%20%20mo.md(r%22%22%22%0A%20%20%20%20%23%20Implementing%20the%20repressilator%20in%20Simbio%0A%20%20%20%20The%20%5Brepressilator%5D(https%3A%2F%2Fen.wikipedia.org%2Fwiki%2FRepressilator)%20is%20a%20genetic%20regulatory%20network%20where%203%20mRNA%20species%20%24m_1%24%2C%20%24m_2%24%2C%20%24m_3%24%20interact%20with%203%20proteins%20%24p_1%24%2C%20%24p_2%24%2C%20%24p_3%24.%20We%20can%20model%20it%20using%20the%20equations%3A%0A%0A%20%20%20%20%5Cbegin%7Baligned%7D%0A%20%20%20%20%5Cfrac%7Bdm_1%7D%7Bdt%7D%20%26%3D%20%20-m_1%20%2B%20%5Cfrac%7B%5Calpha%7D%7B1%2Bp_3%5En%7D%20%2B%20%5Calpha_0%20%5Cquad%20%5Cfrac%7Bdp_1%7D%7Bdt%7D%20%26%3D%20-%20%5Cbeta%20(p_1-m_1)%20%20%5C%5C%0A%20%20%20%20%5Cfrac%7Bdm_2%7D%7Bdt%7D%20%26%3D%20%20-m_2%20%2B%20%5Cfrac%7B%5Calpha%7D%7B1%2Bp_1%5En%7D%20%2B%20%5Calpha_0%20%5Cquad%20%5Cfrac%7Bdp_2%7D%7Bdt%7D%20%26%3D%20-%20%5Cbeta%20(p_2-m_2)%20%5C%5C%0A%20%20%20%20%5Cfrac%7Bdm_3%7D%7Bdt%7D%20%26%3D%20%20-m_3%20%2B%20%5Cfrac%7B%5Calpha%7D%7B1%2Bp_2%5En%7D%20%2B%20%5Calpha_0%20%5Cquad%20%5Cfrac%7Bdp_2%7D%7Bdt%7D%20%26%3D%20-%20%5Cbeta%20(p_3-m_3)%0A%20%20%20%20%5Cend%7Baligned%7D%0A%20%20%20%20%24%24%0A%20%20%20%20%22%22%22)%0A%20%20%20%20return%0A%0A%0A%40app.cell(hide_code%3DTrue)%0Adef%20_()%3A%0A%20%20%20%20mo.md(r%22%22%22%0A%20%20%20%20Simbio%20is%20desinged%20with%20composability%20in%20mind%2C%20so%20we%20can%20break%20this%20down%20into%20parts%20and%20combine%20them%20later%3A%0A%20%20%20%20-%20Each%20%24m_i%24%20is%20destroyed%20at%20a%20rate%20equal%20it%20itself.%0A%20%20%20%20-%20Each%20%24m_i%24%20is%20sinthesysed%20at%20a%20rate%20%24%5Cfrac%7B%5Calpha%7D%7B1%2Bp_%7Bi%2B1%7D%5En%7D%20%2B%20%5Calpha_0%24.%0A%20%20%20%20-%20Each%20%24p_i%24%20is%20created%20at%20a%20rate%20equal%20%24-%5Cbeta%20(p_i-m_i)%24.%0A%20%20%20%20%22%22%22)%0A%20%20%20%20return%0A%0A%0A%40app.cell(hide_code%3DTrue)%0Adef%20_()%3A%0A%20%20%20%20mo.md(r%22%22%22%0A%20%20%20%20We%20can%20first%20implement%20the%20equation%20for%20each%20%24m_i%24.%20To%20do%20so%20we%20create%20a%20class%20wich%20inherits%20from%20%60System%60%3A%0A%20%20%20%20%22%22%22)%0A%20%20%20%20return%0A%0A%0A%40app.cell%0Adef%20_()%3A%0A%20%20%20%20import%20numpy%20as%20np%0A%20%20%20%20import%20matplotlib.pyplot%20as%20plt%0A%20%20%20%20from%20simbio%20import%20(%0A%20%20%20%20%20%20%20%20System%2C%0A%20%20%20%20%20%20%20%20Parameter%2C%0A%20%20%20%20%20%20%20%20RateLaw%2C%0A%20%20%20%20%20%20%20%20Simulator%2C%0A%20%20%20%20%20%20%20%20Variable%2C%0A%20%20%20%20%20%20%20%20assign%2C%0A%20%20%20%20%20%20%20%20initial%2C%0A%20%20%20%20)%0A%20%20%20%20from%20simbio.reactions.single%20import%20Destruction%0A%0A%20%20%20%20class%20mRNA(System)%3A%0A%20%20%20%20%20%20%20%20%23%20Create%20the%20species%0A%20%20%20%20%20%20%20%20m%3A%20Variable%20%3D%20initial(default%3D1)%0A%20%20%20%20%20%20%20%20p%3A%20Variable%20%3D%20initial(default%3D1)%0A%0A%20%20%20%20%20%20%20%20%23%20Create%20parameters%0A%20%20%20%20%20%20%20%20alpha%3A%20Parameter%20%3D%20assign(default%3D1)%0A%20%20%20%20%20%20%20%20alpha_0%3A%20Parameter%20%3D%20assign(default%3D1)%0A%20%20%20%20%20%20%20%20n%3A%20Parameter%20%3D%20assign(default%3D1)%0A%20%20%20%20%20%20%20%20creation_rate%3A%20Parameter%20%3D%20assign(default%3Dalpha%20%2F%20(1%20%2B%20p**n)%20%2B%20alpha_0)%0A%0A%20%20%20%20%20%20%20%20%23%20Declare%20creation%20and%20destruction%20reactions%20for%20m%0A%20%20%20%20%20%20%20%20destroy%20%3D%20Destruction(A%3Dm%2C%20rate%3D1)%0A%0A%20%20%20%20%20%20%20%20create%20%3D%20RateLaw(reactants%3D%5Bp%5D%2C%20products%3D%5Bm%2C%20p%5D%2C%20rate_law%3Dcreation_rate)%0A%0A%20%20%20%20sim%20%3D%20Simulator(mRNA)%0A%20%20%20%20result%20%3D%20sim.solve(save_at%3Dnp.linspace(0%2C%2010%2C%201000))%0A%20%20%20%20result.to_dataframe().plot()%0A%20%20%20%20return%20(%0A%20%20%20%20%20%20%20%20Parameter%2C%0A%20%20%20%20%20%20%20%20RateLaw%2C%0A%20%20%20%20%20%20%20%20Simulator%2C%0A%20%20%20%20%20%20%20%20System%2C%0A%20%20%20%20%20%20%20%20Variable%2C%0A%20%20%20%20%20%20%20%20assign%2C%0A%20%20%20%20%20%20%20%20initial%2C%0A%20%20%20%20%20%20%20%20mRNA%2C%0A%20%20%20%20%20%20%20%20np%2C%0A%20%20%20%20%20%20%20%20plt%2C%0A%20%20%20%20)%0A%0A%0A%40app.cell(hide_code%3DTrue)%0Adef%20_()%3A%0A%20%20%20%20mo.md(r%22%22%22%0A%20%20%20%20Since%20the%20%60Destruction%60%20class%20creates%20a%20%60MassAction%60%20the%20reaction%20will%20already%20be%20proportional%20to%20the%20concentration%20of%20%24m_i%24%2C%20so%20we%20can%20set%20rate%20%3D%201.%20Simbio%20requires%20all%20Variables%20which%20influence%20a%20reaction%20to%20be%20involved%20as%20reactants%2C%20so%20we%20include%20%60p%60%20as%20both%20a%20reactant%20and%20a%20product%20so%20it%20doesn't%20have%20any%20net%20effect.%0A%20%20%20%20%22%22%22)%0A%20%20%20%20return%0A%0A%0A%40app.cell(hide_code%3DTrue)%0Adef%20_()%3A%0A%20%20%20%20mo.md(r%22%22%22%0A%20%20%20%20We%20can%20also%20do%20the%20same%20for%20the%20proteins%3A%0A%20%20%20%20%22%22%22)%0A%20%20%20%20return%0A%0A%0A%40app.cell%0Adef%20_(Parameter%2C%20RateLaw%2C%20Simulator%2C%20System%2C%20Variable%2C%20assign%2C%20initial%2C%20np)%3A%0A%20%20%20%20class%20Protein(System)%3A%0A%20%20%20%20%20%20%20%20m%3A%20Variable%20%3D%20initial(default%3D1)%20%20%23%20Create%20species%0A%20%20%20%20%20%20%20%20p%3A%20Variable%20%3D%20initial(default%3D0)%0A%20%20%20%20%20%20%20%20beta%3A%20Parameter%20%3D%20assign(default%3D1)%0A%0A%20%20%20%20%20%20%20%20create%20%3D%20RateLaw(%0A%20%20%20%20%20%20%20%20%20%20%20%20reactants%3D%5Bp%2C%20m%5D%2C%20products%3D%5B2%20*%20p%2C%20m%5D%2C%20rate_law%3D-beta%20*%20(p%20-%20m)%0A%20%20%20%20%20%20%20%20)%0A%0A%20%20%20%20sim_1%20%3D%20Simulator(Protein)%20%20%23%20Create%20parameter%20beta%0A%20%20%20%20result_1%20%3D%20sim_1.solve(save_at%3Dnp.linspace(0%2C%2010%2C%201000))%0A%20%20%20%20result_1.to_dataframe().plot()%20%20%23%20create_rate%3A%20Parameter%20%3D%20%20%23%0A%20%20%20%20return%20(Protein%2C)%0A%0A%0A%40app.cell(hide_code%3DTrue)%0Adef%20_()%3A%0A%20%20%20%20mo.md(r%22%22%22%0A%20%20%20%20Here%20we%20are%20creating%20%24p_i%24%20with%20a%20rate%20which%20can%20be%20negative%2C%20in%20which%20case%20it%20will%20destroy%20%24p_i%24.%0A%20%20%20%20%22%22%22)%0A%20%20%20%20return%0A%0A%0A%40app.cell(hide_code%3DTrue)%0Adef%20_()%3A%0A%20%20%20%20mo.md(r%22%22%22%0A%20%20%20%20Now%20we%20can%20combine%20everything%20into%20the%20single%20Represillator%3A%0A%20%20%20%20%22%22%22)%0A%20%20%20%20return%0A%0A%0A%40app.cell%0Adef%20_(Parameter%2C%20Protein%2C%20System%2C%20Variable%2C%20assign%2C%20initial%2C%20mRNA)%3A%0A%20%20%20%20class%20Repressilator(System)%3A%0A%20%20%20%20%20%20%20%20%23%20Create%20all%20the%20species%0A%20%20%20%20%20%20%20%20m1%3A%20Variable%20%3D%20initial(default%3D1)%0A%20%20%20%20%20%20%20%20m2%3A%20Variable%20%3D%20initial(default%3D1)%0A%20%20%20%20%20%20%20%20m3%3A%20Variable%20%3D%20initial(default%3D1)%0A%20%20%20%20%20%20%20%20p1%3A%20Variable%20%3D%20initial(default%3D1)%0A%20%20%20%20%20%20%20%20p2%3A%20Variable%20%3D%20initial(default%3D1)%0A%20%20%20%20%20%20%20%20p3%3A%20Variable%20%3D%20initial(default%3D1)%0A%0A%20%20%20%20%20%20%20%20%23%20Create%20all%20the%20parameters%0A%20%20%20%20%20%20%20%20alpha%3A%20Parameter%20%3D%20assign(default%3D150)%0A%20%20%20%20%20%20%20%20alpha_0%3A%20Parameter%20%3D%20assign(default%3D0.5)%0A%20%20%20%20%20%20%20%20n%3A%20Parameter%20%3D%20assign(default%3D2)%0A%20%20%20%20%20%20%20%20beta%3A%20Parameter%20%3D%20assign(default%3D8)%0A%0A%20%20%20%20%20%20%20%20%23%20Apply%20the%20creation%20and%20destruction%20laws%20to%20each%20species%2C%20in%0A%20%20%20%20%20%20%20%20react_1%20%3D%20mRNA(m%3Dm1%2C%20p%3Dp3%2C%20alpha%3Dalpha%2C%20alpha_0%3Dalpha_0%2C%20n%3Dn)%0A%20%20%20%20%20%20%20%20react_2%20%3D%20mRNA(m%3Dm2%2C%20p%3Dp1%2C%20alpha%3Dalpha%2C%20alpha_0%3Dalpha_0%2C%20n%3Dn)%0A%20%20%20%20%20%20%20%20react_3%20%3D%20mRNA(m%3Dm3%2C%20p%3Dp2%2C%20alpha%3Dalpha%2C%20alpha_0%3Dalpha_0%2C%20n%3Dn)%0A%20%20%20%20%20%20%20%20react_4%20%3D%20Protein(p%3Dp1%2C%20m%3Dm1%2C%20beta%3Dbeta)%0A%20%20%20%20%20%20%20%20react_5%20%3D%20Protein(p%3Dp2%2C%20m%3Dm2%2C%20beta%3Dbeta)%0A%20%20%20%20%20%20%20%20react_6%20%3D%20Protein(p%3Dp3%2C%20m%3Dm3%2C%20beta%3Dbeta)%0A%0A%20%20%20%20return%20(Repressilator%2C)%0A%0A%0A%40app.cell(hide_code%3DTrue)%0Adef%20_()%3A%0A%20%20%20%20mo.md(r%22%22%22%0A%20%20%20%20Here%20we%20applied%20the%20reaction%20separately%20to%20each%20species%2C%20so%20for%20each%20%24m_i%24%20we%20created%20an%20instance%20of%20%60mRNA%60%20where%20%60m%3Dmi%60%20and%20set%20%60p%60%20to%20the%20corresponding%20protein.%20We%20must%20also%20pass%20the%20outer%20parameters%20in%20order%20to%20be%20able%20to%20set%20them%20all%20form%20%60Repressilator%60.%20Another%20more%20efficient%20way%20of%20doing%20the%20same%20thing%20would%20be%20to%20create%20the%20Proteins%20without%20passing%20external%20variable%2C%20so%20each%20one%20creates%20a%20protein%20and%20an%20mRNA.%20Then%20we%20need%20to%20apply%20the%20mRNA%20interactions%20to%20the%20variables%20it%20created.%0A%20%20%20%20%22%22%22)%0A%20%20%20%20return%0A%0A%0A%40app.cell%0Adef%20_(Parameter%2C%20Protein%2C%20System%2C%20assign%2C%20mRNA)%3A%0A%20%20%20%20class%20EfficientRepressilator(System)%3A%0A%20%20%20%20%20%20%20%20%23%20Create%20all%20the%20paremeters%0A%20%20%20%20%20%20%20%20alpha%3A%20Parameter%20%3D%20assign(default%3D150)%0A%20%20%20%20%20%20%20%20alpha_0%3A%20Parameter%20%3D%20assign(default%3D0.5)%0A%20%20%20%20%20%20%20%20n%3A%20Parameter%20%3D%20assign(default%3D2)%0A%20%20%20%20%20%20%20%20beta%3A%20Parameter%20%3D%20assign(default%3D8)%0A%0A%20%20%20%20%20%20%20%20%23%20Create%20the%20protein%20reactions%0A%20%20%20%20%20%20%20%20syst1%20%3D%20Protein(beta%3Dbeta)%0A%20%20%20%20%20%20%20%20syst2%20%3D%20Protein(beta%3Dbeta)%0A%20%20%20%20%20%20%20%20syst3%20%3D%20Protein(beta%3Dbeta)%0A%0A%20%20%20%20%20%20%20%20%23%20Apply%20the%20creation%20and%20destruction%20laws%20for%20the%20mRNA%0A%20%20%20%20%20%20%20%20react_1%20%3D%20mRNA(m%3Dsyst1.m%2C%20p%3Dsyst3.p%2C%20alpha%3Dalpha%2C%20alpha_0%3Dalpha_0%2C%20n%3Dn)%0A%20%20%20%20%20%20%20%20react_2%20%3D%20mRNA(m%3Dsyst2.m%2C%20p%3Dsyst1.p%2C%20alpha%3Dalpha%2C%20alpha_0%3Dalpha_0%2C%20n%3Dn)%0A%20%20%20%20%20%20%20%20react_3%20%3D%20mRNA(m%3Dsyst3.m%2C%20p%3Dsyst2.p%2C%20alpha%3Dalpha%2C%20alpha_0%3Dalpha_0%2C%20n%3Dn)%0A%0A%20%20%20%20return%20(EfficientRepressilator%2C)%0A%0A%0A%40app.cell(hide_code%3DTrue)%0Adef%20_()%3A%0A%20%20%20%20mo.md(r%22%22%22%0A%20%20%20%20We%20can%20simulate%20them%20by%20creating%20an%20instance%20of%20%60Simulator%60%3A%0A%20%20%20%20%22%22%22)%0A%20%20%20%20return%0A%0A%0A%40app.cell%0Adef%20_(EfficientRepressilator%2C%20Repressilator%2C%20Simulator%2C%20np%2C%20plt)%3A%0A%20%20%20%20sim_2%20%3D%20Simulator(Repressilator)%0A%20%20%20%20sim_2.solve(save_at%3Dnp.linspace(0%2C%2010%2C%20100)).to_dataframe().plot(title%3D%22Normal%22)%0A%20%20%20%20plt.show()%0A%20%20%20%20sim_3%20%3D%20Simulator(EfficientRepressilator)%0A%20%20%20%20sim_3.solve(save_at%3Dnp.linspace(0%2C%2010%2C%20100)).to_dataframe().plot(title%3D%22Effiecient%22)%0A%20%20%20%20plt.show()%0A%20%20%20%20return%20(sim_2%2C)%0A%0A%0A%40app.cell(hide_code%3DTrue)%0Adef%20_()%3A%0A%20%20%20%20mo.md(r%22%22%22%0A%20%20%20%20And%20we%20get%20the%20same%20output%20from%20both.%20We%20disappointingly%20don't%20get%20oscillations%20since%20all%20initial%20conditions%20are%20equal.%20We%20can%20change%20them%20by%20passing%20a%20%60values%60%20dictionary%20to%20%60solve%60%3B%20it%20can%20also%20include%20values%20for%20parameters%20such%20as%20%24%5Calpha%24.%0A%20%20%20%20%22%22%22)%0A%20%20%20%20return%0A%0A%0A%40app.cell%0Adef%20_(Repressilator%2C%20np%2C%20sim_2)%3A%0A%20%20%20%20sim_2.solve(%0A%20%20%20%20%20%20%20%20save_at%3Dnp.linspace(0%2C%20100%2C%201000)%2C%0A%20%20%20%20%20%20%20%20values%3D%7B%0A%20%20%20%20%20%20%20%20%20%20%20%20Repressilator.m1%3A%201%2C%0A%20%20%20%20%20%20%20%20%20%20%20%20Repressilator.m2%3A%202%2C%0A%20%20%20%20%20%20%20%20%20%20%20%20Repressilator.m3%3A%203%2C%0A%20%20%20%20%20%20%20%20%20%20%20%20Repressilator.p1%3A%204%2C%0A%20%20%20%20%20%20%20%20%20%20%20%20Repressilator.p2%3A%205%2C%0A%20%20%20%20%20%20%20%20%20%20%20%20Repressilator.p3%3A%206%2C%0A%20%20%20%20%20%20%20%20%20%20%20%20Repressilator.alpha%3A%20200%2C%0A%20%20%20%20%20%20%20%20%20%20%20%20Repressilator.beta%3A%205%2C%0A%20%20%20%20%20%20%20%20%7D%2C%0A%20%20%20%20).to_dataframe().plot()%0A%20%20%20%20return%0A%0A%0A%40app.cell(hide_code%3DTrue)%0Adef%20_()%3A%0A%20%20%20%20mo.md(r%22%22%22%0A%20%20%20%20%23%23%20Analysis%0A%20%20%20%20Poincare%20includes%20capabilities%20for%20a%20number%20of%20analysis%20methods%2C%20including%20the%20search%20for%20stead%20states%2C%20bistability%2C%20or%20limit%20cycles.%0A%20%20%20%20In%20this%20case%20we%20can%20use%20the%20%60Oscillations%60%20class%20to%20do%20a%20parameter%20sweep%20and%20see%20how%20the%20period%20changes.%0A%20%20%20%20%22%22%22)%0A%20%20%20%20return%0A%0A%0A%40app.cell%0Adef%20_(Repressilator%2C%20Simulator%2C%20np)%3A%0A%20%20%20%20from%20poincare%20import%20Oscillations%0A%0A%20%20%20%20sim2%20%3D%20Simulator(Repressilator(m1%3D1%2C%20m2%3D2%2C%20m3%3D3%2C%20p1%3D1%2C%20p2%3D2%2C%20p3%3D3%2C%20alpha%3D200))%0A%20%20%20%20%23%20Default%20inital%20conditions%20and%20values%20can%20also%20be%20changed%20at%20from%20Simulator%20creation%0A%20%20%20%20osc%20%3D%20Oscillations()%0A%20%20%20%20result_2%20%3D%20osc.sweep(%0A%20%20%20%20%20%20%20%20sim2%2C%0A%20%20%20%20%20%20%20%20rel_time%3D60%2C%20%20%23%20Estimated%20upper%20bound%20on%20relaxation%20time%0A%20%20%20%20%20%20%20%20T_min%3D1%2C%20%20%23%20Minimum%20period%20expected%0A%20%20%20%20%20%20%20%20T_max%3D20%2C%20%20%23%20Maximum%20period%20expected%0A%20%20%20%20%20%20%20%20variables%3DRepressilator.m1%2C%20%20%23%20Variable%20to%20look%20at%2C%20can%20be%20an%20iterable%20with%20multiple%20variables%0A%20%20%20%20%20%20%20%20parameter%3DRepressilator.beta%2C%0A%20%20%20%20%20%20%20%20values%3Dnp.linspace(5%2C%2020%2C%2015)%2C%0A%20%20%20%20)%0A%0A%20%20%20%20result_2.sel(quantity%3D%22period%22).to_dataframe().plot(%0A%20%20%20%20%20%20%20%20style%3D%22--.%22%0A%20%20%20%20)%20%20%23%20Parameter%20to%20sweep%20%20%23%20Values%20taken%20on%20by%20parameter%0A%20%20%20%20return%20(result_2%2C)%0A%0A%0A%40app.cell(hide_code%3DTrue)%0Adef%20_()%3A%0A%20%20%20%20mo.md(r%22%22%22%0A%20%20%20%20We%20get%20a%20warning%20for%20a%20parameter%20value%20for%20which%20it%20couldn't%20be%20verified.%20The%20result%20also%20see%20includes%20the%20amplitude%20of%20the%20oscillation%20and%20the%20rms%20difference%20between%20periods%20to%20get%20another%20check%20on%20if%20the%20the%20system%20is%20actually%20oscillating.%0A%20%20%20%20%22%22%22)%0A%20%20%20%20return%0A%0A%0A%40app.cell%0Adef%20_(result_2)%3A%0A%20%20%20%20result_2.sel(quantity%3D%5B%22amplitude%22%5D).to_dataarray().plot(marker%3D%22.%22)%0A%20%20%20%20result_2.sel(quantity%3D%5B%22difference_rms%22%5D).to_dataarray().plot(marker%3D%22.%22)%0A%20%20%20%20return%0A%0A%0A%40app.cell(hide_code%3DTrue)%0Adef%20_()%3A%0A%20%20%20%20mo.md(r%22%22%22%0A%20%20%20%20For%20more%20information%20on%20%60Oscillations%60%20and%20other%20methods%20see%20poincare's%20notebook%20on%20%5Basymptotic%20behaviour%20and%20parameter%20sweeps%5D(https%3A%2F%2Fcolab.research.google.com%2Fgithub%2Fdyscolab%2Fpoincare%2Fblob%2Fmain%2Fdocs%2FAsymptotic_behaviour.ipynb).%0A%20%20%20%20%22%22%22)%0A%20%20%20%20return%0A%0A%0Aif%20__name__%20%3D%3D%20%22__main__%22%3A%0A%20%20%20%20app.run()%0A
7d7e4f0ca9d184391283bc793372aa34