* Requirements

** Unixy environment (probably)
   I have only tested this stuff on Linux.  I have good confidence Mac
   folk should probably not have much trouble there's a shell under
   the hood.  As the last Windows I used seriously was Windows 98,
   you'll forgive me for not including detailed instructions on how to
   set paths and compile programs in that environment.  It's probably
   possible, just not high on my priority list.
  
** Matlab
   The ubiquitous high-level number cruncher, though costly, is
   certainly convenient for both developer and practitioner.  We are
   currently entertaining a port to Octave for all you FSF folks who
   cringe at the need to use proprietary software.  Be patient.

** CSDP, Modified
   An excellent semidefinite programming solver written by Brian
   Borchers.  A modified version should be available from the same
   location as Domo was downloaded.  I have modified the interface a
   little to accomodate multiple instances running in the same
   directory.  Unfortunately, this means the original version will not
   work with Domo.  If you are curious, the original version may be
   obtained from https://projects.coin-or.org/Csdp/.  You will need to
   compile CSDP to produce the 'csdp/solver/csdp' executable and put it somewhere
   on your shell's PATH.

** Matlab Optimization Toolbox
   Currently the lsqlin() function from the optimization toolbox is
   used by Domo to compute the objective to be minimized.  This is not
   strictly necessary as other software exists to do solve the same
   type of problem.  In particular, there is some support to use
   SeDuMi which is slower but free-er.  With a little hacking on, you
   can activate this feature.  The next version of Domo will have this
   feature enabled explicitly.  SeDuMi is great software (the SDP/cone
   solver I got my start with) and may be obtained from
   http://sedumi.ie.lehigh.edu/

* Installing

If you are reading this, you probably managed to unzip/untar/extract
the package containing Domo.  Before playing with it, make sure that
the CSDP executable is on your path.  In a unix shell do

> which csdp
/home/grad02/kauffman/csdp/solver/csdp

which gives the location of my particular copy of CSDP.  If no
location pops up, the csdp executable wasn't found so it must be added
to your shell's path.  In BASH, do this with

> export PATH=/path/to/csdp/solver:$PATH

All that remains is to make sure Matlab knows where to find the Domo
and CSDP matlab scripts. Start Matlab. You will then probably need to
do something like

>> addpath /path/to/csdp/matlab
>> addpath /path/to/domo/matlab
>> which csdp
/home/grad02/kauffman/code/csdp/matlab/csdp.m
>> which domo_predict
/project/dminers30/kauffman/research-code/domo/trunk/matlab/domo_predict.m

Consult the help on 'addpath' to make the change permanent.

After that, you're set.  Try the 'domo_demo' for a quick overview.
This takes about 5 minutes to run the computations on a modern PC.

>> domo_demo
Found csdp, proceeding
Found lsqlin, proceeding

Computing Domo prediction
Ignoring 154 violated inequality constr
Zeroing 41 eigenvalues
Objective Design, solver: lsqlin  eql_min: 0  eql_wgt: 50
Min_Eqns: OML 
Eql_Eqns: DFL DFS NZS 
Setup Complete
D0>   toteqn   totvar   totmin   toteql    nfree  nlinear
D1>    10628     7487     3486     7142     7141      346
Solving NN-LSQ formulation with lsqlin, eql_wgt: 50
Optimization terminated: relative function value changing by less
 than sqrt(OPTIONS.TolFun), and rate of progress is slow.
D2>   objval  Minutes     Smsg
D3> 3.41e+03     0.22  SmResid
169 equality  3486 inequality  0 linear  85 sdp
ii  nineq frac    inerr    e4to3 cviter minutes
 1      0 0.00 7.05e-03 4.17e-06      1    0.03

Computing NEDM prediction
2900 equality  3486 inequality  5462 linear  85 sdp
ii  nineq frac    inerr    e4to3 cviter minutes
 1      0 0.00 1.11e-02 5.30e-03      3    2.18
 2    174 0.05 4.12e-04 2.34e-02      3    2.99

Computing CMDS prediction
Finished with structure predictions
Domo prediction: RMSD = 1.83 Proper
Press return to view the next prediction

NEDM prediction: RMSD = 1.91 Proper
Press return to view the next prediction

CMDS prediction: RMSD = 1.91 Proper
