Slice Tools 2.0.0

Slice Tools is a genomic assembly manipulation toolkit.

  Add it to your Download Basket!

 Add it to your Watch List!


Rate it!
send us
an update
GPL (GNU General Public License) 
3.1/5 13
Michael Schatz
ROOT \ Science and Engineering \ Bioinformatics
DNA sequencing technology is currently limited to reading upto 1000 base pairs of DNA in a given sequencing reaction. Consequently, the most commonly used process for sequencing an entire genome begins by shearing the DNA into thousands or millions of short fragments, and sequencing those short fragment known as reads. Those reads are then assembled using sophisticated assembly programs such as the Celera Assembler or AMOS. The contiguous stretches of DNA assembled in this way are called contigs. Conceptually, it is very similiar to assembling small bricks (reads) into a brick wall (contigs).

The Slice Tools are a toolkit for manipulating contigs of a genomic assembly and performing various operations on them. There are currently tools for performing basic tasks such as reverse complementing contigs, or removing reads from a contig, but there are also more sophisicated tools for joining separate contigs together via a "Micro-Assembly" operation. Unlike a full assembler, the micro-assembler operations take pre-existing contigs as an input, and new reads or other contigs are "stitched" onto them while keeping the layout of the original contig essentially unmodified.

The framework of the Slice Tools is centered around a slice view of a contig. The Slice view rotates the traditional contig view of an assembly on to its edge to shift the focus from horizontal sequences to vertical slices. The shift to a Slice view is purely a change in representation, as there is no gain or loss in information. However, depending on the operation, operations that are be difficult or cumbersome within a contig view can become extremely easy to perform.

The Slice Tools interact through the common format of Slice XML, which allows them to share a common language and a common processing core. This also allows for the tools to work in concert with the output of one tool as the input to the next in an automated pipeline similiar to how cut, sed, awk, and grep can be connected to perform more complicated manipulations on text than any single tool could.

The Slice Tools provide the mechanism to transform slices and provide the basic functionality for more complicated manipulations. The operations each tool performs tends to be very specialized and focused. For instance the tool trSlice renumber slices (translate their position in the assembly) and another tool, revSlice, calculates the reverse compliment of slices. The advantage to this system is that many small tools can quickly and easily be combined to perform novel manipulations from a common toolbox.

Even though an individual tool may only perform a single simple task, they can work in concert through the common Slice XML format to perform very complicated manipulations. For instance, by using getCoverage to break an assembly into two pieces, and then using stripSlice followed by mergeSlice, an overcollapsed repeat region can be 'pulled' apart and put into a proper assembly. This new assembly can be quickly inspected in a text editor, then converted to back to the original contig format.


Xerces-C XML Processing library
MUMmer alignment package


You need to first configure the make system. The first thing you have to decide is how to fetch the Slice XML DTD file. The DTD tells the XML processor how to test the Slice XML document is correct. It is essential that the DTD is accessible at all times, and from all machines that you intend to run the Slice Tools on. By default, the Slice Tools will request the DTD from the Slice Tools website (, but you may want to avoid this dependency and make the dtd available locally. If you decide you do want the DTD installed locally, you can specify either
a URL or the exact file path to the dtd with the --with-slicedtd option. The build system will copy the DTD into the share directory of the installation.

After deciding how to fetch the DTD, run configure. If you installed Xerces in a non-system location, you'll also need to specify the prefix to the library and header files. This can be done with --with-xerces-prefix=PREFIX. Note you may need to adjust your LD_LIBRARY_PATH or other environment
variables if is not in a system path.

At the University of Maryland, configure is run as:

$ ./configure --with-xercesc-prefix=/fs/sz-user-supported/`uname`-`uname -m`/
--prefix=/fs/sz-user-support/`uname`-`uname -m`

At the Institute for Genomic Research, configure is run as:

$ ./configure --with-xercesc-prefix=/usr/local/packages/Xerces

After configuration, you can then build and install the program.

$ make
$ make install

'make install' will copy the tools into a bin directory within the build directory. It will also create a lib, include, and share directory with other supporting files. You may want to use the --prefix option with configure to specify a new path.

Developers Notes:

You must run ./bootstrap to create the configure script. Then you can configure and build as above

Last updated on December 20th, 2007

#bio-informatics application #contigs manipulator #genetics software #bio-informatics #genetics #contig #manipulation

Add your review!