We are proud to release the first Worker for the Evolvix System. Many more will follow as we expand the modelling capabilities of Evolvix. The Evolvix Workers are the backbone that provide the various simulation capabilities for the Evolvix System. The Evolvix Language is built separately from the Workers and provides a front-end to make it easier to describe computational tasks in a format that the Evolvix Workers can understand.

The first release of any Evolvix Software is the Evolvix Worker Ratchet v0rS005-9c0. It provides a highly optimized implementation for a problem that is otherwise very difficult to analyze: What does Muller's ratchet do in a non-recombing population? Evolvix Worker Ratchet is a so called "special purpose simulator" that implements a more specialized model and set of queries, however does that very efficiently. There will be many more special purpose simulators, so Evolvix Worker Ratchet will not be the last even when more general purpose simulators will be released.

Evolvix Worker Ratchet implements the following:

  • Model: Here the population genetics of Muller's ratchet.
  • Query: Here get timeseries and other output from that simulation
  • Task: Run the simulation and get the answers to the Query.

Download

For a MacOSX commandline version of the Evolvix Worker click here:

Usage

The following steps explain how to run

  1. Place Evolvix Worker Ratchet in a dedicated folder (e.g. "Evolvix" on your desktop).
  2. Open the Terminal application (in Applictions>Utilities)
  3. Change to the Evolvix folder on the command line. (Enter "cd " and drag your Evolvix folder to the Terminal Window.)
  4. Start the Evolvix Worker Ratchet. (Enter "./E" on the command line, then press tab to autocomplete the simulator name)
  5. Enter your preferences (if there isn't a preference file already) by answering some questions about your computational setting. Personalize results if you want.
    After you entered all Preferences for the first time the simulator will run a benchmark testing your committed memory before storing this default in the preferences file for future use. This is to avoid unpleasant surprises later. If the simulator misbehaves, reduce the memory you dedicate.
  6. Place all Tasks in a file called "run.txt" in the Evolvix folder.
    This requires descrbing the parameters of the population that you want to simulate on a single line. This is a bit awkward at the moment since the format that the Evolvix Worker expects for such files is a condensed job description that makes it efficient to generate Workunits with many individual jobs. Once the Evolvix Parser starts to support this special worker, it will become much more convenient to specify the corresponding parameters. Once you defined all single runs, save this as text in your simulator's folder under the name "run" or "run.txt" to allow the Worker recognizing it automatically.
  7. To restart the Worker after you have started it already, you merely press the "cursor-up" key and then "return". The Evolvix Worker will then read the run-file, compute all single runs it contains and then store results in the folder where you placed the Evolvix Worker. An additional file describing the whole parameter space is provided as well.

 

Explanation of input file "run.txt"

The following input file is an example for how the computational Model is defined for this Evolvix Worker. On this occasion this is just the setting of parameters, since the model mechanisms are defined by the simulator itself. Please note that the following syntax is not the Evolvix syntax, but is an intermediate internal representation of a highly specialized simulation. This syntax is used to define individual simulations in a Workunit file and has a structure that is close to the current design for this task.

To run a simulation you need to describe it in such a run file. Here is an example with comments:

&simulate 0 : 100000000 1000 0 0 0 1 -0.033 0 10 1000000 12 0 #
&simulate 0 : 100000000 1000 0 0 0 1 -0.01 0 10 1000000 12 0 #

Explanation of values of the Evolvix Worker Ratchet v0rS005-9c1:
The sequence of the values in the simulate command
that ends with "#" determines the precise model that is being simulated.

Position | Example | Range | Meaning
0 | 0 | int | reseved value for future use (needs to be any int right now)
: | : | : | : Colon indicates start of biologically interesting values
1 | 100000000 | > 5 | Population carrying capacity (determines size)
2 | 1000 | > 1 | Fecundity
3 | 0 | 0-0 | Background mutation rate (currently switched off, reserved for future expansions of Worker)
4 | 0 | 0-0 | Background selection coefficient (currently switched off, reserved for future expansions of Worker)
5 | 0 | 0-0 | Background shape parameter for Distribution of Mutational Effects on Fitness (currently switched off, reserved for future expansions of Worker)
6 | 1 | >=0 | Ratchet mutation rate (Key parameter: set this)
7 | -0.033 | <=0 | Ratchet selection coefficient (Key parameter: set this)
8 | 0 | 0-0 | Ratchet shape parameter for Distribution of Mutational Effects on Fitness (currently switched off, reserved for future expansions of Worker)
9 | 10 | > 5 | Maximal Ratchet clicks before simulation is stopped
10 |1000000 | > 5 | Maximal time steps before population is stopped.
11 | 12 | > 1 | Internal project ID for identifying your results in a pile. Set to what you want.
12 | 0 | 0 | Random number seed will be set after current time if left at 0

You can write any free form comments in a runfile like this, except using the ampersand ("and-symbol") immediately before simulate.
If you use that, the compiler will expect a valid simulation command in the format above.
After simulation the file "run.txt" will be renamed to "completed_run_file.txt

We do know that this syntax is awkward and we are working on developing an easier way of specifying all this.

 

Context

To get anything done in Evolvix you need to define a Model, a Query and a Task: most of these are defined by the special model implemented by the Special Evolvix Worker Ratchet.

Evolvix development at the moment focusses onsetting up the infrastructure. Once that is done, development will be mostly about extending the types of models are are supported, as well as new Queries about them and the Evolvix Workers that actually get the answers.

 

 

If there are any questions, please contact:

Laurence.Loewe@evolutionary-research.net