#define GROUPMAP_H
/*
* groupmap.h
- * Dotur
+ * Mothur
*
* Created by Sarah Westcott on 12/1/08.
* Copyright 2008 Schloss Lab UMASS Amherst. All rights reserved.
class GroupMap {
public:
- GroupMap() {};
+ GroupMap() { m = MothurOut::getInstance(); }
GroupMap(string);
~GroupMap();
int readMap();
+ int readDesignMap();
+ int readDesignMap(string);
int getNumGroups();
bool isValidGroup(string); //return true if string is a valid group
string getGroup(string);
void setGroup(string, string);
- vector<string> namesOfGroups;
+ vector<string> getNamesOfGroups() {
+ sort(namesOfGroups.begin(), namesOfGroups.end());
+ groupIndex.clear();
+ for (int i = 0; i < namesOfGroups.size(); i++) { groupIndex[namesOfGroups[i]] = i; }
+ return namesOfGroups;
+ }
+ void setNamesOfGroups(vector<string> sn) { namesOfGroups = sn; }
map<string, int> groupIndex; //groupname, vectorIndex in namesOfGroups. - used by collectdisplays and libshuff commands.
int getNumSeqs() { return groupmap.size(); }
vector<string> getNamesSeqs();
+ vector<string> getNamesSeqs(vector<string>); //get names of seqs belonging to a group or set of groups
int getNumSeqs(string); //return the number of seqs in a given group
private:
+ vector<string> namesOfGroups;
MothurOut* m;
ifstream fileHandle;
string groupFileName;