File: Tables.h

package info (click to toggle)
snap-aligner 1.0.0%2Bdfsg-2
  • links: PTS, VCS
  • area: main
  • in suites: bullseye
  • size: 4,988 kB
  • sloc: cpp: 36,500; ansic: 5,239; python: 227; makefile: 85; sh: 28
file content (64 lines) | stat: -rw-r--r-- 2,267 bytes parent folder | download | duplicates (5)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
//
// Lookup tables that are too annoying to initialize with array expressions.
// These includes things like complements of bases, numerical values, etc.
//
// To avoid having an init() function that everyone must call, we stow these
// in a special class and have one static instance of that class and variables
// pointing to it to ensure that the initializer (class constructor) is run.
//

#pragma once


class Tables
{
    char complement[256];
    char isN[256];
    int baseValue[256];
    int baseValueNoN[256];  // Same as above but N maps to 0 instead of 4
    char valueBase[5];
    unsigned char value4RC[256]; // reverse complement of 4 bases/byte

    unsigned isLowerCaseOrDot[256];
    char toUpperCaseDotToN[256];

    char packedBaseValue[256];
    char packedQualityMask[256];
    char packedValueBase[256];
    char packedValueBaseRC[256];

    char cigarQualToSam[256];

public:
    Tables();

    const char *getComplement() const { return complement; }
    const char *getIsN() const { return isN; }
    const int  *getBaseValue() const { return baseValue; }
    const int  *getBaseValueNoN() const { return baseValueNoN; }
    const char *getValueBase() const { return valueBase; }
    const unsigned char *getValue4RC() const { return value4RC; }

    const char* getPackedBaseValue() const { return packedBaseValue; }
    const char* getPackedQualityMask() const { return packedQualityMask; }
    const char* getPackedValueBase() const { return packedValueBase; }
    const char* getPackedValueBaseRC() const { return packedValueBaseRC; }
    const unsigned *getIsLowerCaseOrDot() const {return isLowerCaseOrDot; }
    const char *getToUpperCaseDotToN() const { return toUpperCaseDotToN; }
    const char *getCigarQualToSam() const { return cigarQualToSam; }
};

extern const char *COMPLEMENT;
extern const char *IS_N;
extern const int  *BASE_VALUE;
extern const char *VALUE_BASE;
extern const unsigned char *VALUE4_RC;
extern const char *PACKED_BASE_VALUE;
extern const char *PACKED_QUALITY_MASK;
extern const char *PACKED_VALUE_BASE;
extern const char *PACKED_VALUE_BASE_RC;
extern const int  *BASE_VALUE_NO_N;
extern const unsigned *IS_LOWER_CASE_OR_DOT;
extern const char *TO_UPPER_CASE_DOT_TO_N;
extern const char *CIGAR_QUAL_TO_SAM;