X-Git-Url: https://git.donarmstrong.com/?p=mothur.git;a=blobdiff_plain;f=counttable.h;h=51d0b4544bc73c7e832826bad702028f0143a549;hp=ffc08167682bf8aa9f1a4a42267a90d666376250;hb=d1c97b8c04bb75faca1e76ffad60b37a4d789d3d;hpb=d70a1c2d70c5a516e74880709e3b48cfc1ce0321 diff --git a/counttable.h b/counttable.h index ffc0816..51d0b45 100644 --- a/counttable.h +++ b/counttable.h @@ -37,29 +37,56 @@ #include "mothurout.h" +#include "listvector.hpp" +#include "groupmap.h" class CountTable { public: - CountTable() { m = MothurOut::getInstance(); hasGroups = false; total = 0; } + CountTable() { m = MothurOut::getInstance(); hasGroups = false; total = 0; uniques = 0; } ~CountTable() {} - int readTable(string); + //reads and creates smart enough to eliminate groups with zero counts + int createTable(set&, map&, set&); //seqNames, seqName->group, groupNames + int createTable(string, string, bool); //namefile, groupfile, createGroup + int readTable(string, bool); + + int printTable(string); + int printHeaders(ofstream&); + int printSeq(ofstream&, string); + bool testGroups(string file); //used to check if file has group data without reading it. + int copy(CountTable*); bool hasGroupInfo() { return hasGroups; } int getNumGroups() { return groups.size(); } vector getNamesOfGroups() { return groups; } //returns group names, if no group info vector is blank. + int addGroup(string); + int removeGroup(string); + + int renameSeq(string, string); //used to change name of sequence for use with trees + int setAbund(string, string, int); //set abundance number of seqs for that group for that seq + int push_back(string); //add a sequence + int push_back(string, int); //add a sequence + int push_back(string, vector); //add a sequence with group info + int remove(string); //remove seq + int get(string); //returns unique sequence index for reading distance matrices like NameAssignment + int size() { return indexNameMap.size(); } + vector getGroups(string); //returns vector of groups represented by this sequences vector getGroupCounts(string); //returns group counts for a seq passed in, if no group info is in file vector is blank. Order is the same as the groups returned by getGroups function. int getGroupCount(string, string); //returns number of seqs for that group for that seq int getGroupCount(string); // returns total seqs for that group - int getNumSeqs(string); //returns total seqs for that seq + int getNumSeqs(string); //returns total seqs for that seq, 0 if not found int getNumSeqs() { return total; } //return total number of seqs int getNumUniqueSeqs() { return uniques; } //return number of unique/representative seqs int getGroupIndex(string); //returns index in getGroupCounts vector of specific group + vector getNamesOfSeqs(); + vector getNamesOfSeqs(string); int mergeCounts(string, string); //combines counts for 2 seqs, saving under the first name passed in. + ListVector getListVector(); + map getNameMap(); private: string filename;