Darwinbots Forum
Code center => Suggestions => Topic started by: Numsgil on November 10, 2005, 04:26:35 PM
-
Did a (little) bit of reading and thinking. Changed my mind about a couple of things in the process. Here's what I'm thinking:
Seems to me there should be two ways to transfer genes/DNA in general between bots.
1. Viruses/DNA shots. Should be nrg expensive but long lasting.
2. Ties. Cheap and quick, but you need to physically attach a tie to the other bot.
All gene transfers are implicitly agreed upon by the bots involved.
For instance, each bot can have an ID tag that allows only "viruses" with that tag into their cells. This ID tag can even be set to disallow all viruses from entering the cell. Of course, to do so, the cell stops itself from the benefits of horizontal gene transfer.
For tied bots, both bots would need to set their ID tags to the same value and both set a gene transfer tag or something like that.
In such a system, "malicious", self replicating rogue DNA can propogate itself as a consequence of the rules rather than a specifically allowed behavior as the current system is.
Only thing now to figure out is how to specify what DNA to transfer. shvarz proposed something a while ago in this regard, that at first I wasn't terribly fond of, but I've come to see that it's rather smooth, if possessing some kinks still.
So what I propose would be something like a replication command involving some number. This number would be a hash function that would remember the following details:
1. Some length of DNA
2. A particular hash value for the above length of DNA
3. Length of DNA to copy. Copying starts at the instance of the above hashed DNA closest up or downstream to the copying command.
Copied DNA is then stored somewhere and either a virus shell is made for it or it's transfered via ties.
So a self replicating virus might look something like:
*.eye5 & 56 add add 'this DNA strip has hash value 31542
31542 .repDNA store 'command to copy this segment of DNA. Length to copy etc. is stored in the 31542
1248 .mkvirus store 'ID of the viral coat, only bots with this ID for their "cell walls" can be infected by it.
or something like that. There are some technical issues I may want to experiment with...
-
Do you really need two systems? Just shots would do the same as shots and ties.
I don't like the idea of tags. If you remember, the system I proposed took care of that as well - DNA in the particle has to partially match the DNA in the bot. No need for tags and special memlocs, everyhting is still controlled from/by DNA.
-
I was imaging tags could be broadened in use to other things as well. Like immunity against another bots' shots, allowing someone to tie to you when you have alot of slime, etc.
-
It can all be done in DNA, man. Everything. A string of DNA commands (hashed in some way if necessary) is a perfect "tag". It does not have to do anything functional aside from being a tag. But on the other hand, it may be a tag AND a useful gene. Then that would create some interesting scenarios where a bot may want to change its tag but does not want to disrupt an important gene. Just like nature!
-
I agree with that 100%.
When I say tag I mean more things like the nature of the virus coat. Generally real cells have to admit a virus in more or less. The virus has a keypass to the cell's door.
Hence why viruses cross species lines more slowly than within them.
So each virus would have an ID tag, and each cell has an ID tag. The two must match for a virus to infect a cell.
-
When I say tag I mean more things like the nature of the virus coat. Generally real cells have to admit a virus in more or less. The virus has a keypass to the cell's door.
Hence why viruses cross species lines more slowly than within them.
Cool, I was actually thinking along these lines myself. This would greatly bennefit the sims I've run that allow gene transfer via shots. The main problem was that plants were picking up dna meant only for animals. These mutant plants would then take over and subsequently kill the sim, simply from them not being eaten. (same number of eyes, shoot genes, anti-TF genes, etc.)
I've had decent results with these already, seeing stuff like Cannibotism benneficially cross "asexual" lines and even beautifully realistic parasitic genes occuring.
On a combat note, it wouldn't be too hard to make a randomized keypass be generated :lol:
-
Or even a psuedorandom keypass. Imagine something that's changing in a predictable way. Bots that know how it's changing can predict it and so still communicate. Others would be left largely clueless.
-
Good point, could probably easily rig up something with mod for example. Cycle through a series of multiples and then reset at the largest values.
-
So each virus would have an ID tag, and each cell has an ID tag. The two must match for a virus to infect a cell.
Just to clarify: those tags would be derived from DNA structure, not a specific "tag" command?
-
Might become costly in speed though, checking through all the dna, especiallly with the structure capable of changing.
Just out of curiosity how do real cells "decide" on which viruses/rna packets to let in? Is it epigenetic or controlled directly via dna? I was thinking it would be a major problem if a virus simply altered this value to make the cell completly penetratable; but I've never heard of such a thing happening in real life.
-
So each virus would have an ID tag, and each cell has an ID tag. The two must match for a virus to infect a cell.
Just to clarify: those tags would be derived from DNA structure, not a specific "tag" command?
I should be more clear. Bots have ID tags. DNA is controlled much the way you were saying, with looking for specific commands that match a specific pattern.
So deciding what bits of DNA to copy would be decided using specific patterns of the DNA.
Once the DNA is formed into a virus, it could only penetrate another bot if it knows the pattern of the "victims" coating.
Thus viruses would spread amongst a species more readily than across species lines.
-
Nums: Hmm, still not clear to me. Seems like you are adding another (unnecessary) level of complexity. In my view "DNA pattern"="tag". No need for additional non-DNA-related tags. DNA is specific for a bot, it already has mechanisms for mutating, so it is perfectly suitable for this purpose.
Endy: Different viruses have different ways. There are viruses that can "enter" pretty much any known cells, be they from insects or from humans. Other viruses are very specific - they recognize a specific protein on the surface of cells (the protein's normal function has nothing to do with viruses or transmission of genetic information, most often these are transporting proteins). And making tags out of DNA should not be CPU-costly, it is done only once, when bot is born. Well, maybe re-calculated if bot is infected with a virus, but that should not happen too often.
-
Makes sense thanks for the information.
Okay, just looked online, it seems retroviruses use mainly the method you described to take over cells; so it seems fair enough.
If we ever get the chance I'd love to see something similar to rna and rna viruses somehow working in DB. Someday maybe. :)
-
If you ever want to know ANYTHING about retroviruses - you are welcome to ask me :)))
-
How does dna fight them?
Why isn't our dna even longer with continous addition of new viruses? If the germline kept increasing in size you'd think there would be more problems.
We can do many a thing dna can't do naturally and yet we still have problems with these in DB. I'm impressed dna manages to keep going in the face of all the varied threats to it's survival.
-
What I want to know is how organisms decide what genes to transfer in non-viral gene transfer.
For instance, how does a bacteria know that the gene for drug resistance is the one it wants to transfer and not the one for glycolisis?
I can imagine conjugation resulting in the transfer of a random segment of DNA from the donor, but is there a better way than that? I mean, that's alot of DNA to go randomly stumbling through.
And how is the DNA inserted so that it doesn't disrupt existing genes (say, the ones required for actually existing or reproducing). Or doesn't it... But then that would mean horizontal gene transfers is a particularly risky business...
And then Endy's question. Why aren't DNA strands hella longer from constant insertion?
-
How does dna fight them?
Why isn't our dna even longer with continous addition of new viruses? If the germline kept increasing in size you'd think there would be more problems.
There is no way to fight them.
As to your second question :) guess what - more than half of our genome consists of pieces of retroviral DNA, that's 500,000,000 bases for you :) Retrovirses are our longest "friends", they've been around for ages... They do cause problems... On the other hand, some people beleive (without much evidence IMO) that it was retroviruses that turned monkeys into humans :)
-
Nums: We know very little about horizontal gene transfer. In fact, up until several years ago we thought it almost never happens. Now people find it everywhere they look. But the mechanism is still not clear.
The best example of known horizontal gene transfer is antibiotic resistance in bacteria. These genes exist on plasmids - rather small circular self-replicating pieces of DNA. The main bacterial DNA is on chromosome - large circular DNA of about 10^7 bases. The plasmids are not longer than 10^4 bases. But there is a lot of them. And they are fairly stable, so that even if bactria dies, the plasmid may stick around for quite some time. Bacteria swap plasmids with each other very often.
If we want to reproduce that we need two things: multiple strands of DNA (chromosomes, but notice that plasmids are not actually chromosomes, they are just separate pieces of DNA) and particles carrying DNA (what we call viruses now, but we need to make them more general).
-
Hmm, I'm going to need to think about this for a while. This may be tricky...