
This document contains the Frequently Asked Questions with Answers
to the NCBI toolkit.
It is available at ftp://ftp.ncbi.nih.gov/toolbox/FAQ.html

In case of any questions don't hesitate to ask us at
    mailto:toolbox@ncbi.nlm.nih.gov

Q. Where can I download the binaries of NCBI toolkit?
A. The binaries of NCBI toolkit may be downloaded at:
    BLAST:      ftp://ftp.ncbi.nih.gov/blast/executables/
    SEQUIN:     ftp://ftp.ncbi.nih.gov/sequin/
    FA2HTGS:    ftp://ftp.ncbi.nih.gov/fa2htgs/
    ENTREZ:     ftp://ftp.ncbi.nih.gov/entrez/
    CN3D:       ftp://ftp.ncbi.nih.gov/cn3d/

Currently NCBI prepares the binaries for the following platforms:
    Sun/Sparc -- Solaris 2.8
    Intel x86 -- Solaris 2.7
    Intel x86 -- Linux with kernel 2.4.17 and glibc ver 2.2.4
    Intel x86 -- Microsoft Windows 2000 (32bit)
    IBM       -- AIX 4.3.3
    DEC Alpha -- OSF1 V5.1
    SGI       -- IRIX 6.5
    Motorola 68000   -- MacOS
    Motorola PowerPC -- MacOS

Q. Where can I download the sources of NCBI toolkit?
A. The sources of NCBI toolkit for Unix are located at:
    ftp://ftp.ncbi.nih.gov/toolbox/ncbi_tools/ncbi.tar.Z
The sources of NCBI toolkit for Windows are located at:
    ftp://ftp.ncbi.nih.gov/toolbox/ncbi_tools/ncbiz.exe
And the sources of NCBI toolkit for Mac are located at:
    ftp://ftp.ncbi.nih.gov/toolbox/ncbi_tools/ncbi.hqx

Q. I have Macintosh PowerBook with Mac OS 10, what archive should I download?
A. For Mac OS 10 you should download the sources of NCBI toolkit for Unix
   located at:
    ftp://ftp.ncbi.nih.gov/toolbox/ncbi_tools/ncbi.tar.Z
   The Darwin is supported, you should have GNU tar, GNU make and other GNU utils
   installed. Please follow unix instructions in file ./ncbi/make/readme.unx

Q. How to find the version of the toolkit?
A. The source of the ToolKit for Unix, which is located at
    ftp://ftp.ncbi.nih.gov/toolbox/ncbi_tools/ncbi.tar.Z
should have the file ncbi/VERSION with the date of the building.

Q. How to build NCBI toolkit on Unix?
A. Read the file ftp://ftp.ncbi.nih.gov/toolbox/readme.unx
   You should take the sources of NCBI tookit at:
    ftp://ftp.ncbi.nih.gov/toolbox/ncbi_tools/ncbi.tar.Z
    put the archive to the new empty directory:
    mkdir toolkit
    cd toolkit
    #download ncbi.tar.Z here
    compress -d < ncbi.tar.Z | tar xvf -
    # the new directory ncbi will be extracted
    # now run the command:
    # in sh or bash
    ./ncbi/make/makedis.csh - 2>&1 | tee out.makedis.csh
    # in csh or tcsh
    ./ncbi/make/makedis.csh - |& tee out.makedis.csh
   The new binaries and libraries will be in ncbi/build subdirectory

Q. May I build toolkit on Solaris/Intel or Solaris/Sparc using GNU C?
A. Yes, just set the environment variable CC to gcc prior to run of
   ./ncbi/make/makedis.csh , like:
    # in sh or bash
    CC=gcc ./ncbi/make/makedis.csh - 2>&1 | tee out.makedis.txt
    # in csh or tcsh
    env CC=gcc ./ncbi/make/makedis.csh - |& tee out.makedis.txt

Q. How can I build toolkit on Linux with Vibrant library?
A. You should purchase Motif for Linux. 
As an alternative to Motif there is a free clone which is called Lesstif
which can be downloaded at http://www.lesstif.org/
We didn't check this option yet, so you can use Lesstif for your own risk.
Besides the Motif/Lesstif the X11R6 development toolkit should be installed.

