]> git.donarmstrong.com Git - mothur.git/blobdiff - fastamap.cpp
added screen.seqs command - pds
[mothur.git] / fastamap.cpp
index ebfecedb860bafb6385ca2f75a3752702354498b..0848363be7cf4099cbb50cb58a3d11623eecc78f 100644 (file)
@@ -21,29 +21,39 @@ void FastaMap::readFastaFile(ifstream& in) {
                //read through file
                while (!in.eof()) {
                        in >> line;
-                       if (line != "") {
-                               if (isalnum(line.at(0))) {  //if it's a sequence line
-                                       sequence += line;
-                               }
-                               else{
-                               //input sequence info into map
-                                       seqmap[name] = sequence;  
-                                       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.
-                                               data[sequence].groupnumber = 1;
-                                               data[sequence].names = name;
-                                       }else { // its a duplicate.
-                                               data[sequence].names += "," + name;
-                                               data[sequence].groupnumber++;
-                                       }
-                                       name = (line.substr(1, (line.npos))); //The line you just read is a new name so rip off '>'
-                                       sequence = "";
+
+                       if (line[0] != '>') {  //if it's a sequence line
+                               sequence += line;
+                       }
+                       else{
+                       //input sequence info into map
+                               seqmap[name] = sequence;  
+
+                               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.
+                                       data[sequence].groupnumber = 1;
+                                       data[sequence].names = name;
+                               }else { // its a duplicate.
+                                       data[sequence].names += "," + name;
+                                       data[sequence].groupnumber++;
                                }
+                               name = (line.substr(1, (line.npos))); //The line you just read is a new name so rip off '>'
+                               sequence = "";
                        }
+                       
                        gobble(in);
                }
-       
+               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.
+                       data[sequence].groupnumber = 1;
+                       data[sequence].names = name;
+               }else { // its a duplicate.
+                       data[sequence].names += "," + name;
+                       data[sequence].groupnumber++;
+               }
+               
                        
        }
        catch(exception& e) {