The Multi-Batch Parsimony Ratchet (MBPR)
  Version 1.0
  For Use with PAUP* Unix & Mac
 
  Plotkin Lab Group
  http://mathbio.sas.upenn.edu/
  Daril Vilhena (daril 'at' sas.upenn.edu)
  MBPR is freeware and comes with no warranty or support. Use at your own risk.

Download

Paper



Description

A Perl script that implements a modified algorithm based on the Parsimony Ratchet (Nixon, 1998).

Quick Guide for Fast Parsimony Results

1) Untar mbpr.tar.
2) You may have to change the path to Perl on line #1. By default it is /usr/bin/perl
3) Scroll down to "usage guide" for variable command directions.
4) After you input your criteria, the number you specified as "save" will be the number of trees that are saved with the lowest scores.

Purpose

The industry standard one-batch file implementation of the parsimony ratchet, the basis for numerous scripts and suggested by the author (Nixon, 1998), has one problem: scores do not decrease monotonically throughout the algorithm, and sometimes the latest search is not performed on the tree with the lowest score in memory.

MBPR continually searches from the lowest score held in memory by generating multiple batch files. This seems to decrease the computational effort required to find minimum scores.

More information on this approach is provided here.

Usage Guide

MBPR performs these steps from the input statement directly below it:

1) Save all paup activity to paup.log
2) Load data from ha1.nex
3) Create and delete batch files named batch.nex.
4) Store the ten best trees in ascending score order in 10 .tre files named tree0.tre, tree1.tre, tree2.tre, tree3.tre, tree4.tre, tree5.tre, tree6.tre, tree7.tre, tree8.tre, tree9.tre.
5) Randomly weight 15% of the characters to weight 2 for each weighted search.
6) Run 50 sets of iterations.

Here is an example of a full input line:

perl mbpr.pl --log=paup.log --data=ha1.nex --batch=batch.nex --store=tree --weight=15 --iters=50 --save=10 --echo=paup

MBPR is only available for the PAUP portable Unix version. The terminal interface is used for users to input MBPR's variables, and after these are supplied MBPR will run autonomously until it is finished.

Inputting the variables is easy and takes only a few seconds. Below is a list of each variable and its description. Each variable needs to have two dashed lines preceding its name.


Required Input

--log=

Set the name of the log to record all of paup's activity. Will replace any current logs with the name of the log supplied.

Example input:

--log=paup.log

--data=

The source of the data file that PAUP will import to heuristically search.

Example input:

--data=angiosperms.nex

--batch=

The batch file that will be generated and deleted repeatedly.

Example input:

--batch=batch.nex

--store=

The prefix of the name of the files to save. If you want to have ten best trees by the end of your search, a prefix of "angiosperms" will yield ten files named angiosperms0.tre, angiosperms1.tre, angiosperms2.tre, etc.

Example input:

--store=angiosperms

--weight=

The percentage of characters to weight. The Parsimony Ratchet paper (Nixon, 1999b) suggests between 5-25%.

Example input:

--weight=20

--iters=

The amount of iterations to undergo. The Parsimony Ratchet paper (Nixon, 1999b) suggests between 50-200. Since the methodology of MBPR is different and involves searching more trees in fewer iterations, usually between 20-50 iterations will find the best trees.

Example input:

--iters=50

--save=

The number of random starting trees you would like to generate. This amount also reflects how many low score trees you will have at the end of the job. If the amount is 10, you will have 10 files, each with one of the best scoring trees.

Example input:

--save=10

--echo=

This is what you usually type in terminal to start paup (paup's echo path). For most, this is just "paup".

Example input:

--echo=paup


Here is an example of a full input line:

perl mbpr.pl --log=paup.log --data=ha1.nex --batch=batch.nex --store=tree --weight=15 --iters=50 --save=10 --echo=paup