Macrophage simulation

While discussing some of my programming projects in the pub, I mentioned using biological approaches to creating a Artificial Intelligence to play Go. I was initially thinking of evolving solutions, but the conversation gradually moved into a biological analogy for Go: two teams of macrophages, one black, one white, trying to engulf one another. We thought that this might be turned into a game of Fighting Macrophages in which players own a macrophage that they can evolve or design and then make them fight one another.

Later, I actually made a start on the idea and tried to simulate a cell and its cytoskeleton. The basis of the simulation was my particle simulation, and I started with several particles that repel one another but were linked in a loop by spring-like interactions. With a sufficient number of particles, the cell was reasonably circular. However, the loop particles has no solidity; it can easily be twisted and looped. Some semblance of solidity could be created by adding a cytoskeleton.

Simulated macrophage being dragged quicklySimulated macrophage with its cytoskeleton centre outside

The cytoskeleton consisted of a single particle in the centre of the cell representing a microtubule-organising centre, joined to each of the other particles by a longer interactions representing microtubules. In this simulation it a lot harder to make the membrane loop, though it can twist along the trailing edge if the cell is dragged quickly. It's also possible to pull the central particle out of cell, creating a crescent-shaped cell. In the screen shots, the circles are particles and the vertices are spring-like interactions that represent either the cell membrane or the cytoskeleton. In the second image, the cytoskeleton is not displayed for simplicity.

I spent some time searching the literature for a model of how macrophages move by extending pseudopodia, but couldn't find any explanation than was both comprehensible and sufficiently detailed. My model, based on no scientific evidence whatsoever, is:

  • Each membrane particle will have a receptor
  • The more chemoattractant a receptor detects, the faster the microtubules from that particle will grow
  • All microtubules will be shortened to maintain the total length of microtubules in the cell (or I could model free tubulin monomers and have a more sophisticate microtubule growth simulation)
  • If a microtubule becomes too long then a new microtubule-organising centre will form somewhere along its length
  • Microtubule-organising centres radiating only very short microtubules will be removed

I've started to experiment with having a second microtubule-organising centre. The problem is working out which of the membrane particle each centre is associated with and how the two centres interact. I currently have two centres joined by a single microtubule whose length I can alter. If I keep increasing the length of this microtubule the cell looks like it is in the process of division. However, the two part of the cell can never separate and join between them just get narrower and narrower.

Screen shot of the macrophage simulation

Update here.


I love your idea it would be neat to play.

Post new comment

The content of this field is kept private and will not be shown publicly.