From Documentation
Revision as of 17:14, 31 October 2017 by Ppomorsk (Talk | contribs) (unlikely to be used on new systems)

(diff) ← Older revision | Latest revision (diff) | Newer revision → (diff)
Jump to: navigation, search
Note: This page's content only applies to the SHARCNET's legacy systems; it does not apply to Graham.

Overview

The "UCSC Kent Utilities" is a collection of utilities for performing genomics and related work that was used to build the web based UCSC Genome Browser.

One may obtain the source code in a zipped file from http://hgdownload.cse.ucsc.edu/admin/jksrc.zip (it is quite large, almost 100MB).

The main README is found in kent/src/README , after unpacking the zipped file. In particular, it indicates each program, either command line, or web CGI based, has its source in a different subdirectory. Some tools require compiling the parent directory's libraries before they can be built.

Building the essential support libraries and setting up the installation

Before building any of the utilities one has to first build the supporting libraries. You only have to do this once and then you may build each utility as you need them.

First, define variables that will be used to create installation locations and to point out where mysql support files are on the system (note that the following are for orca Sep 4 2013 and may have changed; run mysql_config --include and mysql_config --libs to see the suggested values for the mysql in your current path):

ssh orca
export MACHTYPE
export MYSQLINC=/usr/include/mysql
export MYSQLLIBS='/usr/lib64/mysql/libmysqlclient.so -lz'

We have to create a directory where the final programs will be placed (it is expected to be in this format):

mkdir ~/bin/$MACHTYPE

Now we will download and unpack the source, and enter into the root directory:

cd /work/$USER/
wget http://hgdownload.cse.ucsc.edu/admin/jksrc.zip
unzip jksrc.zip
cd kent/

Now we will build the supporting libraries:

cd src/lib
mkdir $MACHTYPE
make
cd ../jkOwnLib/
make

At this point one may proceed to build the utilities.

Building utilities from /util

This is straightforward. For example, to build faSplit:

cd ../utils/faSplit/
make

You can see that it is placed in the ~/bin/$MACHTYPE directory:

file /home/$USER/bin/x86_64-redhat-linux-gnu/faSplit
/home/$USER/bin/x86_64-redhat-linux-gnu/faSplit: ELF 64-bit LSB executable, x86-64, version 1 (SYSV), dynamically linked (uses shared libs), for GNU/Linux 2.6.18, not stripped

(If you cannot find the binary files in ~/bin/$MACHTYPE , the files might have been installed in /home/$USER/bin/x86_64)

Building utilities from /hg

To build these utilities, one must first compile the code in /hg;

cd ../../hg
make

(Ignore multiple error messages like "mv: cannot move `hgTracks' to `/usr/local/apache/cgi-bin-user/hgTracks': No such file or directory".)

One may now build any of the utilities found in subdirectories (or their sub-subdirectories!, eg. hg/mouseStuff/netChainSubset ), for example, to build liftUp:

cd liftUp
make

You should now see that liftUp is placed in the ~/bin/$MACHTYPE directory.

Making utilities available on your command line path

To use the utility you have to reference the full path, or add the following to your ~/.bashrc so that it persists in all new login shells:

export PATH="/home/$USER/bin/x86_64-redhat-linux-gnu:$PATH"