Foraminifera are a phylum of mostly marine protists which produce a shell or "test" in the form of a series of linked chambers. One approach to modelling the morphology of foraminifera shells [Tyszka and Topa, Paleobiology 31(3), 522 (2005)] in two dimensions treats the chambers as overlapping circles. Let the vector from the centre of chamber $i$ to its "output" aperture be $\mathbf{r_i}$.
We start with an initial chamber (the proloculus) of unit radius and output aperture at $\mathbf{r_0} = (1,0)$.
Each chamber's radius is given by $r_{i} = GFr_{i-1}$ where $GF>1$ is the chamber expansion ratio ("growth factor").
Its orientation (the "reference growth axis") is determined by rotating $\mathbf{r_i}$ by a fixed angular amount $\Delta\Phi$.
The centre of each chamber after the first is determined by the "growth vector", $\mathbf{v_i} = TF\mathbf{r_i}$, where $TF$ is the chamber translation ratio, $0 < TF < 1$.
The output aperture of the chamber is positioned so as to minimize its distance from the input aperture (the local communication path, LCP), whilst ensuring that it does not lie within any previously-created chamber.
The script, foram.py
(available on github) defines the classes Chamber
and Foram
to represent a chamber and a foraminifera organism. The latter class grows a foraminifera by adding a requested number of chambers unless a chamber is found to fully enclose a previous chamber, in which case growth must cease. The Foram
class is initialized by providing values for $GF$, $TF$ and $\Delta\Phi$; the morphology of the foraminifera corresponding to different values of these parameters is illustrated below.
Simulated two-dimensional foraminifera with the following parameters (clockwise, from top left): (a) $GF=1.02$, $TF=0.1$, $\Delta\Phi=0$, (b) $GF=1.1$, $TF=0.7$, $\Delta\Phi=235^\circ$, (c) $GF=1.1$, $TF=0.05$, $\Delta\Phi=180^\circ$, (d) $GF=1.0$, $TF=0.6$, $\Delta\Phi=-15^\circ$, (e) $GF=1.03$, $TF=0.3$, $\Delta\Phi=-45^\circ$, (f) $GF=1.2$, $TF=0.3$, $\Delta\Phi=-5^\circ$.
An updated (January 2020) version of this class now supports colour:
Share on Twitter Share on Facebook
Comments
Comments are pre-moderated. Please be patient and your comment will appear soon.
There are currently no comments
New Comment