Code center > Suggestions

Block coding

<< < (2/3) > >>

Numsgil:

--- Quote from: EricL ---Personally, I think we should allow for viruses to be arbitrary contigious sequences, gene aligned or not. That is, instead of a virus being a single gene or block of genes, it is a contigious DNA sequence of a given length, which coudl be a partial gene or contain multiple genes.
--- End quote ---

I am for this, too.  Gene boundaries should be incedental to most operations.  Or even eliminated entirely and we could go with a gene-less architecture like I have going on right now in the DB 3 code.


--- Quote ---I suggest modifying .mkvirus to be the starting bp of the sequence to be made into the virus. I further suggest we add .vlength which would be the length of the sequence to make into the virus. For completeness, we could add .genenum, .genestart, .geneend, which could be used to find the beginning and ending bp numbers for a gene whose number is stored in .genenum. We already have .dnalen.
--- End quote ---

I don't like this.  Not to beat a dead horse, but I don't like giving DNA controls to examine itself.  It just opens up a whole conceptual can of worms, double especially when viruses get involved in the mix.

Another option might be to add new flow controls called virusstart and virusend., that do nothing but control what code gets packed into a virus when some code inside them calls mkvirus.  It's not a great solution, though.  Alternatively, .mkvirus could trigger the creation of a virus from then on, as you suggest, and instead of specifying a length, you could specify a .finishvirus or something similar.

The hard part here is that you need the code that creates the virus to be potentially inside the virus, to create a self replicating monster .


--- Quote ---Additionally, I think we should add a mechanism for sequence matching to determine where in the infected bot the viral sequence gets inserted.
--- End quote ---

I prefer to think of viruses as self-contained modules.  They contain the code to reproduce themselves, plus whatever baggage they want to carry.  In a scenario like this viruses should either be inserted randomly into the host's genome (maybe upsetting an existing gene, maybe not), or stored in a seperate "strand" and have its effects averaged with the native DNA's.

EricL:

--- Quote from: Numsgil ---...I don't like giving DNA controls to examine itself.  It just opens up a whole conceptual can of worms, double especially when viruses get involved in the mix.
--- End quote ---

I don't share your reversion to creating the primitives to allow for self DNA inspection or manipulation.   In fact, as above, I think it is critical to someday allowing the evolution of reproduction and mutation mechanisms outside the simulator.  IMHO, we want an organism to at least have the capability to copy thier own DNA, to copy it inperfectly if selection favors this, to perform their own error analysis or virus infection analysis, to self correct, to evolve virual resistance and so on.  IMHO, the genomorph should absolutely be a battle ground over which evolution presides.

As in nature, there will be good reasons for organisms not to get too crazy with self DNA modification.  Afterall, you can't predict the future.  Pheneotypic selection for reproductive success will still be the prime actor.  Nature could and has evolved DNA inspection and manipualtion machinery yet it is used judiociously and primarly for perserving DNA content over time by improving copying fidelity.   Why?   Because the vast majority of DNA changes are bad for an organism, even if when it is the DNA itself making the changes.    


--- Quote from: Numsgil ---I prefer to think of viruses as self-contained modules.  They contain the code to reproduce themselves, plus whatever baggage they want to carry.  In a scenario like this viruses should either be inserted randomly into the host's genome (maybe upsetting an existing gene, maybe not), or stored in a seperate "strand" and have its effects averaged with the native DNA's.
--- End quote ---

I disagree here too.  The whole concept of a virus is of a bit of essentially pure information that hijacks the machinery of more physical organisms to do its dirty work, replication cheif amoung that.   Isolating viruses into their own module or thinking of them as somehow self contained and distict of otherwise "different" from the host DNA cuts against this IMHO.  Viruses should be able to hijack existing DNA sequences inside the genes or even hijack entire sets of genes of their host, redirecting that logic to their own ends.  Selection will favor shorter viruses, ones that can take advantage of more existing host DNA so as not to contain that logic themselves.    Many biological viruses do this including HIV, the Flu and all the Herpes variants.  To this end, viruses need some some sort of fine grain mechanism to control where they get inserted in the host genome (a mechanism subject to mutation and selection) and what's more, host organisms must have some way to combat virual infection I.e. to evolve resistance to specific virus strains.

