Skip to content
UCSC Genome Browser source tree. Stable branch: "beta".
C Shell HTML Perl JavaScript Python Other
Branch: master
Clone or download
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Type Name Latest commit message Commit time
Failed to load latest commit information.



This directory contains the entire source tree for the
UCSC Genome Bioinformatics Group's suite of biological analysis
and web display programs as well as some of Jim Kent's own tools.
All files are copyrighted, but license is hereby granted for personal,
academic, and non-profit use. Please see the LICENSE file in the
current directory for more details. Note that this LICENSE file may
be overridden by LICENSE files in other subdirectories. In
particular the LICENSE file in the lib, inc, utils, and several other
subdirectories allows for free commercial use as well.

Commercial users should contact for access
to other modules.
Commercial users interested in the UCSC Genome Browser in particular please see

If you want to run a local installation of the UCSC Genome Browser
(we call this a mirror, even when it includes only a small
part of the data), you do not need the whole source tree. We provide
statically compiled binary CGI-bin executables, the apache htdocs folder,
binary MySQL databases and ancillary large data files in /gbdb via an Rsync
download server.  For install details see

The pre-compiled user application binaries may function on your system
without this build procedure.  For example to obtain the
linux.x86_64 binaries:
 rsync -azvP rsync:// ./

Mac OSX binaries available via:
 rsync -azvP rsync:// ./

Most source code users will only be interested in the kent/src/inc and
kent/src/lib directories, which contain the interfaces and implementations
to the library routines,  and in a few specific applications.
The applications are scattered in other directories.  Many of them are web based.
The UCSC Genome Browser in particular is mostly found in kent/src/hg/hgTracks.

The current version number is stored in src/hg/inc/versionInfo.h .
The current version of a running genome browser is displayed in the html
tag <TITLE> by the hgTracks program, e.g., 
in modern internet browsers, hover over a tab to show it.



1. Get the code.  The best way to do this now for
   Unix users is via Git following the instructions at:
   Or, fetch the entire source in a single file:
     rsync -azvP rsync:// ./
     wget --timestamping
   The unzip result from that file will establish a directory hierarchy:
   Note further documentation for the build process in your
   unpacked source tree in kent/src/product/README.*
   Especially note README.building.source and the "Known problems"
   for typical situations you may encounter.
2. Check that the environment variable MACHTYPE
   exists on your system.  It should exist on Unix/Linux.
   (And making this on non-Unix systems is beyond
   the scope of this README).  The default MACHTYPE is often a
   long string: "i386-redhat-linux-gnu"
   which will not function correctly in this build environment.
   It needs to be something simple such as one of:
	i386 i686 sparc alpha x86_64 ppc etc ...
   with no other alpha characters such as: -
   To determine what your system reports itself as, try the
   uname options:  'uname -m' or 'uname -p' or 'uname -a'
   on your command line.  If necessary set this environment variable.
   Do this under the bash shell as so:
       export MACHTYPE=something
   or under tcsh as so:
       setenv MACHTYPE something
   and place this setting in your home directory .bashrc or .tcshrc
   environment files so it will be set properly the next time you
   login.  Remember to "export" it as show here for the bash shell.
3. Make the directory ~/bin/$MACHTYPE which is
   where the (non-web) executables will go.
   Add this directory to your path to access the built binaries.
4. Go to the kent/src/lib directory.
5. Type make.  The build expects to use the GNU gcc compiler.
6. Go to kent/src/jkOwnLib and type make.
7. Go to kent/src/htslib and type make.
8. Go to the application you want to build and type
   make.  (If you're not sure, as a simple test
   go to kent/src/utils/fixcr and type make,
   then 'rehash' if necessary so your shell
   can find the fixcr program in ~/bin/$(MACHTYPE).
   The fixcr program changes Microsoft style
   <CR><LF> line terminations to Unix style
   <LF> terminations.  Look at the "gotCr.c"
   file in the fixCr directory, and then
   do a "fixcr gotCr.c" on it.


1. Follow the general install instructions above.
3. Execute make in each of the following directories:

(and other code in the kent/src/hg subdirectory)


1. Follow the general install instructions above.
2. Make the environment variable MYSQLINC point to
   where MySQL's include files are.  (On my
   system they are at /usr/include/mysql.)
   While you're at it set the MYSQLLIBS
   variable to point to something like
   /usr/lib/mysql/libmysqlclient.a -lz
   When available, the commands: mysql_config --include
	and mysql_config --libs
	will display the required arguments for these environment settings.
3. Execute make in kent/src/hg/lib
4. Execute make in the directory containing the
   application you wish to build.
5. See also:
   and more documentation in this source tree about setting up
   a working browser in README files:
   There are numerous README files in the source tree describing
   functions or modules in that area of the source tree.
   The kent/src/README in particular should be read by anyone modifying
   the C source code, and python/README by anyone modifying the Python.

You can’t perform that action at this time.