-
Notifications
You must be signed in to change notification settings - Fork 1
/
Copy pathContentType.H
88 lines (82 loc) · 2.16 KB
/
ContentType.H
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
/*
ContentType.H
Copyright (C)2013 William H. Majoros ([email protected]).
This is OPEN SOURCE SOFTWARE governed by the Gnu General Public
License (GPL) version 3, as described at www.opensource.org.
*/
#ifndef INCL_ContentType_H
#define INCL_ContentType_H
#include <iostream>
#include "BOOM/String.H"
#include "BOOM/GffExon.H"
#include "BOOM/Strand.H"
#include "BOOM/Set.H"
#include "SignalType.H"
using namespace BOOM;
enum ContentType
{
UNKNOWN_CONTENT_FORWARD,
UNKNOWN_CONTENT_REVERSE,
INTERGENIC,
INITIAL_EXON,
INTERNAL_EXON,
FINAL_EXON,
SINGLE_EXON,
INTRON,
UTR5_INTRON,
UTR3_INTRON,
UTR5_INITIAL,
UTR5_INTERNAL,
UTR5_FINAL,
UTR5_SINGLE, // also serves as general 5' UTR marker
UTR3_INITIAL,
UTR3_INTERNAL,
UTR3_FINAL,
UTR3_SINGLE, // also serves as general 3' UTR marker
NEG_INITIAL_EXON,
NEG_INTERNAL_EXON,
NEG_FINAL_EXON,
NEG_SINGLE_EXON,
NEG_INTRON,
NEG_UTR5_INTRON,
NEG_UTR3_INTRON,
NEG_UTR5_INITIAL,
NEG_UTR5_INTERNAL,
NEG_UTR5_FINAL,
NEG_UTR5_SINGLE,
NEG_UTR3_INITIAL,
NEG_UTR3_INTERNAL,
NEG_UTR3_FINAL,
NEG_UTR3_SINGLE
};
static const int NumContentTypes=33;
const int FIVE_PRIME_UTR=UTR5_SINGLE;
const int THREE_PRIME_UTR=UTR3_SINGLE;
const int NEG_FIVE_PRIME_UTR=NEG_UTR5_SINGLE;
const int NEG_THREE_PRIME_UTR=NEG_UTR3_SINGLE;
ContentType reverseComplement(ContentType);
ContentType dropStrand(ContentType);
istream &operator>>(istream &,ContentType &);
ostream &operator<<(ostream &,const ContentType &);
Strand getStrand(ContentType);
BOOM::String contentTypeToString(ContentType);
BOOM::String contentTypeNiceString(ContentType);
ContentType stringToContentType(const BOOM::String &);
bool isCoding(ContentType);
bool isIntron(ContentType);
bool isIntergenic(ContentType);
bool isUTR(ContentType);
bool isUTR5(ContentType);
bool isUTR3(ContentType);
bool isUTR5intron(ContentType);
bool isUTR3intron(ContentType);
Set<SignalType> leftSignals(ContentType);
Set<SignalType> rightSignals(ContentType);
ContentType exonTypeToContentType(ExonType,Strand);
ExonType contentTypeToExonType(ContentType);
class ContentTypeInitializer
{
static ContentTypeInitializer initializer;
ContentTypeInitializer();
};
#endif