Yesterday the postdocs and I spent some time thinking/talking about our computer model project. I have all sorts of assumptions that the postdocs don't, resulting from all the work I did last year on this, so a lot of time is spent discovering these, explaining them (which requires my rethinking them) and then deciding whether they should be kept or discarded for the present work.
I also worked on my draft (outline, really) of the manuscript describing this work, and got in in good enough shape that it could be given to the postdocs. They can use it to get a clearer idea (because in writing) of what I'm thinking, and thus as a framework to see ways our various ideas can be improved.
And I went through the code of some versions of the program from last summer. Programming (for me) is like experimental research in that I mostly have a series of goals, each resulting from rethinking the previous work and results, but do a lot of blundering around. Thus the various versions have different sub-goals and different flaws, some of which I made of and some of which I didn't. And they're in different degrees of completion - some I think I had set aside without finishing making changes...
But luckily I was very conscientious about annotating the code as I wrote it, so every line or group of lines has at least a few words of explanation. On rereading I found the overall structure of the programs (all very similar) to be less complex than I had remembered it. It was easy for me to bracket off the little clusters of commands and label them with what they were accomplishing. The details of how they accomplish it are not so clear, because I've forgotten how many of the commands work, especially the search and replace ones that are the heart of the program.
I think it's a very nice program. Our first big challenge is to get it to run to 'equilibrium'. That is, after enough generations under any specified settings of the mutation rate and DNA uptake probabilities, the simulated DNA sequence should get to a state where its properties are not changing. Because the simulated steps have a component of randomness, there will still be lots of changes from generation to generation, but when averaged over many generations there should be no net change. Our main scientific goal is to characterize the equilibria, and the approach to equilibria, over a wide range of biologically-relevant conditions.
But getting to and recognizing the equilibria is challenging for a couple of reasons. First, because of the randomness, it's not easy to decide on good criteria for recognizing equilibrium. I'll post more on this another time. Second, getting to equilibrium ( or close enough to meet whatever criteria we set) can take a long time, and so we need to modify the model so we can run it on a fast computer 'grid' we have access to.
20 hours ago in Variety of Life