Darwinbots Forum

General => Biology => Topic started by: Numsgil on October 06, 2005, 10:23:41 PM

Title: Viruses
Post by: Numsgil on October 06, 2005, 10:23:41 PM
How do real organisms defend against virus attacks?  Specifically once the virus is already inside its DNA.
Title: Viruses
Post by: shvarz on October 06, 2005, 11:08:41 PM
That's two questions in one. Most viruses don't integrate their DNA into host DNA.  If they do, there is almost no way to get rid of it.

There are three general mechanisms to fight viruses:
1. Something inside a cell stops viral replication.
2. Cells feel the virus and die (that stops viral spread).
3. Immune system recognizes and destroys virus and infected cells.

Anything else?
Title: Viruses
Post by: Numsgil on October 06, 2005, 11:19:17 PM
So I guess our little bots should really learn to make more slime.

Speaking of which, slime degredation might have to be reduced so it's better able to defend against viruses.  Or made more effective against viruses.
Title: Viruses
Post by: Endy on October 07, 2005, 03:48:02 AM
Quote
1. Something inside a cell stops viral replication.
2. Cells feel the virus and die (that stops viral spread).
3. Immune system recognizes and destroys virus and infected cells.

The last two would be possible to do currently. For an immune system simply have the other bots check on correct gene number and feed off infected ones. A continual delgene inc would likly take care of internal viruses, leaving an empty husk for family to feed from.

You could use code to keep viruses from spreading, messing with vshoot and mkvirus, although the virus could do the same to the host bot...

Man this is tricky, feels like trying to play a game against yourself :lol: For every attack there's a defense and every defense an attack. :)

Off Topic:

And just so I can tell a real biologist this idea:

What about slowing the immune systems response against HIV? If attacking is what allows T-cells to be infected wouldn't ignoring the virus help? Alright I know it's counter-intuitive, but the primate it came from does something similar to this and lives decently long even with high virus numbers.
Title: Viruses
Post by: Zelos on October 07, 2005, 09:53:47 AM
there are a way for a individual cell to acctualy prevent itself from producing viruses. think its called RNA interferens. a RNA is singel, thats how its bieng read to create a protein, either its hull or what ever it needs. but if the cell creates the other side of the virus RNA they will attatch to each other and become useless, a double RNA isnt possible to read. if a virus RNA is AUCCAU the cell would create a RNA with the code UAGGUA, and they would attacht to each other like
AUCCAU
UAGGUA
and then its not possible to use, but this doesnt work on all viruses, this is a ancient and old way of protection, it doesnt work on every virus. I dont know how many it works on

but how would this be achived in DB if we wanted it? well, what about if we create genes that instant of numbers says "anti"? or maybe you type the same number but "anti" infront of the command, so a virus would look like
Code: [Select]
6 .mkvirusthen if we have a gene that looks like:
Code: [Select]
-6 .antimkvirusor
Code: [Select]
anti .mkvirusor something like that then it would take out each other, its like 2+(-2) is 0, nothing would happen.
Title: Viruses
Post by: Botsareus on October 07, 2005, 10:19:06 AM
I resently seen this being talked about on tv.

Basicaly it works like a computer antivirus program.

It checkes its own dna for a "signiture" of a virus. If it finds it , it deletes the whole gene.
Title: Viruses
Post by: shvarz on October 07, 2005, 10:44:30 AM
Endy:  Sorry to disappoint, but people are looking into that already.  It's not as easy as you made it sound.  

Zelo and Bots: iRNA falls into the first category of defenses that I listed.  And it's certainly not fool-proof, viruses can escape these defenses quite easily.  

Bots: It does not destroy the whole gene.  It destroyes that particular RNA message.  DNA is still there.
Title: Viruses
Post by: Zelos on October 07, 2005, 10:48:09 AM
it does shvarz, but for many on the forum it might be funnier to know mroe about it. But I never said it were fool proof, but as you say, I belive its quite easly to escape from it.
Title: Viruses
Post by: shvarz on October 07, 2005, 11:34:09 AM
Ok then...  One thing should be clear is that it's not that double-stranded RNA is impossible to read.  The way iRNA works is that it recognizes 19 consecutive bases and if they match, then RNA message is sliced into small pieces (which is impossible to read).  In addition, cell recognizes double-stranded RNA and starts secreting molecules that tell surrounding cell that their neighbour may be infected.  This activates the immune system and puts in on guard.

As for your suggestion of .antimkvirus, I don't like it at all.  The reason is that then someone will suggest .antiantimkvirus command for viruses to use and then .antiantiantimkvirus for bots and .antiantiantimkvirus and so on... :)

