00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021
00022
00023
00024 #ifndef COMERON95_H
00025 #define COMERON95_H
00026
00116 #include <Sequence/SeqEnums.hpp>
00117 #include <boost/utility.hpp>
00118
00119 namespace Sequence
00120 {
00121 class Seq;
00122 class Sites;
00123 class RedundancyCom95;
00124 class WeightingScheme2;
00125 class WeightingScheme3;
00126 class Comeron95 : boost::noncopyable
00127 {
00128 private:
00129 bool __2wasNULL,__3wasNULL,__red_was_NULL;
00130 WeightingScheme2 *weights2;
00131 WeightingScheme3 *weights3;
00132 int valid, maxhits, genetic_code, weighting_scheme;
00133
00134 double Qs, Bs, Qa, Ba, A2S, A4, As, A2V, A0, Aa;
00135 double q0, q2S, q2V, q4, p0, p2S, p2V, p4;
00136 Sites *sites;
00137 const RedundancyCom95 *sitesObj;
00138 void diverge (const Sequence::Seq * seq1, const Sequence::Seq * seq2,
00139 WeightingScheme2 *_weights2,
00140 WeightingScheme3 *_weights3);
00141 void omega (const Sequence::Seq * seqobj1, const Sequence::Seq * seqobj2);
00142 double Ka, Ks;
00143 public:
00144 explicit Comeron95 (const Sequence::Seq * seqa,
00145 const Sequence::Seq * seqb,
00146 int max = 3,
00147 const Sequence::RedundancyCom95 * genetic_code_redundancy = NULL,
00148 GeneticCodes code = UNIVERSAL,
00149 WeightingScheme2 *weights2 = NULL,
00150 WeightingScheme3 *weights3 = NULL)throw (Sequence::SeqException);
00151 ~Comeron95 (void);
00152 double ka (void) const;
00153 double ks (void) const;
00154 double ratio (void) const;
00155 double P0 (void) const;
00156 double P2S (void) const;
00157 double P2V (void) const;
00158 double P4 (void) const;
00159 double Q0 (void) const;
00160 double Q2S (void) const;
00161 double Q2V (void) const;
00162 double Q4 (void) const;
00163 double as (void) const;
00164 double aa (void) const;
00165 double bs (void) const;
00166 double ba (void) const;
00167 double L0 (void) const;
00168 double L2S (void) const;
00169 double L2V (void) const;
00170 double L4 (void) const;
00171 };
00172 }
00173
00174 #endif