I sugggest sequence matching.  A virus should (perhaps optionally) cotain a taget DNA sequence of arbitray length that the simulator matches to the infected organism's DNA.  If a match is found, the virus is inserted at that point in the target organism.   hHe longer the sequence, the more specific the targetting and the more the virus can assume that it will get inserted in a known species and amoungst DNA it is familar with and can successfully hijack but the easier it is for a mutation in the target species to convey resistance by changing the sequence and foiling the match.

shvarz:

--- Quote ---viruses need some some sort of fine grain mechanism to control where they get inserted in the host genome
--- End quote ---

Well, formally that is not correct. Most viruses don't insert their DNA into host DNA at all. Most of those that do - insert almost indiscriminately. What is correct is that viruses "insert" their own instruction in a certain place of host's overall protein machinery. But since in DBs DNA is the machinery, then I guess that sort of qualifies the statement as being largely correct

On the other hand, there are plasmids, which are fairly independent entities in bacterial cells and can duplicate themselves to huge numbers within each cell. So Nums idea is somewhat closer to truth in their case.

I like the sequence-matching idea (in fact, I argued for it for quite some time myself). It also allows natural resistance to viruses (when no match is found).


--- Quote ---Nature could and has evolved DNA inspection and manipualtion machinery yet it is used judiociously and primarly for perserving DNA content over time by improving copying fidelity.
--- End quote ---

I agree with that - I don't see anything wrong with DNA looking at itself, correcting itself, modifying itself. Our own DNA does it and we are still alive

Numsgil:

--- Quote from: EricL ---I don't share your reversion to creating the primitives to allow for self DNA inspection or manipulation.   In fact, as above, I think it is critical to someday allowing the evolution of reproduction and mutation mechanisms outside the simulator.  IMHO, we want an organism to at least have the capability to copy thier own DNA, to copy it inperfectly if selection favors this, to perform their own error analysis or virus infection analysis, to self correct, to evolve virual resistance and so on.  IMHO, the genomorph should absolutely be a battle ground over which evolution presides.
--- End quote ---

My main concerns are:

1.  Bots will be able to effectively eliminate or destroy foreign DNA in a more effective and cheap way than using slime to prevent virus infection, or whatever methods we care to add.  Right now, slime costs a great deal more energy, and is far less effective, than delgene'ing a virus.

2.  Self policing DNA protecting itself against viruses will tend to get shorter over time.  The less to patrol, the easier the job.  This shortening effect will reduce the "wiggle" room for new adaptations.  Real DNA is huge.  Gigabytes and gigabytes of data, a large percentage of which is just along for the ride, and doesn't really do anything one way or another.  That is, self policing DNA creates an implicit cost for DNA length, wether we like that or not.  And costs generally have a simplifying effect on complexity.

3.  Viruses end up with too much power.  Whatever tools we give DNA to police itself, we have to give viruses too.  The result is a powerstruggle between native DNA and viruses where huge swaths of DNA get deleted.  The whole process is destructive, but struggles like this in nature tend to be constructive.  The large sections of dead viruses in our DNA are evidence of this.  Things don't get deleted very often.  Usually they just get turned off.


--- Quote ---I disagree here too.  The whole concept of a virus is of a bit of essentially pure information that hijacks the machinery of more physical organisms to do its dirty work, replication cheif amoung that.   Isolating viruses into their own module or thinking of them as somehow self contained and distict of otherwise "different" from the host DNA cuts against this IMHO.
--- End quote ---

This I agree with.  Viruses need to be undifferentiated from any native DNA.  Or that should be the goal at any rate.


--- Quote ---Viruses should be able to hijack existing DNA sequences inside the genes or even hijack entire sets of genes of their host, redirecting that logic to their own ends.  Selection will favor shorter viruses, ones that can take advantage of more existing host DNA so as not to contain that logic themselves.    Many biological viruses do this including HIV, the Flu and all the Herpes variants.  To this end, viruses need some some sort of fine grain mechanism to control where they get inserted in the host genome (a mechanism subject to mutation and selection) and what's more, host organisms must have some way to combat virual infection I.e. to evolve resistance to specific virus strains.
--- End quote ---

The problem with existing DNA is that it's very serial.  Gene A is executed before gene B, resulting in a long assembly-line like progression from the start of the DNA to the end.  The problem with this structure is that problems up stream can totally break things downstream.  And anything at the very end of the DNA can override anything done earlier in the process.  The whole genome is so tightly coupled that changes, from viruses or mutations, cause catastrophic failures in any but the simplest DNA.

