Author Topic: HGT  (Read 4483 times)

Offline shvarz

  • Bot God
  • *****
  • Posts: 1341
    • View Profile
HGT
« on: April 26, 2006, 06:04:00 PM »
Just wanted to get the feeling of what people think about HGT as far as needed features.

I think the mode of DNA transfer should be shots.  A new shot type containing certain amount of DNA.

I think these shots should be able to take up quite a lot of DNA, even as much as the whole genome.  We can always make it more difficult/expensive to include a lot of DNA, but it should at least be possible.

A bot should be able to specify exactly which piece of DNA it wants to put into the shot.  On the other hand, shots with random pieces of DNA should be possible to.  So I think the formation of DNA shot should be a complex command with multiple modifiers.  For example, we can allow bots to specify where the copied DNA begins and where it ends.  But if bots don't specify it, then a random piece is picked up.  If only "start" is specified then the end becomes random and vice versa.  I'm thinking about having multiple ways to specify DNA - gene numbers, codule numbers, a specific command and others.  There should be a healthy variety.

A bot may voluntarily decide to take up a DNA particle.  If it does not, then it might still take it up, based on some rule incorporating comparison of its DNA and DNA of the particle.

Does that make sense as a general guideline?
"Never underestimate the power of stupid things in big numbers" - Serious Sam

Offline Numsgil

  • Administrator
  • Bot God
  • *****
  • Posts: 7742
    • View Profile
HGT
« Reply #1 on: April 26, 2006, 06:22:59 PM »
Here are some of my points loosely inspired by what you're written:

1.  I'm not sure that letting bots specify physical locations on their genome to copy into HGT is going to cause anything but chaos.  We would first need to let bots have some sort of access to their own genomes for this to make any sense at all, since gene locations are quite volatile if you're mutating over time, etc.

A better solution would to be able to set certain markers on the DNA strand instead of inside it, and these markers would signal certain "landmarks" for the HGT to use to locate BPs.

2.  HGT modules (codules, genes, whatever your basic unit is) need to have an affinity for a certain location in the genome, since probably even more than biological DNA the expression of a gene is highly regulated by it's location upstream or downstream from other genes.

3.  Ideally DNA could be inserted anywhere, even inside another gene.  However, the effect of this would be to encourage bots to develop alot of extra fluff between genes to lower the coding to noncoding ratio, resulting in wasted computer resources (at least RAM if not CPU cycles).  So we should be careful not to disrupt existing genes when new genes are inserted.

4.  I think using ties to transfer DNA should also be possible, with the benefit of being slightly cheaper.
« Last Edit: April 26, 2006, 06:24:21 PM by Numsgil »

Offline shvarz

  • Bot God
  • *****
  • Posts: 1341
    • View Profile
HGT
« Reply #2 on: April 27, 2006, 12:13:38 AM »
1. What kind of markers are you thinking about?  Some non-functional commands in the DNA?  And then copy pieces from one command to the other?  Anyway, I think that several different ways should be possible.  For example, the most complicated one would specify: codule 5, commands 30 through 100.  Another would be "copy gene 7".  Another "copy codule 8".  Another - "copy from .up 50 store until you meet .repro"   I am not sure about the implementation, just throwing out ideas.

2 and 3 (do they refer to the same thing?).  Hmm, like going always first or always last?  Or always being inserted before "cond" to minimize the potential gene screw-ups?  I have an idea about that, see below.

4.  OK, why not.  But just having shots may be enough.

Here is an idea on how DNA particles and bots might interact.  Particle hits a bot and goes inside.  If a bot is not "open to accept DNA particles" then the probability of infection happening is calculated.  You take first 10 DNA commands of the particle and look for exact match within the bots DNA.  If there is one, then the bot is infected.  If there is only 9, then it is infected with 50% chance, if 8 - 25% chance and so on down to a match in a single command giving a very low probability of 0.2%.  If the bot does not have a single command that the particle has on its fisrt position then it is completely immune to it and particle is destroyed.  Now, let's say the infection took place, then we need to decide where to put the DNA.  We use the same algorithm and calculate the probability that it will go to the region with the best homology.  So if first 10 commands match exactly then the DNA is inserted where this match is.  If only 9 match, then it will insert at that place with probability 50%, but the other 50% say it will just insert itself randomly somewhere.

