38 OrthoExon(int_fast64_t k,
size_t numSpecies);
42 StateType getStateType()
const;
44 double getOmega()
const {
return omega;}
45 double getEomega()
const {
return Eomega;}
46 double getVarOmega()
const {
return VarOmega;}
47 double getLeftExtOmega()
const {
return leftBoundaryExtOmega;}
48 double getRightExtOmega()
const {
return rightBoundaryExtOmega;}
49 double getLeftIntOmega()
const {
return leftBoundaryIntOmega;}
50 double getRightIntOmega()
const {
return rightBoundaryIntOmega;}
51 double getClamsaProb()
const {
return probClamsa;}
52 double getClamsaScore()
const {
53 if (probClamsa < 0.0 || probClamsa > 1.0)
55 else if (probClamsa == 0.0) {
57 }
else if (probClamsa == 1.0) {
60 return log(probClamsa/(1.0-probClamsa));
63 double getSubst()
const {
return subst; }
64 double getConsScore()
const {
return cons;}
65 double getLeftConsScore()
const {
return leftCons;}
66 double getRightConsScore()
const {
return rightCons;}
67 double getDiversity()
const {
return diversity;}
68 size_t getContainment()
const {
return containment;}
69 bool hasOmega()
const {
return Eomega >= 0;}
70 bool hasVarOmega()
const {
return VarOmega >= 0;}
71 bool hasConservation()
const {
return cons >= 0;}
72 bool hasContainment()
const {
return containment >= 0;}
73 bool hasDiversity()
const {
return diversity >= 0;}
74 bit_vector getBV()
const {
return bv;}
80 vector<int> getRFC(vector<int> offsets)
const {
82 for (
size_t s = 0; s < orthoex.size(); s++){
83 if (orthoex[s] == NULL)
86 rfc.push_back((offsets[s] + orthoex[s]->getFirstCodingBase()) % 3);
92 int getAliStart()
const {
return (key>>22);}
93 int getAliLen()
const {
int aliStart=getAliStart();
int n=key-(aliStart<<22);
return (n>>7);}
94 int getAliEnd()
const {
return getAliStart() + getAliLen();}
95 int getStartInWindow(
int s)
const {
return firstAlignedPos[s];}
96 int getEndInWindow(
int s)
const {
return lastAlignedPos[s];}
97 bool exonExists(
int pos)
const;
98 bool isUnaligned(
int i)
const {
return labels[i] == 3;}
99 bool isAbsent(
int i)
const {
return labels[i] == 2;}
100 void setPresent(bit_vector v);
101 void setAbsent(bit_vector v);
102 void setOmega(
double o){omega=o;}
103 void setOmega(vector<double>* llo,
CodonEvo* codonevo,
bool oeStart);
104 void storeOmega(
double currOmega,
double currVarOmega);
107 void storeClamsa(
double currClamsa);
108 void setSubst(
int s){ subst=s;}
109 void setSubst(
int subs,
bool oeStart);
110 void setConsScore(
double c){cons=c;}
111 void setLeftConsScore(
double c){leftCons=c;}
112 void setRightConsScore(
double c){rightCons=c;}
113 void setDiversity(
double d){diversity=d;}
114 void setContainment(
int c) { containment = c; }
116 void setBV(bit_vector b){bv = b;}
117 string getPhyleticPattern()
const;
118 void setPhyleticPattern(map<
int, list<int> > &pp_init, map<
int, list<int> > &pp_opt);
119 vector<int> getRFC(vector<int> offsets);
120 double getLogRegScore()
const;
122 vector<ExonCandidate*> orthoex;
123 vector<Node*> orthonode;
124 vector<double> weights;
134 vector<int> firstAlignedPos;
135 vector<int> lastAlignedPos;
142 double leftBoundaryExtOmega;
143 double rightBoundaryExtOmega;
144 double leftBoundaryIntOmega;
145 double rightBoundaryIntOmega;
148 double leftBoundaryExtClamsa;
149 double rightBoundaryExtClamsa;
150 double leftBoundaryIntClamsa;
151 double rightBoundaryIntClamsa;
153 list<vector<double> > loglikOmegaStarts;
154 list<vector<double> > loglikClamsaStarts;
157 int intervalCountClamsa;