Jaron's world (seriously read this article if you haven't before continuing my post) recently talked about synthetic biology's potential, relating it to software and hardware.  I've been thinking a lot about this recently, and the conclusion I've come to is that the reason software progresses so slowly is that it's so tightly coupled.  You can't grab microsoft word and throw it into world of warcraft to make an in-game text editor.

So what I'm trying to suggest for DNA is that we move away from the serial strand and move towards a more parallel structure, where genes form an interconnected web, communicating with each other only indirectly through the byproducts of their actions.  I don't know if a purely parallel structure is even possible, but it's an ideal I'd like to move towards.  By specifically limiting what a gene can know about other genes, we force them to decouple.

In such a system, the idea of coupling a virus to a set of genes is bogus.  Genes are always in a state of flux, potentially changing from organism to organism through mutations, or whatever.  Genes are black-boxes to other genes, and don't know or care about each other's existance.  Instead, the virus can hijack existing pathways by meddling in the same collective soup that other genes use to communicate.  If gene A produces X, and gene B regulates body growth by a feedback with X, a virus can cause mischief by metabolizing X, or producing more X.  The virus *might* be somewhat coupled to the pathway, but it neither knows nor cares about what genes use X.

The way I'm presently imagining such a system working is to have several strands that run in serial inside the strand, but that communicate with each other through this web structure of ins and outs in parallel.  A virus would just be a strand that can build a virus shot for itself and climb inside.

EricL:

--- Quote from: Numsgil ---1.  Bots will be able to effectively eliminate or destroy foreign DNA in a more effective and cheap way than using slime to prevent virus infection, or whatever methods we care to add.  Right now, slime costs a great deal more energy, and is far less effective, than delgene'ing a virus.
--- End quote ---
I don't see this.  If a virus need not be its own self contained gene, if it can be inserted inside an existing gene, of be a set of genes, then it becomes much more difficult for the host organism to isloate and remove it than today with .delgene, even if it has the DNA inspection and manipulation primitives to theoretically do so.  Knowing you are infected through a checksum or similar mechanism is one thing.  Knowing where, how and being able to reverse it is entirely different.  Viruses can work to actively prevent this, deleting protection machinery, chanign their sequences, etc.  I used to work in the anti computer virus space.  Detecting is relatively easy.  Reversing is difficult to impossible if the virus got even a single cycle of execution.

Slime would still work.  Think of it as skin.   It's expensive but important.


--- Quote from: Numsgil ---2.  Self policing DNA protecting itself against viruses will tend to get shorter over time.  The less to patrol, the easier the job.  This shortening effect will reduce the "wiggle" room for new adaptations.  Real DNA is huge.  Gigabytes and gigabytes of data, a large percentage of which is just along for the ride, and doesn't really do anything one way or another.  That is, self policing DNA creates an implicit cost for DNA length, wether we like that or not.  And costs generally have a simplifying effect on complexity.
--- End quote ---
I'm not sure I buy this.  I could make the opposite argument I.e. having a larger genome with a larger number of decoy sequences increases the chances that if and when an infection occurs, the virus will be inserted into a nonfunctional psuedogene.  I'm also not convinced that self policing/correction logic is worth it the cost of that logic.  It may be that once infected, organisms are doomed and instead selection favors an arms race on the battle front of mutations changing the matching sequence.


--- Quote from: Numsgil ---3.  Viruses end up with too much power.  Whatever tools we give DNA to police itself, we have to give viruses too.  The result is a powerstruggle between native DNA and viruses where huge swaths of DNA get deleted.  The whole process is destructive, but struggles like this in nature tend to be constructive.  The large sections of dead viruses in our DNA are evidence of this.  Things don't get deleted very often.  Usually they just get turned off.
--- End quote ---
Slime still works.  We could enforce a minimum legnth on the matching sequence if we wanted to reduce the probabiltiy of matching anything and everything.  There are still details to be worked out to be sure and you may be right in that we will need to counterbalance the strength of viruses with other mechanisms.  But I do think it's an interesting battlefront for evolution to play on.

Navigation

[0] Message Index

[#] Next page

[*] Previous page

Go to full version