BMERC : needle tools : Appendices : Needle tools installation
This covers the "needle-tools-1.6" release, which has all of the programs documented by this collection of Web pages, exclusive of the needle software, which is available through the M.I.T. Technology Licensing Office of the Massachusetts Institute of Technology.
If you manage to bring needle tools up on some other system, please let us know. We would especially appreciate having any changes that were necessary to get it up and running.
In addition to the traditional Unix stuff (e.g. csh, tar, make, etc.), you will need the following compilers and interpreters in order to install and run these programs:
needle tools assumes that you will use DSSP secondary structure
assignments, and has no other provision for generating them; cores can
be produced automatically only from DSSP. So, you will either need to
write your own secondary structure definition interface, or install the
following additional software, which does not come bundled with
the needle tools code.
Then, install seqaln-2.0/seqaln/globalS into the
needle tools system binary directory. If
needle tools has already been installed, you can do this
by:
Finally, you will need the following additional packages if you wish to
run the corresponding optional parts of needle tools:
(Allegro is already supported by
scripts/make-ss-designations, but we do not distribute
Lisp binaries for Allegro.)
cd seqaln/bin
install.pl -show -m 555 globalS $NEEDLE_SYSTEM_BIN
Installation steps
These instructions are for Unix systems, and assume you already have the
necessary software installed. If you have problems while following
these instructions, please contact Bob Rogers
<rogers@darwin.bu.edu> for assistance.
cd /usr/local
You need to have write access to this directory.
Then,
gunzip -c needle-tools-1.6.tar.gz | tar xf -
rm needle-tools-1.6.tar.gz
This will build a subdirectory called "needle-tools-1.6"
that contains the needle tools directory tree, filling it up with
approximately 2.5MB of source code, data, and documentation;
compiling will push it to about 5MB. The installed software
(scripts, programs, and a few data files) requires from 1.0MB to
1.9MB, depending on the system type; the installed HTML
documentation is about 700KB.
cd needle-tools-1.6
make all
Ignore the following Fortran warnings:
"access.f", line 214: Warning: there is a branch to label 2 from outside block
"addradii.f", line 70: Warning: ignoring unimplemented "readonly" specifier
"charge.f", line 42: Warning: ignoring unimplemented "readonly" specifier
and all C "implicit declaration of function" warnings (under
gcc). Compiling the Fortran code on the Alphas gives a different
set of warnings:
fort: Info: access.f, line 172: Questionable branch into loop or block
IF(IO.GT.ICT)GO TO 2
fort: Info: frens.f, line 193: Questionable branch into loop or block
IF (NAME(JR).EQ.LRES) GO TO 1400
fort: Info: frens.f, line 359: Questionable branch into loop or block
GO TO 300
But these don't seem to make any difference, either.
#!/usr/local/bin/perl
#
# Installation script that is smarter than the install program . . .
The first line essentially hardwires the name of the perl
executable, and is therefore site-dependent. (Some other
incantation may be necessary depending the level of stupidity of
your Unix system; see the Camel
Book or the
perlrun man page for details.) Change the first
line so that it works at your site. Turning it into multiple
lines is fine, just as long as it is followed by a line with just
a "#" on it. Not only does this allow
install.pl itself to run, it tells install.pl
how to update these lines for any other perl script it installs.
setenv NEEDLE_SCRIPTS /usr/local/bin
setenv NEEDLE_SYSTEM_BIN /usr/local/bin
These definitions are only used by the
"make install" targets; you do not need them to run
needle tools.
set path = ($NEEDLE_SCRIPTS $path)
This must be done for installation, but is also required to run
the tools, so you should put something of this nature in your
.login script.
make install
This puts read-only copies of all binaries and scripts in the
appropriate directories, creating them if necessary. You should
get lots of messages, especially on DEC Alpha systems; as long as
make completes successfully, you can ignore them.
% mkdir new-cores
% cp test-cores/makefile test-cores/cores.loci new-cores
One must modify new-cores/makefile at this point to
replace "../pdb/pdb" with whatever is appropriate at
your site to put the PDB directory on the search path.
Alternatively, one can link it to needle-tools-1.6/pdb/
by doing
% ln -s /structure/pdb pdb
(using the BMERC local PDB directory /structure/pdb).
This has the advantage of preserving the file names; the
generated dependency file will therefore be that much closer to
identical to the distributed test version. See the
makefile discussion in the "Core library construction
examples" section for details.
% cd new-cores
% touch depends.make
% make depend
% make
% diff . ../test-cores
As described in the "Testing
the core generation results" section, diff should
find only trivial differences between the two directories.
Note that if the systems are very different, or if perl is installed in different places, then the result of editing the install.pl script will be different for different systems, and the perl scripts will have to be treated as if they were binaries (at least to the extent of installing them into the same directories). This can easily be taken care of in the init-needle-tools customization step below.
Modify the single-system recipe as follows.
If, for example, you decide to use
/usr/local/needle-tools-1.6/bin/scripts for the scripts
directory and /usr/local/needle-tools-1.6/bin/* as the
system-dependent binary directories, and assuming the
init-needle-tools code characterizes the differences
between your systems correctly, then all you have to do is change
the needle_bin_root initialization to look like this:
. . .
# [***site***: The following line needs to be site-customized.]
set needle_bin_root = /usr/local/needle-tools-1.6/bin
. . .
If you need to install
different perl (and/or other) scripts on each system, reset
the NEEDLE_SCRIPTS environment variable to the
NEEDLE_SYSTEM_BIN value after the latter is initialized:
setenv NEEDLE_SYSTEM_BIN $needle_bin_root/$needle_system
setenv NEEDLE_SCRIPTS $NEEDLE_SYSTEM_BIN
source needle-tools-1.6/scripts/init-needle-tools
% mkdir new-cores
% cp test-cores/makefile test-cores/cores.loci new-cores
% cd new-cores/
[one must modify the makefile at this point.]
% touch depends.make
(For the second and subsequent system, only the
cd command is necessary.) Then, and for all
subsequent systems, do:
% make clean
% make depend
% make
% diff . ../test-cores
% cd ..
As described in the "Testing
the core generation results" section, diff should
find only trivial differences between the two directories.
make clean