]> git.donarmstrong.com Git - mothur.git/commitdiff
trim.seqs fix
authorwestcott <westcott>
Mon, 7 Mar 2011 22:30:47 +0000 (22:30 +0000)
committerwestcott <westcott>
Mon, 7 Mar 2011 22:30:47 +0000 (22:30 +0000)
qualityscores.cpp

index 719bf3dc6c44cd3880ebc8b1c4d3dc352a448ee1..e26a4ffc74c54cba4c8a7ac9da4f0ba3a6ed6e5c 100644 (file)
@@ -31,7 +31,7 @@ QualityScores::QualityScores(ifstream& qFile){
                
                m = MothurOut::getInstance();
                
-               /*seqName = "";
+               seqName = "";
                int score;
                
                qFile >> seqName; 
@@ -44,9 +44,12 @@ QualityScores::QualityScores(ifstream& qFile){
                else{
                        seqName = seqName.substr(1);
                }
-               cout << seqName << endl;        
+               cout << seqName << endl;
                string qScoreString = m->getline(qFile);
-               cout << qScoreString << endl;   
+               while(qFile.peek() != '>' && qFile.peek() != EOF){
+                       qScoreString += ' ' + m->getline(qFile);
+               }
+               
                istringstream qScoreStringStream(qScoreString);
                int count = 0;
                while(!qScoreStringStream.eof()){
@@ -56,49 +59,51 @@ QualityScores::QualityScores(ifstream& qFile){
                        cout << score << '\t' << count << endl;
                        count++;
                }
-               qScores.pop_back();*/
-               string scores = "";
-               
-               while(!qFile.eof()){    
-                       
-                       qFile >> seqName; 
-                       
-                       //get name
-                       if (seqName.length() != 0) { 
-                               seqName = seqName.substr(1);
-                               while (!qFile.eof())    {       
-                                       char c = qFile.get(); 
-                                       //gobble junk on line
-                                       if (c == 10 || c == 13){        break;  }
-                               } 
-                               m->gobble(qFile);
-                       }
-                       
-                       //get scores
-                       while(qFile){
-                               char letter=qFile.get();
-                               if((letter == '>')){    qFile.putback(letter);  break;  }
-                               else if (isprint(letter)) { scores += letter; }
-                       }
-                       
-                       m->gobble(qFile);
-                       
-                       break;
-               }
-               
-               //convert scores string to qScores
-               istringstream qScoreStringStream(scores);
-               
-               int score;
-               while(!qScoreStringStream.eof()){
-                       
-                       if (m->control_pressed) { break; }
-                       
-                       qScoreStringStream >> score;
-                       qScores.push_back(score);
-               }
-               
                qScores.pop_back();
+               
+//             string scores = "";
+//             
+//             while(!qFile.eof()){    
+//                     
+//                     qFile >> seqName; 
+//                     
+//                     //get name
+//                     if (seqName.length() != 0) { 
+//                             seqName = seqName.substr(1);
+//                             while (!qFile.eof())    {       
+//                                     char c = qFile.get(); 
+//                                     //gobble junk on line
+//                                     if (c == 10 || c == 13){        break;  }
+//                             } 
+//                             m->gobble(qFile);
+//                     }
+//                     
+//                     //get scores
+//                     while(qFile){
+//                             char letter=qFile.get();
+//                             if((letter == '>')){    qFile.putback(letter);  break;  }
+//                             else if (isprint(letter)) { scores += letter; }
+//                     }
+//                     cout << scores << endl;
+//                     m->gobble(qFile);
+//                     
+//                     break;
+//             }
+//             
+//             //convert scores string to qScores
+//             istringstream qScoreStringStream(scores);
+//             
+//             int score;
+//             while(!qScoreStringStream.eof()){
+//                     
+//                     if (m->control_pressed) { break; }
+//                     
+//                     qScoreStringStream >> score;
+//                     qScores.push_back(score);
+//             }
+//             
+//             qScores.pop_back();
+
                seqLength = qScores.size();
                
                
@@ -115,6 +120,7 @@ QualityScores::QualityScores(ifstream& qFile){
 string QualityScores::getName(){
        
        try {
+               cout << qScores.size() << '\t';
                return seqName;
        }
        catch(exception& e) {
@@ -150,6 +156,8 @@ void QualityScores::trimQScores(int start, int end){
        try {
                vector<int> hold;
                
+               cout << seqName << '\t' << qScores.size() << '\t' << start << '\t' << end << endl;
+               
                if(end == -1){          
                        hold = vector<int>(qScores.begin()+start, qScores.end());
                        qScores = hold;