1 /* @include ensqcsubmission ***************************************************
2 **
3 ** Ensembl Quality Check Submission functions
4 **
5 ** @author Copyright (C) 1999 Ensembl Developers
6 ** @author Copyright (C) 2006 Michael K. Schuster
7 ** @version $Revision: 1.6 $
8 ** @modified 2009 by Alan Bleasby for incorporation into EMBOSS core
9 ** @modified $Date: 2012/02/04 10:30:24 $ by $Author: mks $
10 ** @@
11 **
12 ** This library is free software; you can redistribute it and/or
13 ** modify it under the terms of the GNU Lesser General Public
14 ** License as published by the Free Software Foundation; either
15 ** version 2.1 of the License, or (at your option) any later version.
16 **
17 ** This library is distributed in the hope that it will be useful,
18 ** but WITHOUT ANY WARRANTY; without even the implied warranty of
19 ** MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
20 ** Lesser General Public License for more details.
21 **
22 ** You should have received a copy of the GNU Lesser General Public
23 ** License along with this library; if not, write to the Free Software
24 ** Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston,
25 ** MA  02110-1301,  USA.
26 **
27 ******************************************************************************/
28 
29 #ifndef ENSQCSUBMISSION_H
30 #define ENSQCSUBMISSION_H
31 
32 /* ========================================================================= */
33 /* ============================= include files ============================= */
34 /* ========================================================================= */
35 
36 #include "ensanalysis.h"
37 #include "ensqcsequence.h"
38 
39 AJ_BEGIN_DECLS
40 
41 
42 
43 
44 /* ========================================================================= */
45 /* =============================== constants =============================== */
46 /* ========================================================================= */
47 
48 /* @const EnsPQcsubmissionadaptor *********************************************
49 **
50 ** Ensembl Quality Check Submission Adaptor
51 **
52 ******************************************************************************/
53 
54 #define EnsPQcsubmissionadaptor EnsPBaseadaptor
55 
56 
57 
58 
59 /* ========================================================================= */
60 /* ============================== public data ============================== */
61 /* ========================================================================= */
62 
63 /* @data EnsPQcsubmission *****************************************************
64 **
65 ** Ensembl Quality Check Submission
66 **
67 ** @alias EnsSQcsubmission
68 ** @alias EnsOQcsubmission
69 **
70 ** @attr Use [ajuint] Use counter
71 ** @cc Bio::EnsEMBL::Storable
72 ** @attr Identifier [ajuint] SQL database-internal identifier
73 ** @attr Adaptor [EnsPQcsubmissionadaptor]
74 ** Ensembl Quality Check Submission Adaptor
75 ** @cc Bio::EnsEMBL::QC::Submission
76 ** @cc 'submission' SQL table
77 ** @attr Analysis [EnsPAnalysis] Ensembl Analysis
78 ** @attr QuerySequence [EnsPQcsequence] Query Ensembl Quality Check Sequence
79 ** @attr TargetSequence [EnsPQcsequence] Target Ensembl Quality Check Sequence
80 ** @attr QueryStart [ajuint] Query start
81 ** @attr QueryEnd [ajuint] Query end
82 ** @attr QueryStrand [ajint] Query strand
83 ** @attr TargetStart [ajuint] Target start
84 ** @attr TargetEnd [ajuint] Target end
85 ** @attr TargetStrand [ajint] Target strand
86 ** @attr Analysisjobidentifier [ajuint] Ensembl Hive Analysis Job identifier
87 ** @attr Padding [ajuint] Padding to alignment boundary
88 ** @@
89 ******************************************************************************/
90 
91 typedef struct EnsSQcsubmission
92 {
93     ajuint Use;
94     ajuint Identifier;
95     EnsPQcsubmissionadaptor Adaptor;
96     EnsPAnalysis Analysis;
97     EnsPQcsequence QuerySequence;
98     EnsPQcsequence TargetSequence;
99     ajuint QueryStart;
100     ajuint QueryEnd;
101     ajint QueryStrand;
102     ajuint TargetStart;
103     ajuint TargetEnd;
104     ajint TargetStrand;
105     ajuint Analysisjobidentifier;
106     ajuint Padding;
107 } EnsOQcsubmission;
108 
109 #define EnsPQcsubmission EnsOQcsubmission*
110 
111 
112 
113 
114 /* ========================================================================= */
115 /* =========================== public functions ============================ */
116 /* ========================================================================= */
117 
118 /*
119 ** Prototype definitions
120 */
121 
122 /* Ensembl Quality Check Submission */
123 
124 EnsPQcsubmission ensQcsubmissionNewCpy(const EnsPQcsubmission qcsb);
125 
126 EnsPQcsubmission ensQcsubmissionNewIni(EnsPQcsubmissionadaptor adaptor,
127                                        ajuint identifier,
128                                        EnsPAnalysis analysis,
129                                        EnsPQcsequence qsequence,
130                                        EnsPQcsequence tsequence,
131                                        ajuint tstart,
132                                        ajuint tend,
133                                        ajint tstrand,
134                                        ajuint analysisjobid);
135 
136 EnsPQcsubmission ensQcsubmissionNewRef(EnsPQcsubmission qcsb);
137 
138 void ensQcsubmissionDel(EnsPQcsubmission *Pqcsb);
139 
140 EnsPQcsubmissionadaptor ensQcsubmissionGetAdaptor(const EnsPQcsubmission qcsb);
141 
142 EnsPAnalysis ensQcsubmissionGetAnalysis(const EnsPQcsubmission qcsb);
143 
144 ajuint ensQcsubmissionGetAnalysisjobidentifier(const EnsPQcsubmission qcsb);
145 
146 ajuint ensQcsubmissionGetIdentifier(const EnsPQcsubmission qcsb);
147 
148 ajuint ensQcsubmissionGetQueryEnd(const EnsPQcsubmission qcsb);
149 
150 EnsPQcsequence ensQcsubmissionGetQuerySequence(const EnsPQcsubmission qcsb);
151 
152 ajuint ensQcsubmissionGetQueryStart(const EnsPQcsubmission qcsb);
153 
154 ajint ensQcsubmissionGetQueryStrand(const EnsPQcsubmission qcsb);
155 
156 ajuint ensQcsubmissionGetTargetEnd(const EnsPQcsubmission qcsb);
157 
158 EnsPQcsequence ensQcsubmissionGetTargetSequence(const EnsPQcsubmission qcsb);
159 
160 ajuint ensQcsubmissionGetTargetStart(const EnsPQcsubmission qcsb);
161 
162 ajint ensQcsubmissionGetTargetStrand(const EnsPQcsubmission qcsb);
163 
164 AjBool ensQcsubmissionSetAdaptor(EnsPQcsubmission qcsb,
165                                  EnsPQcsubmissionadaptor qcsba);
166 
167 AjBool ensQcsubmissionSetAnalysis(EnsPQcsubmission qcsb,
168                                   EnsPAnalysis analysis);
169 
170 AjBool ensQcsubmissionSetAnalysisjobidentifier(EnsPQcsubmission qcsb,
171                                                ajuint jobid);
172 
173 AjBool ensQcsubmissionSetIdentifier(EnsPQcsubmission qcsb,
174                                     ajuint identifier);
175 
176 AjBool ensQcsubmissionSetQueryEnd(EnsPQcsubmission qcsb,
177                                   ajuint qend);
178 
179 AjBool ensQcsubmissionSetQuerySequence(EnsPQcsubmission qcsb,
180                                        EnsPQcsequence qsequence);
181 
182 AjBool ensQcsubmissionSetQueryStart(EnsPQcsubmission qcsb,
183                                     ajuint qstart);
184 
185 AjBool ensQcsubmissionSetQueryStrand(EnsPQcsubmission qcsb,
186                                      ajint qstrand);
187 
188 AjBool ensQcsubmissionSetTargetEnd(EnsPQcsubmission qcsb,
189                                    ajuint tend);
190 
191 AjBool ensQcsubmissionSetTargetSequence(EnsPQcsubmission qcsb,
192                                         EnsPQcsequence tsequence);
193 
194 AjBool ensQcsubmissionSetTargetStart(EnsPQcsubmission qcsb,
195                                      ajuint tstart);
196 
197 AjBool ensQcsubmissionSetTargetStrand(EnsPQcsubmission qcsb,
198                                       ajint tstrand);
199 
200 AjBool ensQcsubmissionTrace(const EnsPQcsubmission qcsb, ajuint level);
201 
202 size_t ensQcsubmissionCalculateMemsize(const EnsPQcsubmission qcsb);
203 
204 /* Ensembl Quality Check Submission Adaptor */
205 
206 EnsPQcsubmissionadaptor ensRegistryGetQcsubmissionadaptor(
207     EnsPDatabaseadaptor dba);
208 
209 EnsPQcsubmissionadaptor ensQcsubmissionadaptorNew(
210     EnsPDatabaseadaptor dba);
211 
212 void ensQcsubmissionadaptorDel(EnsPQcsubmissionadaptor *Pqcsba);
213 
214 EnsPBaseadaptor ensQcsubmissionadaptorGetBaseadaptor(
215     EnsPQcsubmissionadaptor qcsba);
216 
217 EnsPDatabaseadaptor ensQcsubmissionadaptorGetDatabaseadaptor(
218     EnsPQcsubmissionadaptor qcsba);
219 
220 AjBool ensQcsubmissionadaptorFetchAllbyQcdatabasePair(
221     EnsPQcsubmissionadaptor qcsba,
222     const EnsPAnalysis analysis,
223     const EnsPQcdatabase qdb,
224     const EnsPQcdatabase tdb,
225     AjPList qcsbs);
226 
227 AjBool ensQcsubmissionadaptorFetchAllbyQcdatabaseQuery(
228     EnsPQcsubmissionadaptor qcsba,
229     const EnsPAnalysis analysis,
230     const EnsPQcdatabase qdb,
231     AjPList qcsbs);
232 
233 AjBool ensQcsubmissionadaptorFetchAllbyQcdatabaseTarget(
234     EnsPQcsubmissionadaptor qcsba,
235     const EnsPAnalysis analysis,
236     const EnsPQcdatabase tdb,
237     AjPList qcsbs);
238 
239 AjBool ensQcsubmissionadaptorFetchAllbyRegion(
240     EnsPQcsubmissionadaptor qcsba,
241     const EnsPAnalysis analysis,
242     const EnsPQcsequence qsequence,
243     const EnsPQcdatabase tdb,
244     const EnsPQcsequence tsequence,
245     ajuint tstart,
246     ajuint tend,
247     ajint tstrand,
248     AjPList qcsbs);
249 
250 AjBool ensQcsubmissionadaptorFetchByIdentifier(
251     EnsPQcsubmissionadaptor adaptor,
252     ajuint identifier,
253     EnsPQcsubmission *Pqcsb);
254 
255 AjBool ensQcsubmissionadaptorDelete(EnsPQcsubmissionadaptor qcsba,
256                                     EnsPQcsubmission qcsb);
257 
258 AjBool ensQcsubmissionadaptorStore(EnsPQcsubmissionadaptor qcsba,
259                                    EnsPQcsubmission qcsb);
260 
261 AjBool ensQcsubmissionadaptorUpdate(EnsPQcsubmissionadaptor qcsba,
262                                     const EnsPQcsubmission qcsb);
263 
264 /*
265 ** End of prototype definitions
266 */
267 
268 
269 
270 
271 AJ_END_DECLS
272 
273 #endif /* !ENSQCSUBMISSION_H */
274