We should not just introuce functionality, we need to come up with general rules.  Viruses are not something special, they are normal cellular processes gone wrong.  So what we need are normal DNA commands that can be used for normal bot function, but also for making virus.  Then they will be on equal grounds and different exploits and counter-exploits can be developed.
Title: Viruses
Post by: Zelos on October 07, 2005, 12:11:08 PM
a rule could be that anticommand can only by anticommands, not antianticommands

but the ribosomes can only read singel stranded RNA, so double is of course alot harder to do soemthing with
Title: Viruses
Post by: Numsgil on October 07, 2005, 01:01:12 PM
Quote
a rule could be that anticommand can only by anticommands, not antianticommands
No, that's begging the question.

How about this:  Upon insertion, viral DNA takes a number of turns to "activate".  This would represent the time it takes a real virus to enter a cell and attach itself to the cell processes.

Thus a self-aware genome could easily find and exterminate the invading gene.
Title: Viruses
Post by: shvarz on October 07, 2005, 01:02:14 PM
RNA is almost never completely single-stranded, it always forms hairpins, so ribosomes are used to prying the two strands apart.
Title: Viruses
Post by: shvarz on October 07, 2005, 01:17:55 PM
Nums, these are really just details, you need to look at the bigger picture.  I am questioning the whole idea of a .mkvirus command.

Here is an example:  say we introduce a new command called .mkmultibot, which would take a single-cell bot and transform it into a pre-defined fully-functional multi-cellular organism.  Then we let evolution "figure out" how to use this command.  Would you consider that to be an accomplishment on part of evolution?  I won't.  Because what we want is to make simple rules and then using those rules create a multibot.

Same with viruses.  What we need is a system of commands useful in real-bot functions that can be hijacked to create a self-replicating message spreading from bot to bot.

I think we even have "viruses" now without the .mkvirus command (I am not sure, as I am not good with coding bots).  If a bot has a gene that fires an information-carrying particle (for example telling another bot where food is), then it is possible to hijack that system to pass around information just for the sake of passing information.  That, in essense, would be a virus.
Title: Viruses
Post by: Numsgil on October 07, 2005, 01:23:30 PM
Yeah, I thought a bit along those lines.  I guess the real question is:

1.  Can only DNA be passed in long lasting shots?

2.  Who/what gets to control what gets placed into such a shot?
Title: Viruses
Post by: Greven on October 07, 2005, 02:06:41 PM
To my knowledge a lot a vira actual use protein reconition (wrong spelled ;)) on a cell's surface to know which cell to infect, therefore a cell which mutates to have a different pattern of protein, then a particular virus cant reconize it and therefore can not infect it, we could add somekind of this incorporating the metabolism / env. grid.!
Title: Viruses
Post by: Numsgil on October 07, 2005, 02:08:18 PM
Well, technically real viruses are/were specific to their hosts.  If we do this, then viruses only really become interesting in evo sims.
Title: Viruses
Post by: shvarz on October 07, 2005, 02:28:39 PM
The sad thing is that I can't come up with any rules that would allow making viruses and still be useful to bots :(

But I do have an idea on how to define what DNA to place into viral particle.  Whenever the program encounters .mkvirus, it looks at the sequence of 5 previous commands, say they are "1 2 > * stop".  Then it looks for exact same 5 commands downstream of .mkvirus and copies the whole stretch into the particle.  The particle has the following DNA: "1 2 > * stop -viralDNAhere - 1 2 > * stop".  If the commands are not found downstream, then no viral particle is made.

Whenver the viral particle hits a bot, then the program looks for the first 5 commands of virus in the DNA of the bot. If it finds it, then it inserts the viral DNA in that spot and duplicates the 5 commands on both sides.

So that if bots DNA used to be:

blah-blah 1 2 > * stop blah-blah

Now it will be

blah-blah 1 2 > * stop -viralDNAhere 1 2 > * stop blah-blah

If it does not find the 5 commands then virus can't infect that cell.

This system is very flexible and it allows a lot of real-life things to happen to viruses.  Like they can get stuck in DNA (if infected cell divides and mutates the second 5 commands) and then they can get re-activated.  They can pick up some bots DNA with them.  They allow cells to create "traps" for viruses, placing them outside of valid conditions.  They allow natural viral-host co-evolution.
Title: Viruses
Post by: Greven on October 07, 2005, 02:29:43 PM
And as before it should be. Evo over game! Sorry that is just the way I am. I can se that it is funny and interesting to build bots from scratch and find all small un-balances in the símulation and use them to their benefit. But it will be much more (for my point of view) interesting that the bots will all that by them self! Darwinbots were created with evolution in mind, not gaming. Stick at least a little to it, and forget for a second all the bot makers.

