6 #include "MiscUtilities.h"
7 #include "MemManager.h"
8 #include "TextConverter.h"
15 typedef struct LOOKUPTABLE_TYPE
{
16 unsigned int tableSize
;
20 typedef struct HASHCELL_TYPE
{
25 typedef struct HASHITEM_TYPE
{
28 unsigned int occIndex
;
31 typedef unsigned int OCC
;
33 typedef struct HASHTABLE_TYPE
{
37 unsigned int tableSize
;
46 HASHTABLE
* occHashtable
;
47 unsigned int * occCollector
;
48 unsigned int occCollected
;
50 FILE * textPositionFile
;
51 void registerTPFile(FILE * filePtr
,unsigned int searchMode
);
54 void registerQIndex(unsigned int queryIndex
);
55 void registerQSection();
58 void LoadLookupTable(LOOKUPTABLE
* lookupTable
, const char * fileName
, const int tableSize
);
59 void FreeLookupTable(LOOKUPTABLE
* lookupTable
);
60 unsigned int LookupSafe(LOOKUPTABLE lookupTable
, BWT
* bwt
,unsigned long long lKey
, unsigned long long rKey
,unsigned int *l
, unsigned int *r
);
61 void LoadHashTable(HASHTABLE
* hashTable
, const char * fileName
);
62 HASHITEM
* HashFind(HASHTABLE
* hashTable
, unsigned int l
,unsigned int r
);
63 void FreeHashTable(HASHTABLE
* hashTable
);
64 void RegisterDecoder(BWT
* bwt
,HASHTABLE
* hashTable
);
67 //void OCCProcess(unsigned int l,unsigned int r);
68 void OCCProcess(unsigned int l
,unsigned int r
, int chain
, unsigned int allele1
, unsigned int allele2
, HitInfo
*hits
, unsigned int *numOfHits
);
70 //void CleanDecoder();
72 double getTextPositionTime();
73 unsigned int getSARetrieved();
74 unsigned int getHASHRetrieved();
76 #endif /*_EXTRATOOLS_H_*/