27 #ifndef _GLIBCXX_IOSTREAM
30 #ifndef _GLIBCXX_VECTOR
36 #ifndef _GLIBCXX_CMATH
39 #ifndef _GLIBCXX_STRING
46 #include <eigen/Eigen/Eigen>
53 using Eigen::VectorXd;
54 using Eigen::VectorXi;
55 using Eigen::MatrixXd;
85 vector<string> alphabet;
90 map<string, int> alphabet_map;
102 MatrixXd JointEntropy;
106 MatrixXd MutualInformation;
113 MatrixXd MutualInformationP;
122 void initAlphabet(vector<string> alph);
135 VectorXd computeMeanMutualInformationVector();
136 double computeOveralMeanMutualInformation();
140 bool isValid(
string & key1);
148 MatrixXd computeMutualInformation(
VecVecType & seq);
152 MatrixXd computeMutualInformationP(
VecVecType & seq);
156 VectorXi computeClusters(list<MITuple> mituples,
size_t size,
double threshold);
161 list<MITuple> compute_mituples(MatrixXd mutualInformation);
169 MatrixXd getJointEntropy();
170 VectorXi getClusters();
175 Cma(vector<string> & alph,
int seq_number);
180 #error Cma.h included twice
static double getEntropy(double **E, double m, int l)
vector< vector< string > > VecVecType
vector< map< int, int > > MapVecType
vector< MapVecType > MapMatrixType