If it is, there are plenty of xxx-robots etc. programs, were they would be able to program their own little super killer bot. But want about us evolutionist? Were is there anything like DB???? NONE!

I have search the net utterly thin to find a such a system, but no one can get DB to its knees. E-den is a possiblity, but to slow, and to abstract (in sense that it is extremely difficult to find out why a bot is a succes).

Then Avida, but there is no physical bounderies as in DB (they only need to replicate and then make some computations -> more points -> more execution time -> more offspring etc.)

Please! I beg you Num!

But then again, I might then have to make another kind of DB from scratch, but the original DB will always stay close to my heart.
Title: Viruses
Post by: Greven on October 07, 2005, 02:37:19 PM
I know it is a bit off topic!
Title: Viruses
Post by: PurpleYouko on October 07, 2005, 02:50:35 PM
Quote
If it is, there are plenty of xxx-robots etc. programs, were they would be able to program their own little super killer bot. But want about us evolutionist? Were is there anything like DB???? NONE!
That is where DB is so good. It allows for both.

The fact is that if we don't thoroughly test all the possibilities by programming killer bots then we will never know if the systems work properly.
Once it is all functional then evolution can play with it to it's hearts content.

DB will never become a pure battle-bot game. It will always be primarily an evo sim.
But in order to do that better, we have to allow battle bot programmers (like me) to hash it all out and get stuff working properly.
Title: Viruses
Post by: Greven on October 07, 2005, 03:07:05 PM
I see you point PY, and yet again I dont.

This should be evolutions job!

Say: you run a evo sim. Some bot gets the upper hand and is totaly a killer, no other bot can beat it. Then you analyse the bot, sees that "Oh, here it takes an advantage of a flaw, and rushlessly exploit!, you change that piece of code, then you run a sim again.

Only when bots are countuailly evovled /co-evolving the "game" is optimum, or whatever.
Title: Viruses
Post by: Numsgil on October 07, 2005, 03:35:14 PM
Thing is it's the battle-bot sort of stuff that attracts new people.  I found it for that reason.  Same with alot of us here.

I think DB balances the two quite well.  Neither is predominant over the other.  There's no reason it can't be interesting from both point of views.  If something is only interesting from the POV of battle-bots or for evo sims, then it probably needs to be fleshed out more.
Title: Viruses
Post by: Numsgil on October 07, 2005, 03:44:24 PM
Quote
The sad thing is that I can't come up with any rules that would allow making viruses and still be useful to bots :(

But I do have an idea on how to define what DNA to place into viral particle.  Whenever the program encounters .mkvirus, it looks at the sequence of 5 previous commands, say they are "1 2 > * stop".  Then it looks for exact same 5 commands downstream of .mkvirus and copies the whole stretch into the particle.  The particle has the following DNA: "1 2 > * stop -viralDNAhere - 1 2 > * stop".  If the commands are not found downstream, then no viral particle is made.

Whenver the viral particle hits a bot, then the program looks for the first 5 commands of virus in the DNA of the bot. If it finds it, then it inserts the viral DNA in that spot and duplicates the 5 commands on both sides.

So that if bots DNA used to be:

blah-blah 1 2 > * stop blah-blah

Now it will be

blah-blah 1 2 > * stop -viralDNAhere 1 2 > * stop blah-blah

If it does not find the 5 commands then virus can't infect that cell.

This system is very flexible and it allows a lot of real-life things to happen to viruses.  Like they can get stuck in DNA (if infected cell divides and mutates the second 5 commands) and then they can get re-activated.  They can pick up some bots DNA with them.  They allow cells to create "traps" for viruses, placing them outside of valid conditions.  They allow natural viral-host co-evolution.
But at the same time it becomes more difficult to program them as a weapon for the leagues...  Like they'd really only be useful against others of your same genome, wich is exactly opposite of how a weapon is supposed to work.

I think we must first define what we want viruses to be used for, then figure out the implementation.  Viruses as methods for copying genes seems the most obvious.  Viruses as methods for transporting code snipets is also possible.  I could go either way, but I think the first makes more sense.

And as far as implementation: mkvirus accepts some sort of number that presumably represents the location of the DNA to be copied into a virus.  But if viruses are flying around, the only location in the genome you can be really sure of is your own.  You're always going to be *.thisgene.  All other gene positions can change quite dramatically.
Title: Viruses
Post by: Botsareus on October 07, 2005, 04:09:08 PM
Quote
And as before it should be: Evo over game!
Please! I beg you Num!

Strange, people will not say this things unless: hmmm, do the new mutations sux or what?

