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