Q. On Linux I got the following error on compilation of toolkit:
gcc -pipe -o Psequin -I. -O2 -I../include -L../lib -I/usr/X11R6/include
-L/usr/X11R6/lib -DWIN_MOTIF -UINTERNAL_NCBI_SEQUIN sequin1.c sequin2.c
sequin3.c sequin4.c sequin5.c sequin6.c sequin7.c sequin8.c sequin9.c
sequin10.c sequinx.c -lncbicn3d -lddvlib -lvibnet -lncbidesk -lblastapi
-lblast -lncbimmdb -lncbitxc2 -lncbiid1 -lnetblast -lncbitool -lblastcompadj
-lncbimla -lncbiNacc -lnetentr -lnetcli -lncbicdr -lvibrant -lncbiobj -lncbi
-L/usr/X11R6/lib -Wl,-Bstatic -lXm -Wl,-Bdynamic -lXmu -lXt -lX11 -lXext -lXp
-lm
sequin6.c:262: warning: useless storage class specifier in empty declaration
../lib/libncbi.a(ncbifile.o): In function `Nlm_TmpNam':
ncbifile.c:(.text+0x2b4): warning: the use of `tempnam' is dangerous, better
use `mkstemp'
/usr/lib/libXm.a(TextIn.o): In function `SelfInsert':
(.text+0x9828): undefined reference to `XftTextExtentsUtf8'
[...]
/usr/lib/libXm.a(Png.o): In function `png_load_file':
(.text+0x4ec): undefined reference to `png_destroy_read_struct'
collect2: ld returned 1 exit status
make: *** [Psequin] Error 1
A. To avoid binary-compatibility concerns in the executables we distribute,
we normally arrange for the C Toolkit to link Motif statically on Linux.
This arrangement has the unfortunate side effect that some users run into
undefined symbol errors because their system's implementation has additional
library dependencies relative to ours.  The fix is at least straightforward:
open the relevant .../ncbi/platform/*linux*.ncbi.mk file in your favorite
text editor and adjust the definition of NCBI_DISTVIBLIBS to omit the -Wl,-B
flags, most critically -Wl,-Bstatic .  You can determine which file to edit
by reviewing out.makedis.csh; there should be a line near the beginning of
the form reading "platform is linux64" or the like.

Q. On RedHat Linux 7.* I got the following error on compilation of toolkit:
gcc -pipe -D_FILE_OFFSET_BITS=64 -D_LARGEFILE64_SOURCE -O2 -c  -I../include objproj.c
{standard input}: Assembler messages:
{standard input}:2352: Error: immediate operand illegal with absolute jump
{standard input}:2761: Error: immediate operand illegal with absolute jump
make: *** [objproj.o] Error 1
So how can I solve this problem?
A. This is a bug in optimizier of gcc compiler which is instaled by default
on Redhat Linux. You can either compile this file manually deleting the
optimization flag:
    cd ./ncbi/build
    gcc -pipe -D_FILE_OFFSET_BITS=64 -D_LARGEFILE64_SOURCE -c  -I../include objproj.c
    cd ../..
    ./make/makedis.csh 2>&1 | tee -a out.makedis.txt
Or upgrade the gcc to latest version 3.0.4

Q. On RedHat Linux 7.* I got the following error on compilation of toolkit:
gcc -static -pipe -D_FILE_OFFSET_BITS=64 -D_LARGEFILE64_SOURCE -o Psequin
-I. -O2 -I../include  -L../lib -I/usr/X11R6/include -L/usr/X11R6/lib
-DWIN_MOTIF -UINTERNAL_NCBI_SEQUIN sequin1.c sequin2.c sequin3.c sequin4.c
sequin5.c sequin6.c sequin7.c sequin8.c sequin9.c sequinx.c -lncbicn3d -lddvlib
-lvibnet -lncbidesk -lncbimmdb -lncbitxc2 -lncbiid1 -lnetblast
-lncbitool -lncbimla \ -lncbiNacc -lnetentr -lnetcli -lncbicdr -lvibrant
-lncbiobj -lncbi -L/usr/X11R6/lib -lXm -lXmu -lXt -lSM -lICE -lXext -lXp
-lX11 -ldl -lm
sequin2.c: In function `ImportFastaDialog':
sequin2.c:562: warning: comparison is always true due to limited range
of data type
sequin4.c: In function `SetDescriptorFocus':
sequin4.c:6580: warning: cast from pointer to integer of different size
/usr/X11R6/lib/libXmu.a(EditresCom.o): In function
`_XEditResCheckMessages':
EditresCom.o(.text+0x0): multiple definition of `_XEditResCheckMessages'
/usr/X11R6/lib/libXm.a(EditresCom.o)(.text+0x70): first defined here
../lib/libncbi.a(ncbifile.o): In function `Nlm_TmpNam':
ncbifile.o(.text+0x728): the use of `tempnam' is dangerous, better use
`mkstemp'
collect2: ld returned 1 exit status
make: *** [Psequin] Error 1
FAILURE primary make status = 0, demo = 0, threaded_demo = 0, net = 2

