Using an input file
The program levolution is launched via the command line, preferentially with the name of an input file as the only argument. All necessary arguments are then specified in the input file, which is the most convenient way to specify arguments since they are stored in a reusable fashion. Basically, an input file a simple collection of pairs of argument names and corresponding values (separated by one or several white space characters, i.e. blanks or tabs). While each name-value pair has to be at the beginning of a new line, the order is of no importance.
Comments may either be added after a name-value pair or given on a line on their own. Note that all comments must be proceeded with a double slash ``//''. Empty lines may be present anywhere within the file and are ignored. A minimal input file to conduct some simulations may look like this:
//My first input file for levolution! task simulate birthRate 1 deathRate 1 age 1000 numLeaves 100 rootState 0 brownVar 1 alpha 5 numJumps 4
Suppose the input file is named
example.input, the program has to be launched as follows:
Command Line Arguments
Additionally, arguments may be passed on the command line. In that case, arguments that are also given in the input file will be overwritten. The required syntax is as follows:
levolution example.input name=value
name is the name of an argument and
value is the corresponding value. For instance,
levolution example.input outName=test alpha=2
launches levolution as specified in
example.input but adds the argument
outName, which specifies a prefix for all output files, and also sets alpha=2 and thus overwrites the specification alpha=5 in the input file. Note that some arguments do not require a value.
There is no restriction on the number of arguments to be passed that way and arguments can also be specified on the command line only. Also, the order in which the arguments are given, both in the input file or on the command line, is of no importance. However, if an input file is to be used, the program levolution requires the name of it to be the first argument specified.
Choosing the right Task
Note that levolution is designed to perform multiple tasks. To specify the desired task, the mandatory argument
task has to be specified either in the input file or on the command line. Available tasks are:
Progress Report & Log File
By default, levolution writes only minimal information to the screen. To get a more detailed progress report printed to the screen, simply add the argument
verbose either in the input file or on the command line, for instance:
levolution example.input verbose
Alternatively, levolution can also write the progress report to a log file. To invoke this, simply use the argument
logFile, followed by the name of the desired file. For instance,
levolution example.input logFile=example.log
will tell levolution to write the progress report to a file named example.log. Note that this will overwrite any existing file with that name. Note further that
logFile can both be used at the same time.