1 #ifndef DYNAMITEcdparserHEADERFILE
2 #define DYNAMITEcdparserHEADERFILE
3 #ifdef _cplusplus
4 extern "C" {
5 #endif
6 #include "wisebase.h"
7 #include "probability.h"
8 
9 
10 enum cDNAParserTrans {
11   PCD_INSERT_2_BASE = 0,
12   PCD_INSERT_1_BASE,
13   PCD_DELETE_2_BASE,
14   PCD_DELETE_1_BASE,
15   PCD_PARSER_TRANS_LEN };
16 
17 /* Object cDNAParser
18  *
19  * Descrip: This object holds the (very few) extra
20  *        transition information needed for the
21  *        estwise algorithm. It is sort of like
22  *        the 'gene model' part of sequencing
23  *        error (but very very simple)
24  *
25  *
26  *
27  */
28 struct Wise2_cDNAParser {
29     int dynamite_hard_link;
30 #ifdef PTHREAD
31     pthread_mutex_t dynamite_mutex;
32 #endif
33     Probability trans[PCD_PARSER_TRANS_LEN];
34     } ;
35 /* cDNAParser defined */
36 #ifndef DYNAMITE_DEFINED_cDNAParser
37 typedef struct Wise2_cDNAParser Wise2_cDNAParser;
38 #define cDNAParser Wise2_cDNAParser
39 #define DYNAMITE_DEFINED_cDNAParser
40 #endif
41 
42 
43 /* Object cDNAParserScore
44  *
45  * Descrip: This object is the score counter
46  *        point to cDNAParser (which is
47  *        in probabilities).
48  *
49  *
50  */
51 struct Wise2_cDNAParserScore {
52     int dynamite_hard_link;
53 #ifdef PTHREAD
54     pthread_mutex_t dynamite_mutex;
55 #endif
56     Score trans[PCD_PARSER_TRANS_LEN];
57     } ;
58 /* cDNAParserScore defined */
59 #ifndef DYNAMITE_DEFINED_cDNAParserScore
60 typedef struct Wise2_cDNAParserScore Wise2_cDNAParserScore;
61 #define cDNAParserScore Wise2_cDNAParserScore
62 #define DYNAMITE_DEFINED_cDNAParserScore
63 #endif
64 
65 
66 
67 
68     /***************************************************/
69     /* Callable functions                              */
70     /* These are the functions you are expected to use */
71     /***************************************************/
72 
73 
74 
75 /* Function:  removed_probability_from_cds_cdna(cdp)
76  *
77  * Descrip:    Makes a convienient sum over all the transition
78  *             probabilities
79  *
80  *
81  * Arg:        cdp [UNKN ] Undocumented argument [cDNAParser *]
82  *
83  * Return [UNKN ]  Undocumented return value [Probability]
84  *
85  */
86 Probability Wise2_removed_probability_from_cds_cdna(cDNAParser * cdp);
87 #define removed_probability_from_cds_cdna Wise2_removed_probability_from_cds_cdna
88 
89 
90 /* Function:  cDNAParserScore_from_cDNAParser(cdp)
91  *
92  * Descrip:    Makes a new Score object from its probability
93  *             counterpart
94  *
95  *
96  * Arg:        cdp [UNKN ] Undocumented argument [cDNAParser *]
97  *
98  * Return [UNKN ]  Undocumented return value [cDNAParserScore *]
99  *
100  */
101 cDNAParserScore * Wise2_cDNAParserScore_from_cDNAParser(cDNAParser * cdp);
102 #define cDNAParserScore_from_cDNAParser Wise2_cDNAParserScore_from_cDNAParser
103 
104 
105 /* Function:  flat_cDNAParser(p)
106  *
107  * Descrip:    Makes a flat (ie, indels of 1 or 2 == p)
108  *             cDNA parser. This means that insertions
109  *             and deletions of both 1 or 2 bases are
110  *             all parameterised at the same probability
111  *
112  *
113  *
114  * Arg:        p [READ ] probability of an indel [Probability]
115  *
116  * Return [UNKN ]  Undocumented return value [cDNAParser *]
117  *
118  */
119 cDNAParser * Wise2_flat_cDNAParser(Probability p);
120 #define flat_cDNAParser Wise2_flat_cDNAParser
121 
122 
123 /* Function:  hard_link_cDNAParser(obj)
124  *
125  * Descrip:    Bumps up the reference count of the object
126  *             Meaning that multiple pointers can 'own' it
127  *
128  *
129  * Arg:        obj [UNKN ] Object to be hard linked [cDNAParser *]
130  *
131  * Return [UNKN ]  Undocumented return value [cDNAParser *]
132  *
133  */
134 cDNAParser * Wise2_hard_link_cDNAParser(cDNAParser * obj);
135 #define hard_link_cDNAParser Wise2_hard_link_cDNAParser
136 
137 
138 /* Function:  cDNAParser_alloc(void)
139  *
140  * Descrip:    Allocates structure: assigns defaults if given
141  *
142  *
143  *
144  * Return [UNKN ]  Undocumented return value [cDNAParser *]
145  *
146  */
147 cDNAParser * Wise2_cDNAParser_alloc(void);
148 #define cDNAParser_alloc Wise2_cDNAParser_alloc
149 
150 
151 /* Function:  free_cDNAParser(obj)
152  *
153  * Descrip:    Free Function: removes the memory held by obj
154  *             Will chain up to owned members and clear all lists
155  *
156  *
157  * Arg:        obj [UNKN ] Object that is free'd [cDNAParser *]
158  *
159  * Return [UNKN ]  Undocumented return value [cDNAParser *]
160  *
161  */
162 cDNAParser * Wise2_free_cDNAParser(cDNAParser * obj);
163 #define free_cDNAParser Wise2_free_cDNAParser
164 
165 
166 /* Function:  hard_link_cDNAParserScore(obj)
167  *
168  * Descrip:    Bumps up the reference count of the object
169  *             Meaning that multiple pointers can 'own' it
170  *
171  *
172  * Arg:        obj [UNKN ] Object to be hard linked [cDNAParserScore *]
173  *
174  * Return [UNKN ]  Undocumented return value [cDNAParserScore *]
175  *
176  */
177 cDNAParserScore * Wise2_hard_link_cDNAParserScore(cDNAParserScore * obj);
178 #define hard_link_cDNAParserScore Wise2_hard_link_cDNAParserScore
179 
180 
181 /* Function:  cDNAParserScore_alloc(void)
182  *
183  * Descrip:    Allocates structure: assigns defaults if given
184  *
185  *
186  *
187  * Return [UNKN ]  Undocumented return value [cDNAParserScore *]
188  *
189  */
190 cDNAParserScore * Wise2_cDNAParserScore_alloc(void);
191 #define cDNAParserScore_alloc Wise2_cDNAParserScore_alloc
192 
193 
194 /* Function:  free_cDNAParserScore(obj)
195  *
196  * Descrip:    Free Function: removes the memory held by obj
197  *             Will chain up to owned members and clear all lists
198  *
199  *
200  * Arg:        obj [UNKN ] Object that is free'd [cDNAParserScore *]
201  *
202  * Return [UNKN ]  Undocumented return value [cDNAParserScore *]
203  *
204  */
205 cDNAParserScore * Wise2_free_cDNAParserScore(cDNAParserScore * obj);
206 #define free_cDNAParserScore Wise2_free_cDNAParserScore
207 
208 
209   /* Unplaced functions */
210   /* There has been no indication of the use of these functions */
211 
212 
213     /***************************************************/
214     /* Internal functions                              */
215     /* you are not expected to have to call these      */
216     /***************************************************/
217 
218 #ifdef _cplusplus
219 }
220 #endif
221 
222 #endif
223