Biowulf at the NIH
RSS Feed
Madeline on Biowulf

The Madeline 2.0 Pedigree Drawing Engine is a pedigree drawing program designed to handle large and complex pedigrees with an emphasis on readability and aesthetics. For complex pedigrees a hybrid algorithm is used in which consanguinous loops are drawn as cyclic graphs whenever possible, but acyclic graphs are resorted when matings can no longer be connected without line crossings. A similar hybrid approach is used to avoid line crossings for matings between far-flung descendants of different founding groups. Written in object-oriented C++ and released under the GNU General Public License (GPL), Madeline 2.0 reads input files specified on the command line and generates pedigree drawings without user interaction. Pedigree output in scalable vector graphics (SVG) format can be viewed in browsers with native SVG rendering support such as Firefox 1.5+ and Opera 9.0+, or in vector graphics editors such as Inkscape. The Madeline 2.0 Pedigree Drawing Engine was written by Edward H. Trager, Ritu Khanna, and Adrian Marrs and the Copyright (c) 2006, 2007 is held by the Regents of the University of Michigan.

The environment variable(s) need to be set properly first. The easiest way to do this is by using the modules commands as in the example below.

[user@biowulf]$ module avail madeline
----------------------------- /usr/local/Modules/3.2.9/modulefiles --------------------------

[user@biowulf]$ module load madeline

[user@biowulf]$ module list
Currently Loaded Modulefiles:
  1) madeline/2.0

[user@biowulf]$ module unload madeline

[user@biowulf]$ module load madeline/2.0

[user@biowulf]$ module list
Currently Loaded Modulefiles:
  1) madeline/2.0

[user@biowulf]$ module show madeline

module-whatis    Sets up madeline 2.0 
prepend-path     PATH /usr/local/apps/madeline/2.0/trunk/src

Submitting a Single Batch Job

1. Create a script file along the lines below.

# This file is FileName
#PBS -N RunName
#PBS -m be
#PBS -k oe

module load madeline
cd /data/$USER/somewhereWithInputfile
madeline2 [option]... [file]...

3. Submit the script using the 'qsub' command on Biowulf, e.g. Note, user is recommend to run benchmarks to determine what kind of node is suitable for his/her jobs.

qsub -l nodes=1 /data/$USER/theScriptFileAbove

Useful commands:

freen: see

qstat: search for 'qstat' on for it's usage.

jobload: search for 'jobload' on for it's usage.


Submitting a Swarm of Jobs

Using the 'swarm' utility, one can submit many jobs to the cluster to run concurrently.

Set up a swarm command file (eg /data/username/cmdfile). Here is a sample file:

madeline2 [option]... /data/$USER/input1
madeline2 [option]... /data/$USER/input2
madeline2 [option]... /data/$USER/input3

Submit the swarm command file.

-f: the swarm command file name above (required)
--module: setup environmental variables
-g: GB of memory needed for each line of the commands in the swarm file above.(optional)

By default, each line of the commands above will be executed on '1' processor core of a node and uses 1GB of memory. If this is not what you want, you will need to specify '-g' flags when you submit the job on biowulf.

Say if each line of the commands above also will need to use 10gb of memory instead of the default 1gb of memory, make sure swarm understands this by including '-g 10' flag:

biowulf> $ swarm -g 10 --module madeline -f cmdfile

For more information regarding running swarm, see swarm.html


Running an Interactive Job

User may need to run jobs interactively sometimes. Such jobs should not be run on the Biowulf login node. Instead allocate an interactive node as described below, and run the interactive job there.

biowulf% qsub -I -l nodes=1
qsub: waiting for job 2236960.biobos to start
qsub: job 2236960.biobos ready 
[user@pXXXX]$ cd /data/$USER/myruns
[user@pXXXX]$ module load madeline
[user@pXXXX]$ madeline2 [option]... [file]...
[user@pXXXX]$ ...........
[user@pXXXX] exit
qsub: job 2236960.biobos completed
[user@biowulf ~]$ 

User may add property of node in the qsub command to request specific interactive node. For example, if you need a node with 8gb of memory to run job interactively, do this:

biowulf% qsub -I -l nodes=1:g8