Downloading and Installing SHORE

From SHORE wiki
Jump to: navigation, search


Download the latest SHORE binary or source code release

or check out the git repository to compile SHORE from the very latest source:

> git clone git://

Installing SHORE using the binary file

Navigate to the folder where you stored the downloaded file:

 > tar xzvf shore_<platform>_<version>.tar.gz

Now, adjust the PATH environment variable to include the extracted shore directory (or copy the shore binary to a location in your PATH).

For example, in a typical bash environment, add a similar line to the file $HOME/.bashrc:


Installing SHORE using the source files

Installation prerequisites

SHORE requires gcc and g++ version 4.0.2 or later to be built successfully (check by running `g++ --version` in a terminal).

In addition to that, please make sure that the following libraries and development headers are installed on your system:

Library Version Debian / Ubuntu package name MacPorts package
boost filesystem 1.34.1 - 1.53.0 libboost-filesystem-dev boost
boost iostreams 1.34.1 - 1.53.0 libboost-iostreams-dev boost
boost thread 1.34.1 - 1.53.0 libboost-thread-dev boost
GNU Scientific Library ≥0.11 libgsl0-dev gsl-devel
zlib ≥1.1.3 zlib1g-dev zlib
liblzma ≥5.0.1 liblzma-dev xz-devel

When installing libraries using a package manager like Ubuntu Software Center, aptitude or MacPorts, be sure to select the *-dev or *-devel versions of the packages where available.

Compiling and installing SHORE

Navigate to the directory where you stored the downloaded file

> tar xzvf shore_<version>.tar.gz
> cd shore_source_<version>

(or navigate to your shore git folder).

In case you checked out a development snapshot from git, you need to run the autogen script first. The autogen script additionally requires autoconf, automake and libtool installed on your system.


If you downloaded a regular release, the autogen step can be skipped. To build and install SHORE, simply type

make install

This will install the SHORE binary into /usr/local/bin, the scoring matrix files into usr/local/share/shore, documentation files into /usr/local/share/doc/shore and libraries and development headers into /usr/local/lib and /usr/local/include, respectively.

To install into a different directory, use the --prefix option to configure

./configure prefix=<path>

to install SHORE into <path>/bin, <path>/share etc.

Using locally installed libraries / MacPorts

If there is no system wide installation for some of the libraries that SHORE requires, but you installed them e.g. into your home directory, it may be necessary to set the environment variables LD_LIBRARY_PATH, LIBRARY_PATH and CPLUS_INCLUDE_PATH for the compiler and linker to recognize them.

E.g. if the Boost and GSL libraries are installed into /home/xyz/boost-1.48 and /home/xyz/gsl-1.11, set:

export CPLUS_INCLUDE_PATH=/home/xyz/boost-1.48/include:/home/xyz/gsl-1.11/include
export LIBRARY_PATH=/home/xyz/boost-1.48/lib:/home/xyz/gsl-1.11/lib
export LD_LIBRARY_PATH=/home/xyz/boost-1.48/lib:/home/xyz/gsl-1.11/lib

These instructions also apply to libraries installed on OS X using MacPorts. MacPorts typically installs libraries to /opt/local. To use them, set:

export CPLUS_INCLUDE_PATH=/opt/local/include
export LIBRARY_PATH=/opt/local/lib

Additional important configure options

  • ./configure --with-mpi

A binary with support for Message Passing Interface (MPI) parallelization will be built. This additional binary will be named `shore-mpi`.

  • ./configure --without-lzma

Disables suppport for LZMA compression.

Building SHORE for distributed memory setups

SHORE can also be compiled to support distributed memory parallelization through the MPI (Message Passing Interface) standard.

Make sure to have appropriate MPI development files installed, e. g. MPICH2.

First, follow the above instructions for compiling shore from source.

To build and install the MPI-enabled SHORE binary, add the option --with-mpi when running ./configure.

An additional command shore-mpi will then be built and installed, which can be passed to an MPI process manager like mpiexec (see using SHORE with MPI).

Download and install an alignment tool

SHORE can currently be run with five different alignment tools. The native tool of SHORE is GenomeMapper, which can be downloaded from

Navigate to the folder where you stored the downloaded file:

> tar xzvf genomemapper.tar.gz
> cd genomemapper
> make

See the GenomeMapper manual for further details.

Now, copy the genomemapper and gmindex binaries to a location in your PATH, or set the GENOMEMAPPER environment variable as described below.

In addition to GenomeMapper, SHORE supports several third party aligners.

Installation of R

SHORE can optionally make use of R ( to provide visualization, e.g. of run statistics. In order to use this feature, R has to be installed and the installation path has to be added to the $PATH environment variable. Note that it is not necessary to have R installed to run SHORE.

Environment variables

Since SHORE supports external alignment tools, it needs to know where these are located on the respective system. The easiest way to achieve this is making sure the alignment tools are installed in a location that is pointed to by the $PATH environment variable (exemplary description for the bash environment; for tcsh or any other shell, users have to set the environment variables in an equivalent way).

Add one or more similar lines to the file $HOME/.bashrc:


Alternatively, individual environment variables may be set up for each specific alignment tool that should be used:


third-party tools:


TMP directory

Some files need to be sorted before SHORE can use them. Before using these input files SHORE checks if they are sorted in the appropriate way and in case of inconsistencies SHORE will start to sort them. E.g., initially alignments are sorted by read ids, but to analyze them they need to be sorted by the alignment location. Therefore sorting is required. SHORE implements its own sorting program. By default this program uses /tmp if the files to be sorted are large (which is usually the case). Therefore, it can happen that the disk space in /tmp is not sufficient; we recommend at least 200GB. This can be achieved by setting the TMPDIR environment variable to a file system with sufficient space.