| 1 | // =============================================================== // |
|---|
| 2 | // // |
|---|
| 3 | // File : adGene.h // |
|---|
| 4 | // Purpose : Specific defines for ARB genome // |
|---|
| 5 | // // |
|---|
| 6 | // Coded by Ralf Westram (coder@reallysoft.de) in July 2002 // |
|---|
| 7 | // Institute of Microbiology (Technical University Munich) // |
|---|
| 8 | // http://www.arb-home.de/ // |
|---|
| 9 | // // |
|---|
| 10 | // =============================================================== // |
|---|
| 11 | |
|---|
| 12 | #ifndef ADGENE_H |
|---|
| 13 | #define ADGENE_H |
|---|
| 14 | |
|---|
| 15 | #ifndef _GLIBCXX_CSTDLIB |
|---|
| 16 | #include <cstdlib> |
|---|
| 17 | #endif |
|---|
| 18 | |
|---|
| 19 | #define GENOM_ALIGNMENT "ali_genom" |
|---|
| 20 | #define GENOM_DB_TYPE "genom_db" // main flag (true = genom db, false/missing=normal db) |
|---|
| 21 | |
|---|
| 22 | #define ARB_HIDDEN "ARB_display_hidden" |
|---|
| 23 | |
|---|
| 24 | /* GEN_position is interpreted as |
|---|
| 25 | * |
|---|
| 26 | * join( complement[0](start_pos[0]..stop_pos[0]), |
|---|
| 27 | * complement[1](start_pos[1]..stop_pos[1]), |
|---|
| 28 | * complement[2](start_pos[2], stop_pos[2]), |
|---|
| 29 | * ... ) |
|---|
| 30 | * |
|---|
| 31 | * start_pos is always lower than stop_pos |
|---|
| 32 | * joined genes on complementary strand are normally ordered backwards |
|---|
| 33 | * (i.e. part with highest positions comes first) |
|---|
| 34 | */ |
|---|
| 35 | |
|---|
| 36 | struct GEN_position { |
|---|
| 37 | int parts; |
|---|
| 38 | bool joinable; // true = join(...), false = order(...) aka not joinable or unknown |
|---|
| 39 | size_t *start_pos; |
|---|
| 40 | size_t *stop_pos; |
|---|
| 41 | unsigned char *complement; // ASCII 0 = normal or ASCII 1 = complementary |
|---|
| 42 | |
|---|
| 43 | // [optional elements] |
|---|
| 44 | |
|---|
| 45 | // start_uncertain/stop_uncertain contain one char per part (or NULL which means "all positions are certain") |
|---|
| 46 | // meaning of characters: |
|---|
| 47 | // '<' = position MIGHT be lower |
|---|
| 48 | // '=' = position is certain |
|---|
| 49 | // '>' = position MIGHT be higher |
|---|
| 50 | // '+' = position is directly BEHIND (but before next base position, i.e. specifies a location between to base positions) |
|---|
| 51 | // '-' = position is BEFORE |
|---|
| 52 | |
|---|
| 53 | unsigned char *start_uncertain; |
|---|
| 54 | unsigned char *stop_uncertain; |
|---|
| 55 | }; |
|---|
| 56 | |
|---|
| 57 | #else |
|---|
| 58 | #error adGene.h included twice |
|---|
| 59 | #endif // ADGENE_H |
|---|