I say insert, but what I actually see is a "replace".  You do the search for the first 10 commands and for the last 10 commands and then align these matches and replace bot DNA with particle DNA.

This way HGT may actually be a good substitute for sex.  Bot of the same species will likely have high homology to each other, so that when they will shoot DNA particles to each other they will "recombine" their genetic material.
"Never underestimate the power of stupid things in big numbers" - Serious Sam

Offline Elite

  • Bot Overlord
  • ****
  • Posts: 532
    • View Profile
HGT
« Reply #3 on: April 27, 2006, 11:12:16 AM »
Personally, I think we should start by giving DNA a physical representation in the DBverse.

It would also be good to integrate this with some sort of DB biochemistry that will have to come in with metabolism. DNA that learns to make ways to exist outside of a bot would be a kind of protovirus. The virus would also have to find ways of getting in to another cell using the substances available.

I think we should try to eventually build a biochemistry that complexity can emerge from. Any ideas?

I do agree that any system should be built from the ground up rather than inventing patchwork systems for everything we want.

I like the DNA through ties idea.

Offline Numsgil

  • Administrator
  • Bot God
  • *****
  • Posts: 7742
    • View Profile
HGT
« Reply #4 on: April 27, 2006, 11:46:02 AM »
The main problem as I see it is two issues:

1.  Compliance to acceptance of DNA.  How much power do viruses/HGT have to enter bots when bots don't want them to?

2.  How is inserted DNA handled?  Does it replace pre-existing DNA or add to it?

Everything else seems fairly well settled on.

Offline shvarz

  • Bot God
  • *****
  • Posts: 1341
    • View Profile
HGT
« Reply #5 on: April 27, 2006, 02:54:54 PM »
1.  If a bot "wants" to accept DNA, then it does - no problem there, right?  This may be advantegeous for a bot for "sex" or if it is doing very poorly and it wants to pick up some DNA in hope that it will pick up a beneficial gene.  If a bot does not want to accept DNA (infection by a virus, or a DNA shot fired by a competitor to mess it up), then there should be a gradient of succeptability.  The more specific is the virus the better are the chances of infection.  Bots may respond by mutation of "specificity sites", but it should not be "all or nothing".  It should be "the more mutations in the recognition site the less likely is the bot to get infected".

2. Both insertion and replacement should be possible.  I think that if incoming DNA can be aligned with bots DNA, then it should be replacement.  If you can't find what to replace, then you just insert.  Maybe add some probabilities to these decisions.

I think that the system I described above more or less fits both of these ideas.
"Never underestimate the power of stupid things in big numbers" - Serious Sam

Offline Numsgil

  • Administrator
  • Bot God
  • *****
  • Posts: 7742
    • View Profile
HGT
« Reply #6 on: April 27, 2006, 03:37:26 PM »
Quote from: shvarz
1. If a bot "wants" to accept DNA, then it does - no problem there, right?

 right.
 
 
