1 /* $Id: pairdef.h 157221 2015-01-22 18:38:57Z twu $ */
2 #ifndef PAIRDEF_INCLUDED
3 #define PAIRDEF_INCLUDED
4 
5 #include "bool.h"
6 #include "genomicpos.h"
7 
8 typedef enum {GOOD,BAD} State_T;
9 
10 #define T Pair_T
11 struct T {
12   int querypos;
13   Chrpos_T genomepos;
14   int refquerypos;
15   int aapos;
16 
17   int queryjump;		/* Used only for gaps */
18   int genomejump;		/* Used only for gaps */
19 
20   int aaphase_g;		/* If 0, then marks start of codon.  If -1, there is no aa here. */
21   int aaphase_e;		/* If 0, then marks start of codon.  If -1, there is no aa here. */
22 
23   int dynprogindex;		/* 0 if not generated by dynprog; <0 if contains intron; else > 0 */
24 
25   char cdna;
26   char comp;
27   char genome;
28   char genomealt;
29   char aa_g;			/* Genomic aa */
30   char aa_e;			/* EST aa */
31 
32   bool gapp;			/* True if comp is in a big gap (from genomic perspective):
33                                    >])([<#= (but not '-' or '~'). */
34   bool knowngapp;		/* Known intron */
35   int introntype;
36 
37   bool extraexonp;
38   bool shortexonp;
39 
40   State_T state;
41   State_T vstate_good;
42   State_T vstate_bad;
43 
44   bool protectedp;		/* Protected against trimming, because found using splicetrie, or
45 				   protected against smoothing, because found by traverse_dual_intron */
46   bool disallowedp;		/* Used when novelsplicingp is false and intron is not allowed */
47 
48   double donor_prob;		/* Set for an intron gap */
49   double acceptor_prob;
50   bool end_intron_p;
51 };
52 
53 #undef T
54 #endif
55