Modeling advection in Morpheus

Morpheus has always provided solvers for reaction-diffusion systems. However, for many biological problems, it is crucial to model the transport of some substance using advection equations. These, however, require specific solvers.

A simple approach to solving advection equations is now implemented and available in a special branch of our repository.

Examples

In its simplest form, this enables you to model the transport of this Gaussian distributed substance:

 

If advection is combined with diffusion, it can be used to model convection:

 

Of course, it can also be simulated in higher spatial dimensions. Here, we combine the classical Meinhardt-Gierer model with advection (and no-flux boundary combination for +x and -x boundaries):

 

In line with the Morpheus spirit of integrative multi-scale modeling, you can also combine this with cell-based models. For instance, by having a cell (the discretized circle) secreting a convective inhibitor species (left = activator, right = inhibitor):

Although not shown here, the same also works for motile cells.

Limitations

However, there are several constraints to prevent numerical instabilities. The straight-forward implementation is based on the Lax-Friedrich numerical method for hyperbolic PDEs and all the limitations of this method apply. That is, one requires:

  • smooth initial conditions such that large spatial derivates are avoided
  • satisfaction of the following stability criterion: abs(a*dt*dx) <= 1 where a is the advection constant.

In addition, when combining it with CPM cells that “secrete” a substance into an advective Field, you will need to be sure the spatial derivates does not get too large (or rather, remains small), similar to the requirement for a smooth initial condition.

Due to these limitations, the user must take great care in ensuring numerical stability.

Source

Therefore, it is unlikely that these features will make it to the main production version of Morpheus anytime soon.

If you think you can handle this and are interested in modeling advection/convection with Morpheus, check out this branch of our repository. We may also be able to provide binaries on request. Moreover, testing models with the examples above are also available: Just drop us a line.

VtkPlotter: 3D renderings of Morpheus simulations

We have re-implemented Morpheus’ VtkPlotter that write multichannel Vtk files. Vtk files can be used to create beautiful 3D rendering to visuaize cells and tissues with tools such as ParaView and VisIt.

The XML interface for the new Analysis plugin is similar to that of the TiffPlotter. You can select a number of channels, each of which is associated with a symbolic reference (to cell properties or fields or whatever). For instance:

<VtkPlotter time-step="100">
   <Channel symbol-ref="cell.id" no-outline="true"/>
   <Channel symbol-ref="act"/>
</VtkPlotter>

This will create a single VTK file (every 100 steps) with two channels: one with the cell.id (a cell property) and one with the “act” (a Field). The no-outline option prevents the cell boundary to be plotted, such that the values of the “act” Field will be visible along the cell boundary.

Currently, it exports the simplest possible Vtk file format: the ASCII-based legacy Vtk format. In following releases, the plugin will be improved to write on binary format to reduce read/write time as well as file size.

TiffPlotter_BioView3D

Cell exported using the TiffPlotter and rendered in BioView3D. Color indicates value of MembraneProperty.

VtkPlotter_ParaView

Cell exported using VtkPlotter and rendered using ParaView. Color indicates values of MembraneProperty

 

 

 

 

 

 

 

 

 

If you are interested in the code, take a look at my gitlab repository:

Fiji with Java 6 on Mac OSX El Capitan

Update (15.01.2016): The 3D Viewer now works with Java 8. Please use the “3D” update site.

Fiji 3D Viewer crashes with Java 8

While previous Mac OSX versions had there own versions of Java, the new OSX 10.11 El Capitan guide the user to the Oracle site to install the newest Java JDK 8.

Users of Fiji or ImageJ may run into problems if they want to use 3D visualization such as the 3D Viewer. This is a known bug of the 3D viewer in combination with Java JDK 8 and should be fixed with a future release.

In the meantime, it is advised to use Java JDK 6 instead of 8. This sounds easy enough.

Install Java 6 on Mac OSX El Capitan

Oracle keeps an archive from you can download which older versions of Java. However, you will notice that none of these are suitable for Mac OSX!

Luckily, I found that Apple itself provide a legacy version of Java for 10.11 El Capitan can be downloaded here.

With this legacy version of Java, I got Fiji’s 3D Viewer as well as VolumeViewer running smoothly on El Capitan.

Lab notebook

Here, I will keep a laboratory notebook as a record of my research activities. This will include mathematical models, simulations, data analysis, interesting papers and new ideas. I am inspired by this 10 simple rules article to take the lab notebook more seriously – also as a computational biologist.

Most of these posts will be private. Occasionally, though, I will share them publicly, if the topic could be of help to others.