1
|
1 /*****************************************************************
|
|
2 * SQUID - a library of functions for biological sequence analysis
|
|
3 * Copyright (C) 1992-2002 Washington University School of Medicine
|
|
4 *
|
|
5 * This source code is freely distributed under the terms of the
|
|
6 * GNU General Public License. See the files COPYRIGHT and LICENSE
|
|
7 * for details.
|
|
8 *****************************************************************/
|
|
9
|
|
10 #ifndef SQRKH_INCLUDED
|
|
11 #define SQRKH_INCLUDED
|
|
12
|
|
13 /* rk.h
|
|
14 *
|
|
15 * Header file for Rabin-Karp pattern searching on encoded
|
|
16 * sequence strings.
|
|
17 *
|
|
18 * Sean Eddy, Thu Oct 1 11:45:42 1992
|
|
19 * RCS $Id: rk.h 217 2011-03-19 10:27:10Z andreas $ (Original squid RCS Id: rk.h,v 1.2 1998/10/09 18:07:16 eddy Exp)
|
|
20 */
|
|
21
|
|
22
|
|
23 /* expect 32 bits for 8 nt */
|
|
24 typedef unsigned long Hashseq;
|
|
25 /* but we count to be sure...
|
|
26 RK_HASHSIZE is the number of nt that fit
|
|
27 in one probe */
|
|
28 #define RK_HASHSIZE (sizeof(Hashseq)*2)
|
|
29 /* empirically, how many nt minimum we require
|
|
30 in a pattern before we abandon rk and
|
|
31 go with something else */
|
|
32 #define RK_REQUIRE 4
|
|
33
|
|
34 extern int rkseq(Hashseq hashprobe, char *sequence);
|
|
35 extern Hashseq rkcomp(char *probe); /* compile a Hashseq from a pattern */
|
|
36
|
|
37
|
|
38
|
|
39 #endif /* SQRKH_INCLUDED */
|