Skip to content

jrherr/crass

 
 

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

crass -- CRisprASSembler -- version 0 subversion 3 revision 7 (0.3.7)

CITATION

Connor T. Skennerton, Michael Imelfort, and Gene W. Tyson Crass: identification and reconstruction of CRISPR from unassembled metagenomic data Nucl. Acids Res. (2013) 41(10): e105

COPYRIGHT

Copyright 2011-2013 Connor Skennerton & Michael Imelfort. All rights reserved.

This program is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version.

This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details.

You should have received a copy of the GNU General Public License along with this program. If not, see http://www.gnu.org/licenses/.

CONTRIBUTED CODE

crass would not have been possible without the code found freely available at the following locations:

Boyer-Moore Search Algorithm

Wu-Manber Search Algorithm

Levensthein String Comparison Algorithm

CRISPR Recognition Tool (CRT)

SaSSY - Short read assembler

klib - For kseq & ksw code

INSTALLATION

Crass requires a UNIX operating system and has been tested on 64-bit Linux personal computers with intel processors and servers with 64-bit Opteron processors. It successfully compiles with gcc 4.4.5 and gcc 4.6.3 other versions of gcc have not been tested.
Crass uses libcrispr release 1:0:0 which requires Xerces-c XML libraryversion 3.1.1 and Zlib are installed for compilation. Optionally you can also install the Graphviz package for rendering graphs.

WARNING: Do not install the binary distribution of Xerces from their website, it is broken and looks for other shared libraries in specific places. Install xerces from source or using a package manager for you system.

With all this in mind to perform the installation:

download the source files from git. then on most Unix systems:

$ tar -xf crass.tar.gz
$ cd crass
$ ./autogen.sh
$ ./configure
$ make
$ make install

On some installations you may need to update the LD_LIBRARY_PATH environmental variable so that crass can find the libcrispr shared library. This is essential if you have libcrispr in a non-standard location, although I've also noticed this in the latest versions of Ubuntu (12.10) that /usr/local/lib is not included in LD_LIBRARY_PATH by default so even a 'standard' installation may require this.

NON-STANDARD INSTALLATIONS

Crass can access the graphviz libraies and executables if desired. Use the --enable-rendering during configure to access this feature.

If libcrispr or Xerces are installed in non-standard loacations use the --with-libcrispr=[PREFIX] and --with-xerces=[PREFIX] configure option to change the location prefix. Configure will look for $prefix/lib/ and $prefix/include directories for the library objects and header files. Note that the below options for changing LDFLAGS and CPPFLAGS will not work for Xerces as it is a C++ library and not a C library and therefore different code is used to check for it.

LDFLAGS - set this environmental variable during configure to add to the path where library object files can be found. Don't forget to use -L a the begining

CPPFLAGS - set this environmental variable during configure to add to the path where header files are located.

example:

$ ./configure --enable-rendering LDFLAGS="-L/usr/home/user_name/local/lib/" CPPFLAGS="-I/usr/home/user_name/local/include/" 

RUNNING CRASS

crass has two executables:

$ crass [-bcdhklnoswxyDSV] [--removeHomopolymers] [--logToScreen] <sequence_files>

which finds CRISPR containing reads

$ crass-assemble [--velvet | --cap3] -x <file.crispr> -s <segments> -g <group> -i <input directory> [-o]

which is a wrapper for genome assemblers to assemble particular branches in a spacer graph