1 /* @include ensfeature ********************************************************
2 **
3 ** Ensembl Feature functions
4 **
5 ** @author Copyright (C) 1999 Ensembl Developers
6 ** @author Copyright (C) 2006 Michael K. Schuster
7 ** @version $Revision: 1.44 $
8 ** @modified 2009 by Alan Bleasby for incorporation into EMBOSS core
9 ** @modified $Date: 2013/02/17 13:05:44 $ 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 ENSFEATURE_H
30 #define ENSFEATURE_H
31 
32 /* ========================================================================= */
33 /* ============================= include files ============================= */
34 /* ========================================================================= */
35 
36 #include "ensanalysis.h"
37 #include "ensassemblyexception.h"
38 #include "ensdata.h"
39 #include "ensslice.h"
40 
41 AJ_BEGIN_DECLS
42 
43 
44 
45 
46 /* ========================================================================= */
47 /* =============================== constants =============================== */
48 /* ========================================================================= */
49 
50 
51 
52 
53 /* ========================================================================= */
54 /* ============================== public data ============================== */
55 /* ========================================================================= */
56 
57 /* @data EnsPFeaturepair ******************************************************
58 **
59 ** Ensembl Feature Pair.
60 **
61 ** @alias EnsSFeaturepair
62 ** @alias EnsOFeaturepair
63 **
64 ** @cc Bio::EnsEMBL::Featurepair
65 ** @attr SourceFeature [EnsPFeature] Source Ensembl Feature (Query)
66 ** @attr TargetFeature [EnsPFeature] Target Ensembl Feature (Target)
67 ** @attr Externaldatabase [EnsPExternaldatabase] Ensembl External Database
68 ** @attr Extradata [AjPStr] Extra data
69 ** @attr SourceSpecies [AjPStr] Source species name
70 ** @attr TargetSpecies [AjPStr] Target species name
71 ** @attr Groupidentifier [ajuint] Group identifier
72 ** @attr Levelidentifier [ajuint] Level identifier
73 ** @attr Evalue [double] e- or p-value
74 ** @attr Score [double] Score
75 ** @attr SourceCoverage [float] Source coverage in percent
76 ** @attr TargetCoverage [float] Target coverage in percent
77 ** @attr Identity [float] Sequence identity in percent
78 ** @attr Use [ajuint] Use counter
79 ** @@
80 ******************************************************************************/
81 
82 typedef struct EnsSFeaturepair
83 {
84     EnsPFeature SourceFeature;
85     EnsPFeature TargetFeature;
86     EnsPExternaldatabase Externaldatabase;
87     AjPStr Extradata;
88     AjPStr SourceSpecies;
89     AjPStr TargetSpecies;
90     ajuint Groupidentifier;
91     ajuint Levelidentifier;
92     double Evalue;
93     double Score;
94     float SourceCoverage;
95     float TargetCoverage;
96     float Identity;
97     ajuint Use;
98 } EnsOFeaturepair;
99 
100 #define EnsPFeaturepair EnsOFeaturepair*
101 
102 
103 
104 
105 /* @data EnsPAssemblyexceptionfeatureadaptor **********************************
106 **
107 ** Ensembl Assembly Exception Feature Adaptor.
108 **
109 ** @alias EnsSAssemblyexceptionfeatureadaptor
110 ** @alias EnsOAssemblyexceptionfeatureadaptor
111 **
112 ** @attr Adaptor [EnsPDatabaseadaptor] Ensembl Database Adaptor
113 ** @attr Cache [AjPList]
114 ** AJAX List of Ensembl Assembly Exception Feature objects
115 ** @attr CacheByIdentifier [AjPTable]
116 ** AJAX Table of Ensembl Assembly Exception Feature objects
117 ** @attr CacheBySlice [EnsPCache] Ensembl Cache by Ensembl Slice names
118 ** @@
119 ******************************************************************************/
120 
121 typedef struct EnsSAssemblyexceptionfeatureadaptor
122 {
123     EnsPDatabaseadaptor Adaptor;
124     AjPList Cache;
125     AjPTable CacheByIdentifier;
126     EnsPCache CacheBySlice;
127 } EnsOAssemblyexceptionfeatureadaptor;
128 
129 #define EnsPAssemblyexceptionfeatureadaptor EnsOAssemblyexceptionfeatureadaptor*
130 
131 
132 
133 
134 /* @data EnsPAssemblyexceptionfeature *****************************************
135 **
136 ** Ensembl Assembly Exception Feature.
137 **
138 ** @alias EnsSAssemblyexceptionfeature
139 ** @alias EnsOAssemblyexceptionfeature
140 **
141 ** @attr Use [ajuint] Use counter
142 ** @cc Bio::EnsEMBL::Storable
143 ** @attr Identifier [ajuint] SQL database-internal identifier
144 ** @attr Adaptor [EnsPAssemblyexceptionfeatureadaptor]
145 **                Ensembl Assembly Exception Feature Adaptor
146 ** @cc Bio::EnsEMBL::Feature
147 ** @attr Feature [EnsPFeature] Ensembl Feature
148 ** @cc Bio::EnsEMBL::Assemblyexceptionfeature
149 ** @attr ExceptionSlice [EnsPSlice] Exception Ensembl Slice
150 ** @attr Type [EnsEAssemblyexceptionType] Ensembl Assembly Exception type
151 ** @attr Padding [ajuint] Padding to alignment boundary
152 ** @@
153 ******************************************************************************/
154 
155 typedef struct EnsSAssemblyexceptionfeature
156 {
157     ajuint Use;
158     ajuint Identifier;
159     EnsPAssemblyexceptionfeatureadaptor Adaptor;
160     EnsPFeature Feature;
161     EnsPSlice ExceptionSlice;
162     EnsEAssemblyexceptionType Type;
163     ajuint Padding;
164 } EnsOAssemblyexceptionfeature;
165 
166 #define EnsPAssemblyexceptionfeature EnsOAssemblyexceptionfeature*
167 
168 
169 
170 
171 /* ========================================================================= */
172 /* =========================== public functions ============================ */
173 /* ========================================================================= */
174 
175 /*
176 ** Prototype definitions
177 */
178 
179 /* Ensembl Feature */
180 
181 EnsPFeature ensFeatureNewCpy(const EnsPFeature feature);
182 
183 EnsPFeature ensFeatureNewIniN(EnsPAnalysis analysis,
184                               AjPStr seqname,
185                               ajint start,
186                               ajint end,
187                               ajint strand);
188 
189 EnsPFeature ensFeatureNewIniS(EnsPAnalysis analysis,
190                               EnsPSlice slice,
191                               ajint start,
192                               ajint end,
193                               ajint strand);
194 
195 EnsPFeature ensFeatureNewRef(EnsPFeature feature);
196 
197 void ensFeatureDel(EnsPFeature *Pfeature);
198 
199 EnsPAnalysis ensFeatureGetAnalysis(const EnsPFeature feature);
200 
201 ajint ensFeatureGetEnd(const EnsPFeature feature);
202 
203 AjPStr ensFeatureGetSequencename(const EnsPFeature feature);
204 
205 EnsPSlice ensFeatureGetSlice(const EnsPFeature feature);
206 
207 ajint ensFeatureGetStart(const EnsPFeature feature);
208 
209 ajint ensFeatureGetStrand(const EnsPFeature feature);
210 
211 AjBool ensFeatureSetAnalysis(EnsPFeature feature, EnsPAnalysis analysis);
212 
213 AjBool ensFeatureSetEnd(EnsPFeature feature, ajint end);
214 
215 AjBool ensFeatureSetSequencename(EnsPFeature, AjPStr seqname);
216 
217 AjBool ensFeatureSetSlice(EnsPFeature feature, EnsPSlice slice);
218 
219 AjBool ensFeatureSetStart(EnsPFeature feature, ajint start);
220 
221 AjBool ensFeatureSetStrand(EnsPFeature feature, ajint strand);
222 
223 AjBool ensFeatureTrace(const EnsPFeature feature, ajuint level);
224 
225 ajuint ensFeatureCalculateLength(const EnsPFeature feature);
226 
227 size_t ensFeatureCalculateMemsize(const EnsPFeature feature);
228 
229 char ensFeatureCalculateStrand(const EnsPFeature feature);
230 
231 ajint ensFeatureGetSeqregionEnd(const EnsPFeature feature);
232 
233 ajuint ensFeatureGetSeqregionLength(const EnsPFeature feature);
234 
235 const AjPStr ensFeatureGetSeqregionName(const EnsPFeature feature);
236 
237 const EnsPSeqregion ensFeatureGetSeqregionObject(const EnsPFeature feature);
238 
239 ajint ensFeatureGetSeqregionStart(const EnsPFeature feature);
240 
241 ajint ensFeatureGetSeqregionStrand(const EnsPFeature feature);
242 
243 AjBool ensFeatureFetchAllAlternativelocations(EnsPFeature feature,
244                                               AjBool all,
245                                               AjPList features);
246 
247 AjBool ensFeatureFetchSequencename(const EnsPFeature feature, AjPStr *Pname);
248 
249 AjBool ensFeatureMove(EnsPFeature feature,
250                       ajint start,
251                       ajint end,
252                       ajint strand);
253 
254 AjBool ensFeatureProject(const EnsPFeature feature,
255                          const AjPStr csname,
256                          const AjPStr csversion,
257                          AjPList pss);
258 
259 AjBool ensFeatureProjectslice(const EnsPFeature feature,
260                               EnsPSlice slice,
261                               AjPList pss);
262 
263 EnsPFeature ensFeatureTransform(EnsPFeature feature,
264                                 const AjPStr csname,
265                                 const AjPStr csversion,
266                                 EnsPSlice slice);
267 
268 EnsPFeature ensFeatureTransfer(EnsPFeature feature, EnsPSlice slice);
269 
270 AjBool ensFeatureMatch(const EnsPFeature feature1,
271                        const EnsPFeature feature2);
272 
273 AjBool ensFeatureOverlap(const EnsPFeature feature1,
274                          const EnsPFeature feature2);
275 
276 AjBool ensFeatureSimilarity(const EnsPFeature feature1,
277                             const EnsPFeature feature2);
278 
279 int ensFeatureCompareEndAscending(const EnsPFeature feature1,
280                                   const EnsPFeature feature2);
281 
282 int ensFeatureCompareEndDescending(const EnsPFeature feature1,
283                                    const EnsPFeature feature2);
284 
285 int ensFeatureCompareStartAscending(const EnsPFeature feature1,
286                                     const EnsPFeature feature2);
287 
288 int ensFeatureCompareStartDescending(const EnsPFeature feature1,
289                                      const EnsPFeature feature2);
290 
291 /* AJAX List of Ensembl Feature objects */
292 
293 AjBool ensListFeatureSortEndAscending(AjPList features);
294 
295 AjBool ensListFeatureSortEndDescending(AjPList features);
296 
297 AjBool ensListFeatureSortStartAscending(AjPList features);
298 
299 AjBool ensListFeatureSortStartDescending(AjPList features);
300 
301 /* Ensembl Feature Adaptor */
302 
303 EnsPFeatureadaptor ensFeatureadaptorNew(
304     EnsPDatabaseadaptor dba,
305     const char *const *Ptablenames,
306     const char *const *Pcolumnnames,
307     const EnsPBaseadaptorLeftjoin leftjoins,
308     const char *defaultcondition,
309     const char *finalcondition,
310     AjBool (*Fstatement) (EnsPBaseadaptor ba,
311                           const AjPStr statement,
312                           EnsPAssemblymapper am,
313                           EnsPSlice slice,
314                           AjPList objects),
315     void *(*Fread) (const void *key),
316     void *(*Freference) (void *value),
317     AjBool (*Fwrite) (const void *value),
318     void (*Fdelete) (void **Pvalue),
319     size_t (*Fsize) (const void *value),
320     EnsPFeature (*Fgetfeature) (const void *object),
321     const char *label);
322 
323 void ensFeatureadaptorDel(EnsPFeatureadaptor *Pfa);
324 
325 EnsPBaseadaptor ensFeatureadaptorGetBaseadaptor(
326     const EnsPFeatureadaptor fa);
327 
328 EnsPCache ensFeatureadaptorGetCache(
329     const EnsPFeatureadaptor fa);
330 
331 EnsPDatabaseadaptor ensFeatureadaptorGetDatabaseadaptor(
332     const EnsPFeatureadaptor fa);
333 
334 ajint ensFeatureadaptorGetMaximumlength(
335     const EnsPFeatureadaptor fa);
336 
337 AjBool ensFeatureadaptorGetStartequalsend(
338     const EnsPFeatureadaptor fa);
339 
340 AjBool ensFeatureadaptorSetColumnnames(EnsPFeatureadaptor fa,
341                                        const char *const *Pcolumnnames);
342 
343 AjBool ensFeatureadaptorSetDefaultcondition(EnsPFeatureadaptor fa,
344                                             const char *defaultcondition);
345 
346 AjBool ensFeatureadaptorSetFinalcondition(EnsPFeatureadaptor fa,
347                                           const char *finalcondition);
348 
349 AjBool ensFeatureadaptorSetMaximumlength(EnsPFeatureadaptor fa,
350                                          ajint length);
351 
352 AjBool ensFeatureadaptorSetStartequalsend(EnsPFeatureadaptor fa,
353                                           AjBool flag);
354 
355 AjBool ensFeatureadaptorSetTablenames(EnsPFeatureadaptor fa,
356                                       const char *const *Ptablenames);
357 
358 AjBool ensFeatureadaptorEscapeC(EnsPFeatureadaptor fa,
359                                 char **Ptxt,
360                                 const AjPStr str);
361 
362 AjBool ensFeatureadaptorEscapeS(EnsPFeatureadaptor fa,
363                                 AjPStr *Pstr,
364                                 const AjPStr str);
365 
366 AjBool ensFeatureadaptorConstraintAppendAnalysisname(
367     const EnsPFeatureadaptor fa,
368     AjPStr *Pconstraint,
369     const AjPStr anname);
370 
371 AjBool ensFeatureadaptorFetchAllbyAnalysisname(EnsPFeatureadaptor fa,
372                                                const AjPStr anname,
373                                                AjPList objects);
374 
375 AjBool ensFeatureadaptorFetchAllbySlice(EnsPFeatureadaptor fa,
376                                         EnsPSlice slice,
377                                         const AjPStr constraint,
378                                         const AjPStr anname,
379                                         AjPList objects);
380 
381 AjBool ensFeatureadaptorFetchAllbySlicescore(EnsPFeatureadaptor fa,
382                                              EnsPSlice slice,
383                                              double score,
384                                              const AjPStr anname,
385                                              AjPList objects);
386 
387 /* Ensembl Feature Pair */
388 
389 EnsPFeaturepair ensFeaturepairNewCpy(const EnsPFeaturepair fp);
390 
391 EnsPFeaturepair ensFeaturepairNewIni(EnsPFeature srcfeature,
392                                      EnsPFeature trgfeature,
393                                      EnsPExternaldatabase edb,
394                                      AjPStr extra,
395                                      AjPStr srcspecies,
396                                      AjPStr trgspecies,
397                                      ajuint groupid,
398                                      ajuint levelid,
399                                      double evalue,
400                                      double score,
401                                      float srccoverage,
402                                      float trgcoverage,
403                                      float identity);
404 
405 EnsPFeaturepair ensFeaturepairNewRef(EnsPFeaturepair fp);
406 
407 void ensFeaturepairDel(EnsPFeaturepair *Pfp);
408 
409 double ensFeaturepairGetEvalue(
410     const EnsPFeaturepair fp);
411 
412 EnsPExternaldatabase ensFeaturepairGetExternaldatabase(
413     const EnsPFeaturepair fp);
414 
415 AjPStr ensFeaturepairGetExtradata(
416     const EnsPFeaturepair fp);
417 
418 ajuint ensFeaturepairGetGroupidentifier(
419     const EnsPFeaturepair fp);
420 
421 float ensFeaturepairGetIdentity(
422     const EnsPFeaturepair fp);
423 
424 ajuint ensFeaturepairGetLevelidentifier(
425     const EnsPFeaturepair fp);
426 
427 double ensFeaturepairGetScore(
428     const EnsPFeaturepair fp);
429 
430 float ensFeaturepairGetSourceCoverage(
431     const EnsPFeaturepair fp);
432 
433 EnsPFeature ensFeaturepairGetSourceFeature(
434     const EnsPFeaturepair fp);
435 
436 AjPStr ensFeaturepairGetSourceSpecies(
437     const EnsPFeaturepair fp);
438 
439 float ensFeaturepairGetTargetCoverage(
440     const EnsPFeaturepair fp);
441 
442 EnsPFeature ensFeaturepairGetTargetFeature(
443     const EnsPFeaturepair fp);
444 
445 AjPStr ensFeaturepairGetTargetSpecies(
446     const EnsPFeaturepair fp);
447 
448 AjBool ensFeaturepairSetEvalue(EnsPFeaturepair fp,
449                                double evalue);
450 
451 AjBool ensFeaturepairSetExternaldatabase(EnsPFeaturepair fp,
452                                          EnsPExternaldatabase edb);
453 
454 AjBool ensFeaturepairSetExtradata(EnsPFeaturepair fp,
455                                   AjPStr extra);
456 
457 AjBool ensFeaturepairSetGroupidentifier(EnsPFeaturepair fp,
458                                         ajuint groupid);
459 
460 AjBool ensFeaturepairSetLevelidentifier(EnsPFeaturepair fp,
461                                         ajuint levelid);
462 
463 AjBool ensFeaturepairSetScore(EnsPFeaturepair fp,
464                               double score);
465 
466 AjBool ensFeaturepairSetSourceCoverage(EnsPFeaturepair fp,
467                                        float coverage);
468 
469 AjBool ensFeaturepairSetSourceFeature(EnsPFeaturepair fp,
470                                       EnsPFeature feature);
471 
472 AjBool ensFeaturepairSetSourceSpecies(EnsPFeaturepair fp,
473                                       AjPStr species);
474 
475 AjBool ensFeaturepairSetTargetCoverage(EnsPFeaturepair fp,
476                                        float coverage);
477 
478 AjBool ensFeaturepairSetTargetFeature(EnsPFeaturepair fp,
479                                       EnsPFeature feature);
480 
481 AjBool ensFeaturepairSetTargetSpecies(EnsPFeaturepair fp,
482                                       AjPStr species);
483 
484 AjBool ensFeaturepairTrace(const EnsPFeaturepair fp, ajuint level);
485 
486 AjBool ensFeaturepairSetIdentity(EnsPFeaturepair fp, float identity);
487 
488 size_t ensFeaturepairCalculateMemsize(const EnsPFeaturepair fp);
489 
490 EnsPFeaturepair ensFeaturepairTransfer(EnsPFeaturepair fp,
491                                        EnsPSlice slice);
492 
493 EnsPFeaturepair ensFeaturepairTransform(const EnsPFeaturepair fp,
494                                         const AjPStr csname,
495                                         const AjPStr csversion);
496 
497 ajint ensFeaturepairGetSourceEnd(const EnsPFeaturepair fp);
498 
499 ajint ensFeaturepairGetSourceStart(const EnsPFeaturepair fp);
500 
501 ajint ensFeaturepairGetSourceStrand(const EnsPFeaturepair fp);
502 
503 ajint ensFeaturepairGetTargetEnd(const EnsPFeaturepair fp);
504 
505 ajint ensFeaturepairGetTargetStart(const EnsPFeaturepair fp);
506 
507 ajint ensFeaturepairGetTargetStrand(const EnsPFeaturepair fp);
508 
509 int ensFeaturepairCompareSourceEndAscending(const EnsPFeaturepair fp1,
510                                             const EnsPFeaturepair fp2);
511 
512 int ensFeaturepairCompareSourceEndDescending(const EnsPFeaturepair fp1,
513                                              const EnsPFeaturepair fp2);
514 
515 int ensFeaturepairCompareSourceStartAscending(const EnsPFeaturepair fp1,
516                                               const EnsPFeaturepair fp2);
517 
518 int ensFeaturepairCompareSourceStartDescending(const EnsPFeaturepair fp1,
519                                                const EnsPFeaturepair fp2);
520 
521 /* AJAX List of Ensembl Feature Pair objects */
522 
523 AjBool ensListFeaturepairSortSourceEndAscending(AjPList fps);
524 
525 AjBool ensListFeaturepairSortSourceEndDescending(AjPList fps);
526 
527 AjBool ensListFeaturepairSortSourceStartAscending(AjPList fps);
528 
529 AjBool ensListFeaturepairSortSourceStartDescending(AjPList fps);
530 
531 /* Ensembl Assembly Exception Feature */
532 
533 EnsPAssemblyexceptionfeature ensAssemblyexceptionfeatureNewCpy(
534     const EnsPAssemblyexceptionfeature aef);
535 
536 EnsPAssemblyexceptionfeature ensAssemblyexceptionfeatureNewIni(
537     EnsPAssemblyexceptionfeatureadaptor aefa,
538     ajuint identifier,
539     EnsPFeature feature,
540     EnsPSlice slice,
541     EnsEAssemblyexceptionType type);
542 
543 EnsPAssemblyexceptionfeature ensAssemblyexceptionfeatureNewRef(
544     EnsPAssemblyexceptionfeature aef);
545 
546 void ensAssemblyexceptionfeatureDel(EnsPAssemblyexceptionfeature *Paef);
547 
548 EnsPAssemblyexceptionfeatureadaptor ensAssemblyexceptionfeatureGetAdaptor(
549     const EnsPAssemblyexceptionfeature aef);
550 
551 EnsPSlice ensAssemblyexceptionfeatureGetExceptionSlice(
552     const EnsPAssemblyexceptionfeature aef);
553 
554 EnsPFeature ensAssemblyexceptionfeatureGetFeature(
555     const EnsPAssemblyexceptionfeature aef);
556 
557 ajuint ensAssemblyexceptionfeatureGetIdentifier(
558     const EnsPAssemblyexceptionfeature aef);
559 
560 EnsEAssemblyexceptionType ensAssemblyexceptionfeatureGetType(
561     const EnsPAssemblyexceptionfeature aef);
562 
563 AjBool ensAssemblyexceptionfeatureSetAdaptor(
564     EnsPAssemblyexceptionfeature aef,
565     EnsPAssemblyexceptionfeatureadaptor aefa);
566 
567 AjBool ensAssemblyexceptionfeatureSetExceptionSlice(
568     EnsPAssemblyexceptionfeature aef,
569     EnsPSlice slice);
570 
571 AjBool ensAssemblyexceptionfeatureSetFeature(EnsPAssemblyexceptionfeature aef,
572                                              EnsPFeature feature);
573 
574 AjBool ensAssemblyexceptionfeatureSetIdentifier(
575     EnsPAssemblyexceptionfeature aef,
576     ajuint identifier);
577 
578 AjBool ensAssemblyexceptionfeatureSetType(EnsPAssemblyexceptionfeature aef,
579                                           EnsEAssemblyexceptionType type);
580 
581 size_t ensAssemblyexceptionfeatureCalculateMemsize(
582     const EnsPAssemblyexceptionfeature aef);
583 
584 AjBool ensAssemblyexceptionfeatureFetchDisplayidentifier(
585     const EnsPAssemblyexceptionfeature aef,
586     AjPStr *Pidentifier);
587 
588 AjBool ensAssemblyexceptionfeatureTrace(const EnsPAssemblyexceptionfeature aef,
589                                         ajuint level);
590 
591 /* Ensembl Assembly Exception Feature Adaptor */
592 
593 EnsPAssemblyexceptionfeatureadaptor ensRegistryGetAssemblyexceptionfeatureadaptor(
594     EnsPDatabaseadaptor dba);
595 
596 EnsPAssemblyexceptionfeatureadaptor ensAssemblyexceptionfeatureadaptorNew(
597     EnsPDatabaseadaptor dba);
598 
599 void ensAssemblyexceptionfeatureadaptorDel(
600     EnsPAssemblyexceptionfeatureadaptor *Paefa);
601 
602 EnsPDatabaseadaptor ensAssemblyexceptionfeatureadaptorGetDatabaseadaptor(
603     EnsPAssemblyexceptionfeatureadaptor aefa);
604 
605 AjBool ensAssemblyexceptionfeatureadaptorFetchAll(
606     EnsPAssemblyexceptionfeatureadaptor aefa,
607     AjPList aefs);
608 
609 AjBool ensAssemblyexceptionfeatureadaptorFetchAllbySlice(
610     EnsPAssemblyexceptionfeatureadaptor aefa,
611     EnsPSlice slice,
612     AjPList aefs);
613 
614 AjBool ensAssemblyexceptionfeatureadaptorFetchByIdentifier(
615     EnsPAssemblyexceptionfeatureadaptor aefa,
616     ajuint identifier,
617     EnsPAssemblyexceptionfeature *Paef);
618 
619 /*
620 ** End of prototype definitions
621 */
622 
623 
624 
625 
626 AJ_END_DECLS
627 
628 #endif /* !ENSFEATURE_H */
629