A. The problem is that you probably have the 'openmotif-devel' RPM installed,
   which provides a 'libXm.a' that defines that function. We don't build
   the toolkit aganist Open Motif, we build it against Lesstif. If the
   end-user removes the 'openmotif-devel' package, things should work.
   (The user might have to install a lesstif package or two, depending
   on what they've already got set up.)

   Why RedHat lets you install two different Motif toolkits at the same
   time, when they don't have identical implementations, is beyond us.

Q. On Mandrake 9.* I got the following error on compilation of toolkit:
    gcc -static -pipe -D_FILE_OFFSET_BITS=64 -D_LARGEFILE64_SOURCE -o
    asntool -O2 -I../include   -L../lib asntool.c asncode.c ../lib/libncbi.a -lm
    /usr/bin/ld: cannot find -lm
    collect2: ld returned 1 exit status
    make: *** [asntool] Error 1
   So how can I solve this problem?
A. Seems you do not have static MATH library (-lm).
   You can try to build toolkit with dynamic libraries. Please change the line
   in ./ncbi/platform/linux.ncbi.mk file from:
     NCBI_CC = gcc -static -pipe -D_FILE_OFFSET_BITS=64 -D_LARGEFILE64_SOURCE
   to:
     NCBI_CC = gcc -pipe -D_FILE_OFFSET_BITS=64 -D_LARGEFILE64_SOURCE

Q. How can I build toolkit on Linux without Vibrant library?
A. Yes, the ./ncbi/make/makedis.csh script tries to check for Motif presence
   and without motif/lesstif builds only ascii-based applications like
   standalone blast or idfetch.

Q. Can I build threaded version of BLAST on IRIX6.X?
A. Yes, you can if you upgrade your system and put the proper patches.
SGI recommends the following threads patches on IRIX6 systems:
   For 6.2 systems, install SG0001404, SG0001645, SG0002000, SG0002420
and SG0002458 (in that order)
   For 6.3 systems, install SG0001645, SG0002420 and SG0002458 (in that order)
   For 6.4 systems, install SG0002194, SG0002420 and SG0002458 (in that order)
These patches can be obtained by calling SGI customer service or from
the web: http://support.sgi.com/

Q. Can I build non-threaded version of BLAST on IRIX6.X?
A. Yes, you can. In that case you should specify the flag
 -DNCBI_NOTHREADS_AVAIL modifying the file ncbi/make/makedis.csh

Q. I am having a bit of trouble trying to get the PSI blast to work. The
demo program "blastpgp.exe" simple issues an error message saying
"cannot open file "nr.pin"" and then crashes.
A. That message indicates that it can not find your database 'nr'.
After you run formatdb on nr you should have seven files (if you use
the '-o T' option) with names:
nr.phr  nr.pin  nr.pnd  nr.pni  nr.psd  nr.psi  nr.psq
First you should check that all the files are present and if they are
not, then look for error messages in formatdb.log.  Next check that
you are specifying the correct path to the files (or better, run blastpgp.exe
in the same directory as the database files).  You can also specify the
path in your ncbi.ini file by adding:
[BLAST]
BLASTDB=C:\BLAST\DB
where you replace "C:\BLAST\DB" by the directory that contains your
BLAST databases.

Q. I installed the NCBI Toolkit but when I attempt to run this, I get
the error message: FindPath failed
A. This error message is usually caused either by not having an
ncbi.ini on Windows platforms or the .ncbirc file on UNIx or by not
having this file in the proper directory.

 1. For UNIX you need to have a .ncbirc file in your home
    directory which points to the data directories.
    Example:

    [NCBI]
    Data=/home/user/entrez/data

 2. For Windows you need to have a ncbi.ini in your WINDOWS or
    WINNT directory file which points to the data
    directories. Example:

    [NCBI]
    Data=C:\entrez\data
 3. For the Mac, the configuration file is called ncbi.cnf, and
    should be placed in your "System Folder:Preferences" subfolder.
    Example:

    [NCBI]
    Data=MacintoshHD:Entrez Folder:data
        
Q. Can I get a hardcopy of the NCBI Toolkit documentation?
A. Yes, we will send you a hardcopy of the toolkit documentation. Please
send your request to the NCBI Information help desk at info@ncbi.nlm.nih.gov
Include your complete mailing address. 

