[m]piBlast [D]atabase [U]pdater (mdu)

mdu screenshot
[m]piBlast [D]atabase [U]pdater, written in Python, is a small command line based application used to update or install (since the process is identical in both cases) of databases for use with mpiBLAST. It attempts to streamline the process, so that mdu can be submitted as a job to a cluster machine and run unattended.

The difference between using mdu and doing manual updates is that with mdu, you can set which databases should be updated, decide how it should be carried out and start the application. Then let mdu do all the work (and tedious waiting for downloads and formatting), while you watch an episode of Seinfeld. You can even set mdu to run as a cron job.

mdu is distributed under the GPL licence.

Martin Matusiak - mdu project manager



mdu also depends on a range of gnu tools, like..


Download a release:
To download the latest version of mdu, use subversion to check out the files from the repository.

$ svn checkout https://svn.sourceforge.net/svnroot/grid-portal/code/mdu/src/mdu

Source code repository

To browse the source code repository, use one of the following methods:



# $File: src/mdu/README

Q. What is mdu all about?
A. mdu is a shell-driven application, which allows you to easily install and/or
update a set of databases for use with mpiBLAST. It sets out to automate the
process of updating databases, requiring no user intervention, whether you 
choose to monitor the update process or submit it to the cluster as a PBS job.

Q. How do I get started?
A. Open conf_user.py and follow the instructions. Have a quick look at 
conf_sys.py to see if maybe there are some system specific options you should 

Q. How do I run mdu?
A. mdu is nothing more than a glorified shell script, so you can run it any
way you would run a shell script. Invoked without any flags, it will print
the help on usage. A typical invokation would look something like:

$ python mdu.py --debug --start

A pbs job script is included with mdu, you can submit that as a job like so:
$ qsub job.pbs

Q. What do the runtime flags mean?
A. This is what the flags mean:

Recommended, prints verbose output from mdu and every command mdu executes.

mdu will download, unpack and format the database, but not install it. And it
will preserve the working directory (which is otherwise cleared). Useful for

Displays help on usage.

After a database is downloaded and unpacked, it will be formatted and
installed. With this flag, the unpacked files will not be removed and can be
used to run mdu again.

Turns off color output in the terminal. Recommended for batch execution when 
you wish to capture the output in a log file for later review.

mpiformatdb will reorder a database before segmenting it, to ensure that the
segments will be roughly equal in size. This process takes a long time 
(relative to the whole process of updating a database,) and skipping it saves 
both time and the temporary space required to process a database. When set, this
flag may cause mpiformatdb to output segments of varying size (depending on the
database itself).

mdu will not do anything unless you include this flag.

If downloaded files are found in the workdir from a previous run of mdu, they 
will be used. Otherwise any existing files will be overwritten. (This pertains
to the workdir, not the mpiBLAST shared directory, where the databases are
© 2005 Martin Matusiak. All content on this website is licenced under a Creative Commons License.