P.S.

sorry for being of topic too.
Title: Viruses
Post by: Numsgil on October 07, 2005, 04:42:34 PM
Quote
Strange, people will not say this things unless: hmmm, do the new mutations sux or what?
What on Earth makes you say that?
Title: Viruses
Post by: Botsareus on October 07, 2005, 04:45:57 PM
Anyone else got stuff to say because I can take that as sarcasm...

(I can't check them out myself yet because people say some of them don't work)
Title: Viruses
Post by: Numsgil on October 07, 2005, 05:08:42 PM
Greven's comment wasn't anything but an plee that the evo sim part of the program be left the primary concern.  It was not a criticism in any way of the evo parts of the program past or present.
Title: Viruses
Post by: shvarz on October 07, 2005, 05:41:06 PM
I don't think viruses should be weapons.  Why should they?  Makes no sense to me.

I can see only three needs for viruses:

1. To simulate virus vs host evolution
2. To allow horizontal gene transfer
3. To introduce more meaningful junk DNA
Title: Viruses
Post by: Greven on October 07, 2005, 05:58:07 PM
Num is right Bots, you need to read the post's more closely, or were I unspecific, maybe a hard to read post? Please comment, and I will try to make it better.

About Shvarz... I agree... Evolution or whatever just dont say to a cell or bot: here now you have a very usefull weapon (virus), you were lucky, because your fitness will now increase very much.

I can understand, that coding is intersting, I my self study Computer Science at the University of Copenhagen, which is the orgin of the Mac system, if anyone knows that, love to code my self.

But my main goal/concern/ideas/interest/whatever has always been AL!!!! I read a book about 6 years ago about matematics, and a small paragraphh were dedicated to AL, or some very strange sort, but I did get the idea. Then I search the net about this, getting Tierra, which were amazing, at that time, with everything in it, then I began to program (on and off) some very simple AL sims (now I not even know if I could call them AL), but in short, pure AL is my thing, to prove that creationist are wrong!!!!!!!!!!
Title: Viruses
Post by: MrMound on October 07, 2005, 08:54:09 PM
I was thinking about viruses and what they do is envade a cell and use it to reproduce themselves so why not make a comand that allows your bot able to go into a bot and take it over and use it to reproduce.  a rule we could use with this is that viruses cant have a reproducing gene and so that they will have to take over bots to survive.
Title: Viruses
Post by: Numsgil on October 07, 2005, 09:28:32 PM
Well, throwing precedant and coding difficulty to the wind for the moment...

1.  Representatively, viruses should be bots with like 1 body, or something else.  Basically very, very small bots.

2.  These bots cannot: feed or reproduce.  Maybe can't do some other things.  In exchange, they get charged very little, and can remain dormant for a long time.  Maybe they are self motile, maybe not.

3.  Other bots can feed from these viral bots.  This isn't terribly realistic, (viruses in RL are way too small for bacteria to detect (baring something to the contrary from shvarz).

4.  Virus bots must contact another bot for transmission.  That is, a collision.  Slime would still protect against this infection, but each bot selects a slime "phase" (that the slimy bot sets, so it can be dynamic, following a pattern, or set to accept nothing, or set to a constant value) that allows these viral bots with the correct phase to enter (since these viral bots can also be used to carry useful information).

5.  These viral bots, upon infecting a cell, get to insert their DNA into the host, as well as set certain memory locations to certain values upon entry.  Thus these viral bots can carry any sort of information.

So bots can use these viral bots to communicate with each other.  Viral genes will need to code for any maneuvering they're going to do as a virus (like hunting down cells to infect.  Maybe being motile requires a reserve of energy... I dunno).

The viral DNA would execute like regular bot DNA.
Title: Viruses
Post by: MrMound on October 07, 2005, 10:36:22 PM
thats what I was thinking.  but I was saying make a comand so that a bot recognises itself as a virus.  so that on the map the bot is smaller and so that the bot cannot evolve a reproductive or feeding gene.  so that in evolution sims the virus stays a virus and doesn't evolve into something else.
Title: Viruses
Post by: shvarz on October 07, 2005, 11:14:18 PM
Nums, all these rules basically reduce your mini-bot to a particle.  If you look at them, there is not much difference.  

In my opinion, combining the exisitng system with rules for copying DNA that I described above will give all the necessary functionality to viruses.
Title: Viruses
Post by: Numsgil on October 07, 2005, 11:36:22 PM
Oh yeah :P

I guess what I need to do is change the way viral shots are updated.  Instead of having them fly off, maybe they need to be sort of spat out at small speed, and exist in the environment longer.

Whatever method of DNA copying should allow something like:

