Author Topic: Volvox  (Read 24616 times)

Offline shvarz

  • Moderator
  • Bot God
  • *****
  • Posts: 1341
    • View Profile
Volvox
« on: March 10, 2005, 11:35:41 AM »
So, you want to make a multicellular bot?  Here is the simplest known multicellular organism with complete division of labor: Volvox!  
- It is a ball of cells consisting of two cell types.  
- It does not have a pre-determined body plan.
- Cells in volvox act together to achieve common goal.
- It protects offspring until it is big enough to duke it out on its own.
- It is a veggie.

Can we make Volvox in DBs?

Just some links for you to get more sense of what volvox is:

Some pictures and basic info

Some movies of Volvox in action

Finally, just some copy-paste for your reading and enjoyment:

What is Volvox? The name comes from the Latin volvere, to roll, and -ox, as in atrox, fierce. Volvox is a spherical multicellular green alga, which contains many small biflagellate somatic cells and a few large, non-motile reproductive cells called gonidia, and swims with a characteristic rolling motion.

Ever since van Leeuwenhoek first viewed these algal ‘fierce rollers’ with utter fascination in 1700, one biologist after another has pointed to Volvox as a model organism that could be used to support or refute some important biological concept of the day, such as spontaneous generation, preformation, epigenesis, the continuity of the germ plasm, and so on. All attempts to exploit Volvox as a laboratory model system failed, however, until the 1960s, when Richard Starr's group finally discovered a medium in which the organism would thrive and reproduce in captivity. Starr then circled the globe, bringing into culture all 18 known (and several previously unknown) Volvox species. By 1970, he concluded that a mating pair of isolates of V. carteri from Japan had the best combination of properties to serve as a genetic model system. Most studies of Volvox reported in the last 30 years have used those strains of V. carteri or their descendants, and so this guide will be similarly restricted in scope.

How does Volvox reproduce? Although V. carteri has a sexual cycle that can be induced and exploited for Mendelian analysis, the sexual cycle is not used for reproduction in nature; it is used to produce dormant, diploid zygotes that are able to survive adverse conditions. During all active phases, Volvox (like other green algae) is haploid and reproduces asexually.

In V. carteri, an asexual cycle begins when each mature gonidium initiates a rapid series of cleavage divisions, certain of which are visibly asymmetric and produce large gonidial initials and small somatic initials. The fully cleaved embryo contains all of the cells of both types that will be present in an adult, but it is inside out, and to achieve the adult configuration it must turn right-side-out in a gastrulation-like process called inversion. Cleavage and inversion together take about 8 hours, and the complete asexual cycle takes precisely two days when it is synchronized by a suitable light–dark cycle.

Following inversion, both the adult spheroid and the juvenile spheroids within it increase in size (without further cell division) by depositing large quantities of a glycoprotein-based extracellular matrix. Part way through the expansion phase, the juveniles digest their way out of the parental matrix and become free-swimming. By that time, the somatic cells of the parental spheroids, having fulfilled their function, are already moribund, and will soon be history.

Thus, whereas the gonidia are non-motile and potentially immortal, the somatic cells are specialized for motility, but destined to die when they are only about four days old. This difference raises with particular clarity a central question of developmental biology: how are cells with entirely different phenotypes produced from the descendants of a single cell?

What is the genetic program for germ–soma differentiation in Volvox? In most close relatives of Volvox, all cells first execute motility and other vegetative functions, and then they redifferentiate and engage in asexual reproduction. Mutational analysis has defined three types of gene that play the major roles in converting this ancestral program for biphasic development into a germ–soma dichotomy in V. carteri: first, the gls (ImageonidiaImageesImage) genes act during cleavage to permit asymmetric division and formation of large–small sister-cell pairs; then the regA (Imageenerator Image) gene acts in the small cells to prevent all aspects of reproductive development, while the lag (Imagete Imageonidia) genes act in the large cells to prevent formation of somatic features such as flagella and eyespots. Genetic and experimental analysis indicates that it is the difference in cell size at the end of cleavage that determines whether regA or the lag genes will be activated.
"Never underestimate the power of stupid things in big numbers" - Serious Sam

