Build instructions for HHMER on OpenVMS

mathog at seqaxp.bio.caltech.edu mathog at seqaxp.bio.caltech.edu
Wed Jun 12 14:25:12 EST 1996


A few weeks ago there was a discussion of how to align huge number of
sequences in which Sean Eddy's HMMER package was mentioned.  It took a few
very minor tweaks to build it on our OpenVMS system, and it worked with
every example given in the tutorial (subject to the usual caveats about
double quoting case sensitive UNIX switches, ie, -u vs. -U, and switch 
order on the command line being a bit touchy - don't deviate from what the 
-h option says it requires).  Kudos to S.E. - the HMMER package seems to be
a very solidly written piece of code.  

Since there's no point in anybody else duplicating this port, I'm posting
the details of how to do it here. This was on OpenVMS/Alpha 6.2 with the
DECC 5.2 compiler. 

Pick up HHMER by hitting the download link in:

http://genome.wustl.edu/eddy

Gunzip and untar it.

Change all instances of:

#ifdef NEED_GETOPTH
#include <getopt.h>
#endif

to

#ifdef NEED_GETOPTH
#include <getopt.h>
#endif
#ifdef NEED_UNISTDH
#include <unistd.h>
#endif

(This is in most of the main *.c modules)

Modify squid.h, put the following lines in just above the existing code
concerning HUGE_VAL (needed so that HUGE_VAL is just a real and not the
humongous float that DECC sets it to, which causes math problems during
compilation.) 

#ifdef __VMS
#undef HUGE_VAL
#define HUGE_VAL 1e38
#endif
 
Obtain a copy of strcmpcase() from somewhere.  For instance, there is one
in the X11KIT on ftp.wku.edu.

Drop the make.com file which follows my signature into the source
directory.  Do @make.com.  There will be a couple of warnings about
implicit function definitions for strcasecmp - as there is no prototype for
it in any of the header files.  Other than that, HMMER compiles, links, and 
runs cleanly.  For OpenVMS 6.2 and above add the location of the
executables to DCL$PATH, for 6.1 and below, define symbols for each
program, ie: 

  $ hmma :== $wherever_it_is:hmma

Regards,

David Mathog
mathog at seqaxp.bio.caltech.edu
Manager, sequence analysis facility, biology division, Caltech 

**********************************************************************
$! make.com
$! 11-JUN-1996, David Mathog, Biology Division, Caltech
$!
$! Simple build procedure for OpenVMS with DECC compilers.
$!
$! Note that the redefinition with BLASTDB is to avoid a conflict with
$! GCG's BLASTDB logical name.
$!
$!
$ mycc   :== cc/standard=ansi89/prefix=all/nolis  -
  /define=("""BLASTDB=NOTBLASTDB""", -
           NO_STRDUP,NORANDOM, -
           NEED_UNISTDH)
$ mylink :== link/nomap
$!
$! build the common pieces
$!
$! "SQUID" pieces
$ mycc aligneval.c
$ mycc alignio.c
$ mycc sqerror.c
$ mycc sqio.c
$ mycc iupac.c
$ mycc msf.c
$ mycc revcomp.c
$ mycc selex.c
$ mycc sre_ctype.c
$ mycc sre_math.c
$ mycc sre_string.c
$ mycc types.c
$ mycc cluster.c
$ mycc weight.c
$ mycc stack.c
$ mycc dayhoff.c
$!
$! VMS (actually ANSI C) doesn't have a strcasecmp() function, yet
$! one is required.  Many VMS packages have this function available
$! to plug this hole
$!
$ mycc strcasecmp.c
$!
$!
$! "SRC" pieces OTHER than mains
$!
$ mycc align.c
$ mycc dbviterbi.c
$ mycc emit.c
$ mycc forback.c
$ mycc fragviterbi.c
$ mycc hmmio.c
$ mycc maxmodelmaker.c
$ mycc misc.c
$ mycc output.c
$ mycc profiles.c
$ mycc prior.c
$ mycc saviterbi.c
$ mycc scorestack.c
$ mycc states.c
$ mycc viterbi.c
$ mycc swviterbi.c
$ mycc trace.c
$ mycc weeviterbi.c
$!
$! at this point toss all of these into an object library
$!
$ library/create hmm.olb *.obj
$!
$! compile the mains
$!
$ mycc hmma.c
$ mycc build_main.c
$ mycc hmme.c
$ mycc hmmfs.c
$ mycc hmmls.c
$ mycc search.c
$ mycc hmmsw.c
$ mycc train_main.c
$ mycc convert_main.c
$ if (f$search("align-homologues.c") .nes. "")then -
   rename align-homologues.c align_homologues.c
$ mycc align_homologues.c
$!
$! link the mains
$!
$ mylink             hmma,hmm/lib
$ mylink/exe=hmmb    build_main,hmm/lib
$ mylink             hmme,hmm/lib
$ mylink             hmmfs,hmm/lib
$ mylink             hmmls,hmm/lib
$ mylink/exe=hmms    search,hmm/lib
$ mylink             hmmsw,hmm/lib
$ mylink/exe=hmmt    train_main,hmm/lib
$ mylink/exe=hmmc    convert_main,hmm/lib
$ mylink/exe=align_homologues align_homologues,hmm/lib
$!
$ set file/prot=w:re *.exe
$!
$ write sys$output "Build completed"




More information about the Bio-soft mailing list