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
|
#ifndef CLUSTERCLASSIC_H
#define CLUSTERCLASSIC_H
#include "mothurout.h"
#include "listvector.hpp"
#include "rabundvector.hpp"
#include "nameassignment.hpp"
#include "counttable.h"
/*
* clusterclassic.h
* Mothur
*
* Created by westcott on 10/29/10.
* Copyright 2010 Schloss Lab. All rights reserved.
*
*/
class ClusterClassic {
public:
ClusterClassic(float, string, bool);
int readPhylipFile(string, NameAssignment*);
int readPhylipFile(string, CountTable*);
void update(double&);
double getSmallDist() { return smallDist; }
int getNSeqs() { return nseqs; }
ListVector* getListVector() { return list; }
RAbundVector* getRAbundVector() { return rabund; }
string getTag() { return tag; }
void setMapWanted(bool m);
map<string, int> getSeqtoBin() { return seq2Bin; }
private:
double getSmallCell();
void clusterBins();
void clusterNames();
void updateMap();
void print();
struct colDist {
int col;
int row;
float dist;
colDist(int r, int c, double d) : row(r), col(c), dist(d) {}
};
RAbundVector* rabund;
ListVector* list;
vector< vector<float> > dMatrix;
//vector<colDist> rowSmallDists;
int smallRow;
int smallCol, nseqs;
double smallDist;
bool mapWanted, sim;
double cutoff, aboveCutoff;
map<string, int> seq2Bin;
string method, tag;
MothurOut* m;
};
#endif
|