Offline Numsgil

  • Administrator
  • Bot God
  • *****
  • Posts: 7742
    • View Profile
Volvox
« Reply #1 on: March 10, 2005, 06:17:02 PM »
I think this would be a fun project to undertake, but there are a couple of things I think DB would need before we could really start.  (Feel free to correct me where warranted)

1.  Outer coverings.  Volvox seems to have what's called a "mucilage coat that surrounds the sphere".  I noticed that they also use ties, which we of course already have.

If we could introduce a new cell connective mechanism that's like a big bag for the cells, we could really simulate them.  Inside the bag maybe the environmental grid is overriden, and it could apply a mild elasticity to keep cells together.

Kind of like a disc scooting ontop of a table.  What's on top of the disc can be taken with it, without necessarily disturbing what's underneath.

This would also allow other multibot contruction using more biologic methods.  Dump massive amounts of hormone A in front of you and massive amounts of hormone B behind you.  Reproduce.  If you have more of hormone A near you, become cell A, else if you have more of hormone B, become cell B.  The sac ensures no interference from other bots doing the same near you.

2.  Protruding Flagella.  We could simulate this with ties that have no connected bot.  We could then provide any wiggle mechanics we like or can imagine (I'm not sure how it'd work to be honest.  I know how real flagella work, though, so we could always base it off of the real thing).

I think that's it.

Offline shvarz

  • Moderator
  • Bot God
  • *****
  • Posts: 1341
    • View Profile
Volvox
« Reply #2 on: March 10, 2005, 06:36:36 PM »
I actually think that these would be the minor problems.  There is no real need for mucilage in DBs, it is just something that keeps cells together.   Ties would work for that.

Flagella is just something that makes these cells move.  We don't have to simulate that - our bots move without no stinking flagella :)

The real problems are in coding the behaviour.  The program should go somthing like this:

