1 /* @source 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.57 $
8 ** @modified 2009 by Alan Bleasby for incorporation into EMBOSS core
9 ** @modified $Date: 2013/02/17 13:02:11 $ 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 /* ========================================================================= */
30 /* ============================= include files ============================= */
31 /* ========================================================================= */
32
33 #include "ensgvbaseadaptor.h"
34 #include "ensgvdatabaseadaptor.h"
35 #include "ensgvvariation.h"
36 #include "ensvariation.h"
37 #include "enstranscript.h"
38
39
40
41
42 /* ========================================================================= */
43 /* =============================== constants =============================== */
44 /* ========================================================================= */
45
46
47
48
49 /* ========================================================================= */
50 /* =========================== global variables ============================ */
51 /* ========================================================================= */
52
53
54
55
56 /* ========================================================================= */
57 /* ============================= private data ============================== */
58 /* ========================================================================= */
59
60
61
62
63 /* ========================================================================= */
64 /* =========================== private constants =========================== */
65 /* ========================================================================= */
66
67 /* @conststatic gvconsequenceKType ********************************************
68 **
69 ** Array of Ensembl Genetic Variation consequence codes
70 **
71 ** The special consequence type, SARA, that only applies to the effect of the
72 ** Allele objects, not Variation objects and is equivalent to Same As Reference
73 ** Allele, meaning that the Allele is the same as in reference sequence, so has
74 ** no effect but it is not stored anywhere in the database and need no
75 ** conversion at all when creating the Ensembl Variation Feature object,
76 ** thus the absence in the array.
77 **
78 ******************************************************************************/
79
80 const char *const gvconsequenceKType[] =
81 {
82 "ESSENTIAL_SPLICE_SITE", /* 1 << 0 = 1 */
83 "STOP_GAINED", /* 1 << 1 = 2 */
84 "STOP_LOST", /* 1 << 2 = 4 */
85 "COMPLEX_INDEL", /* 1 << 3 = 8 */
86 "FRAMESHIFT_CODING", /* 1 << 4 = 16 */
87 "NON_SYNONYMOUS_CODING", /* 1 << 5 = 32 */
88 "SPLICE_SITE", /* 1 << 6 = 64 */
89 "PARTIAL_CODON", /* 1 << 7 = 128 */
90 "SYNONYMOUS_CODING", /* 1 << 8 = 256 */
91 "REGULATORY_REGION", /* 1 << 9 = 512 */
92 "WITHIN_MATURE_miRNA", /* 1 << 10 = 1024 */
93 "5PRIME_UTR", /* 1 << 11 = 2048 */
94 "3PRIME_UTR", /* 1 << 12 = 2094 */
95 "UTR", /* 1 << 13 = 4096 */
96 "INTRONIC", /* 1 << 14 = 8192 */
97 "NMD_TRANSCRIPT", /* 1 << 15 = 16384 */
98 "WITHIN_NON_CODING_GENE", /* 1 << 16 = 32768 */
99 "UPSTREAM", /* 1 << 17 = 65536 */
100 "DOWNSTREAM", /* 1 << 18 = 131072 */
101 "HGMD_MUTATION", /* 1 << 19 = 262144 */
102 "NO_CONSEQUENCE", /* 1 << 20 = 524288 */
103 "INTERGENIC", /* 1 << 21 = 1048576 */
104 "_", /* 1 << 22 = 2097152 */
105 (const char *) NULL
106 };
107
108
109
110
111 /* @conststatic gvconsequenceKDescription *************************************
112 **
113 ** Array of Ensembl Genetic Variation consequence descriptions
114 **
115 ******************************************************************************/
116
117 const char *const gvconsequenceKDescription[] =
118 {
119 "In the first 2 or the last 2 basepairs of an intron",
120 "In coding sequence, resulting in the gain of a stop codon",
121 "In coding sequence, resulting in the loss of a stop codon",
122 "Insertion or deletion that spans an exon/intron or coding "
123 "sequence/UTR border",
124 "In coding sequence, resulting in a frameshift",
125 "In coding sequence and results in an amino acid change in the encoded "
126 "peptide sequence",
127 "1-3 bps into an exon or 3-8 bps into an intron",
128 "Located within the final, incomplete codon of a transcript whose "
129 "end coordinate is unknown",
130 "In coding sequence, not resulting in an amino acid change "
131 "(silent mutation)",
132 "In regulatory region annotated by Ensembl",
133 "Located within a microRNA",
134 "In 5 prime untranslated region",
135 "In 3 prime untranslated region",
136 "In intron",
137 "Located within a transcript predicted to undergo nonsense-mediated decay",
138 "Located within a gene that does not code for a protein",
139 "Within 5 kb upstream of the 5 prime end of a transcript",
140 "Within 5 kb downstream of the 3 prime end of a transcript",
141 "Mutation from the HGMD database - consequence unknown",
142 "More than 5 kb either upstream or downstream of a transcript",
143 (const char *) NULL
144 };
145
146
147
148
149 /* @conststatic gvconsequenceKTranslation *************************************
150 **
151 ** Array of consequence types that have an influence on the Translation of a
152 ** Transcript.
153 **
154 ******************************************************************************/
155
156 const char *const gvconsequenceKTranslation[] =
157 {
158 "STOP_GAINED",
159 "STOP_LOST",
160 "COMPLEX_INDEL",
161 "FRAMESHIFT_CODING",
162 "NON_SYNONYMOUS_CODING",
163 "PARTIAL_CODON",
164 NULL
165 };
166
167
168
169
170 /* @conststatic gvtranscriptvariationadaptorKTablenames ***********************
171 **
172 ** Array of Ensembl Genetic Variation Transcript Variation Adaptor
173 ** SQL table names
174 **
175 ******************************************************************************/
176
177 static const char *const gvtranscriptvariationadaptorKTablenames[] =
178 {
179 "transcript_variation",
180 "variation_feature",
181 "failed_variation",
182 "source",
183 (const char *) NULL
184 };
185
186
187
188
189 /* @conststatic gvtranscriptvariationadaptorKColumnnames **********************
190 **
191 ** Array of Ensembl Genetic Variation Transcript Variation Adaptor
192 ** SQL column names
193 **
194 ******************************************************************************/
195
196 static const char *const gvtranscriptvariationadaptorKColumnnames[] =
197 {
198 "transcript_variation.transcript_variation_id",
199 "transcript_variation.transcript_stable_id",
200 "transcript_variation.variation_feature_id",
201 "transcript_variation.cdna_start",
202 "transcript_variation.cdna_end",
203 "transcript_variation.cds_start",
204 "transcript_variation.cds_end",
205 "transcript_variation.translation_start",
206 "transcript_variation.translation_end",
207 "transcript_variation.peptide_allele_string",
208 "transcript_variation.consequence_type",
209 (const char *) NULL
210 };
211
212
213
214
215 /* @conststatic gvtranscriptvariationadaptorKLeftjoins ************************
216 **
217 ** Array of Ensembl Genetic Variation Transcript Variation Adaptor
218 ** SQL LEFT JOIN conditions
219 **
220 ******************************************************************************/
221
222 static const EnsOBaseadaptorLeftjoin gvtranscriptvariationadaptorKLeftjoins[] =
223 {
224 {
225 "failed_variation",
226 "variation_feature.variation_id = failed_variation.variation_id"
227 },
228 {(const char *) NULL, (const char *) NULL}
229 };
230
231
232
233
234 /* @conststatic gvtranscriptvariationadaptorKDefaultcondition *****************
235 **
236 ** Ensembl Genetic Variation Transcript Variation Adaptor
237 ** SQL SELECT default condition
238 **
239 ******************************************************************************/
240
241 static const char *gvtranscriptvariationadaptorKDefaultcondition =
242 "transcript_variation.variation_feature_id = "
243 "variation_feature.variation_feature_id "
244 "AND "
245 "variation_feature.source_id = "
246 "source.source_id";
247
248
249
250
251 /* ========================================================================= */
252 /* =========================== private variables =========================== */
253 /* ========================================================================= */
254
255
256
257
258 /* ========================================================================= */
259 /* =========================== private functions =========================== */
260 /* ========================================================================= */
261
262 static AjBool gvtranscriptvariationadaptorFetchAllbyStatement(
263 EnsPBaseadaptor ba,
264 const AjPStr statement,
265 EnsPAssemblymapper am,
266 EnsPSlice slice,
267 AjPList gvtvs);
268
269
270
271
272 /* ========================================================================= */
273 /* ======================= All functions by section ======================== */
274 /* ========================================================================= */
275
276
277
278
279 /* @filesection ensvariation **************************************************
280 **
281 ** @nam1rule ens Function belongs to the Ensembl library
282 **
283 ******************************************************************************/
284
285
286
287
288 /* @datasection [EnsPGvconsequence] Ensembl Genetic Variation Consequence *****
289 **
290 ** @nam2rule Gvconsequence Functions for manipulating
291 ** Ensembl Genetic Variation Consequence objects
292 **
293 ** @cc Bio::EnsEMBL::Variation::ConsequenceType
294 ** @cc CVS Revision: 1.29
295 ** @cc CVS Tag: branch-ensembl-68
296 **
297 ******************************************************************************/
298
299
300
301
302 /* @section constructors ******************************************************
303 **
304 ** All constructors return a new Ensembl Genetic Variation Consequence by
305 ** pointer. It is the responsibility of the user to first destroy any previous
306 ** Genetic Variation Consequence. The target pointer does not need to be
307 ** initialised to NULL, but it is good programming practice to do so anyway.
308 **
309 ** @fdata [EnsPGvconsequence]
310 **
311 ** @nam3rule New Constructor
312 ** @nam4rule Cpy Constructor with existing object
313 ** @nam4rule Ini Constructor with initial values
314 ** @nam4rule Ref Constructor by incrementing the reference counter
315 **
316 ** @argrule Cpy gvc [const EnsPGvconsequence]
317 ** Ensembl Genetic Variation Consequence
318 ** @argrule Ini transcriptid [ajuint] Ensembl Transcript identifier
319 ** @argrule Ini gvvfid [ajuint] Ensembl Genetic Variation Variation Feature
320 ** @argrule Ini start [ajint] Start
321 ** @argrule Ini end [ajint] End
322 ** @argrule Ini strand [ajint] Strand
323 ** @argrule Ref gvc [EnsPGvconsequence] Ensembl Genetic Variation Consequence
324 **
325 ** @valrule * [EnsPGvconsequence] Ensembl Genetic Variation Consequence or NULL
326 **
327 ** @fcategory new
328 ******************************************************************************/
329
330
331
332
333 /* @func ensGvconsequenceNewCpy ***********************************************
334 **
335 ** Object-based constructor function, which returns an independent object.
336 **
337 ** @param [r] gvc [const EnsPGvconsequence]
338 ** Ensembl Genetic Variation Consequence
339 **
340 ** @return [EnsPGvconsequence] Ensembl Genetic Variation Consequence or NULL
341 **
342 ** @release 6.4.0
343 ** @@
344 ******************************************************************************/
345
ensGvconsequenceNewCpy(const EnsPGvconsequence gvc)346 EnsPGvconsequence ensGvconsequenceNewCpy(const EnsPGvconsequence gvc)
347 {
348 EnsPGvconsequence pthis = NULL;
349
350 if (!gvc)
351 return NULL;
352
353 AJNEW0(pthis);
354
355 pthis->Use = 1U;
356
357 pthis->Transcriptidentifier = gvc->Transcriptidentifier;
358
359 pthis->Gvvariationfeatureidentifier = gvc->Gvvariationfeatureidentifier;
360
361 pthis->Start = gvc->Start;
362
363 pthis->End = gvc->End;
364
365 pthis->Strand = gvc->Strand;
366
367 pthis->Alleles = ajListstrNew();
368
369 pthis->Types = ajListstrNew();
370
371 return pthis;
372 }
373
374
375
376
377 /* @func ensGvconsequenceNewIni ***********************************************
378 **
379 ** Constructor for an Ensembl Genetic Variation Consequence with initial
380 ** values.
381 **
382 ** @cc Bio::EnsEMBL::Variation::ConsequenceType::new
383 ** @param [r] transcriptid [ajuint] Ensembl Transcript identifier
384 ** @param [r] gvvfid [ajuint]
385 ** Ensembl Genetic Variation Variation Feature identifier
386 ** @param [r] start [ajint] Start
387 ** @param [r] end [ajint] End
388 ** @param [r] strand [ajint] Strand
389 **
390 ** @return [EnsPGvconsequence] Ensembl Genetic Variation Consequence or NULL
391 **
392 ** @release 6.4.0
393 ** @@
394 ******************************************************************************/
395
ensGvconsequenceNewIni(ajuint transcriptid,ajuint gvvfid,ajint start,ajint end,ajint strand)396 EnsPGvconsequence ensGvconsequenceNewIni(ajuint transcriptid,
397 ajuint gvvfid,
398 ajint start,
399 ajint end,
400 ajint strand)
401 {
402 EnsPGvconsequence gvc = NULL;
403
404 if (!transcriptid)
405 return NULL;
406
407 if (!gvvfid)
408 return NULL;
409
410 AJNEW0(gvc);
411
412 gvc->Use = 1U;
413
414 gvc->Transcriptidentifier = transcriptid;
415
416 gvc->Gvvariationfeatureidentifier = gvvfid;
417
418 gvc->Start = start;
419
420 gvc->End = end;
421
422 gvc->Strand = strand;
423
424 return gvc;
425 }
426
427
428
429
430 /* @func ensGvconsequenceNewRef ***********************************************
431 **
432 ** Ensembl Object referencing function, which returns a pointer to the
433 ** Ensembl Object passed in and increases its reference count.
434 **
435 ** @param [u] gvc [EnsPGvconsequence] Ensembl Genetic Variation Consequence
436 **
437 ** @return [EnsPGvconsequence] Ensembl Genetic Variation Consequence or NULL
438 **
439 ** @release 6.4.0
440 ** @@
441 ******************************************************************************/
442
ensGvconsequenceNewRef(EnsPGvconsequence gvc)443 EnsPGvconsequence ensGvconsequenceNewRef(EnsPGvconsequence gvc)
444 {
445 if (!gvc)
446 return NULL;
447
448 gvc->Use++;
449
450 return gvc;
451 }
452
453
454
455
456 /* @section destructors *******************************************************
457 **
458 ** Destruction destroys all internal data structures and frees the memory
459 ** allocated for an Ensembl Genetic Variation Consequence object.
460 **
461 ** @fdata [EnsPGvconsequence]
462 **
463 ** @nam3rule Del Destroy (free) an Ensembl Genetic Variation Consequence
464 **
465 ** @argrule * Pgvc [EnsPGvconsequence*]
466 ** Ensembl Genetic Variation Consequence address
467 **
468 ** @valrule * [void]
469 **
470 ** @fcategory delete
471 ******************************************************************************/
472
473
474
475
476 /* @func ensGvconsequenceDel **************************************************
477 **
478 ** Default destructor for an Ensembl Genetic Variation Consequence.
479 **
480 ** @param [d] Pgvc [EnsPGvconsequence*]
481 ** Ensembl Genetic Variation Consequence address
482 **
483 ** @return [void]
484 **
485 ** @release 6.4.0
486 ** @@
487 ******************************************************************************/
488
ensGvconsequenceDel(EnsPGvconsequence * Pgvc)489 void ensGvconsequenceDel(EnsPGvconsequence *Pgvc)
490 {
491 EnsPGvconsequence pthis = NULL;
492
493 if (!Pgvc)
494 return;
495
496 #if defined(AJ_DEBUG) && AJ_DEBUG >= 1
497 if (ajDebugTest("ensGvconsequenceDel"))
498 {
499 ajDebug("ensGvconsequenceDel\n"
500 " *Pgvvc %p\n",
501 *Pgvc);
502
503 ensGvconsequenceTrace(*Pgvc, 1);
504 }
505 #endif /* defined(AJ_DEBUG) && AJ_DEBUG >= 1 */
506
507 if (!(pthis = *Pgvc) || --pthis->Use)
508 {
509 *Pgvc = NULL;
510
511 return;
512 }
513
514 ajListstrFreeData(&pthis->Alleles);
515 ajListstrFreeData(&pthis->Types);
516
517 ajMemFree((void **) Pgvc);
518
519 return;
520 }
521
522
523
524
525 /* @section member retrieval **************************************************
526 **
527 ** Functions for returning members of an
528 ** Ensembl Genetic Variation Consequence object.
529 **
530 ** @fdata [EnsPGvconsequence]
531 **
532 ** @nam3rule Get Return Genetic Variation Consequence attribute(s)
533 ** @nam4rule Alleles Return the AJAX List of AJAX String (allele) objects
534 ** @nam4rule End Return the end
535 ** @nam4rule Gvvariationfeatureidentifier
536 ** Return the Ensembl Genetic Variation Variation Feature identifier
537 ** @nam4rule Start Return the start
538 ** @nam4rule Strand Return the strand
539 ** @nam4rule Transcriptidentifier Return the Ensembl Transcript identifier
540 ** @nam4rule Types Return the AJAX List of AJAX String types
541 **
542 ** @argrule * gvc [const EnsPGvconsequence]
543 ** Ensembl Genetic Variation Consequence
544 **
545 ** @valrule Alleles [AjPList]
546 ** AJAX List of AJAX String (allele) objects or NULL
547 ** @valrule End [ajint] End or 0
548 ** @valrule Gvvariationfeatureidentifier [ajuint]
549 ** Ensembl Genetic Variation Variation Feature identifier or 0U
550 ** @valrule Strand [ajint] Strand or 0
551 ** @valrule Start [ajint] Start or 0
552 ** @valrule Transcriptidentifier [ajuint] Ensembl Transcript identifier or 0U
553 ** @valrule Types [AjPList] AJAX List of AJAX String types or NULL
554 **
555 ** @fcategory use
556 ******************************************************************************/
557
558
559
560
561 /* @func ensGvconsequenceGetEnd ***********************************************
562 **
563 ** Get the end member of an Ensembl Genetic Variation Consequence.
564 **
565 ** @cc Bio::EnsEMBL::Variation::ConsequenceType::end
566 ** @param [r] gvc [const EnsPGvconsequence]
567 ** Ensembl Genetic Variation Consequence
568 **
569 ** @return [ajint] End or 0
570 **
571 ** @release 6.4.0
572 ** @@
573 ******************************************************************************/
574
ensGvconsequenceGetEnd(const EnsPGvconsequence gvc)575 ajint ensGvconsequenceGetEnd(
576 const EnsPGvconsequence gvc)
577 {
578 return (gvc) ? gvc->End : 0;
579 }
580
581
582
583
584 /* @func ensGvconsequenceGetGvvariationfeatureidentifier **********************
585 **
586 ** Get the Ensembl Genetic Variation Variation Feature identifier member of an
587 ** Ensembl Genetic Variation Consequence.
588 **
589 ** @cc Bio::EnsEMBL::Variation::ConsequenceType::variation_feature_id
590 ** @param [r] gvc [const EnsPGvconsequence]
591 ** Ensembl Genetic Variation Consequence
592 **
593 ** @return [ajuint]
594 ** Ensembl Genetic Variation Variation Feature identifier or 0U
595 **
596 ** @release 6.4.0
597 ** @@
598 ******************************************************************************/
599
ensGvconsequenceGetGvvariationfeatureidentifier(const EnsPGvconsequence gvc)600 ajuint ensGvconsequenceGetGvvariationfeatureidentifier(
601 const EnsPGvconsequence gvc)
602 {
603 return (gvc) ? gvc->Gvvariationfeatureidentifier : 0U;
604 }
605
606
607
608
609 /* @func ensGvconsequenceGetStart *********************************************
610 **
611 ** Get the start member of an Ensembl Genetic Variation Consequence.
612 **
613 ** @cc Bio::EnsEMBL::Variation::ConsequenceType::start
614 ** @param [r] gvc [const EnsPGvconsequence]
615 ** Ensembl Genetic Variation Consequence
616 **
617 ** @return [ajint] Start or 0
618 **
619 ** @release 6.4.0
620 ** @@
621 ******************************************************************************/
622
ensGvconsequenceGetStart(const EnsPGvconsequence gvc)623 ajint ensGvconsequenceGetStart(
624 const EnsPGvconsequence gvc)
625 {
626 return (gvc) ? gvc->Start : 0;
627 }
628
629
630
631
632 /* @func ensGvconsequenceGetStrand ********************************************
633 **
634 ** Get the strand member of an Ensembl Genetic Variation Consequence.
635 **
636 ** @cc Bio::EnsEMBL::Variation::ConsequenceType::strand
637 ** @param [r] gvc [const EnsPGvconsequence]
638 ** Ensembl Genetic Variation Consequence
639 **
640 ** @return [ajint] Strand or 0
641 **
642 ** @release 6.4.0
643 ** @@
644 ******************************************************************************/
645
ensGvconsequenceGetStrand(const EnsPGvconsequence gvc)646 ajint ensGvconsequenceGetStrand(
647 const EnsPGvconsequence gvc)
648 {
649 return (gvc) ? gvc->Strand : 0;
650 }
651
652
653
654
655 /* @func ensGvconsequenceGetTranscriptidentifier ******************************
656 **
657 ** Get the Ensembl Transcript identifier member of an
658 ** Ensembl Genetic Variation Consequence.
659 **
660 ** @cc Bio::EnsEMBL::Variation::ConsequenceType::transcript_id
661 ** @param [r] gvc [const EnsPGvconsequence]
662 ** Ensembl Genetic Variation Consequence
663 **
664 ** @return [ajuint] Ensembl Transcript identifier or 0U
665 **
666 ** @release 6.4.0
667 ** @@
668 ******************************************************************************/
669
ensGvconsequenceGetTranscriptidentifier(const EnsPGvconsequence gvc)670 ajuint ensGvconsequenceGetTranscriptidentifier(
671 const EnsPGvconsequence gvc)
672 {
673 return (gvc) ? gvc->Transcriptidentifier : 0U;
674 }
675
676
677
678
679 /* @section member assignment *************************************************
680 **
681 ** Functions for assigning members of an
682 ** Ensembl Genetic Variation Consequence object.
683 **
684 ** @fdata [EnsPGvconsequence]
685 **
686 ** @nam3rule Set Set one member of a Genetic Variation Consequence
687 ** @nam4rule End Set the end
688 ** @nam4rule Gvvariationfeatureidentifier
689 ** Set the Ensembl Genetic Variation Variation Feature identifier
690 ** @nam4rule Start Set the start
691 ** @nam4rule Strand Set the strand
692 ** @nam4rule Transcriptidentifier Set the Ensembl Transcript identifier
693 **
694 ** @argrule * gvc [EnsPGvconsequence] Ensembl Genetic Variation Consequence
695 ** @argrule End end [ajint] End
696 ** @argrule Gvvariationfeatureidentifier gvvfid [ajuint]
697 ** Ensembl Genetic Variation Variation Feature
698 ** @argrule Start start [ajint] Start
699 ** @argrule Strand strand [ajint] Strand
700 ** @argrule Transcriptidentifier transcriptid [ajuint]
701 ** Ensembl Transcript identifier
702 **
703 ** @valrule * [AjBool] ajTrue upon success, ajFalse otherwise
704 **
705 ** @fcategory modify
706 ******************************************************************************/
707
708
709
710
711 /* @func ensGvconsequenceSetEnd ***********************************************
712 **
713 ** Set the end member of an
714 ** Ensembl Genetic Variation Consequence.
715 **
716 ** @param [u] gvc [EnsPGvconsequence] Ensembl Genetic Variation Consequence
717 ** @param [r] end [ajint] End
718 **
719 ** @return [AjBool] ajTrue upon success, ajFalse otherwise
720 **
721 ** @release 6.4.0
722 ** @@
723 ******************************************************************************/
724
ensGvconsequenceSetEnd(EnsPGvconsequence gvc,ajint end)725 AjBool ensGvconsequenceSetEnd(EnsPGvconsequence gvc,
726 ajint end)
727 {
728 if (!gvc)
729 return ajFalse;
730
731 gvc->End = end;
732
733 return ajTrue;
734 }
735
736
737
738
739 /* @func ensGvconsequenceSetGvvariationfeatureidentifier **********************
740 **
741 ** Set the Ensembl Genetic Variation Variation Feature identifier member of an
742 ** Ensembl Genetic Variation Consequence.
743 **
744 ** @param [u] gvc [EnsPGvconsequence] Ensembl Genetic Variation Consequence
745 ** @param [r] gvvfid [ajuint]
746 ** Ensembl Genetic Variation Variation Feature identifier
747 **
748 ** @return [AjBool] ajTrue upon success, ajFalse otherwise
749 **
750 ** @release 6.4.0
751 ** @@
752 ******************************************************************************/
753
ensGvconsequenceSetGvvariationfeatureidentifier(EnsPGvconsequence gvc,ajuint gvvfid)754 AjBool ensGvconsequenceSetGvvariationfeatureidentifier(EnsPGvconsequence gvc,
755 ajuint gvvfid)
756 {
757 if (!gvc)
758 return ajFalse;
759
760 gvc->Gvvariationfeatureidentifier = gvvfid;
761
762 return ajTrue;
763 }
764
765
766
767
768 /* @func ensGvconsequenceSetStart *********************************************
769 **
770 ** Set the start member of an
771 ** Ensembl Genetic Variation Consequence.
772 **
773 ** @param [u] gvc [EnsPGvconsequence] Ensembl Genetic Variation Consequence
774 ** @param [r] start [ajint] Start
775 **
776 ** @return [AjBool] ajTrue upon success, ajFalse otherwise
777 **
778 ** @release 6.4.0
779 ** @@
780 ******************************************************************************/
781
ensGvconsequenceSetStart(EnsPGvconsequence gvc,ajint start)782 AjBool ensGvconsequenceSetStart(EnsPGvconsequence gvc,
783 ajint start)
784 {
785 if (!gvc)
786 return ajFalse;
787
788 gvc->Start = start;
789
790 return ajTrue;
791 }
792
793
794
795
796 /* @func ensGvconsequenceSetStrand ********************************************
797 **
798 ** Set the strand member of an
799 ** Ensembl Genetic Variation Consequence.
800 **
801 ** @param [u] gvc [EnsPGvconsequence] Ensembl Genetic Variation Consequence
802 ** @param [r] strand [ajint] Strand
803 **
804 ** @return [AjBool] ajTrue upon success, ajFalse otherwise
805 **
806 ** @release 6.4.0
807 ** @@
808 ******************************************************************************/
809
ensGvconsequenceSetStrand(EnsPGvconsequence gvc,ajint strand)810 AjBool ensGvconsequenceSetStrand(EnsPGvconsequence gvc,
811 ajint strand)
812 {
813 if (!gvc)
814 return ajFalse;
815
816 gvc->Strand = strand;
817
818 return ajTrue;
819 }
820
821
822
823
824 /* @func ensGvconsequenceSetTranscriptidentifier ******************************
825 **
826 ** Set the Ensembl Transcript identifier member of an
827 ** Ensembl Genetic Variation Consequence.
828 **
829 ** @param [u] gvc [EnsPGvconsequence] Ensembl Genetic Variation Consequence
830 ** @param [r] transcriptid [ajuint] Ensembl Transcript identifier
831 **
832 ** @return [AjBool] ajTrue upon success, ajFalse otherwise
833 **
834 ** @release 6.4.0
835 ** @@
836 ******************************************************************************/
837
ensGvconsequenceSetTranscriptidentifier(EnsPGvconsequence gvc,ajuint transcriptid)838 AjBool ensGvconsequenceSetTranscriptidentifier(EnsPGvconsequence gvc,
839 ajuint transcriptid)
840 {
841 if (!gvc)
842 return ajFalse;
843
844 gvc->Transcriptidentifier = transcriptid;
845
846 return ajTrue;
847 }
848
849
850
851
852 /* @section debugging *********************************************************
853 **
854 ** Functions for reporting of an
855 ** Ensembl Genetic Variation Consequence object.
856 **
857 ** @fdata [EnsPGvconsequence]
858 **
859 ** @nam3rule Trace Report Ensembl Genetic Variation Consequence members
860 ** to debug file
861 **
862 ** @argrule Trace gvc [const EnsPGvconsequence]
863 ** Ensembl Genetic Variation Consequence
864 ** @argrule Trace level [ajuint] Indentation level
865 **
866 ** @valrule * [AjBool] ajTrue upon success, ajFalse otherwise
867 **
868 ** @fcategory misc
869 ******************************************************************************/
870
871
872
873
874 /* @func ensGvconsequenceTrace ************************************************
875 **
876 ** Trace an Ensembl Genetic Variation Consequence.
877 **
878 ** @param [r] gvc [const EnsPGvconsequence]
879 ** Ensembl Genetic Variation Consequence
880 ** @param [r] level [ajuint] Indentation level
881 **
882 ** @return [AjBool] ajTrue upon success, ajFalse otherwise
883 **
884 ** @release 6.4.0
885 ** @@
886 ******************************************************************************/
887
ensGvconsequenceTrace(const EnsPGvconsequence gvc,ajuint level)888 AjBool ensGvconsequenceTrace(const EnsPGvconsequence gvc,
889 ajuint level)
890 {
891 AjPStr indent = NULL;
892
893 if (!gvc)
894 return ajFalse;
895
896 indent = ajStrNew();
897
898 ajStrAppendCountK(&indent, ' ', level * 2);
899
900 ajDebug("%SensGvconsequenceTrace %p\n"
901 "%S Transcriptidentifier %u\n"
902 "%S Gvvariationfeatureidentifier %u\n"
903 "%S Start %d\n"
904 "%S End %d\n"
905 "%S Strand %d\n",
906 indent, gvc,
907 indent, gvc->Transcriptidentifier,
908 indent, gvc->Gvvariationfeatureidentifier,
909 indent, gvc->Start,
910 indent, gvc->End,
911 indent, gvc->Strand);
912
913 ajStrDel(&indent);
914
915 return ajTrue;
916 }
917
918
919
920
921 /* @section calculate *********************************************************
922 **
923 ** Functions for calculating information from an
924 ** Ensembl Genetic Variation Consequence object.
925 **
926 ** @fdata [EnsPGvconsequence]
927 **
928 ** @nam3rule Calculate
929 ** Calculate Ensembl Genetic Variation Consequence information
930 ** @nam4rule Memsize Calculate the memory size in bytes
931 **
932 ** @argrule * gvc [const EnsPGvconsequence]
933 ** Ensembl Genetic Variation Consequence
934 **
935 ** @valrule Memsize [size_t] Memory size in bytes or 0
936 **
937 ** @fcategory misc
938 ******************************************************************************/
939
940
941
942
943 /* @func ensGvconsequenceCalculateMemsize *************************************
944 **
945 ** Calculate the memory size in bytes of an
946 ** Ensembl Genetic Variation Consequence.
947 **
948 ** @param [r] gvc [const EnsPGvconsequence]
949 ** Ensembl Genetic Variation Consequence
950 **
951 ** @return [size_t] Memory size in bytes or 0
952 **
953 ** @release 6.4.0
954 ** @@
955 ******************************************************************************/
956
ensGvconsequenceCalculateMemsize(const EnsPGvconsequence gvc)957 size_t ensGvconsequenceCalculateMemsize(const EnsPGvconsequence gvc)
958 {
959 size_t size = 0;
960
961 if (!gvc)
962 return 0;
963
964 size += sizeof (EnsOGvconsequence);
965
966 return size;
967 }
968
969
970
971
972 /* @datasection [EnsEGvconsequenceType] Ensembl Genetic Variation Consequence
973 ** Type enumeration
974 **
975 ** @nam2rule Gvconsequence Functions for manipulating
976 ** Ensembl Genetic Variation Consequence objects
977 ** @nam3rule GvconsequenceType Functions for manipulating
978 ** Ensembl Genetic Variation Consequence Type enumerations
979 **
980 ******************************************************************************/
981
982
983
984
985 /* @section Misc **************************************************************
986 **
987 ** Functions for returning an Ensembl Genetic Variation Consequence Type
988 ** enumeration.
989 **
990 ** @fdata [EnsEGvconsequenceType]
991 **
992 ** @nam4rule From Ensembl Genetic Variation Consequence Type query
993 ** @nam5rule Str AJAX String object query
994 **
995 ** @argrule Str consequencetype [const AjPStr] Consequence type string
996 **
997 ** @valrule * [EnsEGvconsequenceType]
998 ** Ensembl Genetic Variation Consequence Type enumeration or
999 ** ensEGvconsequenceTypeNULL
1000 **
1001 ** @fcategory misc
1002 ******************************************************************************/
1003
1004
1005
1006
1007 /* @func ensGvconsequenceTypeFromStr ******************************************
1008 **
1009 ** Convert an AJAX String into an Ensembl Genetic Variation Consequence
1010 ** Type enumeration.
1011 **
1012 ** @param [r] consequencetype [const AjPStr] Consequence type string
1013 **
1014 ** @return [EnsEGvconsequenceType]
1015 ** Ensembl Genetic Variation Consequence Type enumeration or
1016 ** ensEGvconsequenceTypeNULL
1017 **
1018 ** @release 6.4.0
1019 ** @@
1020 ******************************************************************************/
1021
ensGvconsequenceTypeFromStr(const AjPStr consequencetype)1022 EnsEGvconsequenceType ensGvconsequenceTypeFromStr(
1023 const AjPStr consequencetype)
1024 {
1025 register EnsEGvconsequenceType i =
1026 ensEGvconsequenceTypeNULL;
1027
1028 EnsEGvconsequenceType gvct =
1029 ensEGvconsequenceTypeNULL;
1030
1031 for (i = ensEGvconsequenceTypeNULL;
1032 gvconsequenceKType[i];
1033 i++)
1034 if (ajStrMatchC(consequencetype, gvconsequenceKType[i]))
1035 gvct = i;
1036
1037 if (!gvct)
1038 ajDebug("ensGvconsequenceTypeFromStr encountered "
1039 "unexpected string '%S'.\n", consequencetype);
1040
1041 return gvct;
1042 }
1043
1044
1045
1046
1047 /* @section Cast **************************************************************
1048 **
1049 ** Functions for returning attributes of an
1050 ** Ensembl Genetic Variation Consequence Type enumeration.
1051 **
1052 ** @fdata [EnsEGvconsequenceType]
1053 **
1054 ** @nam4rule To Return Ensembl Genetic Variation Consequence Type
1055 ** enumeration
1056 ** @nam5rule Char Return C character string value
1057 **
1058 ** @argrule To gvct [EnsEGvconsequenceType]
1059 ** Ensembl Genetic Variation Consequence Type enumeration
1060 **
1061 ** @valrule Char [const char*]
1062 ** Ensembl Genetic Variation Consequence Type C-type (char *) string
1063 **
1064 ** @fcategory cast
1065 ******************************************************************************/
1066
1067
1068
1069
1070 /* @func ensGvconsequenceTypeToChar *******************************************
1071 **
1072 ** Convert an Ensembl Genetic Variation Consequence Type enumeration
1073 ** into a C-type (char *) string.
1074 **
1075 ** @param [u] gvct [EnsEGvconsequenceType]
1076 ** Ensembl Genetic Variation Consequence Type enumeration
1077 **
1078 ** @return [const char*]
1079 ** Ensembl Genetic Variation Consequence Type C-type (char *) string
1080 **
1081 ** @release 6.4.0
1082 ** @@
1083 ******************************************************************************/
1084
ensGvconsequenceTypeToChar(EnsEGvconsequenceType gvct)1085 const char* ensGvconsequenceTypeToChar(
1086 EnsEGvconsequenceType gvct)
1087 {
1088 register EnsEGvconsequenceType i =
1089 ensEGvconsequenceTypeNULL;
1090
1091 for (i = ensEGvconsequenceTypeNULL;
1092 gvconsequenceKType[i] && (i < gvct);
1093 i++);
1094
1095 if (!gvconsequenceKType[i])
1096 ajDebug("ensGvconsequenceTypeToChar "
1097 "encountered an out of boundary error on "
1098 "Ensembl Genetic Variation Consequence Type "
1099 "enumeration %d.\n",
1100 gvct);
1101
1102 return gvconsequenceKType[i];
1103 }
1104
1105
1106
1107
1108 /* @datasection [none] C-types ************************************************
1109 **
1110 ** @nam2rule Gvconsequence Functions for manipulating
1111 ** Ensembl Genetic Variation Consequence objects
1112 ** @nam3rule GvconsequenceTypes Functions for manipulating
1113 ** Ensembl Genetic Variation Consequence Type (AJAX unsigned integer)
1114 ** bit fields
1115 **
1116 ******************************************************************************/
1117
1118
1119
1120
1121 /* @section Misc **************************************************************
1122 **
1123 ** Functions for returning an Ensembl Genetic Variation Consequence Type
1124 ** bit field.
1125 **
1126 ** @fdata [none]
1127 **
1128 ** @nam4rule From Ensembl Genetic Variation Consequence Type
1129 ** bit field query
1130 ** @nam5rule Set SQL set string query
1131 **
1132 ** @argrule Set gvctset [const AjPStr] Comma-separated SQL set string
1133 **
1134 ** @valrule * [ajuint]
1135 ** Ensembl Genetic Variation Consequence Type bit field or 0U
1136 **
1137 ** @fcategory misc
1138 ******************************************************************************/
1139
1140
1141
1142
1143 /* @func ensGvconsequenceTypesFromSet *****************************************
1144 **
1145 ** Convert an AJAX String representing a comma-separared SQL set of
1146 ** consequence types into an Ensembl Genetic Variation Consequence Type
1147 ** (AJAX unsigned integer) bit field.
1148 **
1149 ** @param [r] gvctset [const AjPStr] SQL set
1150 **
1151 ** @return [ajuint] Ensembl Genetic Variation Consequence Type bit field or 0U
1152 ** or 0
1153 **
1154 ** @release 6.4.0
1155 ** @@
1156 ******************************************************************************/
1157
ensGvconsequenceTypesFromSet(const AjPStr gvctset)1158 ajuint ensGvconsequenceTypesFromSet(const AjPStr gvctset)
1159 {
1160 ajuint gvctbf = 0U;
1161
1162 AjPStr gvctstring = NULL;
1163
1164 AjPStrTok token = NULL;
1165
1166 if (!gvctset)
1167 return 0U;
1168
1169 /* Split the comma-separated list of consequence types. */
1170
1171 token = ajStrTokenNewC(gvctset, ",");
1172
1173 gvctstring = ajStrNew();
1174
1175 while (ajStrTokenNextParse(token, &gvctstring))
1176 gvctbf |= (1U << ensGvconsequenceTypeFromStr(gvctstring));
1177
1178 ajStrDel(&gvctstring);
1179
1180 ajStrTokenDel(&token);
1181
1182 return gvctbf;
1183 }
1184
1185
1186
1187
1188 /* @section Cast **************************************************************
1189 **
1190 ** Functions for returning attributes of an
1191 ** Ensembl Genetic Variation Consequence Type bit field.
1192 **
1193 ** @fdata [none]
1194 **
1195 ** @nam4rule To Cast an Ensembl Genetic Variation Consequence Type
1196 ** bit field
1197 ** @nam5rule Set Cast into an SQl set (comma-separated strings)
1198 **
1199 ** @argrule To gvctbf [ajuint]
1200 ** Ensembl Genetic Variation Consequence Type bit field
1201 ** @argrule Set Pgvctset [AjPStr*] SQL set
1202 **
1203 ** @valrule * [AjBool] True on success, false on failure
1204 **
1205 ** @fcategory cast
1206 ******************************************************************************/
1207
1208
1209
1210
1211 /* @func ensGvconsequenceTypesToSet *******************************************
1212 **
1213 ** Cast an Ensembl Genetic Variation Consequence Type bit field
1214 ** (AJAX unsigned integer) into an SQL set (comma-separated) strings.
1215 **
1216 ** The caller is responsible for deleting the AJAX String.
1217 **
1218 ** @param [r] gvctbf [ajuint]
1219 ** Ensembl Genetic Variation Consequence Type bit field
1220 ** @param [w] Pgvctset [AjPStr*] SQL set
1221 **
1222 ** @return [AjBool] True on success, false on failure
1223 **
1224 ** @release 6.4.0
1225 ** @@
1226 ******************************************************************************/
1227
ensGvconsequenceTypesToSet(ajuint gvctbf,AjPStr * Pgvctset)1228 AjBool ensGvconsequenceTypesToSet(ajuint gvctbf, AjPStr *Pgvctset)
1229 {
1230 register ajuint i = 0U;
1231
1232 if (*Pgvctset)
1233 ajStrAssignClear(Pgvctset);
1234 else
1235 *Pgvctset = ajStrNew();
1236
1237 for (i = 1U; gvconsequenceKType[i]; i++)
1238 if (gvctbf & (1U << i))
1239 {
1240 ajStrAppendC(Pgvctset, gvconsequenceKType[i]);
1241 ajStrAppendC(Pgvctset, ",");
1242 }
1243
1244 /* Remove the last comma if one exists. */
1245
1246 if (ajStrGetLen(*Pgvctset) > 0U)
1247 ajStrCutEnd(Pgvctset, 1);
1248
1249 return ajTrue;
1250 }
1251
1252
1253
1254
1255 /* @datasection [EnsPGvtranscriptvariation] Ensembl Genetic Variation
1256 ** Transcript Variation
1257 **
1258 ** @nam2rule Gvtranscriptvariation Functions for manipulating
1259 ** Ensembl Genetic Variation Transcript Variation objects
1260 **
1261 ** @cc Bio::EnsEMBL::Variation::TranscriptVariation
1262 ** @cc CVS Revision: 1.28
1263 ** @cc CVS Tag: branch-ensembl-61
1264 **
1265 ******************************************************************************/
1266
1267
1268
1269
1270 /* @section constructors ******************************************************
1271 **
1272 ** All constructors return a new Ensembl Genetic Variation Transcript Variation
1273 ** by pointer. It is the responsibility of the user to first destroy any
1274 ** previous Genetic Variation Transcript Variation. The target pointer does not
1275 ** need to be initialised to NULL, but it is good programming practice to do
1276 ** so anyway.
1277 **
1278 ** @fdata [EnsPGvtranscriptvariation]
1279 **
1280 ** @nam3rule New Constructor
1281 ** @nam4rule Cpy Constructor with existing object
1282 ** @nam4rule Ini Constructor with initial values
1283 ** @nam4rule Ref Constructor by incrementing the reference counter
1284 **
1285 ** @argrule Cpy gvtv [const EnsPGvtranscriptvariation]
1286 ** Ensembl Genetic Variation Transcript Variation
1287 ** @argrule Ini gvtva [EnsPGvtranscriptvariationadaptor]
1288 ** Ensembl Genetic Variation Transcript Variation Adaptor
1289 ** @argrule Ini identifier [ajuint] SQL database-internal identifier
1290 ** @argrule Ini transcript [EnsPTranscript] Ensembl Transcript
1291 ** @argrule Ini gvvf [EnsPGvvariationfeature]
1292 ** Ensembl Genetic Variation Variation Feature
1293 ** @argrule Ini translationallele [AjPStr] Ensembl Translation allele
1294 ** @argrule Ini gvctset [AjPStr]
1295 ** Ensembl Genetic Variation Consequence Type SQL set
1296 ** @argrule Ini codingstart [ajuint] Coding start
1297 ** @argrule Ini codingend [ajuint] Coding end
1298 ** @argrule Ini transcriptstart [ajuint] Ensembl Transcript start
1299 ** @argrule Ini transcriptend [ajuint] Ensembl Transcript end
1300 ** @argrule Ini translationstart [ajuint] Ensembl Translation start
1301 ** @argrule Ini translationend [ajuint] Ensembl Translation end
1302 ** @argrule Ref gvtv [EnsPGvtranscriptvariation]
1303 ** Ensembl Genetic Variation Transcript Variation
1304 **
1305 ** @valrule * [EnsPGvtranscriptvariation]
1306 ** Ensembl Genetic Variation Transcript Variation or NULL
1307 **
1308 ** @fcategory new
1309 ******************************************************************************/
1310
1311
1312
1313
1314 /* @func ensGvtranscriptvariationNewCpy ***************************************
1315 **
1316 ** Object-based constructor function, which returns an independent object.
1317 **
1318 ** @param [r] gvtv [const EnsPGvtranscriptvariation]
1319 ** Ensembl Genetic Variation Transcript Variation
1320 **
1321 ** @return [EnsPGvtranscriptvariation]
1322 ** Ensembl Genetic Variation Transcript Variation or NULL
1323 **
1324 ** @release 6.4.0
1325 ** @@
1326 ******************************************************************************/
1327
ensGvtranscriptvariationNewCpy(const EnsPGvtranscriptvariation gvtv)1328 EnsPGvtranscriptvariation ensGvtranscriptvariationNewCpy(
1329 const EnsPGvtranscriptvariation gvtv)
1330 {
1331 EnsPGvtranscriptvariation pthis = NULL;
1332
1333 if (!gvtv)
1334 return NULL;
1335
1336 AJNEW0(pthis);
1337
1338 pthis->Use = 1U;
1339 pthis->Identifier = gvtv->Identifier;
1340 pthis->Adaptor = gvtv->Adaptor;
1341 pthis->TranscriptObject = ensTranscriptNewRef(gvtv->TranscriptObject);
1342 pthis->Gvvariationfeature = ensGvvariationfeatureNewRef(
1343 gvtv->Gvvariationfeature);
1344
1345 if (gvtv->TranslationAllele)
1346 pthis->TranslationAllele = ajStrNewRef(gvtv->TranslationAllele);
1347
1348 pthis->CodingStart = gvtv->CodingStart;
1349 pthis->CodingEnd = gvtv->CodingEnd;
1350 pthis->TranscriptStart = gvtv->TranscriptStart;
1351 pthis->TranscriptEnd = gvtv->TranscriptEnd;
1352 pthis->TranslationStart = gvtv->TranslationStart;
1353 pthis->TranslationEnd = gvtv->TranslationEnd;
1354 pthis->GvconsequenceTypes = gvtv->GvconsequenceTypes;
1355
1356 return pthis;
1357 }
1358
1359
1360
1361
1362 /* @func ensGvtranscriptvariationNewIni ***************************************
1363 **
1364 ** Constructor for an Ensembl Genetic Variation Transcript Variation with
1365 ** initial values.
1366 **
1367 ** @cc Bio::EnsEMBL::Storable::new
1368 ** @param [u] gvtva [EnsPGvtranscriptvariationadaptor]
1369 ** Ensembl Genetic Variation Transcript Variation Adaptor
1370 ** @param [r] identifier [ajuint] SQL database-internal identifier
1371 ** @cc Bio::EnsEMBL::Variation::TranscriptVariation::new
1372 ** @param [uN] transcript [EnsPTranscript] Ensembl Transcript
1373 ** @param [uN] gvvf [EnsPGvvariationfeature]
1374 ** Ensembl Genetic Variation Variation Feature
1375 ** @param [u] translationallele [AjPStr] Ensembl Translation allele
1376 ** @param [u] gvctset [AjPStr] Ensembl Genetic Variation Consequence Type
1377 ** SQL set
1378 ** @param [r] codingstart [ajuint] Coding start
1379 ** @param [r] codingend [ajuint] Coding end
1380 ** @param [r] transcriptstart [ajuint] Ensembl Transcript start
1381 ** @param [r] transcriptend [ajuint] Ensembl Transcript end
1382 ** @param [r] translationstart [ajuint] Ensembl Translation start
1383 ** @param [r] translationend [ajuint] Ensembl Translation end
1384 **
1385 ** @return [EnsPGvtranscriptvariation]
1386 ** Ensembl Genetic Variation Transcript Variation or NULL
1387 **
1388 ** @release 6.4.0
1389 ** @@
1390 ** NOTE: From branch-ensembl-61 the new method accepts a list of consequence
1391 ** type strings rather than a comma separated SQL set of quoted consequence
1392 ** type strings.
1393 ******************************************************************************/
1394
ensGvtranscriptvariationNewIni(EnsPGvtranscriptvariationadaptor gvtva,ajuint identifier,EnsPTranscript transcript,EnsPGvvariationfeature gvvf,AjPStr translationallele,AjPStr gvctset,ajuint codingstart,ajuint codingend,ajuint transcriptstart,ajuint transcriptend,ajuint translationstart,ajuint translationend)1395 EnsPGvtranscriptvariation ensGvtranscriptvariationNewIni(
1396 EnsPGvtranscriptvariationadaptor gvtva,
1397 ajuint identifier,
1398 EnsPTranscript transcript,
1399 EnsPGvvariationfeature gvvf,
1400 AjPStr translationallele,
1401 AjPStr gvctset,
1402 ajuint codingstart,
1403 ajuint codingend,
1404 ajuint transcriptstart,
1405 ajuint transcriptend,
1406 ajuint translationstart,
1407 ajuint translationend)
1408 {
1409 register ajuint i = 0U;
1410
1411 AjBool match = AJFALSE;
1412
1413 AjPStr value = NULL;
1414
1415 AjPStrTok token = NULL;
1416
1417 EnsPGvtranscriptvariation gvtv = NULL;
1418
1419 /* Check that all consequence types are valid. */
1420
1421 if (gvctset && ajStrGetLen(gvctset))
1422 {
1423 token = ajStrTokenNewC(gvctset, ",");
1424 value = ajStrNew();
1425
1426 while (ajStrTokenNextParse(token, &value))
1427 {
1428 match = ajFalse;
1429
1430 for (i = 0U; gvconsequenceKType[i]; i++)
1431 if (ajStrMatchCaseC(value, gvconsequenceKType[i]))
1432 match = ajTrue;
1433
1434 if (match == ajFalse)
1435 ajFatal("ensGvtranscriptvariationNewIni got invalid "
1436 "consequence type '%S'.", value);
1437 }
1438
1439 ajStrTokenDel(&token);
1440 ajStrDel(&value);
1441 }
1442
1443 AJNEW0(gvtv);
1444
1445 gvtv->Use = 1U;
1446 gvtv->Identifier = identifier;
1447 gvtv->Adaptor = gvtva;
1448 gvtv->TranscriptObject = ensTranscriptNewRef(transcript);
1449 gvtv->Gvvariationfeature = ensGvvariationfeatureNewRef(gvvf);
1450 gvtv->TranslationAllele = ajStrNewRef(translationallele);
1451 gvtv->CodingStart = codingstart;
1452 gvtv->CodingEnd = codingend;
1453 gvtv->TranscriptStart = transcriptstart;
1454 gvtv->TranscriptEnd = transcriptend;
1455 gvtv->TranslationStart = translationstart;
1456 gvtv->TranslationEnd = translationend;
1457 gvtv->GvconsequenceTypes = ensGvconsequenceTypesFromSet(gvctset);
1458
1459 return gvtv;
1460 }
1461
1462
1463
1464
1465
1466 /* @func ensGvtranscriptvariationNewRef ***************************************
1467 **
1468 ** Ensembl Object referencing function, which returns a pointer to the
1469 ** Ensembl Object passed in and increases its reference count.
1470 **
1471 ** @param [u] gvtv [EnsPGvtranscriptvariation] Ensembl Genetic Variation
1472 ** Transcript Variation
1473 **
1474 ** @return [EnsPGvtranscriptvariation]
1475 ** Ensembl Genetic Variation Transcript Variation or NULL
1476 **
1477 ** @release 6.4.0
1478 ** @@
1479 ******************************************************************************/
1480
ensGvtranscriptvariationNewRef(EnsPGvtranscriptvariation gvtv)1481 EnsPGvtranscriptvariation ensGvtranscriptvariationNewRef(
1482 EnsPGvtranscriptvariation gvtv)
1483 {
1484 if (!gvtv)
1485 return NULL;
1486
1487 gvtv->Use++;
1488
1489 return gvtv;
1490 }
1491
1492
1493
1494
1495 /* @section destructors *******************************************************
1496 **
1497 ** Destruction destroys all internal data structures and frees the memory
1498 ** allocated for an Ensembl Genetic Variation Transcript Variation object.
1499 **
1500 ** @fdata [EnsPGvtranscriptvariation]
1501 **
1502 ** @nam3rule Del Destroy (free) an
1503 ** Ensembl Genetic Variation Transcript Variation
1504 **
1505 ** @argrule * Pgvtv [EnsPGvtranscriptvariation*]
1506 ** Ensembl Genetic Variation Transcript Variation address
1507 **
1508 ** @valrule * [void]
1509 **
1510 ** @fcategory delete
1511 ******************************************************************************/
1512
1513
1514
1515
1516 /* @func ensGvtranscriptvariationDel ******************************************
1517 **
1518 ** Default destructor for an Ensembl Genetic Variation Transcript Variation.
1519 **
1520 ** @param [d] Pgvtv [EnsPGvtranscriptvariation*]
1521 ** Ensembl Genetic Variation Transcript Variation address
1522 **
1523 ** @return [void]
1524 **
1525 ** @release 6.4.0
1526 ** @@
1527 ******************************************************************************/
1528
ensGvtranscriptvariationDel(EnsPGvtranscriptvariation * Pgvtv)1529 void ensGvtranscriptvariationDel(EnsPGvtranscriptvariation *Pgvtv)
1530 {
1531 EnsPGvtranscriptvariation pthis = NULL;
1532
1533 if (!Pgvtv)
1534 return;
1535
1536 #if defined(AJ_DEBUG) && AJ_DEBUG >= 1
1537 if (ajDebugTest("ensGvtranscriptvariationDel"))
1538 {
1539 ajDebug("ensGvtranscriptvariationDel\n"
1540 " *Pgvtv %p\n",
1541 *Pgvtv);
1542
1543 ensGvtranscriptvariationTrace(*Pgvtv, 1);
1544 }
1545 #endif /* defined(AJ_DEBUG) && AJ_DEBUG >= 1 */
1546
1547 if (!(pthis = *Pgvtv) || --pthis->Use)
1548 {
1549 *Pgvtv = NULL;
1550
1551 return;
1552 }
1553
1554 ensGvvariationfeatureDel(&pthis->Gvvariationfeature);
1555
1556 ensTranscriptDel(&pthis->TranscriptObject);
1557
1558 ajStrDel(&pthis->TranslationAllele);
1559
1560 ajMemFree((void **) Pgvtv);
1561
1562 return;
1563 }
1564
1565
1566
1567
1568 /* @section member retrieval **************************************************
1569 **
1570 ** Functions for returning members of an
1571 ** Ensembl Genetic Variation Transcript Variation object.
1572 **
1573 ** @fdata [EnsPGvtranscriptvariation]
1574 **
1575 ** @nam3rule Get Return Ensembl Genetic Variation Transcript Variation
1576 ** attribute(s)
1577 ** @nam4rule Adaptor Return the Ensembl Genetic Variation
1578 ** Transcript Variation Adaptor
1579 ** @nam4rule Coding Return coding region members
1580 ** @nam4rule Gvvariationfeature Return the
1581 ** Ensembl Genetic Variation Variation Feature
1582 ** @nam4rule Identifier Return the SQL database-internal identifier
1583 ** @nam4rule Transcript Return Ensembl Transcript members
1584 ** @nam4rule Translation Return Ensembl Translation members
1585 ** @nam5rule Allele Return the allele string
1586 ** @nam5rule End Return the end coordinate
1587 ** @nam5rule Start Return the start coordinate
1588 ** @nam5rule Object Return an Ensembl Object
1589 **
1590 ** @argrule * gvtv [const EnsPGvtranscriptvariation] Ensembl Genetic Variation
1591 ** Transcript Variation
1592 **
1593 ** @valrule Adaptor [EnsPGvtranscriptvariationadaptor]
1594 ** Ensembl Genetic Variation Transcript Variation Adaptor or NULL
1595 ** @valrule Gvvariationfeature [EnsPGvvariationfeature]
1596 ** Ensembl Genetic Variation Variation Feature or NULL
1597 ** @valrule Identifier [ajuint] SQL database-internal identifier or 0U
1598 ** @valrule Allele [AjPStr] Allele string or NULL
1599 ** @valrule End [ajuint] End coordinate or 0U
1600 ** @valrule Object [EnsPTranscript] Ensembl Transcript or NULL
1601 ** @valrule Start [ajuint] Start coordinate or 0U
1602 **
1603 ** @fcategory use
1604 ******************************************************************************/
1605
1606
1607
1608
1609 /* @func ensGvtranscriptvariationGetAdaptor ***********************************
1610 **
1611 ** Get the Ensembl Genetic Variation Transcript Variation Adaptor member of an
1612 ** Ensembl Genetic Variation Transcript Variation.
1613 **
1614 ** @cc Bio::EnsEMBL::Storable::adaptor
1615 ** @param [r] gvtv [const EnsPGvtranscriptvariation] Ensembl Genetic Variation
1616 ** Transcript Variation
1617 **
1618 ** @return [EnsPGvtranscriptvariationadaptor] Ensembl Genetic Variation
1619 ** Transcript Variation Adaptor or NULL
1620 **
1621 ** @release 6.4.0
1622 ** @@
1623 ******************************************************************************/
1624
ensGvtranscriptvariationGetAdaptor(const EnsPGvtranscriptvariation gvtv)1625 EnsPGvtranscriptvariationadaptor ensGvtranscriptvariationGetAdaptor(
1626 const EnsPGvtranscriptvariation gvtv)
1627 {
1628 return (gvtv) ? gvtv->Adaptor : NULL;
1629 }
1630
1631
1632
1633
1634 /* @func ensGvtranscriptvariationGetCodingEnd *********************************
1635 **
1636 ** Get the coding end member of an
1637 ** Ensembl Genetic Variation Transcript Variation.
1638 **
1639 ** @cc Bio::EnsEMBL::Variation::TranscriptVariation::cds_end
1640 ** @param [r] gvtv [const EnsPGvtranscriptvariation] Ensembl Genetic Variation
1641 ** Transcript Variation
1642 **
1643 ** @return [ajuint] Coding end or 0U
1644 **
1645 ** @release 6.4.0
1646 ** @@
1647 ******************************************************************************/
1648
ensGvtranscriptvariationGetCodingEnd(const EnsPGvtranscriptvariation gvtv)1649 ajuint ensGvtranscriptvariationGetCodingEnd(
1650 const EnsPGvtranscriptvariation gvtv)
1651 {
1652 return (gvtv) ? gvtv->CodingEnd : 0U;
1653 }
1654
1655
1656
1657
1658 /* @func ensGvtranscriptvariationGetCodingStart *******************************
1659 **
1660 ** Get the coding start member of an
1661 ** Ensembl Genetic Variation Transcript Variation.
1662 **
1663 ** @cc Bio::EnsEMBL::Variation::TranscriptVariation::cds_start
1664 ** @param [r] gvtv [const EnsPGvtranscriptvariation] Ensembl Genetic Variation
1665 ** Transcript Variation
1666 **
1667 ** @return [ajuint] Coding start or 0U
1668 **
1669 ** @release 6.4.0
1670 ** @@
1671 ******************************************************************************/
1672
ensGvtranscriptvariationGetCodingStart(const EnsPGvtranscriptvariation gvtv)1673 ajuint ensGvtranscriptvariationGetCodingStart(
1674 const EnsPGvtranscriptvariation gvtv)
1675 {
1676 return (gvtv) ? gvtv->CodingStart : 0U;
1677 }
1678
1679
1680
1681
1682 /* @func ensGvtranscriptvariationGetGvvariationfeature ************************
1683 **
1684 ** Get the Ensembl Genetic Variation Variation Feature member of an
1685 ** Ensembl Genetic Variation Transcript Variation.
1686 **
1687 ** @param [r] gvtv [const EnsPGvtranscriptvariation] Ensembl Genetic Variation
1688 ** Transcript Variation
1689 **
1690 ** @return [EnsPGvvariationfeature] Ensembl Genetic Variation Variation Feature
1691 ** or NULL
1692 **
1693 ** @release 6.4.0
1694 ** @@
1695 ******************************************************************************/
1696
ensGvtranscriptvariationGetGvvariationfeature(const EnsPGvtranscriptvariation gvtv)1697 EnsPGvvariationfeature ensGvtranscriptvariationGetGvvariationfeature(
1698 const EnsPGvtranscriptvariation gvtv)
1699 {
1700 return (gvtv) ? gvtv->Gvvariationfeature : NULL;
1701 }
1702
1703
1704
1705
1706 /* @func ensGvtranscriptvariationGetIdentifier ********************************
1707 **
1708 ** Get the SQL database-internal identifier member of an
1709 ** Ensembl Genetic Variation Transcript Variation.
1710 **
1711 ** @cc Bio::EnsEMBL::Storable::dbID
1712 ** @param [r] gvtv [const EnsPGvtranscriptvariation] Ensembl Genetic Variation
1713 ** Transcript Variation
1714 **
1715 ** @return [ajuint] SQL database-internal identifier or 0U
1716 **
1717 ** @release 6.4.0
1718 ** @@
1719 ******************************************************************************/
1720
ensGvtranscriptvariationGetIdentifier(const EnsPGvtranscriptvariation gvtv)1721 ajuint ensGvtranscriptvariationGetIdentifier(
1722 const EnsPGvtranscriptvariation gvtv)
1723 {
1724 return (gvtv) ? gvtv->Identifier : 0U;
1725 }
1726
1727
1728
1729
1730 /* @func ensGvtranscriptvariationGetTranscriptEnd *****************************
1731 **
1732 ** Get the Ensembl Transcript end member of an
1733 ** Ensembl Genetic Variation Transcript Variation.
1734 **
1735 ** @cc Bio::EnsEMBL::Variation::TranscriptVariation::cdna_end
1736 ** @param [r] gvtv [const EnsPGvtranscriptvariation] Ensembl Genetic Variation
1737 ** Transcript Variation
1738 **
1739 ** @return [ajuint] Ensembl Transcript end or 0U
1740 **
1741 ** @release 6.4.0
1742 ** @@
1743 ******************************************************************************/
1744
ensGvtranscriptvariationGetTranscriptEnd(const EnsPGvtranscriptvariation gvtv)1745 ajuint ensGvtranscriptvariationGetTranscriptEnd(
1746 const EnsPGvtranscriptvariation gvtv)
1747 {
1748 return (gvtv) ? gvtv->TranscriptEnd : 0U;
1749 }
1750
1751
1752
1753
1754 /* @func ensGvtranscriptvariationGetTranscriptObject **************************
1755 **
1756 ** Get the Ensembl Transcript member of an
1757 ** Ensembl Genetic Variation Transcript Variation.
1758 **
1759 ** @cc Bio::EnsEMBL::Variation::TranscriptVariation::transcript
1760 ** @param [r] gvtv [const EnsPGvtranscriptvariation] Ensembl Genetic Variation
1761 ** Transcript Variation
1762 **
1763 ** @return [EnsPTranscript] Ensembl Transcript or NULL
1764 **
1765 ** @release 6.4.0
1766 ** @@
1767 ******************************************************************************/
1768
ensGvtranscriptvariationGetTranscriptObject(const EnsPGvtranscriptvariation gvtv)1769 EnsPTranscript ensGvtranscriptvariationGetTranscriptObject(
1770 const EnsPGvtranscriptvariation gvtv)
1771 {
1772 return (gvtv) ? gvtv->TranscriptObject : NULL;
1773 }
1774
1775
1776
1777
1778 /* @func ensGvtranscriptvariationGetTranscriptStart ***************************
1779 **
1780 ** Get the Ensembl Transcript start member of an
1781 ** Ensembl Genetic Variation Transcript Variation.
1782 **
1783 ** @cc Bio::EnsEMBL::Variation::TranscriptVariation::cdna_start
1784 ** @param [r] gvtv [const EnsPGvtranscriptvariation] Ensembl Genetic Variation
1785 ** Transcript Variation
1786 **
1787 ** @return [ajuint] Ensembl Transcript start or 0U
1788 **
1789 ** @release 6.4.0
1790 ** @@
1791 ******************************************************************************/
1792
ensGvtranscriptvariationGetTranscriptStart(const EnsPGvtranscriptvariation gvtv)1793 ajuint ensGvtranscriptvariationGetTranscriptStart(
1794 const EnsPGvtranscriptvariation gvtv)
1795 {
1796 return (gvtv) ? gvtv->TranscriptStart : 0U;
1797 }
1798
1799
1800
1801
1802 /* @func ensGvtranscriptvariationGetTranslationAllele *************************
1803 **
1804 ** Get the Ensembl Translation allele member of an
1805 ** Ensembl Genetic Variation Transcript Variation.
1806 **
1807 ** @cc Bio::EnsEMBL::Variation::TranscriptVariation::pep_allele_string
1808 ** @param [r] gvtv [const EnsPGvtranscriptvariation] Ensembl Genetic Variation
1809 ** Transcript Variation
1810 **
1811 ** @return [AjPStr] Ensembl Translation allele or NULL
1812 **
1813 ** @release 6.4.0
1814 ** @@
1815 ******************************************************************************/
1816
ensGvtranscriptvariationGetTranslationAllele(const EnsPGvtranscriptvariation gvtv)1817 AjPStr ensGvtranscriptvariationGetTranslationAllele(
1818 const EnsPGvtranscriptvariation gvtv)
1819 {
1820 return (gvtv) ? gvtv->TranslationAllele : NULL;
1821 }
1822
1823
1824
1825
1826 /* @func ensGvtranscriptvariationGetTranslationEnd ****************************
1827 **
1828 ** Get the Ensembl Translation end member of an
1829 ** Ensembl Genetic Variation Transcript Variation.
1830 **
1831 ** @cc Bio::EnsEMBL::Variation::TranscriptVariation::translation_end
1832 ** @param [r] gvtv [const EnsPGvtranscriptvariation] Ensembl Genetic Variation
1833 ** Transcript Variation
1834 **
1835 ** @return [ajuint] Ensembl Translation end or 0U
1836 **
1837 ** @release 6.4.0
1838 ** @@
1839 ******************************************************************************/
1840
ensGvtranscriptvariationGetTranslationEnd(const EnsPGvtranscriptvariation gvtv)1841 ajuint ensGvtranscriptvariationGetTranslationEnd(
1842 const EnsPGvtranscriptvariation gvtv)
1843 {
1844 return (gvtv) ? gvtv->TranslationEnd : 0U;
1845 }
1846
1847
1848
1849
1850 /* @func ensGvtranscriptvariationGetTranslationStart **************************
1851 **
1852 ** Get the Ensembl Translation start member of an
1853 ** Ensembl Genetic Variation Transcript Variation.
1854 **
1855 ** @cc Bio::EnsEMBL::Variation::TranscriptVariation::translation_start
1856 ** @param [r] gvtv [const EnsPGvtranscriptvariation] Ensembl Genetic Variation
1857 ** Transcript Variation
1858 **
1859 ** @return [ajuint] Ensembl Translation start or 0U
1860 **
1861 ** @release 6.4.0
1862 ** @@
1863 ******************************************************************************/
1864
ensGvtranscriptvariationGetTranslationStart(const EnsPGvtranscriptvariation gvtv)1865 ajuint ensGvtranscriptvariationGetTranslationStart(
1866 const EnsPGvtranscriptvariation gvtv)
1867 {
1868 return (gvtv) ? gvtv->TranslationStart : 0U;
1869 }
1870
1871
1872
1873
1874 /* @section member assignment *************************************************
1875 **
1876 ** Functions for assigning members of an
1877 ** Ensembl Genetic Variation Transcript Variation object.
1878 **
1879 ** @fdata [EnsPGvtranscriptvariation]
1880 **
1881 ** @nam3rule Set Set one member of an
1882 ** Ensembl Genetic Variation Transcript Variation
1883 ** @nam4rule Adaptor Set the Ensembl Genetic Variation
1884 ** Transcript Variation Adaptor
1885 ** @nam4rule Coding Set coding region members
1886 ** @nam4rule Gvvariationfeature Set the
1887 ** Ensembl Genetic Variation Variation Feature
1888 ** @nam4rule Identifier Set the SQL database-internal identifier
1889 ** @nam4rule Transcript Set Ensembl Transcript members
1890 ** @nam4rule Translation Set Ensembl Translation members
1891 ** @nam5rule Allele Set the allele
1892 ** @nam5rule End Set the end coordinate
1893 ** @nam5rule Object Set an Ensembl Object
1894 ** @nam5rule Start Set the start coordinate
1895 **
1896 ** @argrule * gvtv [EnsPGvtranscriptvariation] Ensembl Genetic Variation
1897 ** Transcript Variation object
1898 ** @argrule Adaptor gvtva [EnsPGvtranscriptvariationadaptor]
1899 ** Ensembl Genetic Variation Transcript Variation Adaptor
1900 ** @argrule CodingEnd codingend [ajuint] Coding region end
1901 ** @argrule CodingStart codingstart [ajuint] Coding region start
1902 ** @argrule Gvvariationfeature gvvf [EnsPGvvariationfeature]
1903 ** Ensembl Genetic Variation Variation Feature
1904 ** @argrule Identifier identifier [ajuint] SQL database-internal identifier
1905 ** @argrule TranscriptEnd transcriptend [ajuint] Ensembl Transcript end
1906 ** @argrule TranscriptObject transcript [EnsPTranscript] Ensembl Transcript
1907 ** @argrule TranscriptStart transcriptstart [ajuint] Ensembl Transcript start
1908 ** @argrule TranslationAllele translationallele [AjPStr]
1909 ** Ensembl Translation allele
1910 ** @argrule TranslationEnd translationend [ajuint] Ensembl Translation end
1911 ** @argrule TranslationStart translationstart [ajuint]
1912 ** Ensembl Translation start
1913 **
1914 ** @valrule * [AjBool] ajTrue upon success, ajFalse otherwise
1915 **
1916 ** @fcategory modify
1917 ******************************************************************************/
1918
1919
1920
1921
1922 /* @func ensGvtranscriptvariationSetAdaptor ***********************************
1923 **
1924 ** Set the Ensembl Genetic Variation Transcript Variation Adaptor member of an
1925 ** Ensembl Genetic Variation Transcript Variation.
1926 **
1927 ** @cc Bio::EnsEMBL::Storable::adaptor
1928 ** @param [u] gvtv [EnsPGvtranscriptvariation]
1929 ** Ensembl Genetic Variation Transcript Variation
1930 ** @param [u] gvtva [EnsPGvtranscriptvariationadaptor]
1931 ** Ensembl Genetic Variation Transcript Variation Adaptor
1932 **
1933 ** @return [AjBool] ajTrue upon success, ajFalse otherwise
1934 **
1935 ** @release 6.4.0
1936 ** @@
1937 ******************************************************************************/
1938
ensGvtranscriptvariationSetAdaptor(EnsPGvtranscriptvariation gvtv,EnsPGvtranscriptvariationadaptor gvtva)1939 AjBool ensGvtranscriptvariationSetAdaptor(
1940 EnsPGvtranscriptvariation gvtv,
1941 EnsPGvtranscriptvariationadaptor gvtva)
1942 {
1943 if (!gvtv)
1944 return ajFalse;
1945
1946 gvtv->Adaptor = gvtva;
1947
1948 return ajTrue;
1949 }
1950
1951
1952
1953
1954 /* @func ensGvtranscriptvariationSetCodingEnd *********************************
1955 **
1956 ** Set the coding region end member of an
1957 ** Ensembl Genetic Variation Transcript Variation.
1958 **
1959 ** @cc Bio::EnsEMBL::Variation::TranscriptVariation::cds_end
1960 ** @param [u] gvtv [EnsPGvtranscriptvariation]
1961 ** Ensembl Genetic Variation Transcript Variation
1962 ** @param [r] codingend [ajuint] Coding region end
1963 **
1964 ** @return [AjBool] ajTrue upon success, ajFalse otherwise
1965 **
1966 ** @release 6.4.0
1967 ** @@
1968 ******************************************************************************/
1969
ensGvtranscriptvariationSetCodingEnd(EnsPGvtranscriptvariation gvtv,ajuint codingend)1970 AjBool ensGvtranscriptvariationSetCodingEnd(
1971 EnsPGvtranscriptvariation gvtv,
1972 ajuint codingend)
1973 {
1974 if (!gvtv)
1975 return ajFalse;
1976
1977 gvtv->CodingEnd = codingend;
1978
1979 return ajTrue;
1980 }
1981
1982
1983
1984
1985 /* @func ensGvtranscriptvariationSetCodingStart *******************************
1986 **
1987 ** Set the coding region start member of an
1988 ** Ensembl Genetic Variation Transcript Variation.
1989 **
1990 ** @cc Bio::EnsEMBL::Variation::TranscriptVariation::cds_start
1991 ** @param [u] gvtv [EnsPGvtranscriptvariation]
1992 ** Ensembl Genetic Variation Transcript Variation
1993 ** @param [r] codingstart [ajuint] Coding region start
1994 **
1995 ** @return [AjBool] ajTrue upon success, ajFalse otherwise
1996 **
1997 ** @release 6.4.0
1998 ** @@
1999 ******************************************************************************/
2000
ensGvtranscriptvariationSetCodingStart(EnsPGvtranscriptvariation gvtv,ajuint codingstart)2001 AjBool ensGvtranscriptvariationSetCodingStart(
2002 EnsPGvtranscriptvariation gvtv,
2003 ajuint codingstart)
2004 {
2005 if (!gvtv)
2006 return ajFalse;
2007
2008 gvtv->CodingStart = codingstart;
2009
2010 return ajTrue;
2011 }
2012
2013
2014
2015
2016 /* @func ensGvtranscriptvariationSetGvvariationfeature ************************
2017 **
2018 ** Set the Ensembl Genetic Variation Variation Feature member of an
2019 ** Ensembl Genetic Variation Transcript Variation.
2020 **
2021 ** @cc Bio::EnsEMBL::Variation::TranscriptVariation::variation_feature
2022 ** @param [u] gvtv [EnsPGvtranscriptvariation]
2023 ** Ensembl Genetic Variation Transcript Variation
2024 ** @param [uN] gvvf [EnsPGvvariationfeature] Ensembl Genetic Variation Feature
2025 **
2026 ** @return [AjBool] ajTrue upon success, ajFalse otherwise
2027 **
2028 ** @release 6.4.0
2029 ** @@
2030 ******************************************************************************/
2031
ensGvtranscriptvariationSetGvvariationfeature(EnsPGvtranscriptvariation gvtv,EnsPGvvariationfeature gvvf)2032 AjBool ensGvtranscriptvariationSetGvvariationfeature(
2033 EnsPGvtranscriptvariation gvtv,
2034 EnsPGvvariationfeature gvvf)
2035 {
2036 if (!gvtv)
2037 return ajFalse;
2038
2039 ensGvvariationfeatureDel(&gvtv->Gvvariationfeature);
2040
2041 gvtv->Gvvariationfeature = ensGvvariationfeatureNewRef(gvvf);
2042
2043 return ajTrue;
2044 }
2045
2046
2047
2048
2049 /* @func ensGvtranscriptvariationSetIdentifier ********************************
2050 **
2051 ** Set the SQL database-internal identifier member of an
2052 ** Ensembl Genetic Variation Transcript Variation.
2053 **
2054 ** @cc Bio::EnsEMBL::Storable::dbID
2055 ** @param [u] gvtv [EnsPGvtranscriptvariation]
2056 ** Ensembl Genetic Variation Transcript Variation
2057 ** @param [r] identifier [ajuint] SQL database-internal identifier
2058 **
2059 ** @return [AjBool] ajTrue upon success, ajFalse otherwise
2060 **
2061 ** @release 6.4.0
2062 ** @@
2063 ******************************************************************************/
2064
ensGvtranscriptvariationSetIdentifier(EnsPGvtranscriptvariation gvtv,ajuint identifier)2065 AjBool ensGvtranscriptvariationSetIdentifier(
2066 EnsPGvtranscriptvariation gvtv,
2067 ajuint identifier)
2068 {
2069 if (!gvtv)
2070 return ajFalse;
2071
2072 gvtv->Identifier = identifier;
2073
2074 return ajTrue;
2075 }
2076
2077
2078
2079
2080 /* @func ensGvtranscriptvariationSetTranscriptEnd *****************************
2081 **
2082 ** Set the Ensembl Transcript end member of an
2083 ** Ensembl Genetic Variation Transcript Variation.
2084 **
2085 ** @cc Bio::EnsEMBL::Variation::TranscriptVariation::cdna_end
2086 ** @param [u] gvtv [EnsPGvtranscriptvariation]
2087 ** Ensembl Genetic Variation Transcript Variation
2088 ** @param [r] transcriptend [ajuint] Ensembl Transcript end
2089 **
2090 ** @return [AjBool] ajTrue upon success, ajFalse otherwise
2091 **
2092 ** @release 6.4.0
2093 ** @@
2094 ******************************************************************************/
2095
ensGvtranscriptvariationSetTranscriptEnd(EnsPGvtranscriptvariation gvtv,ajuint transcriptend)2096 AjBool ensGvtranscriptvariationSetTranscriptEnd(
2097 EnsPGvtranscriptvariation gvtv,
2098 ajuint transcriptend)
2099 {
2100 if (!gvtv)
2101 return ajFalse;
2102
2103 gvtv->TranscriptEnd = transcriptend;
2104
2105 return ajTrue;
2106 }
2107
2108
2109
2110
2111 /* @func ensGvtranscriptvariationSetTranscriptObject **************************
2112 **
2113 ** Set the Ensembl Transcript member of an
2114 ** Ensembl Genetic Variation Transcript Variation.
2115 **
2116 ** @cc Bio::EnsEMBL::Variation::TranscriptVariation::transcript
2117 ** @param [u] gvtv [EnsPGvtranscriptvariation]
2118 ** Ensembl Genetic Variation Transcript Variation
2119 ** @param [uN] transcript [EnsPTranscript] Ensembl Transcript
2120 **
2121 ** @return [AjBool] ajTrue upon success, ajFalse otherwise
2122 **
2123 ** @release 6.4.0
2124 ** @@
2125 ******************************************************************************/
2126
ensGvtranscriptvariationSetTranscriptObject(EnsPGvtranscriptvariation gvtv,EnsPTranscript transcript)2127 AjBool ensGvtranscriptvariationSetTranscriptObject(
2128 EnsPGvtranscriptvariation gvtv,
2129 EnsPTranscript transcript)
2130 {
2131 if (!gvtv)
2132 return ajFalse;
2133
2134 ensTranscriptDel(&gvtv->TranscriptObject);
2135
2136 gvtv->TranscriptObject = ensTranscriptNewRef(transcript);
2137
2138 return ajTrue;
2139 }
2140
2141
2142
2143
2144 /* @func ensGvtranscriptvariationSetTranscriptStart ***************************
2145 **
2146 ** Set the Ensembl Transcript start member of an
2147 ** Ensembl Genetic Variation Transcript Variation.
2148 **
2149 ** @cc Bio::EnsEMBL::Variation::TranscriptVariation::cdna_start
2150 ** @param [u] gvtv [EnsPGvtranscriptvariation]
2151 ** Ensembl Genetic Variation Transcript Variation
2152 ** @param [r] transcriptstart [ajuint] Ensembl Transcript start
2153 **
2154 ** @return [AjBool] ajTrue upon success, ajFalse otherwise
2155 **
2156 ** @release 6.4.0
2157 ** @@
2158 ******************************************************************************/
2159
ensGvtranscriptvariationSetTranscriptStart(EnsPGvtranscriptvariation gvtv,ajuint transcriptstart)2160 AjBool ensGvtranscriptvariationSetTranscriptStart(
2161 EnsPGvtranscriptvariation gvtv,
2162 ajuint transcriptstart)
2163 {
2164 if (!gvtv)
2165 return ajFalse;
2166
2167 gvtv->TranscriptStart = transcriptstart;
2168
2169 return ajTrue;
2170 }
2171
2172
2173
2174
2175 /* @func ensGvtranscriptvariationSetTranslationAllele *************************
2176 **
2177 ** Set the Ensembl Translation allele member of an
2178 ** Ensembl Genetic Variation Transcript Variation.
2179 **
2180 ** @cc Bio::EnsEMBL::Variation::TranscriptVariation::pep_allele_string
2181 ** @param [u] gvtv [EnsPGvtranscriptvariation]
2182 ** Ensembl Genetic Variation Transcript Variation
2183 ** @param [u] translationallele [AjPStr] Ensembl Translation allele
2184 **
2185 ** @return [AjBool] ajTrue upon success, ajFalse otherwise
2186 **
2187 ** @release 6.4.0
2188 ** @@
2189 ******************************************************************************/
2190
ensGvtranscriptvariationSetTranslationAllele(EnsPGvtranscriptvariation gvtv,AjPStr translationallele)2191 AjBool ensGvtranscriptvariationSetTranslationAllele(
2192 EnsPGvtranscriptvariation gvtv,
2193 AjPStr translationallele)
2194 {
2195 if (!gvtv)
2196 return ajFalse;
2197
2198 ajStrDel(&gvtv->TranslationAllele);
2199
2200 if (translationallele)
2201 gvtv->TranslationAllele = ajStrNewRef(translationallele);
2202
2203 return ajTrue;
2204 }
2205
2206
2207
2208
2209 /* @func ensGvtranscriptvariationSetTranslationEnd ****************************
2210 **
2211 ** Set the Ensembl Translation end member of an
2212 ** Ensembl Genetic Variation Transcript Variation.
2213 **
2214 ** @cc Bio::EnsEMBL::Variation::TranscriptVariation::translation_end
2215 ** @param [u] gvtv [EnsPGvtranscriptvariation]
2216 ** Ensembl Genetic Variation Transcript Variation
2217 ** @param [r] translationend [ajuint] Ensembl Translation end
2218 **
2219 ** @return [AjBool] ajTrue upon success, ajFalse otherwise
2220 **
2221 ** @release 6.4.0
2222 ** @@
2223 ******************************************************************************/
2224
ensGvtranscriptvariationSetTranslationEnd(EnsPGvtranscriptvariation gvtv,ajuint translationend)2225 AjBool ensGvtranscriptvariationSetTranslationEnd(
2226 EnsPGvtranscriptvariation gvtv,
2227 ajuint translationend)
2228 {
2229 if (!gvtv)
2230 return ajFalse;
2231
2232 gvtv->TranslationEnd = translationend;
2233
2234 return ajTrue;
2235 }
2236
2237
2238
2239
2240 /* @func ensGvtranscriptvariationSetTranslationStart **************************
2241 **
2242 ** Set the Ensembl Translation start member of an
2243 ** Ensembl Genetic Variation Transcript Variation.
2244 **
2245 ** @cc Bio::EnsEMBL::Variation::TranscriptVariation::translation_start
2246 ** @param [u] gvtv [EnsPGvtranscriptvariation]
2247 ** Ensembl Genetic Variation Transcript Variation
2248 ** @param [r] translationstart [ajuint] Ensembl Translation start
2249 **
2250 ** @return [AjBool] ajTrue upon success, ajFalse otherwise
2251 **
2252 ** @release 6.4.0
2253 ** @@
2254 ******************************************************************************/
2255
ensGvtranscriptvariationSetTranslationStart(EnsPGvtranscriptvariation gvtv,ajuint translationstart)2256 AjBool ensGvtranscriptvariationSetTranslationStart(
2257 EnsPGvtranscriptvariation gvtv,
2258 ajuint translationstart)
2259 {
2260 if (!gvtv)
2261 return ajFalse;
2262
2263 gvtv->TranslationStart = translationstart;
2264
2265 return ajTrue;
2266 }
2267
2268
2269
2270
2271 /* @section debugging *********************************************************
2272 **
2273 ** Functions for reporting of an
2274 ** Ensembl Genetic Variation Transcript Variation object.
2275 **
2276 ** @fdata [EnsPGvtranscriptvariation]
2277 **
2278 ** @nam3rule Trace Report Ensembl Genetic Variation Transcript Variation
2279 ** members to debug file
2280 **
2281 ** @argrule Trace gvtv [const EnsPGvtranscriptvariation]
2282 ** Ensembl Genetic Variation Transcript Variation
2283 ** @argrule Trace level [ajuint] Indentation level
2284 **
2285 ** @valrule * [AjBool] ajTrue upon success, ajFalse otherwise
2286 **
2287 ** @fcategory misc
2288 ******************************************************************************/
2289
2290
2291
2292
2293 /* @func ensGvtranscriptvariationTrace ****************************************
2294 **
2295 ** Trace an Ensembl Genetic Variation Transcript Variation.
2296 **
2297 ** @param [r] gvtv [const EnsPGvtranscriptvariation]
2298 ** Ensembl Genetic Variation Transcript Variation
2299 ** @param [r] level [ajuint] Indentation level
2300 **
2301 ** @return [AjBool] ajTrue upon success, ajFalse otherwise
2302 **
2303 ** @release 6.4.0
2304 ** @@
2305 ******************************************************************************/
2306
ensGvtranscriptvariationTrace(const EnsPGvtranscriptvariation gvtv,ajuint level)2307 AjBool ensGvtranscriptvariationTrace(const EnsPGvtranscriptvariation gvtv,
2308 ajuint level)
2309 {
2310 AjPStr indent = NULL;
2311
2312 if (!gvtv)
2313 return ajFalse;
2314
2315 indent = ajStrNew();
2316
2317 ajStrAppendCountK(&indent, ' ', level * 2);
2318
2319 ajDebug("%SensGvtranscriptvariationTrace %p\n"
2320 "%S Use %u\n"
2321 "%S Identifier %u\n"
2322 "%S Adaptor %p\n"
2323 "%S TranscriptObject %p\n"
2324 "%S Gvvariationfeature %p\n"
2325 "%S TranslationAllele '%S'\n"
2326 "%S CodingStart %u\n"
2327 "%S CodingEnd %u\n"
2328 "%S TranscriptStart %u\n"
2329 "%S TranscriptEnd %u\n"
2330 "%S TranslationStart %u\n"
2331 "%S TranslationEnd %u\n",
2332 indent, gvtv,
2333 indent, gvtv->Use,
2334 indent, gvtv->Identifier,
2335 indent, gvtv->Adaptor,
2336 indent, gvtv->TranscriptObject,
2337 indent, gvtv->Gvvariationfeature,
2338 indent, gvtv->TranslationAllele,
2339 indent, gvtv->CodingStart,
2340 indent, gvtv->CodingEnd,
2341 indent, gvtv->TranscriptStart,
2342 indent, gvtv->TranscriptEnd,
2343 indent, gvtv->TranslationStart,
2344 indent, gvtv->TranslationEnd);
2345
2346 ensTranscriptTrace(gvtv->TranscriptObject, level + 1);
2347
2348 ensGvvariationfeatureTrace(gvtv->Gvvariationfeature, level + 1);
2349
2350 ajStrDel(&indent);
2351
2352 return ajTrue;
2353 }
2354
2355
2356
2357
2358 /* @section calculate *********************************************************
2359 **
2360 ** Functions for calculating information from an
2361 ** Ensembl Genetic Variation Transcript Variation object.
2362 **
2363 ** @fdata [EnsPGvtranscriptvariation]
2364 **
2365 ** @nam3rule Calculate
2366 ** Calculate Ensembl Genetic Variation Transcript Variation information
2367 ** @nam4rule Memsize Calculate the memory size in bytes
2368 **
2369 ** @argrule * gvtv [const EnsPGvtranscriptvariation]
2370 ** Ensembl Genetic Variation Transcript Variation
2371 **
2372 ** @valrule Memsize [size_t] Memory size in bytes or 0
2373 **
2374 ** @fcategory misc
2375 ******************************************************************************/
2376
2377
2378
2379
2380 /* @func ensGvtranscriptvariationCalculateMemsize *****************************
2381 **
2382 ** Calculate the memory size in bytes of an
2383 ** Ensembl Genetic Variation Transcript Variation.
2384 **
2385 ** @param [r] gvtv [const EnsPGvtranscriptvariation]
2386 ** Ensembl Genetic Variation Transcript Variation
2387 **
2388 ** @return [size_t] Memory size in bytes or 0
2389 **
2390 ** @release 6.4.0
2391 ** @@
2392 ******************************************************************************/
2393
ensGvtranscriptvariationCalculateMemsize(const EnsPGvtranscriptvariation gvtv)2394 size_t ensGvtranscriptvariationCalculateMemsize(
2395 const EnsPGvtranscriptvariation gvtv)
2396 {
2397 size_t size = 0;
2398
2399 if (!gvtv)
2400 return 0;
2401
2402 size += sizeof (EnsOGvtranscriptvariation);
2403
2404 size += ensTranscriptCalculateMemsize(gvtv->TranscriptObject);
2405
2406 size += ensGvvariationfeatureCalculateMemsize(gvtv->Gvvariationfeature);
2407
2408 if (gvtv->TranslationAllele)
2409 {
2410 size += sizeof (AjOStr);
2411
2412 size += ajStrGetRes(gvtv->TranslationAllele);
2413 }
2414
2415 return size;
2416 }
2417
2418
2419
2420
2421 /* @datasection [EnsPGvtranscriptvariationadaptor] Ensembl Genetic Variation
2422 ** Transcript Variation Adaptor
2423 **
2424 ** @nam2rule Gvtranscriptvariationadaptor Functions for manipulating
2425 ** Ensembl Genetic Variation Transcript Variation Adaptor objects
2426 **
2427 ** @cc Bio::EnsEMBL::Variation::DBSQL::TranscriptVariationAdaptor
2428 ** @cc CVS Revision: 1.29
2429 ** @cc CVS Tag: branch-ensembl-61
2430 **
2431 ******************************************************************************/
2432
2433
2434
2435
2436 /* @funcstatic gvtranscriptvariationadaptorFetchAllbyStatement ****************
2437 **
2438 ** Fetch all Ensembl Genetic Variation Transcript Variation objects
2439 ** via an SQL statement.
2440 **
2441 ** @cc Bio::EnsEMBL::Variation::DBSQL::TranscriptVariationAdaptor::
2442 ** _objs_from_sth
2443 ** @param [u] ba [EnsPBaseadaptor] Ensembl Base Adaptor
2444 ** @param [r] statement [const AjPStr] SQL statement
2445 ** @param [uN] am [EnsPAssemblymapper] Ensembl Assembly Mapper
2446 ** @param [uN] slice [EnsPSlice] Ensembl Slice
2447 ** @param [u] gvtvs [AjPList] AJAX List of Ensembl Genetic Variation
2448 ** Transcript Variation objects
2449 **
2450 ** @return [AjBool] ajTrue upon success, ajFalse otherwise
2451 **
2452 ** @release 6.4.0
2453 ** @@
2454 ******************************************************************************/
2455
gvtranscriptvariationadaptorFetchAllbyStatement(EnsPBaseadaptor ba,const AjPStr statement,EnsPAssemblymapper am,EnsPSlice slice,AjPList gvtvs)2456 static AjBool gvtranscriptvariationadaptorFetchAllbyStatement(
2457 EnsPBaseadaptor ba,
2458 const AjPStr statement,
2459 EnsPAssemblymapper am,
2460 EnsPSlice slice,
2461 AjPList gvtvs)
2462 {
2463 ajuint lastgvvfid = 0U;
2464 ajuint identifier = 0U;
2465 ajuint gvvfid = 0U;
2466 ajuint codingstart = 0U;
2467 ajuint codingend = 0U;
2468 ajuint transcriptstart = 0U;
2469 ajuint transcriptend = 0U;
2470 ajuint translationstart = 0U;
2471 ajuint translationend = 0U;
2472
2473 AjPSqlstatement sqls = NULL;
2474 AjISqlrow sqli = NULL;
2475 AjPSqlrow sqlr = NULL;
2476
2477 AjPStr gvctset = NULL;
2478 AjPStr transcriptstableid = NULL;
2479 AjPStr translationallele = NULL;
2480
2481 EnsPDatabaseadaptor csdba = NULL;
2482 EnsPDatabaseadaptor gvdba = NULL;
2483
2484 EnsPTranscript transcript = NULL;
2485 EnsPTranscriptadaptor tca = NULL;
2486
2487 EnsPGvtranscriptvariation gvtv = NULL;
2488 EnsPGvtranscriptvariationadaptor gvtva = NULL;
2489
2490 EnsPGvvariationfeature gvvf = NULL;
2491 EnsPGvvariationfeatureadaptor gvvfa = NULL;
2492
2493 if (ajDebugTest("gvtranscriptvariationadaptorFetchAllbyStatement"))
2494 ajDebug("gvtranscriptvariationadaptorFetchAllbyStatement\n"
2495 " ba %p\n"
2496 " statement %p\n"
2497 " am %p\n"
2498 " slice %p\n"
2499 " gvtvs %p\n",
2500 ba,
2501 statement,
2502 am,
2503 slice,
2504 gvtvs);
2505
2506 if (!ba)
2507 return ajFalse;
2508
2509 if (!statement)
2510 return ajFalse;
2511
2512 if (!gvtvs)
2513 return ajFalse;
2514
2515 gvdba = ensBaseadaptorGetDatabaseadaptor(ba);
2516
2517 gvtva = ensRegistryGetGvtranscriptvariationadaptor(gvdba);
2518 gvvfa = ensRegistryGetGvvariationfeatureadaptor(gvdba);
2519 csdba = ensRegistryGetReferenceadaptor(gvdba);
2520 tca = ensRegistryGetTranscriptadaptor(csdba);
2521
2522 sqls = ensDatabaseadaptorSqlstatementNew(gvdba, statement);
2523
2524 sqli = ajSqlrowiterNew(sqls);
2525
2526 while (!ajSqlrowiterDone(sqli))
2527 {
2528 identifier = 0;
2529 transcriptstableid = ajStrNew();
2530 gvvfid = 0;
2531 transcriptstart = 0;
2532 transcriptend = 0;
2533 codingstart = 0;
2534 codingend = 0;
2535 translationstart = 0;
2536 translationend = 0;
2537 translationallele = ajStrNew();
2538 gvctset = ajStrNew();
2539
2540 sqlr = ajSqlrowiterGet(sqli);
2541
2542 ajSqlcolumnToUint(sqlr, &identifier);
2543 ajSqlcolumnToStr(sqlr, &transcriptstableid);
2544 ajSqlcolumnToUint(sqlr, &gvvfid);
2545 ajSqlcolumnToUint(sqlr, &transcriptstart);
2546 ajSqlcolumnToUint(sqlr, &transcriptend);
2547 ajSqlcolumnToUint(sqlr, &codingstart);
2548 ajSqlcolumnToUint(sqlr, &codingend);
2549 ajSqlcolumnToUint(sqlr, &translationstart);
2550 ajSqlcolumnToUint(sqlr, &translationend);
2551 ajSqlcolumnToStr(sqlr, &translationallele);
2552 ajSqlcolumnToStr(sqlr, &gvctset);
2553
2554 /*
2555 ** Skip multiple rows, because of the SQL LEFT JOIN condition to
2556 ** the "failed_variation" SQL table.
2557 */
2558
2559 if (lastgvvfid == identifier)
2560 {
2561 ajStrDel(&transcriptstableid);
2562 ajStrDel(&translationallele);
2563 ajStrDel(&gvctset);
2564
2565 continue;
2566 }
2567 else
2568 lastgvvfid = identifier;
2569
2570 /*
2571 ** TODO: Ensembl Transcript and Ensembl Genetic Variation Variation
2572 ** Feature objects should be fetched from the database in bulk
2573 ** via AJAX Table fetch functions.
2574 ** TODO: The Perl implementation stores the Ensembl Genetic Variation
2575 ** Variation Feature identifier and loads the object from the SQL
2576 ** database on demand.
2577 */
2578
2579 ensTranscriptadaptorFetchByStableidentifier(
2580 tca,
2581 transcriptstableid,
2582 0,
2583 &transcript);
2584
2585 ensGvvariationfeatureadaptorFetchByIdentifier(
2586 gvvfa,
2587 identifier,
2588 &gvvf);
2589
2590 gvtv = ensGvtranscriptvariationNewIni(
2591 gvtva,
2592 identifier,
2593 transcript,
2594 gvvf,
2595 translationallele,
2596 gvctset,
2597 codingstart,
2598 codingend,
2599 transcriptstart,
2600 transcriptend,
2601 translationstart,
2602 translationend);
2603
2604 ajListPushAppend(gvtvs, (void *) gvtv);
2605
2606 ensGvvariationfeatureDel(&gvvf);
2607
2608 ensTranscriptDel(&transcript);
2609
2610 ajStrDel(&transcriptstableid);
2611 ajStrDel(&translationallele);
2612 ajStrDel(&gvctset);
2613 }
2614
2615 ajSqlrowiterDel(&sqli);
2616
2617 ensDatabaseadaptorSqlstatementDel(gvdba, &sqls);
2618
2619 return ajTrue;
2620 }
2621
2622
2623
2624
2625 /* @section constructors ******************************************************
2626 **
2627 ** All constructors return a new Ensembl Genetic Variation Transcript Variation
2628 ** Adaptor by pointer.
2629 ** It is the responsibility of the user to first destroy any previous
2630 ** Genetic Variation Transcript Variation Adaptor.
2631 ** The target pointer does not need to be initialised to NULL,
2632 ** but it is good programming practice to do so anyway.
2633 **
2634 ** @fdata [EnsPGvtranscriptvariationadaptor]
2635 **
2636 ** @nam3rule New Constructor
2637 **
2638 ** @argrule New dba [EnsPDatabaseadaptor] Ensembl Database Adaptor
2639 **
2640 ** @valrule * [EnsPGvtranscriptvariationadaptor]
2641 ** Ensembl Genetic Variation Transcript Variation Adaptor or NULL
2642 **
2643 ** @fcategory new
2644 ******************************************************************************/
2645
2646
2647
2648
2649 /* @func ensGvtranscriptvariationadaptorNew ***********************************
2650 **
2651 ** Default constructor for an
2652 ** Ensembl Genetic Variation Transcript Variation Adaptor.
2653 **
2654 ** Ensembl Object Adaptors are singleton objects in the sense that a single
2655 ** instance of an Ensembl Object Adaptor connected to a particular database is
2656 ** sufficient to instantiate any number of Ensembl Objects from the database.
2657 ** Each Ensembl Object will have a weak reference to the Object Adaptor that
2658 ** instantiated it. Therefore, Ensembl Object Adaptors should not be
2659 ** instantiated directly, but rather obtained from the Ensembl Registry,
2660 ** which will in turn call this function if neccessary.
2661 **
2662 ** @see ensRegistryGetDatabaseadaptor
2663 ** @see ensRegistryGetGvtranscriptvariationadaptor
2664 **
2665 ** @cc Bio::EnsEMBL::Variation::DBSQL::TranscriptVariationAdaptor::new
2666 ** @param [u] dba [EnsPDatabaseadaptor] Ensembl Database Adaptor
2667 **
2668 ** @return [EnsPGvtranscriptvariationadaptor]
2669 ** Ensembl Genetic Variation Transcript Variation Adaptor or NULL
2670 **
2671 ** @release 6.4.0
2672 ** @@
2673 ******************************************************************************/
2674
ensGvtranscriptvariationadaptorNew(EnsPDatabaseadaptor dba)2675 EnsPGvtranscriptvariationadaptor ensGvtranscriptvariationadaptorNew(
2676 EnsPDatabaseadaptor dba)
2677 {
2678 EnsPBaseadaptor ba = NULL;
2679
2680 EnsPGvtranscriptvariationadaptor gvtva = NULL;
2681
2682 if (!dba)
2683 return NULL;
2684
2685 if (ajDebugTest("ensGvtranscriptvariationadaptorNew"))
2686 ajDebug("ensGvtranscriptvariationadaptorNew\n"
2687 " dba %p\n",
2688 dba);
2689
2690 ba = ensBaseadaptorNew(
2691 dba,
2692 gvtranscriptvariationadaptorKTablenames,
2693 gvtranscriptvariationadaptorKColumnnames,
2694 gvtranscriptvariationadaptorKLeftjoins,
2695 gvtranscriptvariationadaptorKDefaultcondition,
2696 (const char *) NULL,
2697 &gvtranscriptvariationadaptorFetchAllbyStatement);
2698
2699 if (!ba)
2700 return NULL;
2701
2702 AJNEW0(gvtva);
2703
2704 gvtva->Adaptor = ensRegistryGetGvdatabaseadaptor(dba);
2705 gvtva->Baseadaptor = ba;
2706
2707 return gvtva;
2708 }
2709
2710
2711
2712
2713 /* @section destructors *******************************************************
2714 **
2715 ** Destruction destroys all internal data structures and frees the memory
2716 ** allocated for an Ensembl Genetic Variation Transcript Variation Adaptor
2717 ** object.
2718 **
2719 ** @fdata [EnsPGvtranscriptvariationadaptor]
2720 **
2721 ** @nam3rule Del Destroy (free) an
2722 ** Ensembl Genetic Variation Transcript Variation Adaptor
2723 **
2724 ** @argrule * Pgvtva [EnsPGvtranscriptvariationadaptor*]
2725 ** Ensembl Genetic Variation Transcript Variation Adaptor address
2726 **
2727 ** @valrule * [void]
2728 **
2729 ** @fcategory delete
2730 ******************************************************************************/
2731
2732
2733
2734
2735 /* @func ensGvtranscriptvariationadaptorDel ***********************************
2736 **
2737 ** Default destructor for an
2738 ** Ensembl Genetic Variation Transcript Variation Adaptor.
2739 **
2740 ** Ensembl Object Adaptors are singleton objects that are registered in the
2741 ** Ensembl Registry and weakly referenced by Ensembl Objects that have been
2742 ** instantiated by it. Therefore, Ensembl Object Adaptors should never be
2743 ** destroyed directly. Upon exit, the Ensembl Registry will call this function
2744 ** if required.
2745 **
2746 ** @param [d] Pgvtva [EnsPGvtranscriptvariationadaptor*]
2747 ** Ensembl Genetic Variation Transcript Variation Adaptor address
2748 **
2749 ** @return [void]
2750 **
2751 ** @release 6.4.0
2752 ** @@
2753 ******************************************************************************/
2754
ensGvtranscriptvariationadaptorDel(EnsPGvtranscriptvariationadaptor * Pgvtva)2755 void ensGvtranscriptvariationadaptorDel(
2756 EnsPGvtranscriptvariationadaptor *Pgvtva)
2757 {
2758 EnsPGvtranscriptvariationadaptor pthis = NULL;
2759
2760 if (!Pgvtva)
2761 return;
2762
2763 #if defined(AJ_DEBUG) && AJ_DEBUG >= 1
2764 if (ajDebugTest("ensGvtranscriptvariationadaptorDel"))
2765 ajDebug("ensGvtranscriptvariationadaptorDel\n"
2766 " *Pgvtva %p\n",
2767 *Pgvtva);
2768 #endif /* defined(AJ_DEBUG) && AJ_DEBUG >= 1 */
2769
2770 if (!(pthis = *Pgvtva))
2771 return;
2772
2773 ensBaseadaptorDel(&pthis->Baseadaptor);
2774
2775 ajMemFree((void **) Pgvtva);
2776
2777 return;
2778 }
2779
2780
2781
2782
2783 /* @section member retrieval **************************************************
2784 **
2785 ** Functions for returning members of an
2786 ** Ensembl Genetic Variation Transcript Variation Adaptor object.
2787 **
2788 ** @fdata [EnsPGvtranscriptvariationadaptor]
2789 **
2790 ** @nam3rule Get Return Ensembl Genetic Variation Transcript Variation Adaptor
2791 ** attribute(s)
2792 ** @nam4rule Baseadaptor
2793 ** Return the Ensembl Base Adaptor
2794 ** @nam4rule Databaseadaptor
2795 ** Return the Ensembl Database Adaptor
2796 ** @nam4rule Gvbaseadaptor
2797 ** Return the Ensembl Genetic Variation Base Adaptor
2798 ** @nam4rule Gvdatabaseadaptor
2799 ** Return the Ensembl Genetic Variation Database Adaptor
2800 **
2801 ** @argrule * gvtva [EnsPGvtranscriptvariationadaptor]
2802 ** Ensembl Genetic Variation Variation Adaptor
2803 **
2804 ** @valrule Baseadaptor [EnsPBaseadaptor]
2805 ** Ensembl Base Adaptor or NULL
2806 ** @valrule Databaseadaptor [EnsPDatabaseadaptor]
2807 ** Ensembl Database Adaptor or NULL
2808 ** @valrule Gvbaseadaptor [EnsPGvbaseadaptor]
2809 ** Ensembl Genetic Variation Base Adaptor or NULL
2810 ** @valrule Gvdatabaseadaptor [EnsPGvdatabaseadaptor]
2811 ** Ensembl Genetic Variation Database Adaptor or NULL
2812 **
2813 ** @fcategory use
2814 ******************************************************************************/
2815
2816
2817
2818
2819 /* @func ensGvtranscriptvariationadaptorGetBaseadaptor ************************
2820 **
2821 ** Get the Ensembl Base Adaptor member of an
2822 ** Ensembl Genetic Variation Transcript Variation Adaptor.
2823 **
2824 ** @param [u] gvtva [EnsPGvtranscriptvariationadaptor]
2825 ** Ensembl Genetic Variation Transcript Variation Adaptor
2826 **
2827 ** @return [EnsPBaseadaptor] Ensembl Base Adaptor or NULL
2828 **
2829 ** @release 6.5.0
2830 ** @@
2831 ******************************************************************************/
2832
ensGvtranscriptvariationadaptorGetBaseadaptor(EnsPGvtranscriptvariationadaptor gvtva)2833 EnsPBaseadaptor ensGvtranscriptvariationadaptorGetBaseadaptor(
2834 EnsPGvtranscriptvariationadaptor gvtva)
2835 {
2836 return ensGvbaseadaptorGetBaseadaptor(
2837 ensGvtranscriptvariationadaptorGetGvbaseadaptor(gvtva));
2838 }
2839
2840
2841
2842
2843 /* @func ensGvtranscriptvariationadaptorGetDatabaseadaptor ********************
2844 **
2845 ** Get the Ensembl Database Adaptor member of an
2846 ** Ensembl Genetic Variation Transcript Variation Adaptor.
2847 **
2848 ** @param [u] gvtva [EnsPGvtranscriptvariationadaptor]
2849 ** Ensembl Genetic Variation Transcript Variation Adaptor
2850 **
2851 ** @return [EnsPDatabaseadaptor] Ensembl Database Adaptor or NULL
2852 **
2853 ** @release 6.5.0
2854 ** @@
2855 ******************************************************************************/
2856
ensGvtranscriptvariationadaptorGetDatabaseadaptor(EnsPGvtranscriptvariationadaptor gvtva)2857 EnsPDatabaseadaptor ensGvtranscriptvariationadaptorGetDatabaseadaptor(
2858 EnsPGvtranscriptvariationadaptor gvtva)
2859 {
2860 return ensGvbaseadaptorGetDatabaseadaptor(
2861 ensGvtranscriptvariationadaptorGetGvbaseadaptor(gvtva));
2862 }
2863
2864
2865
2866
2867 /* @func ensGvtranscriptvariationadaptorGetGvbaseadaptor **********************
2868 **
2869 ** Get the Ensembl Genetic Variation Base Adaptor member of an
2870 ** Ensembl Genetic Variation Transcript Variation Adaptor.
2871 **
2872 ** @param [u] gvtva [EnsPGvtranscriptvariationadaptor]
2873 ** Ensembl Genetic Variation Transcript Variation Adaptor
2874 **
2875 ** @return [EnsPGvbaseadaptor] Ensembl Genetic Variation Base Adaptor or NULL
2876 **
2877 ** @release 6.5.0
2878 ** @@
2879 ******************************************************************************/
2880
ensGvtranscriptvariationadaptorGetGvbaseadaptor(EnsPGvtranscriptvariationadaptor gvtva)2881 EnsPGvbaseadaptor ensGvtranscriptvariationadaptorGetGvbaseadaptor(
2882 EnsPGvtranscriptvariationadaptor gvtva)
2883 {
2884 return gvtva;
2885 }
2886
2887
2888
2889
2890 /* @func ensGvtranscriptvariationadaptorGetGvdatabaseadaptor ******************
2891 **
2892 ** Get the Ensembl Genetic Variation Database Adaptor member of an
2893 ** Ensembl Genetic Variation Transcript Variation Adaptor.
2894 **
2895 ** @param [u] gvtva [EnsPGvtranscriptvariationadaptor]
2896 ** Ensembl Genetic Variation Transcript Variation Adaptor
2897 **
2898 ** @return [EnsPGvdatabaseadaptor]
2899 ** Ensembl Genetic Variation Database Adaptor or NULL
2900 **
2901 ** @release 6.5.0
2902 ** @@
2903 ******************************************************************************/
2904
ensGvtranscriptvariationadaptorGetGvdatabaseadaptor(EnsPGvtranscriptvariationadaptor gvtva)2905 EnsPGvdatabaseadaptor ensGvtranscriptvariationadaptorGetGvdatabaseadaptor(
2906 EnsPGvtranscriptvariationadaptor gvtva)
2907 {
2908 return ensGvbaseadaptorGetGvdatabaseadaptor(
2909 ensGvtranscriptvariationadaptorGetGvbaseadaptor(gvtva));
2910 }
2911