Options

Online chemical reaction network simulations

My new post about oscillations in the metabolism of yeast has a link to a website that simulates these oscillations:

I'd like to see more such things, since I'm looking at a lot of chemical reaction networks these days.

This evening Dara Shayda has - in just a couple hours! - created a demo that relies on the Wolfram Cloud:

I believe Mike Martin's website relies on Mathematica too.

It's great that Dara can create such a website so fast. I could add text to this and turn it into a nice little introduction to this model of glycolytic oscillations. How could we make it even nicer?

Both these websites require that you type in some numbers. It would be more intuitive to use sliders. Dara had created a website that uses sliders, but the latency makes it very frustrating to use: you can try to slide the slider, but it just sits there for a while.

Using Javascript, some of the Azimuth gang made a webpage that works on my website, uses sliders to take inputs, and uses your browser to run a simple climate model in real time:

It looks and feels great. I get the feeling that main reason people don't do more of these is that people hate doing math programming in Javascript.

So, there seems to be some tradeoff between what's quick and easy to program (which is very important) and what feels nice to the user.

Here I am only interested in things that end users can run, using a web browser or maybe even a mobile phone, without downloading any special software.

Comments

  • 1.

    John, Dara could have made a CDF version of the interactive app with sliders, which would have run on your computer and been quite fast and responsive. But the problem is that you would then need to download and install the CDF Player plugin from the Mathematica site into your browser. Some users can't be bothered with this step, which is an aspect of human nature that developers have to deal with.

    There is no difference in programming a cloud-served app versus a client-side plugin, as that is just a Mathematica deployment switch.

    Comment Source:John, Dara could have made a CDF version of the interactive app with sliders, which would have run on your computer and been quite fast and responsive. But the problem is that you would then need to download and install the CDF Player plugin from the Mathematica site into your browser. Some users can't be bothered with this step, which is an aspect of human nature that developers have to deal with. There is no difference in programming a cloud-served app versus a client-side plugin, as that is just a Mathematica deployment switch.
  • 2.

    IPython notebooks (aka Jupyter notebooks) are a nice option. If you upload them to github, you can let people run them on mybinder.org

    Here is a quick stab at the Higgins selkov model running on mybinder.org http://mybinder.org/repo/mhlr/notebooks/Higgins-Selkov.ipynb. To get the interactive sliders go to the Cell menu and select Run all.

    The plots can be made a lot prettier either by playing withe the maplotlib settings directly or by using something like the seaborn or bokeh libraries, but that is not my specialty.

    The github repo is https://github.com/mhlr/notebooks/blob/master/Higgins-Selkov.ipynb.

    Comment Source:IPython notebooks (aka Jupyter notebooks) are a nice option. If you upload them to github, you can let people run them on mybinder.org Here is a quick stab at the Higgins selkov model running on mybinder.org http://mybinder.org/repo/mhlr/notebooks/Higgins-Selkov.ipynb. To get the interactive sliders go to the _Cell_ menu and select _Run all_. The plots can be made a lot prettier either by playing withe the maplotlib settings directly or by using something like the seaborn or bokeh libraries, but that is not my specialty. The github repo is https://github.com/mhlr/notebooks/blob/master/Higgins-Selkov.ipynb.
  • 3.

    Thanks, Daniel! I'm trying to get a discussion going on the Azimuth blog now, so I'll copy your remarks over there.

    Unfortunately when I tried your "quick stab", I got

    Sorry, we're having trouble reaching the Binder service. Please keep checking the system status, and try again later.

    Hmm, but I just tried again and it's working. I'll check it out!

    Comment Source:Thanks, Daniel! I'm trying to get a discussion going on the Azimuth blog now, so I'll copy your remarks over there. Unfortunately when I tried your "quick stab", I got > Sorry, we're having trouble reaching the Binder service. Please keep checking the system status, and try again later. Hmm, but I just tried again and it's working. I'll check it out!
  • 4.

    The python-control package just crossed my path:

    The python-control package is a set of python classes and functions that implement common operations for the analysis and design of feedback control systems. The initial goal is to implement all of the functionality required to work through the examples in the textbook Feedback Systems by Astrom and Murray. A MATLAB compatibility package (control.matlab) is available that provides many of the common functions corresponding to commands available in the MATLAB Control Systems Toolbox.

    The github page is https://github.com/python-control/python-control

    Comment Source:The [python-control](http://python-control.sourceforge.net/manual/intro.html) package just crossed my path: > The python-control package is a set of python classes and functions that implement common operations for the analysis and design of feedback control systems. The initial goal is to implement all of the functionality required to work through the examples in the textbook Feedback Systems by Astrom and Murray. A MATLAB compatibility package (control.matlab) is available that provides many of the common functions corresponding to commands available in the MATLAB Control Systems Toolbox. The github page is https://github.com/python-control/python-control
Sign In or Register to comment.