1. Divide equally two-three times. (easy).
2. Divide non-equally a couple of times, making more small cells and just several big cells. (easy)
3. Organise into a circle. (that would be hard...).
4. Move together towards light (difficult but doable).
5. Once enough energy is accumulated by gonads (it should be easy for them - they don't do anything, just hitch a ride) - reproduce into "inside" of the circle giving most of the energy to the offspring.
6. Wait several cycles until babys "form" - die.

Organising into a circle would be quite hard and maintaining the circle if one of the cells in the cycle dies even harder.  Would require some complex detection mechanisms and cross-ties to keep the structure together.
"Never underestimate the power of stupid things in big numbers" - Serious Sam

Offline Numsgil

  • Administrator
  • Bot God
  • *****
  • Posts: 7742
    • View Profile
Volvox
« Reply #3 on: March 10, 2005, 06:52:18 PM »
The circle forming is where I think some kind of sac would be useful.  Volvox use both ties and this mucilage.  The mucilage must serve some purpose ties alone can't.  If the cells just adhere to the mucilage, they will orient themselves in a spherical shape since the mucilage, like bubbles or other other similar things, tries to become as spherical as possible.

So if we have a circular sac the volvox wannabe bot would just divide alot inside it.  Then each cell, when it's done reproducing, moves in a random direction until it hits the edge of the circular sac, then sticks to the sac.  You should end up with a roughly spherical shape.

The flagella is just a fun idea I've been playing with, waiting for a good excuse to look into.

Offline shvarz

  • Moderator
  • Bot God
  • *****
  • Posts: 1341
    • View Profile
Volvox
« Reply #4 on: March 10, 2005, 10:58:29 PM »
Hmm, the mucilage is essentially some gooey (sp?) stuff around cells that makes them stick to each other.  The easiest way to implement that is to pretend that there is an extra-layer of stuff around a bot (use slime?).  Can be defined by a slightly larger radius, like a circle around a circle.  Bots that touch each other in that radius stick together with certain force.  

But I guess it would eat CPU resources like pigs eat carrots, with all those extra collisions and forces....  But worth thinking about it anyway - all multicellular organisms create their own "matrix" for their cells.  Just a matter of time before we need it.
"Never underestimate the power of stupid things in big numbers" - Serious Sam

Offline Numsgil

  • Administrator
  • Bot God
  • *****
  • Posts: 7742
    • View Profile
Volvox
« Reply #5 on: March 11, 2005, 05:50:28 AM »
A little CPU intensive, but I've managed to speed up the simulation quite a bit, so something new that slows it down won't be as big an impact as otherwise.

Found something:  A baby volvox is called a gonium:
"Gonium: 4, 8, or 32 cells in flat plate"

Flat plate!  That's what we're trying to do anyway.  So maybe what we're really after is a gonium.

A gonium of 4 cells would probably be something like Helios.  But like the rest of our MB, Helios takes alot of commands to create the structure, and the process isn't foolproof.

So what are multicellular critters doing that we aren't?  They don't seem to carefully turn by 39.5 degrees, fire a tie, turn a bit more, etc.  There's something else going on.

As for moving,
"Swimming path: colonies rotate in a flat coenobia (Gonium)"

Hmmm....  Some tie physics is off, so things like angular momentum aren't even addressed.  After 3.0, I'll look into ties.

For reproduction:
"Autocolony formation: gonidia develop by asymmetric cell divison in the posterior part; at 8-cell stage, a pore opens; when final cell number is reached, colony inverts through pore"

Does that make sense to anyone?

Here's the first resource:
Tiny organisms.

As far as mucialge goes, here's what I have so far:

"In addition, many colonial forms have small cells, which secrete mucilage.  The mucilage is less dense than water and aids in buoyancy."
Found it here


Here's how they divide.  This makes sense, but something like this is hard to do in the current program.  How do these colonies know which direction to divide in?  


Maybe we could have 2 cell types, one circular and one square.  The square forms would allow sticking together much easier, then you can use the *.hitang (or whatever the command is) to help figure out which side to divide on.  Not perfect but a start.

Also, maybe a reproductive flag could be set that means that the parent is to create a permanent tie to the child instead of the temporary birth tie.

The problem really is that current bots are very non object oriented, but cells in real life seem to be object oriented, so the individual behaviors are independantly triggered.  What we need is a DNA where the order of the genes doesn't matter.  This doesn't have to be from within the program, it could just be a development philosophy for DNA writers.
« Last Edit: March 11, 2005, 06:25:08 AM by Numsgil »

Offline Numsgil

  • Administrator
  • Bot God
  • *****
  • Posts: 7742
    • View Profile
Volvox
« Reply #6 on: March 11, 2005, 06:09:31 AM »
Round 2:

This is a link on goniums

Note that they can be ovoid or angular.

Second Link.

This one says:
"A Gonium colony consists of 4, 8, 16 or 32 cells, held together in a disk-shape by a gelatinous matrix."

So a multicellular ogranism's matrix seems to help give it its shape, while the fibrous things that connect the cells help keep it together (?).

I'll keep researching.  How could we have a gelatinous matrix in DB?  What would it do?

The last thing we'd need is some kind of sexual reproduction (not the thing we have now, I mean a good version :P).  That's always been my pet project that I can't figure out a good idea for.
« Last Edit: March 11, 2005, 06:24:08 AM by Numsgil »

Offline SyndLig

  • Bot Neophyte
  • *
  • Posts: 36
    • View Profile
Volvox
« Reply #7 on: March 11, 2005, 11:27:19 AM »
You said something about having "circular and square" bots?  That's been something I've wanted in DB for a while (but I have no knowledge of coding.  >_>).

It would be very interesting if you could control the amount of sides on a bot to a maximum (say, 6-8), so we could have anywhere between a circular bot to a hexagonal or octogonal bot.  That could add some interesting recognitions, too, such as a bot that'll only eat triangular veggies.

Over time a bot could transform to a totally different shape, which can easily help/harm them (A bot designed for use as a square (in things like reproduction) suddenly becoming circular would most likely kill it off).

Off-topic somewhat, I know, but hey... I wasn't ever very interested in volvoxes.

Offline Numsgil

  • Administrator
  • Bot God
  • *****
  • Posts: 7742
    • View Profile
Volvox
« Reply #8 on: March 11, 2005, 11:53:21 AM »
The original DB way back when had square bots.  They were changed to circular to make them more realistic.

I can see arguments for rectangular and ovoid, but triangular?  Octogonal?

For reproduction, I think something where the two daughter cells don't take up more room than the parent did would be useful.

Like this: [ ] = a cell

1. [ ][ ][ ]
2. [ ][|][ ]
3. [ ][][][ ]
4. [ ][ ][ ][ ]

That would follow along with the physical sizes I'm giving all the cells' compnents.

Offline shvarz

  • Moderator
  • Bot God
  • *****
  • Posts: 1341
    • View Profile
Volvox
« Reply #9 on: March 11, 2005, 01:01:56 PM »
That makes sense, Nums.  Also, when cells are dividing equally there is really no "side" to which they divide.  Instead, they choose an "axis" along which to split the cells.

Here is an idea that might make creation of bots like Helios:  When two bots are tied and one of them divides, then it automatically gets ties to both parental bots.

Something like

O---O
left one divides
Code: [Select]
o---O
|  /
|/
o
Or, if they both divide on the same cycle:
Code: [Select]
o---o
|   |
o---o

Then creation of Helios-like bot would be accomplished by two simple divisions (second one synchronized).


By the way, when it is said that Volvox cells divide in a single plane, it just means that they form a single-layer sheet.  That sheet is then wrapped up somehow to form three-dimentional hollow ball.  We would have to step down in terms of dimensions - divide in single direction, then wrap the line to form a circle.
« Last Edit: March 11, 2005, 01:05:53 PM by shvarz »
"Never underestimate the power of stupid things in big numbers" - Serious Sam

Offline Numsgil

  • Administrator
  • Bot God
  • *****
  • Posts: 7742
    • View Profile
Volvox
« Reply #10 on: March 11, 2005, 01:18:38 PM »
I like the idea of ties being split to daughter cells.  Not sure how we'd decide which numbers to assign to the ties (and which one is the 'new' tie?)

The gonium actually stay in their sheet forms, which I think are much closer to the kinds of MB we'd probably be making in DB.  Volvox are very large, and might be hard to represent in 2D.

Offline PurpleYouko

  • Bot God
  • *****
  • Posts: 2556
    • View Profile
Volvox
« Reply #11 on: March 11, 2005, 04:53:43 PM »
Another problem is that in such a system, everything would become a multi-bot.

Your little alga ball would just turn into a giant mess.

In order for cells to be able to divide to make single robots, ties have to be a conciously controlled function with distance and direction. Otherwise you have to start using those arbitrary rules that are different for MB species.

Another alternative would be to give a robot the option of making temporary ties attached to it, permanent from the DNA. That might work. Something like...

cond
*.robage 0 =
start
1 .permtie store
stop

the 1 stored into permtie becomes the tie address for any and all birth ties that are converted to permanent ties.

I don't think we would need or want to have more than one existing robot tie to a young one. It would make complex structures like Hexagonis impossible since they would all be cross-linked to hell and back.

How about a command that allows a robot to tie to another bot that is within.. say 100 units in any direction, automatically. That also would allow for large amorphous structures to be formed. With a bit of thought it may be possible to use this to make complex structures too.

 :laugh:  PY  :laugh:
There are 10 kinds of people in the world
Those who understand binary.
and those who don't

:D PY :D

Offline Old Henk

  • Bot Destroyer
  • ***
  • Posts: 229
    • View Profile
Volvox
« Reply #12 on: March 12, 2005, 06:39:58 AM »
Quote
How about a command that allows a robot to tie to another bot that is within.. say 100 units in any direction, automatically. That also would allow for large amorphous structures to be formed. With a bit of thought it may be possible to use this to make complex structures too.
Good idea, but I think this should only apply to bots of the same species... Cuz' I can imagine this to be an evily awesome überpowerful weapon.  :evil:

Offline PurpleYouko

  • Bot God
  • *****
  • Posts: 2556
    • View Profile
Volvox
« Reply #13 on: March 12, 2005, 12:15:30 PM »
Yes that kind of limitation would have to be applied to some degree. This control will need to be restricted to immediate family members.

 :D  PY  :D
There are 10 kinds of people in the world
Those who understand binary.
and those who don't

:D PY :D