Quote
This may be advantegeous for a bot for "sex" or if it is doing very poorly and it wants to pick up some DNA in hope that it will pick up a beneficial gene. If a bot does not want to accept DNA (infection by a virus, or a DNA shot fired by a competitor to mess it up), then there should be a gradient of succeptability. The more specific is the virus the better are the chances of infection. Bots may respond by mutation of "specificity sites", but it should not be "all or nothing". It should be "the more mutations in the recognition site the less likely is the bot to get infected".

 I don't know if I like the idea of the HGT DNA being compared to the bots' explicitly.  I understand where you're comming from, but it just doesn't jive with me.
 
 Real viruses etc. seem to (I'm generalizing here) attach themselves to specific protein markers on the cell membrane that are tricked into accepting it.  Perhaps we should first find a reason for and model this membrane transportation mechanism.
 
 If we tie it into the Mebo system, you could have viruses that mimic the numerical bit pattern of a substance.  If the bot pumps in that substance while the virus/HGT is "stuck" on the cell wall, there'd be some chance of ingesting the particle.
 
 Perhaps viral coats are made up of these substances the virus/HGT is mimicing?
 
 
Quote
2. Both insertion and replacement should be possible. I think that if incoming DNA can be aligned with bots DNA, then it should be replacement. If you can't find what to replace, then you just insert. Maybe add some probabilities to these decisions.

 What about what I was suggesting where new codules replace old codules at specific locations.  I know you want to be more general than strictly codules, but would that fit with your idea?  If a bot doesn't have that codule (and hence this is a new gene) it would just be inserted into the codule array.
« Last Edit: April 27, 2006, 03:38:50 PM by Numsgil »

Offline shvarz

  • Bot God
  • *****
  • Posts: 1341
    • View Profile
HGT
« Reply #7 on: April 27, 2006, 04:39:34 PM »
Quote
Real viruses etc. seem to attach themselves to specific protein markers on the cell membrane that are tricked into accepting it. Perhaps we should first find a reason for and model this membrane transportation mechanism.

No need to follow the real nature down to such specifics.  In the end the viral envelope protein has to recognize a certain protein on cell membrane.  Both proteins represent genetic code of the cell and of the virus.  So in the end it is the comparison of two genetic codes.  The better they match, the easier it is for virus to get in.  The name for the co-evolution of virus and host is "genetic conflict" (just to strengthen my point).  

No need to bind it to transport molecules (are you thinking that virus gets transported by such proteins?  it is not so).  In real life viruses use a bunch of different proteins for this purposes - sensing proteins, connection proteins.  Hell, some viruses recognize lipids!  These are just markers that viruses use to hook up to the correct cell that they want to infect.  Besides, the infection is controlled even after virus gets into the cell, so this "ability to infect" is not determined just by the receptor molecule, but by othe cellular proteins as well.  

But in the end, it is still about the match between the genotypes of virus and of the cell.

2.  Yeah, maybe replacing codules might be the easiest thing to do.  I forgot, how many total codules are we going to allow?
"Never underestimate the power of stupid things in big numbers" - Serious Sam

Offline Numsgil

  • Administrator
  • Bot God
  • *****
  • Posts: 7742
    • View Profile
HGT
« Reply #8 on: April 27, 2006, 05:21:05 PM »
A base level of maybe 1000 possible codules is where I'm aiming at the moment, but there isn't any practical limit beyond the ability to easily call the goto command (so upwards of like 32000 codules).

I'm just not that comfortable with having the virus squirm its way into a resistant bot.  I'd like the bot to, at least implicitly, grant the virus entrance into the cell.  It can be tricked, begged, cajoled, wheedled, anything but forced.

If a bot is quite stuborn and shuts down everything I'd like to see it be 100% resistant to viruses.  Sort of an isolationist policy

Offline Elite

  • Bot Overlord
  • ****
  • Posts: 532
    • View Profile
HGT
« Reply #9 on: April 27, 2006, 05:28:53 PM »
Maybe make a gene that deals with energy shots mandatory. Force bots to specify wether thay want to accept a -2 shot.

ie.

cond
*.shflav -2 =
start
' accept the shot
stop

Or something like that. And guess what flavour viruses would show up as  

Offline Numsgil

  • Administrator
  • Bot God
  • *****
  • Posts: 7742
    • View Profile
HGT
« Reply #10 on: April 27, 2006, 05:33:19 PM »
Requiring genes is somthing I'd like to stay away from, but viruses showing up as energy shots isn't a bad idea.  The bot could toggle what it wants to do with incoming energy shots.

Offline shvarz

  • Bot God
  • *****
  • Posts: 1341
    • View Profile
HGT
« Reply #11 on: April 27, 2006, 05:59:07 PM »
Quote
It can be tricked, begged, cajoled, wheedled, anything but forced.

That's weird, cause that's what most viruses do:  they force themselves in
"Never underestimate the power of stupid things in big numbers" - Serious Sam