1 /* @include ensdata ***********************************************************
2 **
3 ** Ensembl Data functions
4 **
5 ** @author Copyright (C) 1999 Ensembl Developers
6 ** @author Copyright (C) 2006 Michael K. Schuster
7 ** @version $Revision: 1.53 $
8 ** @modified 2009 by Alan Bleasby for incorporation into EMBOSS core
9 ** @modified $Date: 2013/02/17 13:04:31 $ 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 ENSDATA_H
30 #define ENSDATA_H
31 
32 /* ========================================================================= */
33 /* ============================= include files ============================= */
34 /* ========================================================================= */
35 
36 #include "enscache.h"
37 #include "enscoordsystem.h"
38 #include "ensmapper.h"
39 
40 AJ_BEGIN_DECLS
41 
42 
43 
44 
45 /* ========================================================================= */
46 /* =============================== constants =============================== */
47 /* ========================================================================= */
48 
49 /* @const EnsPAttributeadaptor ************************************************
50 **
51 ** Ensembl Attribute Adaptor
52 **
53 ** Defined as an alias in EnsPDatabaseadaptor.
54 **
55 ** #alias EnsPDatabaseadaptor
56 **
57 ** #cc Bio::EnsEMBL::DBSQL::AttributeAdaptor
58 ** ##
59 ******************************************************************************/
60 
61 #define EnsPAttributeadaptor EnsPDatabaseadaptor
62 
63 
64 
65 
66 /* @const EnsPDatabaseentryadaptor ********************************************
67 **
68 ** Ensembl Database Entry Adaptor
69 **
70 ** Defined as an alias in EnsPDatabaseadaptor.
71 **
72 ** #alias EnsPDatabaseadaptor
73 **
74 ** #cc Bio::EnsEMBL::DBSQL::DBEntryAdaptor
75 ** ##
76 ******************************************************************************/
77 
78 #define EnsPDatabaseentryadaptor EnsPDatabaseadaptor
79 
80 
81 
82 
83 /* @const EnsPGeneadaptor *****************************************************
84 **
85 ** Ensembl Gene Adaptor
86 **
87 ** Defined as an alias in EnsPFeatureadaptor.
88 **
89 ** #alias EnsPFeatureadaptor
90 **
91 ** #cc Bio::EnsEMBL::DBSQL::GeneAdaptor
92 ** ##
93 ******************************************************************************/
94 
95 #define EnsPGeneadaptor EnsPFeatureadaptor
96 
97 
98 
99 
100 /* @const EnsPIntronsupportingevidenceadaptor *********************************
101 **
102 ** Ensembl Intron Supporting Evidence Adaptor
103 **
104 ** Defined as an alias in EnsPFeatureadaptor.
105 **
106 ** #alias EnsPFeatureadaptor
107 **
108 ** #cc Bio::EnsEMBL::DBSQL::IntronsupportingevidenceAdaptor
109 ** ##
110 ******************************************************************************/
111 
112 #define EnsPIntronsupportingevidenceadaptor EnsPFeatureadaptor
113 
114 
115 
116 
117 /* @const EnsPOperonadaptor ***************************************************
118 **
119 ** Ensembl Operon Adaptor
120 **
121 ** Defined as an alias in EnsPFeatureadaptor.
122 **
123 ** #alias EnsPFeatureadaptor
124 **
125 ** #cc Bio::EnsEMBL::DBSQL::OperonAdaptor
126 ** ##
127 ******************************************************************************/
128 
129 #define EnsPOperonadaptor EnsPFeatureadaptor
130 
131 
132 
133 
134 /* @const EnsPOperontranscriptadaptor *****************************************
135 **
136 ** Ensembl Operon Transcript Adaptor
137 **
138 ** Defined as an alias in EnsPFeatureadaptor.
139 **
140 ** #alias EnsPFeatureadaptor
141 **
142 ** #cc Bio::EnsEMBL::DBSQL::OperonTranscriptAdaptor
143 ** ##
144 ******************************************************************************/
145 
146 #define EnsPOperontranscriptadaptor EnsPFeatureadaptor
147 
148 
149 
150 
151 /* @const EnsPSeqregionsynonymadaptor *****************************************
152 **
153 ** Ensembl Sequence Region Synonym Adaptor
154 **
155 ** Defined as an alias in EnsPBaseadaptor.
156 **
157 ** #alias EnsPBaseadaptor
158 **
159 ** #cc Bio::EnsEMBL::DBSQL::SeqRegionSynonymAdaptor
160 ** ##
161 ******************************************************************************/
162 
163 #define EnsPSeqregionsynonymadaptor EnsPBaseadaptor
164 
165 
166 
167 
168 /* @const EnsPTranscriptadaptor ***********************************************
169 **
170 ** Ensembl Transcript Adaptor
171 **
172 ** Defined as an alias in EnsPFeatureadaptor.
173 **
174 ** #alias EnsPFeatureadaptor
175 **
176 ** #cc Bio::EnsEMBL::DBSQL::TranscriptAdaptor
177 ** ##
178 ******************************************************************************/
179 
180 #define EnsPTranscriptadaptor EnsPFeatureadaptor
181 
182 
183 
184 
185 /* @const EnsPTranslationadaptor **********************************************
186 **
187 ** Ensembl Translation Adaptor
188 **
189 ** Defined as an alias in EnsPBaseadaptor.
190 **
191 ** #alias EnsPBaseadaptor
192 **
193 ** #cc Bio::EnsEMBL::DBSQL::TranslationAdaptor
194 ** ##
195 ******************************************************************************/
196 
197 #define EnsPTranslationadaptor EnsPBaseadaptor
198 
199 
200 
201 
202 /* @enum EnsEExternaldatabaseStatus *******************************************
203 **
204 ** Ensembl External Database Status enumeration
205 **
206 ** @value ensEExternaldatabaseStatusNULL Null
207 ** @value ensEExternaldatabaseStatusKnownXref Known external reference
208 ** @value ensEExternaldatabaseStatusKnown Known
209 ** @value ensEExternaldatabaseStatusXref External reference
210 ** @value ensEExternaldatabaseStatusPred Predicted
211 ** @value ensEExternaldatabaseStatusOrth Orthologue
212 ** @value ensEExternaldatabaseStatusPseudo Pseudo
213 ** @@
214 ******************************************************************************/
215 
216 typedef enum EnsOExternaldatabaseStatus
217 {
218     ensEExternaldatabaseStatusNULL,
219     ensEExternaldatabaseStatusKnownXref,
220     ensEExternaldatabaseStatusKnown,
221     ensEExternaldatabaseStatusXref,
222     ensEExternaldatabaseStatusPred,
223     ensEExternaldatabaseStatusOrth,
224     ensEExternaldatabaseStatusPseudo
225 } EnsEExternaldatabaseStatus;
226 
227 
228 
229 
230 /* @enum EnsEExternaldatabaseType *********************************************
231 **
232 ** Ensembl External Database Type enumeration
233 **
234 ** @value ensEExternaldatabaseTypeNULL Null
235 ** @value ensEExternaldatabaseTypeArray Array
236 ** @value ensEExternaldatabaseTypeAltTrans Alternative Translation
237 ** @value ensEExternaldatabaseTypeAltGene Alternative Gene
238 ** @value ensEExternaldatabaseTypeMisc Miscellaneous
239 ** @value ensEExternaldatabaseTypeLit Literature
240 ** @value ensEExternaldatabaseTypePrimaryDbSynonym Primary database synonym
241 ** @value ensEExternaldatabaseTypeEnsembl Ensembl
242 ** @value ensEExternaldatabaseTypeIgnore Ignore
243 ** @@
244 ******************************************************************************/
245 
246 typedef enum EnsOExternaldatabaseType
247 {
248     ensEExternaldatabaseTypeNULL,
249     ensEExternaldatabaseTypeArray,
250     ensEExternaldatabaseTypeAltTrans,
251     ensEExternaldatabaseTypeAltGene,
252     ensEExternaldatabaseTypeMisc,
253     ensEExternaldatabaseTypeLit,
254     ensEExternaldatabaseTypePrimaryDbSynonym,
255     ensEExternaldatabaseTypeEnsembl,
256     ensEExternaldatabaseTypeIgnore
257 } EnsEExternaldatabaseType;
258 
259 
260 
261 
262 /* @enum EnsEExternalreferenceInfotype ****************************************
263 **
264 ** Ensembl External Reference Information Type enumeration
265 **
266 ** @value ensEExternalreferenceInfotypeNULL Null
267 ** @value ensEExternalreferenceInfotypeProjection Projection
268 ** @value ensEExternalreferenceInfotypeMisc Miscellaneous
269 ** @value ensEExternalreferenceInfotypeDependent Dependent
270 ** @value ensEExternalreferenceInfotypeDirect Direct
271 ** @value ensEExternalreferenceInfotypeSequenceMatch Sequence Match
272 ** @value ensEExternalreferenceInfotypeInferredPair Inferred Pair
273 ** @value ensEExternalreferenceInfotypeProbe Probe
274 ** @value ensEExternalreferenceInfotypeUnmapped Unmapped
275 ** @value ensEExternalreferenceInfotypeCoordinateOverlap Coordinate Overlap
276 ** @@
277 ******************************************************************************/
278 
279 typedef enum EnsOExternalreferenceInfotype
280 {
281     ensEExternalreferenceInfotypeNULL,
282     ensEExternalreferenceInfotypeProjection,
283     ensEExternalreferenceInfotypeMisc,
284     ensEExternalreferenceInfotypeDependent,
285     ensEExternalreferenceInfotypeDirect,
286     ensEExternalreferenceInfotypeSequenceMatch,
287     ensEExternalreferenceInfotypeInferredPair,
288     ensEExternalreferenceInfotypeProbe,
289     ensEExternalreferenceInfotypeUnmapped,
290     ensEExternalreferenceInfotypeCoordinateOverlap
291 } EnsEExternalreferenceInfotype;
292 
293 
294 
295 
296 /* @enum EnsEExternalreferenceObjecttype **************************************
297 **
298 ** Ensembl External Reference Object Type enumeration
299 **
300 ** @value ensEExternalreferenceObjecttypeNULL Null
301 ** @value ensEExternalreferenceObjecttypeRawContig Raw Contig
302 ** @value ensEExternalreferenceObjectypeTranscript Transcript
303 ** @value ensEExternalreferenceObjecttypeGene Gene
304 ** @value ensEExternalreferenceObjecttypeTranslation Translation
305 ** @@
306 ******************************************************************************/
307 
308 typedef enum EnsOExternalreferenceObjecttype
309 {
310     ensEExternalreferenceObjecttypeNULL,
311     ensEExternalreferenceObjecttypeRawContig,
312     ensEExternalreferenceObjectypeTranscript,
313     ensEExternalreferenceObjecttypeGene,
314     ensEExternalreferenceObjecttypeTranslation
315 } EnsEExternalreferenceObjecttype;
316 
317 
318 
319 
320 /* @enum EnsEGeneStatus *******************************************************
321 **
322 ** Ensembl Gene Status enumeration
323 **
324 ** @value ensEGeneStatusNULL Null
325 ** @value ensEGeneStatusKnown Known
326 ** @value ensEGeneStatusNovel Novel
327 ** @value ensEGeneStatusPutative Putative
328 ** @value ensEGeneStatusPredicted Predicted
329 ** @value ensEGeneStatusKnownByProjection Known by projection
330 ** @value ensEGeneStatusUnknown Unknown
331 ** @@
332 ******************************************************************************/
333 
334 typedef enum EnsOGeneStatus
335 {
336     ensEGeneStatusNULL,
337     ensEGeneStatusKnown,
338     ensEGeneStatusNovel,
339     ensEGeneStatusPutative,
340     ensEGeneStatusPredicted,
341     ensEGeneStatusKnownByProjection,
342     ensEGeneStatusUnknown
343 } EnsEGeneStatus;
344 
345 
346 
347 
348 /* @enum EnsEIntronsupportingevidenceType *************************************
349 **
350 ** Ensembl Intron Supporting Evidence Type enumeration
351 **
352 ** @value ensEIntronsupportingevidenceTypeNULL Null
353 ** @value ensEIntronsupportingevidenceTypeNone None
354 ** @value ensEIntronsupportingevidenceTypeDepth Depth
355 ** @@
356 ******************************************************************************/
357 
358 typedef enum EnsOIntronsupportingevidenceType
359 {
360     ensEIntronsupportingevidenceTypeNULL,
361     ensEIntronsupportingevidenceTypeNone,
362     ensEIntronsupportingevidenceTypeDepth
363 } EnsEIntronsupportingevidenceType;
364 
365 
366 
367 
368 /* @enum EnsESliceTopology ****************************************************
369 **
370 ** Ensembl Slice Topology enumeration
371 **
372 ** @value ensESliceTopologyNULL Null
373 ** @value ensESliceTopologyLinear Linear
374 ** @value ensESliceTopologyCircular Circular
375 ** @@
376 ******************************************************************************/
377 
378 typedef enum EnsOSliceTopology
379 {
380     ensESliceTopologyNULL,
381     ensESliceTopologyLinear,
382     ensESliceTopologyCircular
383 } EnsESliceTopology;
384 
385 
386 
387 
388 /* @enum EnsESliceType ********************************************************
389 **
390 ** Ensembl Slice Type enumeration
391 **
392 ** @value ensESliceTypeNULL Null
393 ** @value ensESliceTypeLinear Linear
394 ** @value ensESliceTypeCircular Circular
395 ** @value ensESliceTypeLrg Locus Reference Genome
396 ** @@
397 ******************************************************************************/
398 
399 typedef enum EnsOSliceType
400 {
401     ensESliceTypeNULL,
402     ensESliceTypeLinear,
403     ensESliceTypeCircular,
404     ensESliceTypeLrg
405 } EnsESliceType;
406 
407 
408 
409 
410 /* @enum EnsETranscriptStatus *************************************************
411 **
412 ** Ensembl Transcript Status enumeration
413 **
414 ** @value ensETranscriptStatusNULL Null
415 ** @value ensETranscriptStatusKnown Known
416 ** @value ensETranscriptStatusNovel Novel
417 ** @value ensETranscriptStatusPutative Putative
418 ** @value ensETranscriptStatusPredicted Predicted
419 ** @value ensETranscriptStatusKnownByProjection Known by projection
420 ** @value ensETranscriptStatusUnknown Unknown
421 ** @value ensETranscriptStatusAnnotated Annotated
422 ** @@
423 ******************************************************************************/
424 
425 typedef enum EnsOTranscriptStatus
426 {
427     ensETranscriptStatusNULL,
428     ensETranscriptStatusKnown,
429     ensETranscriptStatusNovel,
430     ensETranscriptStatusPutative,
431     ensETranscriptStatusPredicted,
432     ensETranscriptStatusKnownByProjection,
433     ensETranscriptStatusUnknown,
434     ensETranscriptStatusAnnotated
435 } EnsETranscriptStatus;
436 
437 
438 
439 
440 /* ========================================================================= */
441 /* ============================== public data ============================== */
442 /* ========================================================================= */
443 
444 /* @data EnsPSeqregionadaptor *************************************************
445 **
446 ** Ensembl Sequence Region Adaptor
447 **
448 ** @attr Adaptor [EnsPDatabaseadaptor] Ensembl Database Adaptor
449 ** @attr CacheByIdentifier [EnsPCache] Ensembl Cache to store Ensembl Sequence
450 ** Region objects with AJAX unsigned integer (SQL-database identifier) objects
451 ** as index
452 ** @attr CacheByName [AjPTable] AJAX Table to cache Ensembl Sequence Region
453 ** objects with "Sequence Region Name:Coordinate System Identifier" AJAX String
454 ** objects as index
455 ** @attr CacheLocusReferenceGenomic [AjPList] AJAX List to cache Ensembl
456 ** Sequence Region objects, which are associated with an Ensembl Attribute of
457 ** code "LRG" and correspond to Locus Reference Genomic entries.
458 ** See http://www.lrg-sequence.org/ for details.
459 ** @attr CacheNonReference [AjPList] AJAX List to cache Ensembl Sequence
460 ** Region objects, which are associated with an Ensembl Attribute of code
461 ** "non_ref" that is usually set for haplotype assembly paths.
462 ** @@
463 ******************************************************************************/
464 
465 typedef struct EnsSSeqregionadaptor
466 {
467     EnsPDatabaseadaptor Adaptor;
468     EnsPCache CacheByIdentifier;
469     AjPTable CacheByName;
470     AjPList CacheLocusReferenceGenomic;
471     AjPList CacheNonReference;
472 } EnsOSeqregionadaptor;
473 
474 #define EnsPSeqregionadaptor EnsOSeqregionadaptor*
475 
476 
477 
478 
479 /* @data EnsPSeqregion ********************************************************
480 **
481 ** Ensembl Sequence Region
482 **
483 ** @attr Use [ajuint] Usage counter
484 ** @cc Bio::EnsEMBL::Storable
485 ** @attr Identifier [ajuint] Internal SQL database identifier (primary key)
486 ** @attr Adaptor [EnsPSeqregionadaptor] Ensembl Sequence Region Adaptor
487 ** @cc Bio::EnsEMBL::???
488 ** @attr Coordsystem [EnsPCoordsystem] Ensembl Coordinate System
489 ** @attr Name [AjPStr] Name
490 ** @attr Attributes [AjPList] AJAX List of Ensembl Attribute objects
491 ** @attr Seqregionsynonyms [AjPList]
492 ** AJAX List of Ensembl Sequence Region Synonym objects
493 ** @attr Length [ajint] Length
494 ** @attr Padding [ajuint] Padding to alignment boundary
495 ** @@
496 ******************************************************************************/
497 
498 typedef struct EnsSSeqregion
499 {
500     ajuint Use;
501     ajuint Identifier;
502     EnsPSeqregionadaptor Adaptor;
503     EnsPCoordsystem Coordsystem;
504     AjPStr Name;
505     AjPList Attributes;
506     AjPList Seqregionsynonyms;
507     ajint Length;
508     ajuint Padding;
509 } EnsOSeqregion;
510 
511 #define EnsPSeqregion EnsOSeqregion*
512 
513 
514 
515 
516 /* @data EnsPSliceadaptor *****************************************************
517 **
518 ** Ensembl Slice Adaptor
519 **
520 ** @attr Adaptor [EnsPDatabaseadaptor] Ensembl Database Adaptor
521 ** @attr CacheByIdentifier [EnsPCache] Caches Ensembl Slice objects by their
522 ** Ensembl Sequence Region identifier, start, end and strand coordinate
523 ** @attr CacheByName [AjPTable] Caches Ensembl Slice objects by their
524 ** Ensembl Sequence Region name, start, end and strand coordinate
525 ** @@
526 ******************************************************************************/
527 
528 typedef struct EnsSSliceadaptor
529 {
530     EnsPDatabaseadaptor Adaptor;
531     EnsPCache CacheByIdentifier;
532     AjPTable CacheByName;
533 } EnsOSliceadaptor;
534 
535 #define EnsPSliceadaptor EnsOSliceadaptor*
536 
537 
538 
539 
540 /* @data EnsPSlice ************************************************************
541 **
542 ** Ensembl Slice
543 **
544 ** Holds information about a genome sequence slice.
545 **
546 ** @alias EnsSSlice
547 ** @alias EnsOSlice
548 **
549 ** @attr Adaptor [EnsPSliceadaptor] Ensembl Slice Adaptor
550 ** @attr Seqregion [EnsPSeqregion] Ensembl Sequence Region
551 ** @attr Sequence [AjPStr] Sequence
552 ** @attr Topology [EnsESliceTopology] Slice Topology enumeration
553 ** @attr Type [EnsESliceType] Ensembl Slice Type enumeration
554 ** @attr Start [ajint] Start coordinate
555 ** @attr End [ajint] End coordinate
556 ** @attr Strand [ajint] Strand information (+1|-1)
557 ** @attr Use [ajuint] Use counter
558 ** @@
559 ******************************************************************************/
560 
561 typedef struct EnsSSlice
562 {
563     EnsPSliceadaptor Adaptor;
564     EnsPSeqregion Seqregion;
565     AjPStr Sequence;
566     EnsESliceTopology Topology;
567     EnsESliceType Type;
568     ajint Start;
569     ajint End;
570     ajint Strand;
571     ajuint Use;
572 } EnsOSlice;
573 
574 #define EnsPSlice EnsOSlice*
575 
576 
577 
578 
579 /* @data EnsPAssemblymapperadaptor ********************************************
580 **
581 ** Ensembl Assembly Mapper Adaptor
582 **
583 ** The Ensembl Assembly Mapper Adaptor is used to retrieve Ensembl Mapper
584 ** objects between any two Ensembl Coordinate System objects which makeup is
585 ** described by the "assembly" table. Currently, one-step (explicit) and
586 ** two-step (implict) pairwise mapping is supported. In one-step mapping an
587 ** explicit relationship between the Coordinate System objects is defined in
588 ** the "assembly" table. In two-step "chained" mapping no explicit mapping is
589 ** present, but the Coordinate System objects must share a common mapping to
590 ** an intermediate Coordinate System.
591 **
592 ** @alias EnsSAssemblymapperadaptor
593 ** @alias EnsOAssemblymapperadaptor
594 **
595 ** @attr Adaptor [EnsPDatabaseadaptor] Ensembl Database Adaptor
596 ** @attr CacheByIdentifiers [AjPTable]
597 ** AJAX Table of AJAX String (Ensembl Coordinate System identifiers
598 ** concatenated by ':' characters) key data and
599 ** Ensembl Assembly Mapper value data
600 ** @attr MultipleMappings [AjPTable]
601 ** AJAX Table of AJAX unsigned integer (Ensembl Sequence Region identifier)
602 ** key data and Ensembl Sequence Region value data for objects that have more
603 ** than one entry in the Ensembl Core "assembly" table, i. e. they map to
604 ** more than one location.
605 ** @@
606 ******************************************************************************/
607 
608 typedef struct EnsSAssemblymapperadaptor
609 {
610     EnsPDatabaseadaptor Adaptor;
611     AjPTable CacheByIdentifiers;
612     AjPTable MultipleMappings;
613 } EnsOAssemblymapperadaptor;
614 
615 #define EnsPAssemblymapperadaptor EnsOAssemblymapperadaptor*
616 
617 
618 
619 
620 /* @data EnsPGenericassemblymapper ********************************************
621 **
622 ** Ensembl Generic Assembly Mapper
623 **
624 ** The Ensembl Generic Assembly Mapper handles mappings between two Ensembl
625 ** Coordinate System objects using the information stored in the "assembly"
626 ** SQL table of an Ensembl Core database.
627 **
628 ** The Ensembl Generic Assembly Mapper is a database aware mapper, which
629 ** facilitates conversion of coordinates between any two Ensembl Coordinate
630 ** System objects with a relationship explicitly defined in the "assembly"
631 ** SQL table. In future, it may be possible to perform multiple step (implicit)
632 ** mapping between Ensembl Coordinate System objects.
633 **
634 ** It is implemented using the Ensembl Mapper object, which is a generic mapper
635 ** object between disjoint Ensembl Coordinate System objects.
636 **
637 ** @alias EnsSGenericassemblymapper
638 ** @alias EnsOGenericassemblymapper
639 **
640 ** @attr Adaptor [EnsPAssemblymapperadaptor] Ensembl Assembly Mapper Adaptor
641 ** @attr CoordsystemAssembled [EnsPCoordsystem] Assembled Ensembl Coordinate
642 ** System
643 ** @attr CoordsystemComponent [EnsPCoordsystem] Component Ensembl Coordinate
644 ** System
645 ** @attr RegisterAssembled [AjPTable] Assembled Register
646 ** @attr RegisterComponent [AjPTable] Component Register
647 ** @attr Mapper [EnsPMapper] Ensembl Mapper
648 ** @attr Maximum [ajuint] Maximum Ensembl Mapper Pair count
649 ** @attr Use [ajuint] Use counter
650 ** @@
651 ******************************************************************************/
652 
653 typedef struct EnsSGenericassemblymapper
654 {
655     EnsPAssemblymapperadaptor Adaptor;
656     EnsPCoordsystem CoordsystemAssembled;
657     EnsPCoordsystem CoordsystemComponent;
658     AjPTable RegisterAssembled;
659     AjPTable RegisterComponent;
660     EnsPMapper Mapper;
661     ajuint Maximum;
662     ajuint Use;
663 } EnsOGenericassemblymapper;
664 
665 #define EnsPGenericassemblymapper EnsOGenericassemblymapper*
666 
667 
668 
669 
670 /* @data EnsPChainedassemblymapper ********************************************
671 **
672 ** Ensembl Chained Assembly Mapper
673 **
674 ** The Ensembl Chained Assembly Mapper is an extension of the regular
675 ** Ensembl Generic Assembly Mapper that allows for mappings between
676 ** Ensembl Coordinate System objects that require multi-step mapping.
677 ** For example if explicit mappings are defined between the following
678 ** Coordinate System objects, chromosome/contig and contig/clone,
679 ** the Ensembl Chained Assembly Mapper would be able to perform implicit
680 ** mapping between the "chromosome" and "clone" Ensembl Coordinate System
681 ** objects. This should be transparent to the user of this module, and users
682 ** should not even realise that they are using an Ensembl Chained Assembly
683 ** Mapper as opposed to an Ensembl Generic Assembly Mapper.
684 **
685 ** @alias EnsSChainedassemblymapper
686 ** @alias EnsOChainedassemblymapper
687 **
688 ** @attr Adaptor [EnsPAssemblymapperadaptor] Ensembl Assembly Mapper Adaptor
689 ** @attr CoordsystemSource [EnsPCoordsystem] Source Ensembl Coordinate System
690 ** @attr CoordsystemMiddle [EnsPCoordsystem] Middle Ensembl Coordinate System
691 ** @attr CoordsystemTarget [EnsPCoordsystem] Target Ensembl Coordinate System
692 ** @attr MapperSourceMiddle [EnsPMapper] Source to middle Ensembl Mapper
693 ** @attr MapperTargetMiddle [EnsPMapper] Target to middle Ensembl Mapper
694 ** @attr MapperSourceTarget [EnsPMapper] Source to target Ensembl Mapper
695 ** @attr RegistrySource [EnsPMapperrangeregistry]
696 ** Source Ensembl Mapper Range Registry
697 ** @attr RegistryTarget [EnsPMapperrangeregistry]
698 ** Target Ensembl Mapper Range Registry
699 ** @attr Maximum [ajuint] Maximum Ensembl Mapper Pair count
700 ** @attr Use [ajuint] Use counter
701 ** @@
702 ******************************************************************************/
703 
704 typedef struct EnsSChainedassemblymapper
705 {
706     EnsPAssemblymapperadaptor Adaptor;
707     EnsPCoordsystem CoordsystemSource;
708     EnsPCoordsystem CoordsystemMiddle;
709     EnsPCoordsystem CoordsystemTarget;
710     EnsPMapper MapperSourceMiddle;
711     EnsPMapper MapperTargetMiddle;
712     EnsPMapper MapperSourceTarget;
713     EnsPMapperrangeregistry RegistrySource;
714     EnsPMapperrangeregistry RegistryTarget;
715     ajuint Maximum;
716     ajuint Use;
717 } EnsOChainedassemblymapper;
718 
719 #define EnsPChainedassemblymapper EnsOChainedassemblymapper*
720 
721 
722 
723 
724 /* @data EnsPToplevelassemblymapper *******************************************
725 **
726 ** Ensembl Top-Level Assembly Mapper
727 **
728 ** The Ensembl Top-Level Assembly Mapper performs mapping between a provided
729 ** Ensembl Coordinate System and the top-level pseudo Cooordinate System.
730 ** The top-level Coordinate System is not a real Coordinate System, but
731 ** represents the highest Coordinate System that can be mapped to in a given
732 ** Sequence Region. It is only possible to perform unidirectional mapping
733 ** using this Mapper, because it does not make sense to map from the top-level
734 ** Coordinate System to another Coordinate System.
735 **
736 ** @alias EnsSToplevelassemblymapper
737 ** @alias EnsOToplevelassemblymapper
738 **
739 ** @attr Adaptor [EnsPAssemblymapperadaptor]
740 ** Ensembl Assembly Mapper Adaptor
741 ** @attr Coordsystems [AjPList]
742 ** AJAX List of Ensembl Coordinate System objects
743 ** @attr CoordsystemAssembled [EnsPCoordsystem]
744 ** Top-level Ensembl Coordinate System
745 ** @attr CoordsystemComponent [EnsPCoordsystem]
746 ** Other Ensembl Coordinate System
747 ** @attr Use [ajuint] Use counter
748 ** @attr Padding [ajuint] Padding to alignment boundary
749 ** @@
750 ******************************************************************************/
751 
752 typedef struct EnsSToplevelassemblymapper
753 {
754     EnsPAssemblymapperadaptor Adaptor;
755     AjPList Coordsystems;
756     EnsPCoordsystem CoordsystemAssembled;
757     EnsPCoordsystem CoordsystemComponent;
758     ajuint Use;
759     ajuint Padding;
760 } EnsOToplevelassemblymapper;
761 
762 #define EnsPToplevelassemblymapper EnsOToplevelassemblymapper*
763 
764 
765 
766 
767 /* @data EnsPAssemblymapper ***************************************************
768 **
769 ** Ensembl Assembly Mapper
770 **
771 ** The Ensembl Assembly Mapper is a wrapper for specialised
772 ** Ensembl Assembly Mapper objects.
773 **
774 ** @alias EnsSAssemblymapper
775 ** @alias EnsOAssemblymapper
776 **
777 ** @attr Adaptor [EnsPAssemblymapperadaptor] Ensembl Assembly Mapper Adaptor
778 ** @attr Generic [EnsPGenericassemblymapper] Ensembl Generic Assembly Mapper
779 ** @attr Chained [EnsPChainedassemblymapper] Ensembl Chained Assembly Mapper
780 ** @attr Toplevel [EnsPToplevelassemblymapper]
781 ** Ensembl Top-Level Assembly Mapper
782 ** @attr Use [ajuint] Use counter
783 ** @attr Padding [ajuint] Padding to alignment boundary
784 ** @@
785 ** NOTE: This object subsumes the following Perl objects all returned by the
786 ** Bio::EnsEMBL::DBSQL::AssemblyMapperAdaptor
787 **
788 ** Bio::EnsEMBL::AssemblyMapper (here Ensembl Generic Assembly Mapper)
789 ** Bio::EnsEMBL::ChainedAssemblyMapper
790 ** Bio::EnsEMBL::TopLevelAssemblyMapper
791 **
792 ** The objects can be distinguished by their Type member.
793 ******************************************************************************/
794 
795 typedef struct EnsSAssemblymapper
796 {
797     EnsPAssemblymapperadaptor Adaptor;
798     EnsPGenericassemblymapper Generic;
799     EnsPChainedassemblymapper Chained;
800     EnsPToplevelassemblymapper Toplevel;
801     ajuint Use;
802     ajuint Padding;
803 } EnsOAssemblymapper;
804 
805 #define EnsPAssemblymapper EnsOAssemblymapper*
806 
807 
808 
809 
810 /* @data EnsPBaseadaptorLeftjoin **********************************************
811 **
812 ** Ensembl Base Adaptor SQL LEFT JOIN condition
813 **
814 ** @alias EnsSBaseadaptorLeftjoin
815 ** @alias EnsOBaseadaptorLeftjoin
816 **
817 ** @attr Tablename [const char*] SQL table name
818 ** @attr Condition [const char*] SQL LEFT JOIN condition
819 ** @@
820 ******************************************************************************/
821 
822 typedef struct EnsSBaseadaptorLeftjoin
823 {
824     const char *Tablename;
825     const char *Condition;
826 } EnsOBaseadaptorLeftjoin;
827 
828 #define EnsPBaseadaptorLeftjoin EnsOBaseadaptorLeftjoin*
829 
830 
831 
832 
833 /* @data EnsPBaseadaptor ******************************************************
834 **
835 ** Ensembl Base Adaptor
836 **
837 ** @alias EnsSBaseadaptor
838 ** @alias EnsOBaseadaptor
839 **
840 ** @alias EnsPDitagadaptor
841 ** @alias EnsPGvindividualadaptor
842 ** @alias EnsPGvpopulationadaptor
843 ** @alias EnsPGvsampleadaptor
844 ** @alias EnsPGvvariationsetadaptor
845 ** @alias EnsPMarkeradaptor
846 ** @alias EnsPOntologytermadaptor
847 ** @alias EnsPProteinfeatureadaptor
848 ** @alias EnsPQcalignmentadaptor
849 ** @alias EnsPQcdasfeatureadaptor
850 ** @alias EnsPQcsubmissionadaptor
851 ** @alias EnsPQcvariationadaptor
852 ** @alias EnsPRepeatconsensusadaptor
853 ** @alias EnsPSeqregionsynonymadaptor
854 ** @alias EnsPTranslationadaptor
855 **
856 ** @attr Adaptor [EnsPDatabaseadaptor] Ensembl Database Adaptor
857 ** @attr Tablenames [const char* const*] SQL table name array
858 ** @attr Columnnames [const char* const*] SQL column name array
859 ** @attr Leftjoins [const EnsPBaseadaptorLeftjoin]
860 ** SQL LEFT JOIN condition array
861 ** @attr Defaultcondition [const char*] SQL SELECT default condition
862 ** @attr Finalcondition [const char*] SQL SELECT final condition
863 ** @attr Mysqlstraightjoin [AjBool]
864 ** Set the MySQL-specific SQL SELECT STRAIGHT_JOIN option
865 ** @attr Padding [ajuint] Padding to alignment boundary
866 ** @attr Fstatement [AjBool function] Statement function address
867 ** @@
868 ** NOTE: In constrast to the Perl API, this implementation does not feature a
869 ** species_id member, which is already set in the Ensembl Database Adaptor.
870 ******************************************************************************/
871 
872 typedef struct EnsSBaseadaptor
873 {
874     EnsPDatabaseadaptor Adaptor;
875     const char *const *Tablenames;
876     const char *const *Columnnames;
877     const EnsPBaseadaptorLeftjoin Leftjoins;
878     const char *Defaultcondition;
879     const char *Finalcondition;
880     AjBool Mysqlstraightjoin;
881     ajuint Padding;
882     AjBool (*Fstatement) (struct EnsSBaseadaptor *dba,
883                           const AjPStr sql,
884                           EnsPAssemblymapper am,
885                           EnsPSlice slice,
886                           AjPList objects);
887 } EnsOBaseadaptor;
888 
889 #define EnsPBaseadaptor EnsOBaseadaptor*
890 
891 
892 
893 
894 /* @data EnsPAnalysisadaptor **************************************************
895 **
896 ** Ensembl Analysis Adaptor
897 **
898 ** @alias EnsSAnalysisadaptor
899 ** @alias EnsOAnalysisadaptor
900 **
901 ** @attr Adaptor [EnsPBaseadaptor] Ensembl Base Adaptor
902 ** @attr CacheByIdentifier [AjPTable] Identifier cache
903 ** @attr CacheByName [AjPTable] Name cache
904 ** @@
905 ******************************************************************************/
906 
907 typedef struct EnsSAnalysisadaptor
908 {
909     EnsPBaseadaptor Adaptor;
910     AjPTable CacheByIdentifier;
911     AjPTable CacheByName;
912 } EnsOAnalysisadaptor;
913 
914 #define EnsPAnalysisadaptor EnsOAnalysisadaptor*
915 
916 
917 
918 
919 /* @data EnsPAnalysis *********************************************************
920 **
921 ** Ensembl Analysis
922 **
923 ** An Ensembl Analysis object stores details of an analysis within the
924 ** Ensembl genome analysis and annotation pipeline.
925 **
926 ** @alias EnsSAnalysis
927 ** @alias EnsOAnalysis
928 **
929 ** @attr Use [ajuint] Use counter
930 ** @cc Bio::EnsEMBL::Storable
931 ** @attr Identifier [ajuint] SQL database-internal identifier
932 ** @attr Adaptor [EnsPAnalysisadaptor] Ensembl Analysis Adaptor
933 ** @cc Bio::EnsEMBL::Analysis
934 ** @cc "analysis" SQL table
935 ** @attr DateCreation [AjPStr] Creation date
936 ** @attr Name [AjPStr] Name
937 ** @attr Databasename [AjPStr] Database name
938 ** @attr Databaseversion [AjPStr] Database version
939 ** @attr Databasefile [AjPStr] Database file
940 ** @attr Programname [AjPStr] Program name
941 ** @attr Programversion [AjPStr] Program version
942 ** @attr Programfile [AjPStr] Program file
943 ** @attr Parameters [AjPStr] Parameters
944 ** @attr Modulename [AjPStr] Module name
945 ** @attr Moduleversion [AjPStr] Module version
946 ** @attr Gffsource [AjPStr] GFF source
947 ** @attr Gfffeature [AjPStr] GFF feature
948 ** @cc "analysis_description" SQL table
949 ** @attr Description [AjPStr] Description
950 ** @attr Displaylabel [AjPStr] Display label for the Ensembl website
951 ** @attr Webdata [AjPStr] Configuration information for the Ensembl web site
952 ** @attr Displayable [AjBool] Displayable on the Ensembl web site
953 ** @attr Padding [ajuint] Padding to alignment boundary
954 ** @@
955 ******************************************************************************/
956 
957 typedef struct EnsSAnalysis
958 {
959     ajuint Use;
960     ajuint Identifier;
961     EnsPAnalysisadaptor Adaptor;
962     AjPStr DateCreation;
963     AjPStr Name;
964     AjPStr Databasename;
965     AjPStr Databaseversion;
966     AjPStr Databasefile;
967     AjPStr Programname;
968     AjPStr Programversion;
969     AjPStr Programfile;
970     AjPStr Parameters;
971     AjPStr Modulename;
972     AjPStr Moduleversion;
973     AjPStr Gffsource;
974     AjPStr Gfffeature;
975     AjPStr Description;
976     AjPStr Displaylabel;
977     AjPStr Webdata;
978     AjBool Displayable;
979     ajuint Padding;
980 } EnsOAnalysis;
981 
982 #define EnsPAnalysis EnsOAnalysis*
983 
984 
985 
986 
987 /* @data EnsPExternaldatabaseadaptor ******************************************
988 **
989 ** Ensembl External Database Adaptor
990 **
991 ** @alias EnsSExternaldatabaseadaptor
992 ** @alias EnsOExternaldatabaseadaptor
993 **
994 ** @attr Adaptor [EnsPBaseadaptor] Ensembl Base Adaptor
995 ** @attr CacheByIdentifier [AjPTable] Identifier cache
996 ** @attr CacheByName [AjPTable] Name cache
997 ** @@
998 ******************************************************************************/
999 
1000 typedef struct EnsSExternaldatabaseadaptor
1001 {
1002     EnsPBaseadaptor Adaptor;
1003     AjPTable CacheByIdentifier;
1004     AjPTable CacheByName;
1005 } EnsOExternaldatabaseadaptor;
1006 
1007 #define EnsPExternaldatabaseadaptor EnsOExternaldatabaseadaptor*
1008 
1009 
1010 
1011 
1012 /* @data EnsPAttributetypeadaptor *********************************************
1013 **
1014 ** Ensembl Attribute Type Adaptor
1015 **
1016 ** @alias EnsSAttributetypeadaptor
1017 ** @alias EnsOAttributetypeadaptor
1018 **
1019 ** @attr Adaptor [EnsPBaseadaptor] Ensembl Base Adaptor
1020 ** @attr CacheByIdentifier [AjPTable] Identifier cache
1021 ** @attr CacheByCode [AjPTable] Code cache
1022 ** @@
1023 ******************************************************************************/
1024 
1025 typedef struct EnsSAttributetypeadaptor
1026 {
1027     EnsPBaseadaptor Adaptor;
1028     AjPTable CacheByIdentifier;
1029     AjPTable CacheByCode;
1030 } EnsOAttributetypeadaptor;
1031 
1032 #define EnsPAttributetypeadaptor EnsOAttributetypeadaptor*
1033 
1034 
1035 
1036 
1037 /* @data EnsPAttributetype ****************************************************
1038 **
1039 ** Ensembl Attribute Type
1040 **
1041 ** @alias EnsSAttributetype
1042 ** @alias EnsOAttributetype
1043 **
1044 ** @attr Use [ajuint] Usage counter
1045 ** @cc Bio::EnsEMBL::Storable
1046 ** @attr Identifier [ajuint] Internal SQL database identifier (primary key)
1047 ** @attr Adaptor [EnsPAttributetypeadaptor] Ensembl Attribute Type Adaptor
1048 ** @cc Bio::EnsEMBL::???
1049 ** @attr Code [AjPStr] Code
1050 ** @attr Name [AjPStr] Name
1051 ** @attr Description [AjPStr] Description
1052 ** @@
1053 ******************************************************************************/
1054 
1055 typedef struct EnsSAttributetype
1056 {
1057     ajuint Use;
1058     ajuint Identifier;
1059     EnsPAttributetypeadaptor Adaptor;
1060     AjPStr Code;
1061     AjPStr Name;
1062     AjPStr Description;
1063 } EnsOAttributetype;
1064 
1065 #define EnsPAttributetype EnsOAttributetype*
1066 
1067 
1068 
1069 
1070 /* @data EnsPAttribute ********************************************************
1071 **
1072 ** Ensembl Attribute
1073 **
1074 ** @alias EnsSAttribute
1075 ** @alias EnsOAttribute
1076 **
1077 ** @cc Bio::EnsEMBL::Attribute
1078 ** @attr Attributetype [EnsPAttributetype] Ensembl Attribute Type
1079 ** @attr Value [AjPStr] Value
1080 ** @attr Use [ajuint] Use counter
1081 ** @attr Padding [ajuint] Padding to alignment boundary
1082 ** @@
1083 ******************************************************************************/
1084 
1085 typedef struct EnsSAttribute
1086 {
1087     EnsPAttributetype Attributetype;
1088     AjPStr Value;
1089     ajuint Use;
1090     ajuint Padding;
1091 } EnsOAttribute;
1092 
1093 #define EnsPAttribute EnsOAttribute*
1094 
1095 
1096 
1097 
1098 /* @data EnsPExternaldatabase *************************************************
1099 **
1100 ** Ensembl External Database
1101 **
1102 ** @alias EnsSExternaldatabase
1103 ** @alias EnsOExternaldatabase
1104 **
1105 ** @attr Use [ajuint] Use counter
1106 ** @cc Bio::EnsEMBL::Storable
1107 ** @attr Identifier [ajuint] Internal SQL database identifier (primary key)
1108 ** @attr Adaptor [EnsPExternaldatabaseadaptor]
1109 ** Ensembl External Database Adaptor
1110 ** @cc Bio::EnsEMBL::???
1111 ** @cc "external_db" SQL table
1112 ** @attr Name [AjPStr] Database name
1113 ** @attr Release [AjPStr] Database release
1114 ** @attr Displayname [AjPStr] Database display name
1115 ** @attr Secondaryname [AjPStr] Secondary database name
1116 ** @attr Secondarytable [AjPStr] Secondary database table
1117 ** @attr Description [AjPStr] Description
1118 ** @attr Status [EnsEExternaldatabaseStatus] Status
1119 ** @attr Type [EnsEExternaldatabaseType] Type
1120 ** @attr Priority [ajint] Priority
1121 ** @attr Padding [ajuint] Padding to alignment boundary
1122 ** @@
1123 ******************************************************************************/
1124 
1125 typedef struct EnsSExternaldatabase
1126 {
1127     ajuint Use;
1128     ajuint Identifier;
1129     EnsPExternaldatabaseadaptor Adaptor;
1130     AjPStr Name;
1131     AjPStr Release;
1132     AjPStr Displayname;
1133     AjPStr Secondaryname;
1134     AjPStr Secondarytable;
1135     AjPStr Description;
1136     EnsEExternaldatabaseStatus Status;
1137     EnsEExternaldatabaseType Type;
1138     ajint Priority;
1139     ajuint Padding;
1140 } EnsOExternaldatabase;
1141 
1142 #define EnsPExternaldatabase EnsOExternaldatabase*
1143 
1144 
1145 
1146 
1147 /* @data EnsPExternalreference ************************************************
1148 **
1149 ** Ensembl External Reference
1150 **
1151 ** @alias EnsSExternalreference
1152 ** @alias EnsOExternalreference
1153 **
1154 ** @attr Use [ajuint] Use counter
1155 ** @cc Bio::EnsEMBL::Storable
1156 ** @attr Identifier [ajuint] Internal SQL database identifier (primary key)
1157 ** @attr Analysis [EnsPAnalysis] Ensembl Analysis
1158 ** @cc "xref" SQL table
1159 ** @attr Externaldatabase [EnsPExternaldatabase] Ensembl External Database
1160 ** @attr Primaryidentifier [AjPStr] Primary identifier
1161 ** @attr Displayidentifier [AjPStr] Display identifier
1162 ** @attr Version [AjPStr] Version
1163 ** @attr Description [AjPStr] Description
1164 ** @attr Linkageannotation [AjPStr] Linkage annotation
1165 ** @attr Infotext [AjPStr] Information text
1166 ** @attr Infotype [EnsEExternalreferenceInfotype]
1167 ** Ensembl External Reference Information Type enumeration
1168 ** @attr Objecttype [EnsEExternalreferenceObjecttype]
1169 ** Ensembl External Reference Object Type enumeration
1170 ** @attr Objectidentifier [ajuint] Ensembl Object identifier
1171 ** @attr Padding [ajuint] Padding to alignment boundary
1172 ** @@
1173 ******************************************************************************/
1174 
1175 typedef struct EnsSExternalreference
1176 {
1177     ajuint Use;
1178     ajuint Identifier;
1179     EnsPAnalysis Analysis;
1180     EnsPExternaldatabase Externaldatabase;
1181     AjPStr Primaryidentifier;
1182     AjPStr Displayidentifier;
1183     AjPStr Version;
1184     AjPStr Description;
1185     AjPStr Linkageannotation;
1186     AjPStr Infotext;
1187     EnsEExternalreferenceInfotype Infotype;
1188     EnsEExternalreferenceObjecttype Objecttype;
1189     ajuint Objectidentifier;
1190     ajuint Padding;
1191 } EnsOExternalreference;
1192 
1193 #define EnsPExternalreference EnsOExternalreference*
1194 
1195 
1196 
1197 
1198 /* @data EnsPIdentityreference ************************************************
1199 **
1200 ** Ensembl Identity Reference
1201 **
1202 ** @alias EnsSIdentityreference
1203 ** @alias EnsOIdentityreference
1204 **
1205 ** @cc Bio::EnsEMBL::IdentityXref
1206 ** @cc "identity_xref" SQL table
1207 ** @attr Cigar [AjPStr] Cigar line (See exonerate(1))
1208 ** @attr QueryStart [ajint] Query start
1209 ** @attr QueryEnd [ajint] Query end
1210 ** @attr QueryIdentity [ajint] Query sequence identity
1211 ** @attr TargetStart [ajint] Target start
1212 ** @attr TargetEnd [ajint] Target end
1213 ** @attr TargetIdentity [ajint] Target sequence identity
1214 ** @attr Use [ajuint] Use counter
1215 ** @attr Padding [ajuint] Padding to alignment boundary
1216 ** @attr Evalue [double] e-Value
1217 ** @attr Score [double] Score
1218 ** @@
1219 ******************************************************************************/
1220 
1221 typedef struct EnsSIdentityreference
1222 {
1223     AjPStr Cigar;
1224     ajint QueryStart;
1225     ajint QueryEnd;
1226     ajint QueryIdentity;
1227     ajint TargetStart;
1228     ajint TargetEnd;
1229     ajint TargetIdentity;
1230     ajuint Use;
1231     ajuint Padding;
1232     double Evalue;
1233     double Score;
1234 } EnsOIdentityreference;
1235 
1236 #define EnsPIdentityreference EnsOIdentityreference*
1237 
1238 
1239 
1240 
1241 /* @data EnsPDatabaseentry ****************************************************
1242 **
1243 ** Ensembl Database Entry
1244 **
1245 ** @alias EnsSDatabaseentry
1246 ** @alias EnsODatabaseentry
1247 **
1248 ** @attr Use [ajuint] Use counter
1249 ** @cc Bio::EnsEMBL::Storable
1250 ** @attr Identifier [ajuint] Internal SQL database identifier (primary key)
1251 ** @attr Adaptor [EnsPDatabaseentryadaptor] Ensembl Database Entry Adaptor
1252 ** @cc Bio::EnsEMBL::DBEntry
1253 ** @cc "xref" SQL table
1254 ** @attr Externalreference [EnsPExternalreference] Ensembl External Reference
1255 ** @cc Bio::EnsEMBL::IdentityXref
1256 ** @attr Identityreference [EnsPIdentityreference] Ensembl Identity Reference
1257 ** @cc "external_synonym" SQL table
1258 ** @attr Synonyms [AjPList] Synonyms
1259 ** @attr Ontologylinkages [AjPList] AJAX List of
1260 ** Ensembl Ontology Linkage objects
1261 ** @@
1262 ******************************************************************************/
1263 
1264 typedef struct EnsSDatabaseentry
1265 {
1266     ajuint Use;
1267     ajuint Identifier;
1268     EnsPDatabaseentryadaptor Adaptor;
1269     EnsPExternalreference Externalreference;
1270     EnsPIdentityreference Identityreference;
1271     AjPList Synonyms;
1272     AjPList Ontologylinkages;
1273 } EnsODatabaseentry;
1274 
1275 #define EnsPDatabaseentry EnsODatabaseentry*
1276 
1277 
1278 
1279 
1280 /* @data EnsPOntologylinkage **************************************************
1281 **
1282 ** Ensembl Ontology Linkage
1283 **
1284 ** @alias EnsSOntologylinkage
1285 ** @alias EnsOOntologylinkage
1286 **
1287 ** @cc "ontology_xref" SQL table
1288 ** @attr LinkageType [AjPStr] Likage type (Ontology Evidence Code)
1289 ** @attr Source [EnsPDatabaseentry] Source Ensembl Database Entry
1290 ** @attr Use [ajuint] Use counter
1291 ** @attr Padding [ajuint] Padding to alignment boundary
1292 ** @@
1293 ******************************************************************************/
1294 
1295 typedef struct EnsSOntologylinkage
1296 {
1297     AjPStr LinkageType;
1298     EnsPDatabaseentry Source;
1299     ajuint Use;
1300     ajuint Padding;
1301 } EnsOOntologylinkage;
1302 
1303 #define EnsPOntologylinkage EnsOOntologylinkage*
1304 
1305 
1306 
1307 
1308 /* @data EnsPFeature **********************************************************
1309 **
1310 ** Ensembl Feature
1311 **
1312 ** @alias EnsSFeature
1313 ** @alias EnsOFeature
1314 **
1315 ** @cc Bio::EnsEMBL::Feature
1316 ** @attr Analysis [EnsPAnalysis] Ensembl Analysis
1317 ** @attr Slice [EnsPSlice] Ensembl Slice
1318 ** @attr Sequencename [AjPStr] Sequence name
1319 ** @attr Start [ajint] Start coordinate
1320 ** @attr End [ajint] End coordinate
1321 ** @attr Strand [ajint] Strand orientation
1322 ** @attr Use [ajuint] Use counter
1323 ** @@
1324 ******************************************************************************/
1325 
1326 typedef struct EnsSFeature
1327 {
1328     EnsPAnalysis Analysis;
1329     EnsPSlice Slice;
1330     AjPStr Sequencename;
1331     ajint Start;
1332     ajint End;
1333     ajint Strand;
1334     ajuint Use;
1335 } EnsOFeature;
1336 
1337 #define EnsPFeature EnsOFeature*
1338 
1339 
1340 
1341 
1342 /* @data EnsPFeatureadaptor ***************************************************
1343 **
1344 ** Ensembl Feature Adaptor
1345 **
1346 ** @alias EnsSFeatureadaptor
1347 ** @alias EnsOFeatureadaptor
1348 **
1349 ** @alias EnsPExonadaptor
1350 ** @alias EnsPDnaalignfeatureadaptor
1351 ** @alias EnsPDensityfeatureadaptor
1352 ** @alias EnsPDitagfeatureadaptor
1353 ** @alias EnsPGeneadaptor
1354 ** @alias EnsPIntronsupportingevidenceadaptor
1355 ** @alias EnsPKaryotypebandadaptor
1356 ** @alias EnsPMarkerfeatureadaptor
1357 ** @alias EnsPMiscellaneousfeatureadaptor
1358 ** @alias EnsPOperonadaptor
1359 ** @alias EnsPOperontranscriptadaptor
1360 ** @alias EnsPPredictionexonadaptor
1361 ** @alias EnsPPredictiontranscriptadaptor
1362 ** @alias EnsPProteinalignfeatureadaptor
1363 ** @alias EnsPRepeatfeatureadaptor
1364 ** @alias EnsPSimplefeatureadaptor
1365 **
1366 ** @attr Adaptor [EnsPBaseadaptor] Ensembl Base Adaptor
1367 ** @attr Cache [EnsPCache] Ensembl LRU Cache
1368 ** @attr Tablenames [char**] SQL table name array, which is used for
1369 **                           multi-species databases only.
1370 **                           The array is dynamically allocated to extend for
1371 **                           "seq_region" and "coord_system" table names.
1372 **                           The array is then set in the Ensembl Base Adaptor
1373 **                           object.
1374 ** @attr Defaultcondition [char*] SQL SELECT default condition, which is used
1375 **                         for multi-species databases only. This character
1376 **                         string is dynamically allocated to extend for
1377 **                         "seq_region" and "coord_system" conditions.
1378 **                         The string is then set in the Ensembl Base Adaptor
1379 **                         object.
1380 ** @attr FobjectGetFeature [EnsPFeature function]
1381 ** Ensembl Object-specific objectGetFeature member function
1382 ** @attr Freference [void* function]
1383 ** Ensembl Object-specific referencing function
1384 ** @attr Fdelete [void function]
1385 ** Ensembl Object-specific deletion function
1386 ** @attr Startequalsend [AjBool] Simplified SQL in featureadaptorSliceFetch
1387 ** @attr Maximumlength [ajint] Maximum length of a particular Feature type
1388 ** @@
1389 ******************************************************************************/
1390 
1391 typedef struct EnsSFeatureadaptor
1392 {
1393     EnsPBaseadaptor Adaptor;
1394     EnsPCache Cache;
1395     char **Tablenames;
1396     char *Defaultcondition;
1397     EnsPFeature (*FobjectGetFeature) (const void *object);
1398     void *(*Freference) (void *value);
1399     void (*Fdelete) (void **Pvalue);
1400     AjBool Startequalsend;
1401     ajint Maximumlength;
1402 } EnsOFeatureadaptor;
1403 
1404 #define EnsPFeatureadaptor EnsOFeatureadaptor*
1405 
1406 
1407 
1408 
1409 /* @data EnsPExonadaptor ******************************************************
1410 **
1411 ** Ensembl Exon Adaptor
1412 **
1413 ** @alias EnsSExonadaptor
1414 ** @alias EnsOExonadaptor
1415 **
1416 **
1417 ** @attr Exonadaptor [EnsPFeatureadaptor] Ensembl Feature Adaptor
1418 ** @attr Exontranscriptadaptor [EnsPFeatureadaptor] Ensembl Feature Adaptor
1419 ** @@
1420 ******************************************************************************/
1421 
1422 typedef struct EnsSExonadaptor
1423 {
1424     EnsPFeatureadaptor Exonadaptor;
1425     EnsPFeatureadaptor Exontranscriptadaptor;
1426 } EnsOExonadaptor;
1427 
1428 #define EnsPExonadaptor EnsOExonadaptor*
1429 
1430 
1431 
1432 
1433 /* @data EnsPExon *************************************************************
1434 **
1435 ** Ensembl Exon
1436 **
1437 ** @alias EnsSExon
1438 ** @alias EnsOExon
1439 **
1440 ** @attr Use [ajuint] Use counter
1441 ** @cc Bio::EnsEMBL::Storable
1442 ** @attr Identifier [ajuint] Internal SQL database identifier (primary key)
1443 ** @attr Adaptor [EnsPExonadaptor] Ensembl Exon Adaptor
1444 ** @cc Bio::EnsEMBL::Feature
1445 ** @attr Feature [EnsPFeature] Ensembl Feature
1446 ** @cc Bio::EnsEMBL::Exon
1447 ** @cc "exon" SQL table
1448 ** @attr PhaseStart [ajint] Phase of Exon start
1449 ** @attr PhaseEnd [ajint] Phase of Exon end
1450 ** @attr Current [AjBool] Current
1451 ** @attr Constitutive [AjBool] Consitutive
1452 ** @cc "exon_stable_id" SQL table
1453 ** @attr Stableidentifier [AjPStr] Stable identifier
1454 ** @attr Version [ajuint] Version
1455 ** @attr Padding [ajuint] Padding to alignment boundary
1456 ** @attr DateCreation [AjPStr] Creation date
1457 ** @attr DateModification [AjPStr] Modification date
1458 ** @cc Additional members not in SQL tables
1459 ** @attr SequenceCache [AjPStr] Sequence Cache
1460 ** @attr Supportingfeatures [AjPList]
1461 ** AJAX List of Ensembl Base Align Feature objects
1462 ** @@
1463 ******************************************************************************/
1464 
1465 typedef struct EnsSExon
1466 {
1467     ajuint Use;
1468     ajuint Identifier;
1469     EnsPExonadaptor Adaptor;
1470     EnsPFeature Feature;
1471     ajint PhaseStart;
1472     ajint PhaseEnd;
1473     AjBool Current;
1474     AjBool Constitutive;
1475     AjPStr Stableidentifier;
1476     ajuint Version;
1477     ajuint Padding;
1478     AjPStr DateCreation;
1479     AjPStr DateModification;
1480     AjPStr SequenceCache;
1481     AjPList Supportingfeatures;
1482 } EnsOExon;
1483 
1484 #define EnsPExon EnsOExon*
1485 
1486 
1487 
1488 
1489 /* @data EnsPIntron ***********************************************************
1490 **
1491 ** Ensembl Intron
1492 **
1493 ** @alias EnsSIntron
1494 ** @alias EnsOIntron
1495 **
1496 ** @cc Bio::EnsEMBL::Feature
1497 ** @attr Feature [EnsPFeature] Ensembl Feature
1498 ** @cc Bio::EnsEMBL::Intron
1499 ** @attr PreviousExon [EnsPExon] Previous Ensembl Exon
1500 ** @attr NextExon [EnsPExon] Next Ensembl Exon
1501 ** @attr Use [ajuint] Use counter
1502 ** @attr Padding [ajuint] Padding to alignment boundary
1503 ** @@
1504 ******************************************************************************/
1505 
1506 typedef struct EnsSIntron
1507 {
1508     EnsPFeature Feature;
1509     EnsPExon PreviousExon;
1510     EnsPExon NextExon;
1511     ajuint Use;
1512     ajuint Padding;
1513 } EnsOIntron;
1514 
1515 #define EnsPIntron EnsOIntron*
1516 
1517 
1518 
1519 
1520 /* @data EnsPIntronsupportingevidence *****************************************
1521 **
1522 ** Ensembl Intron Supporting Evidence
1523 **
1524 ** @alias EnsSIntronsupportingevidence
1525 ** @alias EnsOIntronsupportingevidence
1526 **
1527 ** @attr Use [ajuint] Use counter
1528 ** @cc Bio::EnsEMBL::Storable
1529 ** @attr Identifier [ajuint] SQL database-internal identifier
1530 ** @attr Adaptor [EnsPIntronsupportingevidenceadaptor]
1531 ** Ensembl Intron Supporting Evidence Adaptor
1532 ** @cc Bio::EnsEMBL::Feature
1533 ** @attr Feature [EnsPFeature] Ensembl Feature
1534 ** @cc Bio::EnsEMBL::IntronSupportingEvidence
1535 ** @attr Intron [EnsPIntron] Ensembl Intron
1536 ** @attr Hitname [AjPStr] Hit name
1537 ** @attr Canonical [AjBool] Canonical splice sites
1538 ** @attr Score [double] Socre
1539 ** @attr Type [EnsEIntronsupportingevidenceType]
1540 ** Ensembl Intron Supporting Evidence Type enumeration
1541 ** @@
1542 ******************************************************************************/
1543 
1544 typedef struct EnsSIntronsupportingevidence
1545 {
1546     ajuint Use;
1547     ajuint Identifier;
1548     EnsPIntronsupportingevidenceadaptor Adaptor;
1549     EnsPFeature Feature;
1550     EnsPIntron Intron;
1551     AjPStr Hitname;
1552     AjBool Canonical;
1553     double Score;
1554     EnsEIntronsupportingevidenceType Type;
1555 } EnsOIntronsupportingevidence;
1556 
1557 #define EnsPIntronsupportingevidence EnsOIntronsupportingevidence*
1558 
1559 
1560 
1561 
1562 /* @data EnsPTranslation ******************************************************
1563 **
1564 ** Ensembl Translation
1565 **
1566 ** @alias EnsSTranslation
1567 ** @alias EnsOTranslation
1568 **
1569 ** @attr Use [ajuint] Use counter
1570 ** @cc Bio::EnsEMBL::Storable
1571 ** @attr Identifier [ajuint] Internal SQL database identifier (primary key)
1572 ** @attr Adaptor [EnsPTranslationadaptor] Ensembl Translation Adaptor
1573 ** @cc Bio::EnsEMBL::Translation
1574 ** @cc "translation" SQL table
1575 ** @attr Startexon [EnsPExon]
1576 ** Ensembl Exon in which the Translation start coordinate is annotated
1577 ** @attr Endexon [EnsPExon]
1578 ** Ensembl Exon in which the Translation end coordinate is annotated
1579 ** @attr Start [ajuint] Start coordinate relative to the start Ensembl Exon
1580 ** @attr End [ajuint] End coordinate relative to the end Ensembl Exon
1581 ** @cc "translation_stable_id" SQL table
1582 ** @attr Stableidentifier [AjPStr] Stable identifier
1583 ** @attr DateCreation [AjPStr] Creation date
1584 ** @attr DateModification [AjPStr] Modification date
1585 ** @attr Version [ajuint] Version
1586 ** @attr Padding [ajuint] Padding to alignment boundary
1587 ** @cc Additional members not in SQL tables
1588 ** @attr Attributes [AjPList] AJAX List of Ensembl Attribute objects
1589 ** @attr Databaseentries [AjPList] AJAX List of Ensembl Database Entry objects
1590 ** @attr Proteinfeatures [AjPList] AJAX List of Ensembl Protein Feature objects
1591 ** @attr Sequence [AjPStr] Sequence
1592 ** @attr TranscriptStart [ajuint]
1593 ** Start coordinate relative to the Ensembl Transcript (cDNA)
1594 ** @attr TranscriptEnd [ajuint]
1595 ** End coordinate relative to the Ensembl Transcript (cDNA)
1596 ** @attr SliceStart [ajint] Start coordinate relative to the Ensembl Slice
1597 ** @attr SliceEnd [ajint] End coordinate relative to the Ensembl Slice
1598 ** @@
1599 ******************************************************************************/
1600 
1601 typedef struct EnsSTranslation
1602 {
1603     ajuint Use;
1604     ajuint Identifier;
1605     EnsPTranslationadaptor Adaptor;
1606     EnsPExon Startexon;
1607     EnsPExon Endexon;
1608     ajuint Start;
1609     ajuint End;
1610     AjPStr Stableidentifier;
1611     AjPStr DateCreation;
1612     AjPStr DateModification;
1613     ajuint Version;
1614     ajuint Padding;
1615     AjPList Attributes;
1616     AjPList Databaseentries;
1617     AjPList Proteinfeatures;
1618     AjPStr Sequence;
1619     ajuint TranscriptStart;
1620     ajuint TranscriptEnd;
1621     ajint SliceStart;
1622     ajint SliceEnd;
1623 } EnsOTranslation;
1624 
1625 #define EnsPTranslation EnsOTranslation*
1626 
1627 
1628 
1629 
1630 /* @data EnsPTranscript *******************************************************
1631 **
1632 ** Ensembl Transcript
1633 **
1634 ** @alias EnsSTranscript
1635 ** @alias EnsOTranscript
1636 **
1637 ** @attr Use [ajuint] Use counter
1638 ** @cc Bio::EnsEMBL::Storable
1639 ** @attr Identifier [ajuint] Internal SQL database identifier (primary key)
1640 ** @attr Adaptor [EnsPTranscriptadaptor] Ensembl Transcript Adaptor
1641 ** @cc Bio::EnsEMBL::Feature
1642 ** @attr Feature [EnsPFeature] Ensembl Feature
1643 ** @cc Bio::EnsEMBL::Transcript
1644 ** @cc "transcript" SQL table
1645 ** @attr Displayreference [EnsPDatabaseentry] Display External Reference
1646 ** @attr Description [AjPStr] Description
1647 ** @attr Biotype [AjPStr] Biological type
1648 ** @attr Status [EnsETranscriptStatus] Status
1649 ** @attr Current [AjBool] Current attribute
1650 ** @cc "transcript_stable_id" SQL table
1651 ** @attr Stableidentifier [AjPStr] Stable identifier
1652 ** @attr DateCreation [AjPStr] Creation date
1653 ** @attr DateModification [AjPStr] Modification date
1654 ** @attr Version [ajuint] Version
1655 ** @cc Additional members not in SQL tables
1656 ** @attr Geneidentifier [ajuint] Ensembl Gene identifier
1657 ** @attr Alternativetranslations [AjPList]
1658 ** AJAX List of alternative Ensembl Translation objects
1659 ** @attr Attributes [AjPList]
1660 ** AJAX List of Ensembl Attribute objects
1661 ** @attr Databaseentries [AjPList]
1662 ** AJAX List of Ensembl Database Entry objects
1663 ** @attr Exons [AjPList]
1664 ** AJAX List of Ensembl Exon objects
1665 ** @attr Intronsupportingevidences [AjPList]
1666 ** AJAX List of Ensembl Intron Supporting Evidence objects
1667 ** @attr Supportingfeatures [AjPList]
1668 ** AJAX List of Ensembl Base Align Feature objects
1669 ** @attr Translation [EnsPTranslation] Ensembl Translation
1670 ** @attr Sequenceedits [AjBool] Enable Ensembl Sequence Edit objects
1671 ** @attr Padding [ajuint] Padding to alignment boundary
1672 ** @attr Canonical [AjBool*] Canonical attribute
1673 ** @cc Bio::EnsEMBL::TranscriptMapper
1674 ** @attr ExonCoordMapper [EnsPMapper] Ensembl Mapper
1675 ** @@
1676 ******************************************************************************/
1677 
1678 typedef struct EnsSTranscript
1679 {
1680     ajuint Use;
1681     ajuint Identifier;
1682     EnsPTranscriptadaptor Adaptor;
1683     EnsPFeature Feature;
1684     EnsPDatabaseentry Displayreference;
1685     AjPStr Description;
1686     AjPStr Biotype;
1687     EnsETranscriptStatus Status;
1688     AjBool Current;
1689     AjPStr Stableidentifier;
1690     AjPStr DateCreation;
1691     AjPStr DateModification;
1692     ajuint Version;
1693     ajuint Geneidentifier;
1694     AjPList Alternativetranslations;
1695     AjPList Attributes;
1696     AjPList Databaseentries;
1697     AjPList Exons;
1698     AjPList Intronsupportingevidences;
1699     AjPList Supportingfeatures;
1700     EnsPTranslation Translation;
1701     AjBool Sequenceedits;
1702     ajuint Padding;
1703     AjBool *Canonical;
1704     EnsPMapper ExonCoordMapper;
1705 } EnsOTranscript;
1706 
1707 #define EnsPTranscript EnsOTranscript*
1708 
1709 
1710 
1711 
1712 /* @data EnsPGene *************************************************************
1713 **
1714 ** Ensembl Gene
1715 **
1716 ** @alias EnsSGene
1717 ** @alias EnsOGene
1718 **
1719 ** @attr Use [ajuint] Use counter
1720 ** @cc Bio::EnsEMBL::Storable
1721 ** @attr Identifier [ajuint] Internal SQL database identifier (primary key)
1722 ** @attr Adaptor [EnsPGeneadaptor] Ensembl Gene Adaptor
1723 ** @cc Bio::EnsEMBL::Feature
1724 ** @attr Feature [EnsPFeature] Ensembl Feature
1725 ** @cc Bio::EnsEMBL::Gene
1726 ** @cc "gene" SQL table
1727 ** @attr Displayreference [EnsPDatabaseentry] Display External Reference
1728 ** @attr Description [AjPStr] Description
1729 ** @attr Source [AjPStr] Source
1730 ** @attr Biotype [AjPStr] Biological type
1731 ** @attr Status [EnsEGeneStatus] Status
1732 ** @attr Current [AjBool] Current attribute
1733 ** @attr Canonicalannotation [AjPStr] Canonical annotation
1734 ** @attr Canonicaltranscriptidentifier [ajuint]
1735 ** Canonical Ensembl Transcript identifier
1736 ** @attr Version [ajuint] Version
1737 ** @cc "gene_stable_id" SQL table
1738 ** @attr Stableidentifier [AjPStr] Stable identifier
1739 ** @attr DateCreation [AjPStr] Creation date
1740 ** @attr DateModification [AjPStr] Modification date
1741 ** @cc Additional members not in SQL tables
1742 ** @attr Attributes [AjPList] AJAX List of Ensembl Attribute objects
1743 ** @attr Databaseentries [AjPList] AJAX List of Ensembl Database Entry objects
1744 ** @attr Transcripts [AjPList] AJAX List of Ensembl Transcript objects
1745 ** @@
1746 ******************************************************************************/
1747 
1748 typedef struct EnsSGene
1749 {
1750     ajuint Use;
1751     ajuint Identifier;
1752     EnsPGeneadaptor Adaptor;
1753     EnsPFeature Feature;
1754     EnsPDatabaseentry Displayreference;
1755     AjPStr Description;
1756     AjPStr Source;
1757     AjPStr Biotype;
1758     EnsEGeneStatus Status;
1759     AjBool Current;
1760     AjPStr Canonicalannotation;
1761     ajuint Canonicaltranscriptidentifier;
1762     ajuint Version;
1763     AjPStr Stableidentifier;
1764     AjPStr DateCreation;
1765     AjPStr DateModification;
1766     AjPList Attributes;
1767     AjPList Databaseentries;
1768     AjPList Transcripts;
1769 } EnsOGene;
1770 
1771 #define EnsPGene EnsOGene*
1772 
1773 
1774 
1775 
1776 /* @data EnsPOperon ***********************************************************
1777 **
1778 ** Ensembl Operon
1779 **
1780 ** @alias EnsSOperon
1781 ** @alias EnsOOperon
1782 **
1783 ** @attr Use [ajuint] Use counter
1784 ** @cc Bio::EnsEMBL::Storable
1785 ** @attr Identifier [ajuint] Internal SQL database identifier (primary key)
1786 ** @attr Adaptor [EnsPOperonadaptor] Ensembl Operon Adaptor
1787 ** @cc Bio::EnsEMBL::Feature
1788 ** @attr Feature [EnsPFeature] Ensembl Feature
1789 ** @cc Bio::EnsEMBL::Operon
1790 ** @cc "operon" SQL table
1791 ** @attr Displaylabel [AjPStr] Display Label
1792 ** @attr Stableidentifier [AjPStr] Stable identifier
1793 ** @attr DateCreation [AjPStr] Creation date
1794 ** @attr DateModification [AjPStr] Modification date
1795 ** @attr Version [ajuint] Version
1796 ** @attr Padding [ajuint] Padding to alignment boundary
1797 ** @attr Attributes [AjPList] AJAX List of Ensembl Attribute objects
1798 ** @attr Databaseentries [AjPList] AJAX List of Ensembl Database Entry objects
1799 ** @attr Operontranscripts [AjPList]
1800 ** AJAX List of Ensembl Operon Transcript objects
1801 ** @@
1802 ******************************************************************************/
1803 
1804 typedef struct EnsSOperon
1805 {
1806     ajuint Use;
1807     ajuint Identifier;
1808     EnsPOperonadaptor Adaptor;
1809     EnsPFeature Feature;
1810     AjPStr Displaylabel;
1811     AjPStr Stableidentifier;
1812     AjPStr DateCreation;
1813     AjPStr DateModification;
1814     ajuint Version;
1815     ajuint Padding;
1816     AjPList Attributes;
1817     AjPList Databaseentries;
1818     AjPList Operontranscripts;
1819 } EnsOOperon;
1820 
1821 #define EnsPOperon EnsOOperon*
1822 
1823 
1824 
1825 
1826 /* @data EnsPOperontranscript *************************************************
1827 **
1828 ** Ensembl Operon Transcript
1829 **
1830 ** @alias EnsSOperontranscript
1831 ** @alias EnsOOperontranscript
1832 **
1833 ** @attr Use [ajuint] Use counter
1834 ** @cc Bio::EnsEMBL::Storable
1835 ** @attr Identifier [ajuint] Internal SQL database identifier (primary key)
1836 ** @attr Adaptor [EnsPOperontranscriptadaptor]
1837 ** Ensembl Operon Transcript Adaptor
1838 ** @cc Bio::EnsEMBL::Feature
1839 ** @attr Feature [EnsPFeature] Ensembl Feature
1840 ** @cc Bio::EnsEMBL::OperonTranscript
1841 ** @cc "operon_transcript" SQL table
1842 ** @attr Displaylabel [AjPStr] Display Label
1843 ** @attr Stableidentifier [AjPStr] Stable identifier
1844 ** @attr DateCreation [AjPStr] Creation date
1845 ** @attr DateModification [AjPStr] Modification date
1846 ** @attr Version [ajuint] Version
1847 ** @attr Padding [ajuint] Padding to alignment boundary
1848 ** @attr Attributes [AjPList] AJAX List of Ensembl Attribute objects
1849 ** @attr Databaseentries [AjPList] AJAX List of Ensembl Database Entry objects
1850 ** @attr Genes [AjPList] AJAX List of Ensembl Gene objects
1851 ** @@
1852 ******************************************************************************/
1853 
1854 typedef struct EnsSOperontranscript
1855 {
1856     ajuint Use;
1857     ajuint Identifier;
1858     EnsPOperontranscriptadaptor Adaptor;
1859     EnsPFeature Feature;
1860     AjPStr Displaylabel;
1861     AjPStr Stableidentifier;
1862     AjPStr DateCreation;
1863     AjPStr DateModification;
1864     ajuint Version;
1865     ajuint Padding;
1866     AjPList Attributes;
1867     AjPList Databaseentries;
1868     AjPList Genes;
1869 } EnsOOperontranscript;
1870 
1871 #define EnsPOperontranscript EnsOOperontranscript*
1872 
1873 
1874 
1875 
1876 /* @data EnsPSeqregionsynonym *************************************************
1877 **
1878 ** Ensembl Sequence Region Synonym
1879 **
1880 ** @attr Use [ajuint] Usage counter
1881 ** @cc Bio::EnsEMBL::Storable
1882 ** @attr Identifier [ajuint] Internal SQL database identifier (primary key)
1883 ** @attr Adaptor [EnsPSeqregionsynonymadaptor]
1884 ** Ensembl Sequence Region Synonym Adaptor
1885 ** @cc Bio::EnsEMBL::SeqRegionSynonym
1886 ** @attr Externaldatabase [EnsPExternaldatabase] Ensembl External Database
1887 ** @attr Name [AjPStr] Name
1888 ** @attr Seqregionidentifier [ajuint] Ensembl Sequence Region identifier
1889 ** @attr Padding [ajuint] Padding to alignment boundary
1890 ** @@
1891 ******************************************************************************/
1892 
1893 typedef struct EnsSSeqregionsynonym
1894 {
1895     ajuint Use;
1896     ajuint Identifier;
1897     EnsPSeqregionsynonymadaptor Adaptor;
1898     EnsPExternaldatabase Externaldatabase;
1899     AjPStr Name;
1900     ajuint Seqregionidentifier;
1901     ajuint Padding;
1902 } EnsOSeqregionsynonym;
1903 
1904 #define EnsPSeqregionsynonym EnsOSeqregionsynonym*
1905 
1906 
1907 
1908 
1909 /* ========================================================================= */
1910 /* =========================== public functions ============================ */
1911 /* ========================================================================= */
1912 
1913 /*
1914 ** Prototype definitions
1915 */
1916 
1917 /*
1918 ** End of prototype definitions
1919 */
1920 
1921 
1922 
1923 
1924 AJ_END_DECLS
1925 
1926 #endif /* !ENSDATA_H */
1927