Algorithms and Software

3. Algorithms and Software

One possible way to populate the molecules in their respective regions is to use the following (high-level) sketch. We identify different modules that one needs to develop to accomplish the goal. There could be variants of each step and ofcourse one might possibly think of a completely different way to do the task. Therefore the following guideline is rather indicative of a possible algorithm with necessary components than a lab instruction manual.

I. Signed Distance Function representation of Geometry

Given the mesh of neuro-muscular junction, create a grid volume enclosing the mesh where every grid vertex has a scalar value that denotes its distance from the mesh. The function sampled at these vertices is the distance function. One can add a sign with the function value where + indicates that the point is outside the volume enclosed by the mesh and – indicates that it is inside.

While this produces a volume representation of the mesh, from which the mesh can be re-extracted as the 0-set by any available contouring method, this doesn’t quite serve the purpose for the geometry of the molecules obtained from Protein Data Bank. There the geometry is a schematic representation of the atoms and bonds in between. To convert them into signed distance volume one needs to do an extra step of blurring the molecule using Gaussian kernel and take the level set which produces a smooth approximation of the molecule. From the meshed level set again one can use the SDF library to generate a volume of signed distance function.


II. Thickening of Cell Membrane

Once the SDF volume of the cell membrane is created it is possible to obtain a thickness of the cell membrane geometry by taking an interval volume in the grid where one isovalue corresponds to the membrane geometry and the other isovalue produces a level set offset by a parameter from the membrane surface. The interval volume therefore corresponds to a thickness around the membrane surface. The second parameter of the interval volume guides the amount of thickness.


  • LBIE-Mesher produces an interval volume from a scalar volume.

III. Molecule Placement

In the above two steps we have created a suitable computer representation of the platform where the placement procedure can start. This process has two distinct parts – one for the placement of AchR in the thickened membrane and the other for the placement of AchE in the synaptic cleft. However the algorithm used is same and therefore we list that only under a single subsection.
Placement of a single molecule is guided by a set of parameters – Rotational and Positional. Following this set of parameters one can orient the small SDF cube (volume) of a molecule. Now the task is to penetrate the target volume and actually place it which requires a modification in the SDF volume of the neuro-muscular junction to correctly reflect the presence of the molecule so that if one performs a contouring of the level set one gets the isosurface which indicates the protruding molecule at the desired position and with the desired orientation.

Figure 1

AchR molecule, its placement parameters (intra-extra cellular extents in the cell membrane). One example embedding.

Once the placement of one molecule is achieved, the process can be repeated to place the whole set where the density is guided by another parameter. The paremeters required to place the molecules (AchR, AchE) are described below. These parameters are crucial to obtain a spatially realistic model of the whole system. So do read them carefully. More details can be found in [4](Section 4.5, page 117).

  • Orientation of AchR: The AchR molecules should be oriented in such a way that they are normal to the surface of the cell membrane. As can be seen from Figure 1 these molecules are elongated in one direction and that direction should be perpendicular to the membrane surface. The intra/extra cellular extent is also shown in Figure 1.
  • Density of AchR: There are total 91,000 AchR to be placed on the membrane surface. The density of AchR is not same though on different parts of the membrane geometry. We divide the geometry into two parts – top and middle. On the top part there will be total of 66,000 molecules and in the gorge (middle)there are total 25,000 molecules.

Figure 2

A permeable membrane near the cell membrane where the tetrameric units of AchE are to be placed. Top: A schematic diagram of one such tetrameric unit. It has a tail which punctures the cell membrane and goes inside.
Bottom: Shows a isosurface representation of the same color coded according to electrostatic properties.

Density of AchE: The density of AchE is however same all throughtout the basal lamina. There are total 59,000 AchE molecules distributed in this region. The basal lamina is situated near the cell membrane surface. For visualization, see Figure 2.


  • You need to devise an algorithm to do this part. We list some high-level implementation ideas that one might follow.
  • Every voxel in the SDF volume of the neuro-muscular junction can be flagged following their containment in the boundary of the cell membrane, the thick interval volume around the cell membrane surface, the basal lamina and the synaptic cleft. Create a datastructure that holds the small SDF volume of a molecule along with its other attributes, e.g. positional attributes etc. Each voxel then can have a list of subvolumes for every molecule that is placed within the confinement of that voxel. As we mentioned earlier, the function values at the vertices need to be modified after each placement and this can be done locally.

IV. Visualization: Level of Detail Exploration

Although listed at the end of this sketch, this part should be used to verify the correctness of your implementation in each step. We encourage that you use TexMol for the visualization. It has a very useful feature that will let you perform Level-of-Detail (LOD) visualization of the model that you build. This part will have more details after Vinay and Powei finishes incorporating their LOD viewer into TexMol.

V. Useful Tools and Libraries

You are encouraged to use some or all of the tools and libraries listed here for this project. These tools are all available from CCV Useful Links page. This list will be updated as we identify some more tools and routines available that can be useful in this process. Also we will give you more references to learn the functionalities and working principle of these tools in detail.

  • SDF Lib
  • Blurrng routine [1]
  • VolRover
  • TexMol [1]
  • LBIE-Mesher [5,6]
  • Contour Spectrum [3]
  • Fast Isocontour [2]