1 /* @include ensvariation ******************************************************
2 **
3 ** Ensembl Genetic Variation functions
4 **
5 ** @author Copyright (C) 1999 Ensembl Developers
6 ** @author Copyright (C) 2006 Michael K. Schuster
7 ** @version $Revision: 1.31 $
8 ** @modified 2009 by Alan Bleasby for incorporation into EMBOSS core
9 ** @modified $Date: 2012/08/05 11:39:02 $ 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 ENSVARIATION_H
30 #define ENSVARIATION_H
31 
32 /* ========================================================================= */
33 /* ============================= include files ============================= */
34 /* ========================================================================= */
35 
36 #include "ensgvdata.h"
37 
38 AJ_BEGIN_DECLS
39 
40 
41 
42 
43 /* ========================================================================= */
44 /* =============================== constants =============================== */
45 /* ========================================================================= */
46 
47 /* @const EnsPGvtranscriptvariationadaptor ************************************
48 **
49 ** Ensembl Genetic Variation Transcript Variation Adaptor
50 ** Defined as an alias in EnsPGvbaseadaptor
51 **
52 ** #alias EnsPGvbaseadaptor
53 ** ##
54 ******************************************************************************/
55 
56 #define EnsPGvtranscriptvariationadaptor EnsPGvbaseadaptor
57 
58 
59 
60 
61 /* @enum EnsEGvconsequenceType ************************************************
62 **
63 ** Ensembl Genetic Variation Consequence Type enumeration
64 **
65 ** @value ensEGvconsequenceTypeNULL Null
66 ** @value ensEGvconsequenceTypeEssentialsplicesite Essential splice site
67 ** @value ensEGvconsequenceTypeStopgained Stop codon gained
68 ** @value ensEGvconsequenceTypeStoplost Top codon lost
69 ** @value ensEGvconsequenceTypeComplexindel Complex insertion or deletion
70 ** @value ensEGvconsequenceTypeFrameshiftcoding Frameshift in coding sequence
71 ** @value ensEGvconsequenceTypeSplicesite Splice site
72 ** @value ensEGvconsequenceTypePartialcodon Partial codon
73 ** @value ensEGvconsequenceTypeSynonymouscoding Synonymous
74 ** @value ensEGvconsequenceTypeRegulatoryregion Regulatory region
75 ** @value ensEGvconseqeunceTypeWithinmaturemirna Within a mature miRNA
76 ** @value ensEGvconsequenceType5primeutr 5-prime untranslated region
77 ** @value ensEGvconsequenceType3primeutr 3-prime untranslated region
78 ** @value ensEGvconsequenceTypeUtr Untranslated region
79 ** @value ensEGvconsequenceTypeIntronic Intronic
80 ** @value ensEGvconsequenceTypeNmdtranscript Nonsense-mediated decay transcript
81 ** @value ensEGvconsequenceTypeWithinnoncodinggene Non-coding gene
82 ** @value ensEGvconsequenceTypeUpstream Upstream
83 ** @value ensEGvconsequenceTypeDownstream Downstream
84 ** @value ensEGvconsequenceTypeHgmdmutation HGMD Mutation
85 ** @value ensEGvconsequenceTypeNoconsequence No consequence
86 ** @value ensEGvconsequenceTypeIntergenic Intergenic
87 ** @value ensEGvconsequenceType_ _
88 ** @@
89 ******************************************************************************/
90 
91 typedef enum EnsOGvconsequenceType
92 {
93     ensEGvconsequenceTypeNULL,
94     ensEGvconsequenceTypeEssentialsplicesite,
95     ensEGvconsequenceTypeStopgained,
96     ensEGvconsequenceTypeStoplost,
97     ensEGvconsequenceTypeComplexindel,
98     ensEGvconsequenceTypeFrameshiftcoding,
99     ensEGvconsequenceTypeSplicesite,
100     ensEGvconsequenceTypePartialcodon,
101     ensEGvconsequenceTypeSynonymouscoding,
102     ensEGvconsequenceTypeRegulatoryregion,
103     ensEGvconseqeunceTypeWithinmaturemirna,
104     ensEGvconsequenceType5primeutr,
105     ensEGvconsequenceType3primeutr,
106     ensEGvconsequenceTypeUtr,
107     ensEGvconsequenceTypeIntronic,
108     ensEGvconsequenceTypeNmdtranscript,
109     ensEGvconsequenceTypeWithinnoncodinggene,
110     ensEGvconsequenceTypeUpstream,
111     ensEGvconsequenceTypeDownstream,
112     ensEGvconsequenceTypeHgmdmutation,
113     ensEGvconsequenceTypeNoconsequence,
114     ensEGvconsequenceTypeIntergenic,
115     ensEGvconsequenceType_
116 } EnsEGvconsequenceType;
117 
118 
119 
120 
121 /* ========================================================================= */
122 /* ============================== public data ============================== */
123 /* ========================================================================= */
124 
125 /* @data EnsPGvconsequence ****************************************************
126 **
127 ** Ensembl Genetic Variation Consequence.
128 **
129 ** @alias EnsSGvconsequence
130 ** @alias EnsOGvconsequence
131 **
132 ** @attr Use [ajuint] Use counter
133 ** @cc Bio::EnsEMBL::Variation::ConsequenceType
134 ** @attr Transcriptidentifier [ajuint] Ensembl Transcript identifier
135 ** @attr Gvvariationfeatureidentifier [ajuint] Ensembl Genetic Variation
136 **                                             Variation Feature identifier
137 ** @attr Start [ajuint] Start
138 ** @attr End [ajuint] End
139 ** @attr Strand [ajuint] Strand
140 ** @attr Alleles [AjPList] AJAX List of AJAX String objects
141 ** @attr Types [AjPList] AJAX List of AJAX String objects
142 ** @@
143 ******************************************************************************/
144 
145 typedef struct EnsSGvconsequence
146 {
147     ajuint Use;
148     ajuint Transcriptidentifier;
149     ajuint Gvvariationfeatureidentifier;
150     ajuint Start;
151     ajuint End;
152     ajuint Strand;
153     AjPList Alleles;
154     AjPList Types;
155 } EnsOGvconsequence;
156 
157 #define EnsPGvconsequence EnsOGvconsequence*
158 
159 
160 
161 
162 /* @data EnsPGvtranscriptvariation ********************************************
163 **
164 ** Ensembl Genetic Variation Transcript Variation.
165 **
166 ** @alias EnsSGvtranscriptvariation
167 ** @alias EnsOGvtranscriptvariation
168 **
169 ** @attr Use [ajuint] Use counter
170 ** @cc Bio::EnsEMBL::Storable
171 ** @attr Identifier [ajuint] SQL database-internal identifier
172 ** @attr Adaptor [EnsPGvtranscriptvariationadaptor]
173 ** Ensembl Genetic Variation Transcript Variation Adaptor
174 ** @cc Bio::EnsEMBL::Variation::TranscriptVariation
175 ** @attr Gvvariationfeature [EnsPGvvariationfeature]
176 ** Ensembl Genetic Variation Variation Feature
177 ** @attr TranscriptObject [EnsPTranscript] Ensembl Transcript
178 ** @attr TranslationAllele [AjPStr] Ensembl Translation allele
179 ** @attr TranscriptStart [ajuint] Transcript start
180 ** @attr TranscriptEnd [ajuint] Transcript end
181 ** @attr CodingStart [ajuint] Coding start
182 ** @attr CodingEnd [ajuint] Coding end
183 ** @attr TranslationStart [ajuint] Translation start
184 ** @attr TranslationEnd [ajuint] Translation end
185 ** @attr GvconsequenceTypes [ajuint] Ensembl Genetic Variation Consequence Type
186 ** bit field
187 ** @attr Padding [ajuint] Padding to alignment boundary
188 ** @@
189 ******************************************************************************/
190 
191 typedef struct EnsSGvtranscriptvariation
192 {
193     ajuint Use;
194     ajuint Identifier;
195     EnsPGvtranscriptvariationadaptor Adaptor;
196     EnsPGvvariationfeature Gvvariationfeature;
197     EnsPTranscript TranscriptObject;
198     AjPStr TranslationAllele;
199     ajuint TranscriptStart;
200     ajuint TranscriptEnd;
201     ajuint CodingStart;
202     ajuint CodingEnd;
203     ajuint TranslationStart;
204     ajuint TranslationEnd;
205     ajuint GvconsequenceTypes;
206     ajuint Padding;
207 } EnsOGvtranscriptvariation;
208 
209 #define EnsPGvtranscriptvariation EnsOGvtranscriptvariation*
210 
211 
212 
213 
214 /* ========================================================================= */
215 /* =========================== public functions ============================ */
216 /* ========================================================================= */
217 
218 /*
219 ** Prototype definitions
220 */
221 
222 /* Ensembl Genetic Variation Consequence */
223 
224 EnsPGvconsequence ensGvconsequenceNewCpy(const EnsPGvconsequence gvc);
225 
226 EnsPGvconsequence ensGvconsequenceNewIni(ajuint transcriptid,
227                                          ajuint gvvfid,
228                                          ajint start,
229                                          ajint end,
230                                          ajint strand);
231 
232 EnsPGvconsequence ensGvconsequenceNewRef(EnsPGvconsequence gvc);
233 
234 void ensGvconsequenceDel(EnsPGvconsequence *Pgvc);
235 
236 ajint ensGvconsequenceGetEnd(
237     const EnsPGvconsequence gvc);
238 
239 ajuint ensGvconsequenceGetGvvariationfeatureidentifier(
240     const EnsPGvconsequence gvc);
241 
242 ajint ensGvconsequenceGetStart(
243     const EnsPGvconsequence gvc);
244 
245 ajint ensGvconsequenceGetStrand(
246     const EnsPGvconsequence gvc);
247 
248 ajuint ensGvconsequenceGetTranscriptidentifier(
249     const EnsPGvconsequence gvc);
250 
251 AjBool ensGvconsequenceSetEnd(EnsPGvconsequence gvc,
252                               ajint end);
253 
254 AjBool ensGvconsequenceSetGvvariationfeatureidentifier(EnsPGvconsequence gvc,
255                                                        ajuint gvvfid);
256 
257 AjBool ensGvconsequenceSetStart(EnsPGvconsequence gvc,
258                                 ajint start);
259 
260 AjBool ensGvconsequenceSetStrand(EnsPGvconsequence gvc,
261                                  ajint strand);
262 
263 AjBool ensGvconsequenceSetTranscriptidentifier(EnsPGvconsequence gvc,
264                                                ajuint transcriptid);
265 
266 AjBool ensGvconsequenceTrace(const EnsPGvconsequence gvc,
267                              ajuint level);
268 
269 size_t ensGvconsequenceCalculateMemsize(const EnsPGvconsequence gvc);
270 
271 /* Ensembl Genetic Variation Consequence Type */
272 
273 EnsEGvconsequenceType ensGvconsequenceTypeFromStr(
274     const AjPStr consequencetype);
275 
276 const char *ensGvconsequenceTypeToChar(
277     EnsEGvconsequenceType gvct);
278 
279 ajuint ensGvconsequenceTypesFromSet(const AjPStr gvctset);
280 
281 AjBool ensGvconsequenceTypesToSet(ajuint gvctbf, AjPStr *Pgvctset);
282 
283 /* Ensembl Genetic Variation Transcript Variation */
284 
285 EnsPGvtranscriptvariation ensGvtranscriptvariationNewCpy(
286     const EnsPGvtranscriptvariation gvtv);
287 
288 EnsPGvtranscriptvariation ensGvtranscriptvariationNewIni(
289     EnsPGvtranscriptvariationadaptor gvtva,
290     ajuint identifier,
291     EnsPTranscript transcript,
292     EnsPGvvariationfeature gvvf,
293     AjPStr translationallele,
294     AjPStr consequencetype,
295     ajuint codingstart,
296     ajuint codingend,
297     ajuint transcriptstart,
298     ajuint transcriptend,
299     ajuint translationstart,
300     ajuint translationend);
301 
302 EnsPGvtranscriptvariation ensGvtranscriptvariationNewRef(
303     EnsPGvtranscriptvariation gvtv);
304 
305 void ensGvtranscriptvariationDel(EnsPGvtranscriptvariation *Pgvtv);
306 
307 EnsPGvtranscriptvariationadaptor ensGvtranscriptvariationGetAdaptor(
308     const EnsPGvtranscriptvariation gvtv);
309 
310 ajuint ensGvtranscriptvariationGetCodingEnd(
311     const EnsPGvtranscriptvariation gvtv);
312 
313 ajuint ensGvtranscriptvariationGetCodingStart(
314     const EnsPGvtranscriptvariation gvtv);
315 
316 EnsPGvvariationfeature ensGvtranscriptvariationGetGvvariationfeature(
317     const EnsPGvtranscriptvariation gvtv);
318 
319 ajuint ensGvtranscriptvariationGetIdentifier(
320     const EnsPGvtranscriptvariation gvtv);
321 
322 ajuint ensGvtranscriptvariationGetTranscriptEnd(
323     const EnsPGvtranscriptvariation gvtv);
324 
325 EnsPTranscript ensGvtranscriptvariationGetTranscriptObject(
326     const EnsPGvtranscriptvariation gvtv);
327 
328 ajuint ensGvtranscriptvariationGetTranscriptStart(
329     const EnsPGvtranscriptvariation gvtv);
330 
331 AjPStr ensGvtranscriptvariationGetTranslationAllele(
332     const EnsPGvtranscriptvariation gvtv);
333 
334 ajuint ensGvtranscriptvariationGetTranslationEnd(
335     const EnsPGvtranscriptvariation gvtv);
336 
337 ajuint ensGvtranscriptvariationGetTranslationStart(
338     const EnsPGvtranscriptvariation gvtv);
339 
340 AjBool ensGvtranscriptvariationSetAdaptor(
341     EnsPGvtranscriptvariation gvtv,
342     EnsPGvtranscriptvariationadaptor gvtva);
343 
344 AjBool ensGvtranscriptvariationSetCodingEnd(
345     EnsPGvtranscriptvariation gvtv,
346     ajuint codingend);
347 
348 AjBool ensGvtranscriptvariationSetCodingStart(
349     EnsPGvtranscriptvariation gvtv,
350     ajuint codingstart);
351 
352 AjBool ensGvtranscriptvariationSetGvvariationfeature(
353     EnsPGvtranscriptvariation gvtv,
354     EnsPGvvariationfeature gvvf);
355 
356 AjBool ensGvtranscriptvariationSetIdentifier(
357     EnsPGvtranscriptvariation gvtv,
358     ajuint identifier);
359 
360 AjBool ensGvtranscriptvariationSetTranscriptEnd(
361     EnsPGvtranscriptvariation gvtv,
362     ajuint transcriptend);
363 
364 AjBool ensGvtranscriptvariationSetTranscriptObject(
365     EnsPGvtranscriptvariation gvtv,
366     EnsPTranscript transcript);
367 
368 AjBool ensGvtranscriptvariationSetTranscriptStart(
369     EnsPGvtranscriptvariation gvtv,
370     ajuint transcriptstart);
371 
372 AjBool ensGvtranscriptvariationSetTranslationAllele(
373     EnsPGvtranscriptvariation gvtv,
374     AjPStr translationallele);
375 
376 AjBool ensGvtranscriptvariationSetTranslationEnd(
377     EnsPGvtranscriptvariation gvtv,
378     ajuint translationend);
379 
380 AjBool ensGvtranscriptvariationSetTranslationStart(
381     EnsPGvtranscriptvariation gvtv,
382     ajuint translationstart);
383 
384 AjBool ensGvtranscriptvariationTrace(const EnsPGvtranscriptvariation gvtv,
385                                      ajuint level);
386 
387 size_t ensGvtranscriptvariationCalculateMemsize(
388     const EnsPGvtranscriptvariation gvtv);
389 
390 /* Ensembl Genetic Variation Transcript Variation Adaptor */
391 
392 EnsPGvtranscriptvariationadaptor ensRegistryGetGvtranscriptvariationadaptor(
393     EnsPDatabaseadaptor dba);
394 
395 EnsPGvtranscriptvariationadaptor ensGvtranscriptvariationadaptorNew(
396     EnsPDatabaseadaptor dba);
397 
398 void ensGvtranscriptvariationadaptorDel(
399     EnsPGvtranscriptvariationadaptor *Pgvtva);
400 
401 EnsPBaseadaptor ensGvtranscriptvariationadaptorGetBaseadaptor(
402     EnsPGvtranscriptvariationadaptor gvtva);
403 
404 EnsPDatabaseadaptor ensGvtranscriptvariationadaptorGetDatabaseadaptor(
405     EnsPGvtranscriptvariationadaptor gvtva);
406 
407 EnsPGvbaseadaptor ensGvtranscriptvariationadaptorGetGvbaseadaptor(
408     EnsPGvtranscriptvariationadaptor gvtva);
409 
410 EnsPGvdatabaseadaptor ensGvtranscriptvariationadaptorGetGvdatabaseadaptor(
411     EnsPGvtranscriptvariationadaptor gvtva);
412 
413 /*
414 ** End of prototype definitions
415 */
416 
417 
418 
419 
420 AJ_END_DECLS
421 
422 #endif /* !ENSVARIATION_H */
423