]> git.donarmstrong.com Git - mothur.git/blobdiff - fastamap.cpp
changes while testing
[mothur.git] / fastamap.cpp
index 95d3f3cfe34397f603aecca3dc62bd65dc38c634..bf55493faece21cbd6c0043ac89149826c83c166 100644 (file)
@@ -19,7 +19,9 @@ void FastaMap::readFastaFile(string inFileName) {
                string name, sequence, line;
                sequence = "";
                string temp;
-
+               map<string, string>::iterator itName;
+               
+               
                while(!in.eof()){
                        if (m->control_pressed) { break; }
                        
@@ -30,7 +32,10 @@ void FastaMap::readFastaFile(string inFileName) {
                                if(currSeq.getIsAligned())      {       sequence = currSeq.getAligned();        }
                                else                                            {       sequence = currSeq.getUnaligned();      }
                                
-                               seqmap[name] = sequence;  
+                               itName = seqmap.find(name);
+                               if (itName == seqmap.end()) { seqmap[name] = sequence;  }
+                               else { m->mothurOut("You already have a sequence named " + name + ", sequence names must be unique, please correct."); m->mothurOutEndLine(); }
+                               
                                map<string,group>::iterator it = data.find(sequence);
                                if (it == data.end()) {         //it's unique.
                                        data[sequence].groupname = name;  //group name will be the name of the first duplicate sequence found.
@@ -59,11 +64,13 @@ void FastaMap::readFastaFile(string inFastaFile, string oldNameFileName){ //prin
        m->openInputFile(oldNameFileName, oldNameFile);
        
        map<string,string> oldNameMap;
+       map<string, string>::iterator itName;
        string name, list;
        while(!oldNameFile.eof()){
                if (m->control_pressed) { break; }
                
-               oldNameFile >> name >> list;
+               oldNameFile >> name; m->gobble(oldNameFile);
+               oldNameFile >> list;
                oldNameMap[name] = list;
                m->gobble(oldNameFile);
        }
@@ -82,6 +89,10 @@ void FastaMap::readFastaFile(string inFastaFile, string oldNameFileName){ //prin
                        if(currSeq.getIsAligned())      {       sequence = currSeq.getAligned();        }
                        else                                            {       sequence = currSeq.getUnaligned();      }
                        
+                       itName = seqmap.find(name);
+                       if (itName == seqmap.end()) { seqmap[name] = sequence;  }
+                       else { m->mothurOut("You already have a sequence named " + name + ", sequence names must be unique, please correct."); m->mothurOutEndLine(); }
+                       
                        seqmap[name] = sequence;  
                        map<string,group>::iterator it = data.find(sequence);
                        if (it == data.end()) {         //it's unique.