14#include "exonmodel.hh"
17enum ExonType {UNKNOWN_EXON = -1,
19 singleGene, initial_0, initial_1, initial_2, internal_0, internal_1, internal_2, terminal_exon,
21 rsingleGene, rinitial_exon, rinternal_0, rinternal_1, rinternal_2, rterminal_0, rterminal_1, rterminal_2
24bool isPlusExon(ExonType t);
25bool hasStopCodon(ExonType t);
27extern const int exonTypeReadingFrames[EXON_TYPES-1];
28extern const char* stateExonTypeIdentifiers[EXON_TYPES-1];
31ExonType toExonType(
const char* str);
60 upScore = other->upScore;
61 downScore = other->downScore;
70 int frame()
const {
return exonTypeReadingFrames[type]; }
71 int frame(
int p)
const {
return isPlusExon(type) ?
72 mod3(frame() - (end + 1) + p) :
73 mod3(frame() + end + 1 - p);
75 Double getUpScore()
const {
return upScore;}
76 Double getDownScore()
const {
return downScore;}
77 double getScore()
const {
return score;}
78 void setUpScore(
Double s) {upScore = s;}
79 void setDownScore(
Double s) {downScore = s;}
80 void setScore(
double s) {score = s;}
82 int getFirstCodingBase();
83 int getLastCodingBase();
85 int len() {
return end-begin+1;}
86 ExonType getExonType();
88 StateType getStateType();
90 int_fast64_t getKey();
91 bool correctType(
const char* dna,
int dnalen);
92 friend ostream& operator<<(ostream& strm,
const ExonCandidate &ec);
105void findExonCands(map<int_fast64_t, ExonCandidate*> &ecs, map<int_fast64_t, ExonCandidate*> &addECs,
const char *dna,
int minLen=1,
double assmotifqthresh=0.15,
double assqthresh=0.3,
double dssqthresh=0.7);
112ExonCandidate* create(int_fast64_t key,
const char* dna,
int dnalen);
Generation of exon candidates (=possible exons)
Definition exoncand.hh:45
This class implements a double object with a very large range.
Definition lldouble.hh:31