start
*.thisgene .mkvirus store
500 .vshoot store
stop

to actually work.  That is, get copied into a virus whole.
Title: Viruses
Post by: MrMound on October 07, 2005, 11:37:15 PM
Quote
Nums, all these rules basically reduce your mini-bot to a particle
I know this is a bit off topic but what is a mini-bot ive never heard of them?
Title: Viruses
Post by: Numsgil on October 07, 2005, 11:37:54 PM
It's a joking term for the bot with 1 body I described above.
Title: Viruses
Post by: shvarz on October 08, 2005, 12:27:53 AM
I thought we were moving away from the whole "gene" concept :)

Anyway, let's take your example:

start
*.thisgene .mkvirus store
500 .vshoot store
stop

I'll re-write this like this:

1 2 >
start
*.thisgene .mkvirus store
500 .vshoot store
stop
1 2 >
start *.thisgene

Now when program encounters .mkvirus it looks for the previous 5 commands and for the same 5 commands after .mvkvirus  Then everything (including these 5 commands is copied into a particle).

Capisce?
Title: Viruses
Post by: Numsgil on October 08, 2005, 11:23:10 AM
Yes, I agree that moving away from gene limitations would be wise.  But in your example, it'll end up copying bits from the next gene (the start), and that could get messy real fast when you examine it as a weapon.

How do real viruses decide what to copy into the viral sheaths?
Title: Viruses
Post by: shvarz on October 08, 2005, 12:48:59 PM
Maybe I'm not explaining this right.  If anything, my system makes viruses more powerful than they are now (although only against a specific bot).  They allow insertion of pre-defined code in a specific place in enemy's DNA.

I don't want to write a bunch of code, so let's just assume that each letter represents 5 different commands.  Say your enemy's DNA is: ABCDEFGH

You want to include the string xyz right after C.

Then in your bot you place the following sequence:  CxyzC (one limitation is that x has to begin with .mkvirus command).  This sequence gets packaged into virions.  When they hit the enemy bot, they search for C, they find it and they insert it.  Enemy's DNA becomes ABCxyzCDEFGH.

Enemy bot begins making viruses, they will be exactly the same as viruses coming out of your bot: they will carry the sequence CxyzC.

And you can target any place in genome in this way and you can insert as much as you want.

For evolution purposes, when viral DNA is inserted, it goes through target bot's mutation routines.  Say during infection the second C mutates into M, then your bot becomes ABCxyzMDEFGH - virus became inactive, because there is no second C in the genome.  Say after some time F mutates and become C: ABCxyzMDECGH, suddenly the virus came back to life and it carries an extra-piece: CxyzMDEC !!!

This is awesome!   :boing:
Title: Viruses
Post by: Numsgil on October 08, 2005, 01:40:32 PM
But then viruses only become really useful for infecting members of your same species, or a closely related species...

I'm not saying it's not merit-ful (um, that's not a word, but let's pretend it is).  I just think it needs to be exapnded/modified such that, from the point of view of F1, it becomes a useful tactic.
Title: Viruses
Post by: Greven on October 08, 2005, 01:41:02 PM
Very nice idea Shvarz...
Title: Viruses
Post by: shvarz on October 08, 2005, 08:00:28 PM
Let's establish a moratorium on development of biological, chemical and nuclear weapons in F1 :)

I don't see why viruses necessarily have to be used as a weapon.  They can be used just for evolution purposes (you just wait, I'm sure someone will figure out how to use them as weapons :)  )
Title: Viruses
Post by: Numsgil on October 08, 2005, 09:06:09 PM
Well, the fact that they have been used as a weapon.

See, I have this nice rock-paper-scissors attack to defense system that's nice and balanced.  If viruses aren't used as a weapon, then that leaves a hole in my nice little table.
Title: Viruses
Post by: Endy on October 08, 2005, 10:06:49 PM
Quote
We should not just introuce functionality, we need to come up with general rules. Viruses are not something special, they are normal cellular processes gone wrong. So what we need are normal DNA commands that can be used for normal bot function, but also for making virus. Then they will be on equal grounds and different exploits and counter-exploits can be developed.

I was kind of thinking something like this could be done with continual shots, but they can't really make/replicate multiple copies or carry all the information required to reproduce themselves(.shootval). I was originally hoping this would be something like RNA, but we'd need the ability to store way more info into the shots.

I think the SG bots would be more amenable for use with a code snippet virus than normal bots. Maybe have the virus be equally likely to find itself in an active gene as in the junk dna.

I'd like if the bots could also have other retrolife inside their dna. For us these seem to be benneficial in introducing new slight mutations, instead of massive radiation or reproductivly caused ones.