]> git.donarmstrong.com Git - mothur.git/blobdiff - treemap.cpp
made read.tree not require a groupfile, if one is not given all seqs are assumed...
[mothur.git] / treemap.cpp
index e472570895414a4ec535e10c5f02bee10dfea982..52a90031d380fedddd275bd5ebbb6a3f8600964c 100644 (file)
@@ -13,7 +13,7 @@
 
  TreeMap::TreeMap(string filename) {
        groupFileName = filename;
-       openInputFile(filename, fileHandle);
+       m->openInputFile(filename, fileHandle);
 }
 
 /************************************************************/
@@ -26,10 +26,10 @@ void TreeMap::readMap() {
                while(fileHandle){
                        fileHandle >> seqName;                  //read from first column
                        fileHandle >> seqGroup;                 //read from second column
-                       
+
                        namesOfSeqs.push_back(seqName);
                        setNamesOfGroups(seqGroup);
-                                               
+                                       
                        treemap[seqName].groupname = seqGroup;  //store data in map
                        
                        it2 = seqsPerGroup.find(seqGroup);
@@ -39,17 +39,32 @@ void TreeMap::readMap() {
                                seqsPerGroup[seqGroup]++;
                        }
 
-                       gobble(fileHandle);
+                       m->gobble(fileHandle);
                }
                fileHandle.close();
 }
 /************************************************************/
+void TreeMap::addSeq(string seqName, string seqGroup) {
+       
+               namesOfSeqs.push_back(seqName);
+               setNamesOfGroups(seqGroup);
+                                       
+               treemap[seqName].groupname = seqGroup;  //store data in map
+                       
+               it2 = seqsPerGroup.find(seqGroup);
+               if (it2 == seqsPerGroup.end()) { //if it's a new group
+                       seqsPerGroup[seqGroup] = 1;
+               }else {//it's a group we already have
+                       seqsPerGroup[seqGroup]++;
+               }
+}
+/************************************************************/
 void TreeMap::removeSeq(string seqName) {
        
        //erase name from namesOfSeqs
        for (int i = 0; i < namesOfSeqs.size(); i++) {
                if (namesOfSeqs[i] == seqName)  {
-                       namesOfSeqs.erase (namesOfSeqs.begin()+i);
+                       namesOfSeqs.erase(namesOfSeqs.begin()+i);
                        break;
                }
        }
@@ -61,8 +76,6 @@ void TreeMap::removeSeq(string seqName) {
        //remove seq from treemap
        it = treemap.find(seqName);
        treemap.erase(it);
-       
-
 }
 /************************************************************/
 
@@ -137,7 +150,7 @@ bool TreeMap::isValidGroup(string groupname) {
                return false;
        }
        catch(exception& e) {
-               errorOut(e, "TreeMap", "isValidGroup");
+               m->errorOut(e, "TreeMap", "isValidGroup");
                exit(1);
        }
 }
@@ -151,7 +164,7 @@ void TreeMap::print(ostream& output){
                }
        }
        catch(exception& e) {
-               errorOut(e, "TreeMap", "print");
+               m->errorOut(e, "TreeMap", "print");
                exit(1);
        }
 }
@@ -175,7 +188,7 @@ void TreeMap::makeSim(GroupMap* groupmap) {
                
        }
        catch(exception& e) {
-               errorOut(e, "TreeMap", "makeSim");
+               m->errorOut(e, "TreeMap", "makeSim");
                exit(1);
        }
 }
@@ -201,7 +214,7 @@ void TreeMap::makeSim(ListVector* list) {
                
        }
        catch(exception& e) {
-               errorOut(e, "TreeMap", "makeSim");
+               m->errorOut(e, "TreeMap", "makeSim");
                exit(1);
        }
 }