{ "cells": [ { "cell_type": "markdown", "id": "c4c423cb", "metadata": {}, "source": [ "# Data recording and analysis\n", "\n", "<div class=\"admonition note\">\n", "**Topics**: Spatial data saving, Data visualization, HDF5 format, XDMF format, Paraview.\n", "</div>\n", "\n", "The corresponding python script: [STEPS_Tutorial_DataSaving.py](https://github.com/CNS-OIST/STEPS_Example/tree/master/user_manual/source/API_2/scripts/STEPS_Tutorial_DataSaving.py)\n", "\n", "As we just saw in the previous chapter, recording and analyzing data can quickly become relatively code-intensive when the complexity of the model and geometry increases. In addition, it is often desirable to save the recorded data to separate files that can be read at a later time for plotting.\n", "In this chapter we will introduce database handlers that will let us record data from different simulations to a database (either [SQLite](https://www.sqlite.org/index.html) or [HDF5](https://www.hdfgroup.org/solutions/hdf5)). We will then present a specialized database handler that uses the [XDMF](https://www.xdmf.org/index.php/Main_Page) file format to easily record spatial data and visualize it with [Paraview](https://www.paraview.org/), a scientific visualization software.\n", "\n", "Required python packages for this chapter: [h5py](https://docs.h5py.org/en/latest/build.html) and [scipy](https://scipy.org/).\n", "In the second part of the chapter, it can be helpful to have installed [Paraview](https://www.paraview.org/), but it is not absolutely necessary.\n", "\n", "Some simulations in this chapter take a long time to run, the files generated by the simulations can be downloaded from the [github repository](https://github.com/CNS-OIST/STEPS_Example/raw/master/user_manual/source/data/DataSaving_HDF5_data.zip).\n", "\n", "## Well-mixed Brusselator model\n", "\n", "Since the focus will be put on the recording part of STEPS script, we will use a very simple model and geometry in this chapter. We will model the [Brusselator](https://en.wikipedia.org/wiki/Brusselator) chemical oscillator. We will first use a well-mixed geometry in order to introduce the parameter-saving capabilities of databases.\n", "\n", "The Brusselator model contains the following reactions:\n", "\\begin{equation}\n", "A \\rightarrow X\n", "\\end{equation}\n", "\n", "\\begin{equation}\n", "X \\rightarrow E\n", "\\end{equation}\n", "\n", "\\begin{equation}\n", "B + X \\rightarrow Y + D\n", "\\end{equation}\n", "\n", "\\begin{equation}\n", "2X + Y \\rightarrow 3X\n", "\\end{equation}\n", "\n", "We consider $A$ and $B$ to be in vast excess so that the reactions do not significantly change their concentrations. We can then treat them as parameters $k_A$ and $k_B$ in the first and third reactions. We also ignore product species $D$ and $E$ that are not further involved in the reactions. The reduced system is:\n", "\n", "\\begin{equation}\n", "\\varnothing \\overset{k_A}{\\rightleftarrows} X \\overset{k_B}{\\rightarrow} Y\n", "\\end{equation}\n", "\n", "\\begin{equation}\n", "2X + Y \\rightarrow 3X\n", "\\end{equation}\n", "\n", "### Declaring the STEPS model\n", "\n", "We declare the corresponding biochemical model and the well-mixed geometry as follows:" ] }, { "cell_type": "code", "execution_count": 1, "id": "a270b3c0", "metadata": {}, "outputs": [], "source": [ "import steps.interface\n", "\n", "from steps.model import *\n", "from steps.geom import *\n", "from steps.rng import *\n", "from steps.sim import *\n", "from steps.saving import *\n", "\n", "import numpy as np\n", "\n", "TF = 10\n", "CF = 5e4\n", "A = 1\n", "B = 1\n", "\n", "mdl = Model()\n", "r = ReactionManager()\n", "with mdl:\n", " X, Y = Species.Create()\n", " vsys = VolumeSystem.Create()\n", " with vsys:\n", " None <r['r1']> X >r['r2']> Y\n", " r['r1'].K = A * TF / CF, TF\n", " r['r2'].K = B * TF\n", "\n", " 2*X + Y >r['r3']> 3*X\n", " r['r3'].K = TF * (CF ** 2)\n", " \n", "geom = Geometry()\n", "with geom:\n", " comp = Compartment.Create(vsys, vol=1e-19)" ] }, { "cell_type": "markdown", "id": "f2c8c1fd", "metadata": {}, "source": [ "Note that we declare a time factor `TF` and a concentration factor `CF` to scale the values of rate constants appropriately. We thus have $k_A = A \\times \\frac{\\mathrm{TF}}{\\mathrm{CF}}$ and $k_B = B \\times \\mathrm{TF}$.\n", "As we will later want to modify the rate constants of reactions, we give them names (`'r1'`, `'r2'`, `'r3'`).\n", "\n", "We then create the simulation and setup data saving for the concentrations of `X` and `Y` in the compartment:" ] }, { "cell_type": "code", "execution_count": 2, "id": "7bf15401", "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "Model checking:\n", "No errors were found\n" ] } ], "source": [ "ENDT = 20\n", "SIM_DT = 0.05\n", "\n", "rng = RNG('mt19937', 512, 1234)\n", "\n", "sim = Simulation('Wmrk4', mdl, geom, rng)\n", "sim.setDT(5e-5)\n", "\n", "rs = ResultSelector(sim)\n", "\n", "concs = rs.comp.LIST(X, Y).Conc\n", "\n", "sim.toSave(concs, dt=SIM_DT)" ] }, { "cell_type": "markdown", "id": "84c1db76", "metadata": {}, "source": [ "Instead of using `'Wmdirect'` as solver, we are using `'Wmrk4'` which is a deterministic solver implementing the 4th order [Runge-Kutta method](https://en.wikipedia.org/wiki/Runge%E2%80%93Kutta_methods). This solver requires setting an integration timestep with `sim.setDT(5e-5)`. We then specify that the concentrations of `X` and `Y` should be saved every `SIM_DT=0.05` seconds, as we did in previous chapters.\n", "\n", "### Parameter and data saving with databases\n", "\n", "In order to investigate the effects of parameters $A$ and $B$ on the behaviour of the system, we will run several simulations with different values of these parameters. STEPS allows users to save results from groups of runs, along with their parameters, to a database. In order to do so, we need to use a database handler class. Currently, STEPS implements two of them:\n", "- [SQLiteDBHandler](API_saving.rst#steps.API_2.saving.SQLiteDBHandler) that saves to an [SQLite](https://www.sqlite.org/index.html) database;\n", "- and [HDF5Handler](API_saving.rst#steps.API_2.saving.HDF5Handler) that saves to an [HDF5](https://www.hdfgroup.org/solutions/hdf5) file.\n", "\n", "In this chapter we will use [HDF5Handler](API_saving.rst#steps.API_2.saving.HDF5Handler) but their interfaces are nearly identical, so everything we will see also applies to [SQLiteDBHandler](API_saving.rst#steps.API_2.saving.SQLiteDBHandler).\n", "In order to save to HDF5 files, STEPS uses the [h5py](https://docs.h5py.org/en/latest/build.html) python module. If you haven't already, now would be a good time to install it.\n", "\n", "Here is how the main run loop looks with HDF5Handler:" ] }, { "cell_type": "code", "execution_count": 3, "id": "646233d0", "metadata": {}, "outputs": [], "source": [ "# Simulation parameters\n", "AVals = np.linspace(0, 2, 21).round(2)\n", "BVals = np.linspace(0, 5, 21).round(2)\n", "\n", "with HDF5Handler('Brusselator_wm') as hdf:\n", " for A in AVals:\n", " for B in BVals:\n", " sim.toDB(hdf, f'WM_A{A}_B{B}', A=A, B=B)\n", "\n", " sim.newRun()\n", "\n", " sim.comp.r1.K = (A * TF / CF), TF\n", " sim.comp.r2.K = B * TF\n", " sim.comp.r3.K = TF * (CF ** 2)\n", "\n", " sim.run(ENDT)" ] }, { "cell_type": "markdown", "id": "f9217387", "metadata": {}, "source": [ "In order to save our data to an HDF5 file, we first need to create the database handler with `HDF5Handler('Brusselator_wm')`. The string corresponds to a path and file name prefix. In our case we want to create the HDF5 file in the same directory so we just provide a file prefix. If we needed to create it in another directory we would use e.g. `HDF5Handler('data/Brusselator_wm')`. Note that we provide a file prefix instead of a full file name, STEPS will add the `.h5` extension for us. When running parallel simulations (see the [corresponding chapter](STEPS_Tutorial_MPI.ipynb)), STEPS will also add information about the process that is saving the file.\n", "\n", "This database handler object is then used in a context manager block `with HDF5Handler('Brusselator_wm') as hdf:` this will allow STEPS to automatically close the file when this block is exited. We need to use the `as hdf` part to give it a name.\n", "We then write the double `for` loop that will explore all combinations of `A` and `B` parameter values.\n", "\n", "Before calling `sim.newRun()`, we need to signalize the start of a new run group to the simulation. This is done by calling `sim.toDB(hdf, f'WM_A{A}_B{B}', A=A, B=B)` which will redirect all data saving to the `hdf` database handler. We give a unique string identifier for the run group (`f'WM_A{A}_B{B}'`) and can then optionally take keyword arguments that are parameters of the run group.\n", "\n", "In this case, since the solver is deterministic, we only have one run per run group. But if we wanted several runs per run group we could write e.g.:\n", "```python\n", "NBRUNS = 10\n", "\n", "with HDF5Handler('Brusselator_stoch') as hdf:\n", " for A in AVals:\n", " for B in BVals:\n", " sim.toDB(hdf, f'Stoch_A{A}_B{B}', A=A, B=B)\n", "\n", " for r in range(NBRUNS):\n", " sim.newRun()\n", "\n", " sim.comp.r1.K = (A * TF / CF), TF\n", " sim.comp.r2.K = B * TF\n", " sim.comp.r3.K = TF * (CF ** 2)\n", "\n", " sim.run(ENDT)\n", "```\n", "As long as `sim.toDB(hdf, ...)` is not called again, all the runs are associated to the last created run group.\n", "\n", "Wrapping our simulation loop with e.g. `with HDF5Handler('Brusselator_wm') as hdf:` and calling e.g. `sim.toDB(hdf, f'WM_A{A}_B{B}', A=A, B=B)` for each run group is thus all we have to do to save our results to a database.\n", "After this block, `Brusselator_wm.h5` is written in the current directory.\n", "\n", "### Reading saved data\n", "\n", "We can now see how to open the HDF5 file and read data from it. We will first try to plot the time course of the run that had `A = 0.3` and `B = 3` as parameters.\n", "To do so, we use the same [HDF5Handler](API_saving.rst#steps.API_2.saving.HDF5Handler) database handler class:" ] }, { "cell_type": "code", "execution_count": 4, "id": "aaacc782", "metadata": {}, "outputs": [ { "data": { "image/png": "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\n", "text/plain": [ "<Figure size 720x504 with 1 Axes>" ] }, "metadata": { "needs_background": "light" }, "output_type": "display_data" } ], "source": [ "from matplotlib import pyplot as plt\n", "\n", "with HDF5Handler('Brusselator_wm') as hdf:\n", " group = hdf.get(A=0.3, B=3)\n", " \n", " concs, = group.results\n", " \n", " fig = plt.figure(figsize=(10,7))\n", " \n", " # Plot data for run 0\n", " plt.plot(concs.time[0], 1e3 * concs.data[0,:,:])\n", " \n", " plt.xlabel('Time [s]')\n", " plt.ylabel('Concentration [mM]')\n", " plt.legend(concs.labels)\n", " plt.show()" ] }, { "cell_type": "markdown", "id": "67e91934-14cf-46f3-af88-18d684c93496", "metadata": {}, "source": [ "After exiting the `with HDF5Handler('Brusselator_wm') as hdf:` block, the HDF5 file will be closed automatically. Note that it is also possible to do this manually:\n", "```python\n", "hdf = HDF5Handler('Brusselator_wm')\n", "# Retrieve and plot data...\n", "del hdf\n", "```\n", "The database handler would however need to be deleted (`del hdf`) in order to close the file.\n", "\n", "Once the `HDF5Handler` object is created, we can retrieve a specific group of runs using the `get(...)` method:\n", "```python\n", " group = hdf.get(A=0.3, B=3)\n", "```\n", "The keyword arguments should match the ones that were used in the calls to `sim.toDB(...)` earlier and should uniquely identify a run group.\n", "Alternatively, we can retrieve the same run group by using the unique identifier string we gave to `sim.toDB(...)`:\n", "```python\n", " group = hdf['Stoch_A0.3_B3']\n", "```\n", "\n", "The `group` object that is returned is an [HDF5Group](API_saving.rst#steps.API_2.saving.HDF5Group), we can access the saved result selectors with:\n", "```python\n", " concs, = group.results\n", "```\n", "`group.results` returns a list of the result selectors that were added to the simulation with the `sim.toSave(...)` method. They are returned in the order in which they were added.\n", "Since here we only added a single result selector, we use Python's tuple unpacking notation (see [python documentation](https://docs.python.org/3/tutorial/datastructures.html#tuples-and-sequences)) to attribute it to the `concs` variable.\n", "The `concs` object then behaves exactly as a result selector and we can use it in the same way we did in the previous chapter.\n", "\n", "We can thus access the data from the only run this run group contains (run 0) and plot it with:\n", "```python\n", " plt.plot(concs.time[0], 1e3 * concs.data[0,:,:])\n", "```\n", "\n", "The Brusselator model generates oscillations in both X and Y concentrations. There is an influx of X that is converted to Y at a steady rate. Y slowly accumulates until it reaches some threshold concentration after which it is rapidly transformed to X through $2X + Y \\rightarrow 3X$, the cycle then restarts again. The existence of oscillations depends on the values of parameters `A` and `B`.\n", "\n", "We can use `hdf.get(...)` to plot data from several run groups, at different values of `A` and `B`:" ] }, { "cell_type": "code", "execution_count": 5, "id": "6f539f53", "metadata": {}, "outputs": [ { "data": { "image/png": "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\n", "text/plain": [ "<Figure size 720x720 with 16 Axes>" ] }, "metadata": { "needs_background": "light" }, "output_type": "display_data" } ], "source": [ "pltAVals = [0.3, 0.5, 1, 1.5]\n", "pltBVals = [4, 3, 2, 1]\n", "\n", "with HDF5Handler('Brusselator_wm') as hdf:\n", " fig, axes = plt.subplots(4, 4, figsize=(10,10), sharey=True, sharex=True)\n", " \n", " # Plot data\n", " for i, B in enumerate(pltBVals):\n", " for j, A in enumerate(pltAVals):\n", " concs, = hdf.get(A=A, B=B).results\n", " axes[i][j].plot(concs.time[0], concs.data[0,:,:] * 1e3)\n", " \n", " # Add legend and labels\n", " axes[0][-1].legend(concs.labels)\n", " for k in range(4):\n", " axes[0][k].set_title(f'A = {pltAVals[k]}')\n", " axes[-1][k].set_xlabel('Time [s]', size='large')\n", " axes[k][0].set_ylabel(f'B = {pltBVals[k]}\\nConcentr. [mM]', size='large')\n", " plt.show()" ] }, { "cell_type": "markdown", "id": "5f163e37-536b-41fd-b9f3-cf2dbb2387b4", "metadata": {}, "source": [ "For a given value of `A`, oscillations only arise of `B` is high enough. We can also see that the amplitude and frequency of oscillations also depends on the parameter values.\n", "\n", "We know from theoretical analysis of the system that oscillations should only arise for $B > 1 + A^2$ ([wikipedia page](https://en.wikipedia.org/wiki/Brusselator)). We can thus try to check whether our implementation matches this.\n", "In order to do so, we will use the [filter](API_saving.rst#steps.API_2.saving.DatabaseHandler.filter) method which returns sets of run groups that satisfy the parameter values given as keyword parameters. For example, in order to get all run groups that have `A = 0.3` we would write:\n", "```python\n", "groups = hdf.filter(A=0.3)\n", "```\n", "\n", "For each `A` value in `pltAVals`, we will retrieve all corresponding runs and plot the minimum and maximum value that the Y concentration reaches during the simulation, which is like an 'enveloppe' of the oscillations:" ] }, { "cell_type": "code", "execution_count": 6, "id": "78700301", "metadata": {}, "outputs": [ { "data": { "image/png": "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\n", "text/plain": [ "<Figure size 720x180 with 4 Axes>" ] }, "metadata": { "needs_background": "light" }, "output_type": "display_data" } ], "source": [ "tSkip = int(5 // SIM_DT)\n", "\n", "with HDF5Handler('Brusselator_wm') as hdf:\n", " fig, axes = plt.subplots(1, len(pltAVals), figsize=(10, 2.5), sharey=True)\n", " \n", " for A, ax in zip(pltAVals, axes):\n", " BVals = []\n", " minMaxVals = []\n", " for group in hdf.filter(A=A):\n", " BVals.append(group.B)\n", " YConc = 1e3 * group.results[0].data[0,tSkip:,1]\n", " minMaxVals.append([np.max(YConc), np.min(YConc)])\n", "\n", " Bthresh = 1 + A ** 2\n", " ax.plot(BVals, minMaxVals, 'o')\n", " ax.axvline(Bthresh, color='r')\n", " ax.set_xlabel('B Parameter [AU]')\n", " ax.set_title(f'A = {A}')\n", " axes[0].set_ylabel('Y Concentration [mM]')\n", " plt.legend(['max Y', 'min Y', '$B_{thresh}$'], loc=2)\n", " \n", "plt.show()" ] }, { "cell_type": "markdown", "id": "f8b62ec0-9bb7-4c11-bdb0-9e2c8cdc4a65", "metadata": {}, "source": [ "We restrict the data to timepoints after 5 seconds (the `tSkip` variable gives us the corresponding time index). We also plot the critical value $B_{thresh} = 1 + A^2$ as a vertical red line in each of the subplots.\n", "\n", "As expected, below the $B_{thresh} = 1 + A^2$ threshold, the minimum and maximum Y concentrations are equal, meaning the system reached a non-oscillatory equilibrium.\n", "\n", "In the code, we retrieve the value of the `B` parameter for each run group with `group.B`. In general, the values of all parameters defined in `sim.toDB(...)` are directly accessible as attributes of run groups.\n", "\n", "The order in which run groups are returned by `hdf.filter(A=A)` does not necessarily match the order in which the simulations were run. It is not a problem in our case because we plot the data with points; but if we wanted to join the points, we would have to order the run groups properly. For example, we could iterate through run groups with:\n", "```python\n", "for group in sorted(hdf.filter(A=A), key=lambda g: g.B):\n", "```\n", "Here we use the [sorted](https://docs.python.org/3.8/library/functions.html#sorted) python function with a custom ordering `key` that returns the value of the `B` parameter for each run group.\n", "\n", "Finally, we would like to visualize the amplitude and frequency of X oscillations as a function of both `A` and `B` values, in a heatmap. We thus need to fill two matrices whose rows correspond to `B` values and whose columns correspond to `A` values.\n", "One way to do it could be to iterate through all run groups in the database:\n", "```python\n", "for group in hdf:\n", " # Process group\n", " # Fill in values in matrices\n", "```\n", "The issue with this approach is that, although we have access to `A` and `B` values for each group with `group.A` and `group.B`, we do not know the indices that correspond to these values in the matrices.\n", "\n", "We will thus instead use the [parameters](API_saving.rst#steps.API_2.saving.DatabaseHandler.parameters) property of the database handler to retrieve all recorded values for parameters `A` and `B`:" ] }, { "cell_type": "code", "execution_count": 7, "id": "1c2a5c55", "metadata": {}, "outputs": [ { "data": { "image/png": "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\n", "text/plain": [ "<Figure size 720x576 with 2 Axes>" ] }, "metadata": { "needs_background": "light" }, "output_type": "display_data" }, { "data": { "image/png": "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\n", "text/plain": [ "<Figure size 720x576 with 2 Axes>" ] }, "metadata": { "needs_background": "light" }, "output_type": "display_data" } ], "source": [ "from scipy.signal import find_peaks\n", "\n", "with HDF5Handler('Brusselator_wm') as hdf:\n", " # Get all possible values of parameters A and B\n", " Avals = sorted(hdf.parameters['A'])\n", " Bvals = sorted(hdf.parameters['B'])\n", " \n", " # Compute amplitudes and frequencies of X peaks\n", " amplitudes = np.zeros((len(Avals), len(Bvals)))\n", " frequencies = np.zeros((len(Avals), len(Bvals)))\n", " for i, B in enumerate(Bvals):\n", " for j, A in enumerate(Avals):\n", " concs, = hdf.get(A=A, B=B).results\n", " time = concs.time[0,tSkip:]\n", " XConc = concs.data[0,tSkip:,0] * 1e3\n", " \n", " # Compute amplitude\n", " amplitudes[i,j] = np.max(XConc) - np.min(XConc)\n", " \n", " # Compute frequency\n", " peaks, _ = find_peaks(XConc, prominence=amplitudes[i,j] * 0.7)\n", " if len(peaks) > 1:\n", " frequencies[i,j] = 1 / np.mean(np.diff(time[peaks]))\n", " \n", "fig = plt.figure(figsize=(10, 8))\n", "plt.pcolormesh(Avals, Bvals, amplitudes)\n", "plt.plot(Avals, [(1 + A ** 2) for A in Avals], '-r')\n", "plt.plot(*np.meshgrid(pltAVals, pltBVals), '*', color='orange')\n", "plt.xlabel('A Parameter [AU]')\n", "plt.ylabel('B Parameter [AU]')\n", "plt.title('Amplitude')\n", "plt.colorbar(label='Amplitude [uM]')\n", "\n", "fig = plt.figure(figsize=(10, 8))\n", "plt.pcolormesh(Avals, Bvals, frequencies, cmap=plt.get_cmap('cividis'))\n", "plt.plot(Avals, [(1 + A ** 2) for A in Avals], '-r')\n", "plt.plot(*np.meshgrid(pltAVals, pltBVals), '*', color='orange')\n", "plt.xlabel('A Parameter [AU]')\n", "plt.ylabel('B Parameter [AU]')\n", "plt.colorbar(label='Frequency [Hz]')\n", "plt.title('Frequency')\n", "\n", "plt.show()" ] }, { "cell_type": "markdown", "id": "731f2a31-6fe2-4e3a-8604-bd41b3426d71", "metadata": {}, "source": [ "The values returned by e.g. `hdf.parameters['A']` are not necessarily ordered, we first order them with the `sorted` function.\n", "We then create two numpy matrices with the correct dimensions and iterate through all run groups with a double `for` loop and a call to `hdf.get(A=A, B=B).results` to retrieve the result selector for each run group.\n", "\n", "As before, we only consider the timepoints after 5 seconds. Amplitudes are computed by the difference between the maximum and minimum concentrations of X.\n", "Peaks in X concentration are detected with the [find_peaks](https://docs.scipy.org/doc/scipy/reference/generated/scipy.signal.find_peaks.html) function, from the `scipy.signal` module. We then compute the average time between two peaks (with `np.mean(np.diff(time[peaks]))`) and compute the frequency from this value.\n", "\n", "On Both plots, we add the $B_{thresh} = 1 + A^2$ line as a red line and orange stars on run groups that we plotted earlier. As expected, oscillations only arise above the line with higher frequency for high `A` values and higher amplitude when `B` is significantly above threshold.\n", "\n", "### Reading data from multiple HDF5 files\n", "\n", "In this chapter, all simulations for each parameter combination were run in a single python process, writing to a single HDF5 file. This can be too slow if individual simulations take a substantial time to finish. It is thus very common to split parameter exploration across several python processes; since the HDF5 format does not support concurrent writing from several python processes, we would need to write the data to different HDF5 files. Processing the full data would then require loading the individual HDF5 files and collating them somehow. This can be achieved by using the [HDF5MultiFileReader](https://steps.sourceforge.net/manual/API_2/API_saving.html#steps.API_2.saving.HDF5MultiFileReader) database handler:\n", "\n", "```python\n", "with HDF5MultiFileReader('/path/to/folder/', recursive=True) as hdf:\n", " # Access data as if it was all contained in one file\n", " # hdf.get(...)\n", "```\n", "\n", "Instead of giving a path prefix to a single HDF5 file, we give a path to the folder that contains the files we wish to open. If `recursive` is set to `True`, it will also open all HDF5 files in nested subfolders. The `hdf` database handler object then works in the same way as the `HDF5Handler` would. More information is available in the [API reference](https://steps.sourceforge.net/manual/API_2/API_saving.html#steps.API_2.saving.HDF5MultiFileReader).\n", "\n", "## Spatial Brusselator model\n", "\n", "The corresponding python script: [STEPS_Tutorial_DataSaving_square.py](https://github.com/CNS-OIST/STEPS_Example/tree/master/user_manual/source/API_2/scripts/STEPS_Tutorial_DataSaving_square.py)\n", "\n", "We now move to simulating the same model but on a tetrahedral mesh with the stochastic `'Tetexact'` solver. We will only look at runs with $A = 0.3$ and $B = 3$ so that the frequency of X oscillations is low enough to see the spatial propagation of waves of species X and the amplitude high enough to not be drowned in noise (since we will use a stochastic solver).\n", "\n", "We declare the corresponding model, which is basically identical to the well-mixed one except for the addition of two diffusion rules for species X and Y:" ] }, { "cell_type": "code", "execution_count": 8, "id": "87ba9673", "metadata": {}, "outputs": [], "source": [ "DCST = 1e-13\n", "A = 0.3\n", "B = 3\n", "\n", "mdl2 = Model()\n", "r = ReactionManager()\n", "with mdl2:\n", " X, Y = Species.Create()\n", " vsys = VolumeSystem.Create()\n", " with vsys:\n", " None <r[1]> X >r[2]> Y\n", " r[1].K = A * TF / CF, TF\n", " r[2].K = B * TF\n", "\n", " 2*X + Y >r[3]> 3*X\n", " r[3].K = TF * (CF ** 2)\n", " \n", " Diffusion(X, DCST)\n", " Diffusion(Y, DCST)" ] }, { "cell_type": "markdown", "id": "3c89284d-1565-43eb-acd8-927064468c3c", "metadata": {}, "source": [ "### 2D simulation\n", "\n", "We will first simulate this model on a flat square mesh and record the concentration of species X and Y in all tetrahedrons of the mesh:" ] }, { "cell_type": "code", "execution_count": 9, "id": "add1ed74", "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "Model checking:\n", "No errors were found\n" ] } ], "source": [ "ENDT = 1.5\n", "SIM_DT = 0.01\n", "\n", "mesh = TetMesh.LoadGmsh('meshes/square_9k.msh', scale=1e-6)\n", "with mesh:\n", " comp = Compartment.Create(mesh.tets, vsys)\n", " \n", "rng = RNG('mt19937', 512, 1234)\n", "\n", "sim = Simulation('Tetexact', mdl2, mesh, rng)\n", "\n", "rs = ResultSelector(sim)\n", "\n", "concs = rs.TETS().LIST(X, Y).Conc\n", "\n", "sim.toSave(concs, dt=SIM_DT)" ] }, { "cell_type": "markdown", "id": "a6c885e1-598d-4991-b22e-8b6888823086", "metadata": {}, "source": [ "Before running the simulation, we need to decide how data will be recorded. One possibility would be to use an `HDF5Handler`, like we did in this chapter, and handle the plotting of spatial data manually, either with [matplotlib-3d](https://github.com/rougier/matplotlib-3d), [pyvista](https://docs.pyvista.org/), or some other external 3D plotting library.\n", "The other possibility is to record the data with an `XDMFHandler` instead of an `HDF5Handler`. The `XDMFHandler` saves result selector data to an HDF5 file but also saves relevant mesh data in the HDF5 file. In addition, it creates `.xmf` [XDMF](https://www.xdmf.org/index.php/Main_Page) files that describe the spatial structure of the data; these files can then be oppened by scientific visualization softwares like [Paraview](https://www.paraview.org/).\n", "\n", "In this chapter, we will cover the usage of `XDMFHandler` from data recording to visualization with Paraview. We thus run our simulation on our flat square mesh and record the data with an `XDMFHandler`:" ] }, { "cell_type": "code", "execution_count": 10, "id": "079659a7-1e5c-44fc-b71c-a208966c6cf3", "metadata": {}, "outputs": [], "source": [ "with XDMFHandler('Brusselator_square') as hdf:\n", " sim.toDB(hdf, f'square_A{A}_B{B}_D{DCST}', A=A, B=B, DCST=DCST)\n", "\n", " sim.newRun()\n", " \n", " sim.comp.X.Conc = 5e-6\n", " sim.comp.Y.Conc = 1.4e-4\n", "\n", " sim.run(ENDT)" ] }, { "cell_type": "markdown", "id": "91aaa816-fa1f-4f5b-9dd5-27638cf13bbd", "metadata": {}, "source": [ "Note that, regarding data saving code, the only modification is the use of `XDMFHandler` instead of `HDF5Handler` as well as different file prefix and unique run identifier. \n", "We set the initial conditions to values that are close to the first oscillation, so that we do not have to wait for 5 seconds before any X oscillations (see the first plot).\n", "\n", "### Loading the data with Paraview\n", "\n", "After running the simulation, we have two new files in the current directory:\n", "\n", "- `Brusselator_square.h5` that contains the result selector data and additional mesh information. This file can be then be loaded with a `HDF5Handler` to retrieve the result selector data.\n", "- `square_A0.3_B3_D1e-13_Run0_rank0.xmf`, an [XDMF](https://www.xdmf.org/index.php/Main_Page) file that describe the data corresponding to the run 0 of the `square_A0.3_B3_D1e-13` run group. You can ignore the `_rank0` part for now, it only plays a role when running distributed simulations. This file can be opened by [Paraview](https://www.paraview.org/) to visualize the simulation.\n", "\n", "Note that if we simulated several runs, we would have an XDMF file for each run.\n", "\n", "If you did not install [Paraview](https://www.paraview.org/) on your machine, you can skip to the [next section](#Visualizing-the-data-with-Paraview). Otherwise, launch [Paraview](https://www.paraview.org/), go to \"File\" $\\rightarrow$ \"Open\" and select the `square_A0.3_B3_D1e-13_Run0_rank0.xmf` file (if you did not run the code on your machine, you can download both `.h5` and `.xmf` file from the [github repository](https://github.com/CNS-OIST/STEPS_Example/raw/master/user_manual/source/data/DataSaving_HDF5_data.zip)).\n", "\n", "Depending on your version of Paraview, you might be asked to select a file reader. If so, choose the \"XDMF Reader\" option.\n", "\n", "You should now see the file as a data source in the paraview pipeline (top left pane):\n", "\n", "<img src=\"images/paraview_pipeline_1.png\"/>\n", "\n", "Click on the green \"Apply\" button to confirm the loading of the file:\n", "\n", "<img src=\"images/paraview_load_apply.png\"/>\n", "\n", "You should then see something like this:\n", "\n", "<img src=\"images/paraview_file_loaded_1.png\"/>\n", "\n", "The mesh is displayed and tetrahedrons are colored according to the concentration of X species (1) at time 0 (2).\n", "We can edit the colormap by clicking on the \"Edit Color Map\" button (3) or with \"View\" $\\rightarrow$ \"Color Map Editor\".\n", "Let us now change the colormap:\n", "\n", "<img src=\"images/paraview_colormap_1.png\"/>\n", "\n", "Select the \"Turbo\" colormap (1), click on the \"Rescale to data range over all timesteps\" button (2) and close the colormap editor (3).\n", "The colormap is initially scaled to the values of X concentrations at time 0, which is a very narrow range. Clicking on (2) rescales it by considering all timesteps in the simulation.\n", "\n", "We can now play the simulation:\n", "\n", "<img src=\"images/paraview_animation_1.png\"/>\n", "\n", "We can control the timestep being displayed by the buttons in (1). Try the \"Play\" button for example. It is also possible to display which timestep is curently being viewed by opening the animation view (2) \"View\" $\\rightarrow$ \"Animation View\". You can then drag around the cursor (3) and visualize different timesteps.\n", "\n", "### Visualizing the data with Paraview\n", "\n", "If you do not have Paraview installed on your machine, here is a web version of the visualization of our simulation:\n", "\n", "<div class=\"ParaviewFrameWrapper\">\n", "<iframe src=\"https://kitware.github.io/paraview-glance/app?name=square.vtkjs&url=https://raw.githubusercontent.com/CNS-OIST/STEPS_Example/master/user_manual/source/data/square_A0.3_B3_D1e-13_Run_0.vtkjs\" class=\"ParaviewFrame\" id=\"Glance_1\" style=\"display:none;\">\n", "</iframe>\n", "<script type=\"text/javascript\" language=\"javascript\">\n", " setTimeout(function() {document.getElementById(\"Glance_1\").style.display = \"block\";}, 2000);\n", "</script>\n", "</div>\n", "\n", "The simulation can be played by opening the menu (1), switching to the \"GLOBAL\" tab (2), and clicking on the Play button (3):\n", "\n", "<img src=\"images/web_paraview_1.png\"/>\n", "\n", "In the \"DATASETS\" tab, the data plotted on the mesh can be changed (\"Color By\" option).\n", "\n", "With Paraview, the data from STEPS simulations can be directly visualized. But, although this is not the focus of this chapter, Paraview can also be used to analyze the data. The interested reader can refer to the [Paraview guide](https://docs.paraview.org/en/latest/) for more information.\n", "\n", "### 3D simulation\n", "\n", "The corresponding python script: [STEPS_Tutorial_DataSaving_box.py](https://github.com/CNS-OIST/STEPS_Example/tree/master/user_manual/source/API_2/scripts/STEPS_Tutorial_DataSaving_box.py)\n", "\n", "Our previous simulation on a flat square mesh was relatively easy to visualize, we just needed to see the surface of the mesh. As a demonstration of the usefulness of Paraview filters to visualize fully 3D STEPS simulations, we will run the same model but this time on a cubic mesh:" ] }, { "cell_type": "code", "execution_count": 11, "id": "ec3a0fe6", "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "Model checking:\n", "No errors were found\n" ] } ], "source": [ "ENDT = 1.5\n", "SIM_DT = 0.01\n", "\n", "mesh = TetMesh.LoadGmsh('meshes/box_110k.msh', scale=1e-6)\n", "with mesh:\n", " comp = Compartment.Create(mesh.tets, vsys)\n", " \n", "rng = RNG('mt19937', 512, 1234)\n", "\n", "sim = Simulation('Tetexact', mdl2, mesh, rng)\n", "\n", "rs = ResultSelector(sim)\n", "\n", "concs = rs.TETS().LIST(X, Y).Conc\n", "\n", "sim.toSave(concs, dt=SIM_DT)\n", "\n", "options = dict(compression=\"gzip\", compression_opts=9)\n", "\n", "with XDMFHandler('Brusselator_box', hdf5DatasetKwArgs=options) as hdf:\n", " sim.toDB(hdf, f'box_A{A}_B{B}_D{DCST}', A=A, B=B, DCST=DCST)\n", "\n", " sim.newRun()\n", " \n", " sim.comp.X.Conc = 5e-6\n", " sim.comp.Y.Conc = 1.6e-4\n", "\n", " sim.run(ENDT)" ] }, { "cell_type": "markdown", "id": "aa91c9a7-2cbc-4a05-bed7-0ff8bdda61d5", "metadata": {}, "source": [ "Since the there will be much more data to save, we use the `hdf5DatasetKwArgs` keyword argument that is a dictionnary of options given to HDF5 datasets (see the [corresponding h5py documentation](https://docs.h5py.org/en/stable/high/group.html#h5py.Group.create_dataset)). In our case, we want to enable \"gzip\" compression with the highest compression level (see the [h5py documentation](https://docs.h5py.org/en/stable/high/dataset.html#dataset-compression) for other compression options).\n", "\n", "Note that this simulation takes much more time to run than the previous one, since it has roughly 10 times more tetrahedrons. You can download the resulting files (`Brusselator_box.h5` and `box_A0.3_B3_D1e-13_Run0_rank0.xmf`) from the [github repository](https://github.com/CNS-OIST/STEPS_Example/raw/master/user_manual/source/data/DataSaving_HDF5_data.zip).\n", "\n", "### Loading the data\n", "\n", "If you did not install [Paraview](https://www.paraview.org/) on your machine, you can skip to the [next section](#Visualizing-the-data).\n", "\n", "Launch Paraview and load the `box_A0.3_B3_D1e-13_Run0_rank0.xmf` file like we did previously. After editing the colorbar, you should see the box and be able to visualize the simulation:\n", "\n", "<img src=\"images/paraview_file_loaded_box.png\"/>\n", "\n", "Set the opacity (1) to 0.5. As you can see, this does not allow us to see inside the mesh, it only makes the surface of the mesh transparent, which will be needed to see the filters we will add. We will add filters that compute the [isosurface](https://en.wikipedia.org/wiki/Isosurface) (or contour) for `X.Conc = 5e-5`. In this way, we will be able to see the propagating waves inside the mesh.\n", "\n", "First select the data source (2) and do \"Filters\" $\\rightarrow$ \"Search...\" (or Ctrl + Space). This opens a small window that allows you to search for a filter to apply to the selected data. Type \"cell data\" and select the \"Cell Data to Point Data\" filter:\n", "\n", "<img src=\"images/paraview_celldata_filter.png\"/>\n", "\n", "Hit Enter and click \"Apply\". This filter converts our data that is centered on tetrahedrons, to data centered on vertices. This steps is necessary for computing the isosurface since the \"Contour\" filter only operates on point data.\n", "\n", "Select \"CellDataToPointData1\" in the pipeline and add the \"Contour\" filter to it: Ctrl + Space, type \"contour\", and select the \"Contour\" filter:\n", "\n", "<img src=\"images/paraview_contour_filter.png\"/>\n", "\n", "This should open the contour filter settings:\n", "\n", "<img src=\"images/paraview_contour_box.png\"/>\n", "\n", "Edit the contour value (1) to 5e-5 and hit the \"Apply\" button (2). You should now be able to see the added contour through the transparent mesh surface:\n", "\n", "<img src=\"images/paraview_contour_settings_box.png\"/>\n", "\n", "Check that both the original data source and the contour filters are visible (1) by clicking on the eye icon to their left. Change the coloring of the contour to \"Y.Conc\" (2) so we can see the concentration of Y on the surfaces on which X.Conc = 5e-5.\n", "\n", "### Visualizing the data\n", "\n", "The end result should look something like this:\n", "\n", "<div class=\"ParaviewFrameWrapper\">\n", "<iframe src=\"https://kitware.github.io/paraview-glance/app?name=square.vtkjs&url=https://raw.githubusercontent.com/CNS-OIST/STEPS_Example/master/user_manual/source/data/box_A0.3_B3_D1e-13_Run_0.vtkjs\" class=\"ParaviewFrame\" id=\"Glance_2\" style=\"display:none;\">\n", "</iframe>\n", "<script type=\"text/javascript\" language=\"javascript\">\n", " setTimeout(function() {document.getElementById(\"Glance_2\").style.display = \"block\";}, 2000);\n", "</script>\n", "</div>\n", "\n", "We can see that there are two [isosurfaces](https://en.wikipedia.org/wiki/Isosurface), in front and behind any wavefront. The surface in front of the wavefront is associated with high Y concentrations, and the surface behind the wavefront is associated with low Y concentrations since the Y species were converted to X during the wave." ] } ], "metadata": { "kernelspec": { "display_name": "Python 3 (ipykernel)", "language": "python", "name": "python3" }, "language_info": { "codemirror_mode": { "name": "ipython", "version": 3 }, "file_extension": ".py", "mimetype": "text/x-python", "name": "python", "nbconvert_exporter": "python", "pygments_lexer": "ipython3", "version": "3.10.12" } }, "nbformat": 4, "nbformat_minor": 5 }