1 /*
2   Copyright (c) 2003 by Stefan Kurtz and The Institute for
3   Genomic Research.  This is OSI Certified Open Source Software.
4   Please see the file LICENSE for licensing information and
5   the file ACKNOWLEDGEMENTS for names of contributors to the
6   code base.
7 */
8 
9 //\IgnoreLatex{
10 
11 #ifndef MAXMATDEF_H
12 #define MAXMATDEF_H
13 #include <limits.h>
14 #include "chardef.h"
15 #include "multidef.h"
16 
17 //}
18 
19 /*
20   This file defines some constants and types for computing maximal
21   matches using suffix trees.
22 */
23 
24 /*
25   The following two characters replace wildcard
26   characters in a DNA sequences whenever the option \texttt{-n}
27   (for match only nucleotides) is used. One is for the
28   subject string and the other for the query string
29 */
30 
31 #define MMREPLACEMENTCHARSUBJECT (WILDCARD-2)
32 #define MMREPLACEMENTCHARQUERY   (WILDCARD-3)
33 
34 /*
35   The maximal number of query files.
36 */
37 
38 #define MAXNUMOFQUERYFILES       32
39 
40 /*
41   The following type contains all information
42   derived from parsing the arguments of the program
43 */
44 
45 typedef struct
46 {
47   BOOL showstring,              // show the matching string
48        reversecomplement,       // compute matches on reverse strand
49        forward,                 // compute matches on forward strand
50        fourcolumn,              // always use 4 column format
51        showreversepositions,    // give reverse pos. rel. to orig. string
52        showsequencelengths,     // show length of sequences on header line
53        matchnucleotidesonly,    // match ONLY acgt's
54        cmaxmatch,               // compute all maximal matches
55        cmumcand,                // compute reference-unique maximal matches
56        cmum;                    // compute real matches unique in both sequences
57   Uint minmatchlength,          // minimal length of a match to be reported
58        numofqueryfiles;         // number of query files
59   char program[PATH_MAX+1],     // the path of the program
60        subjectfile[PATH_MAX+1], // filename of the subject-sequence
61        queryfilelist[MAXNUMOFQUERYFILES][PATH_MAX+1];
62                                 // filenames of the query-sequences
63 } MMcallinfo;                   // \Typedef{MMcallinfo}
64 
65 /*
66   Functions processing a maximal match are of the following type.
67 */
68 
69 typedef Sint (*Processmatchfunction)
70              (void *,Uint,Uint,Uint,Uint); // \Typedef{Processmatchfunction}
71 
72 //\IgnoreLatex{
73 
74 #endif
75 
76 //}
77