]> git.donarmstrong.com Git - mothur.git/blobdiff - seqerrorcommand.cpp
pat's mods to seqerrorcommand
[mothur.git] / seqerrorcommand.cpp
index 1fe60e8954acd14dc1a1e02d37c0d8bd987cc1c0..e48d50794d15b4b77dae6a15134d9bec54c8a911 100644 (file)
@@ -298,7 +298,7 @@ SeqErrorCommand::SeqErrorCommand(string option)  {
                        }
             else{
                 if(reportFileName != ""){
-                    m->mothurOut("we are ignoring the report file if your sequences are not aligned.  we will check that the sequences in your fasta and and qual fileare the same length.");
+                    m->mothurOut("we are ignoring the report file if your sequences are not aligned.  we will check that the sequences in your fasta and and qual file are the same length.");
                     m->mothurOutEndLine();
                 }
             }
@@ -673,10 +673,10 @@ int SeqErrorCommand::driver(string filename, string qFileName, string rFileName,
                int numSeqs = 0;
                
                map<string, int>::iterator it;
-               qScoreErrorMap['m'].assign(41, 0);
-               qScoreErrorMap['s'].assign(41, 0);
-               qScoreErrorMap['i'].assign(41, 0);
-               qScoreErrorMap['a'].assign(41, 0);
+               qScoreErrorMap['m'].assign(101, 0);
+               qScoreErrorMap['s'].assign(101, 0);
+               qScoreErrorMap['i'].assign(101, 0);
+               qScoreErrorMap['a'].assign(101, 0);
                
                errorForward['m'].assign(maxLength,0);
                errorForward['s'].assign(maxLength,0);
@@ -712,8 +712,8 @@ int SeqErrorCommand::driver(string filename, string qFileName, string rFileName,
                        qualForwardMap.resize(maxLength);
                        qualReverseMap.resize(maxLength);
                        for(int i=0;i<maxLength;i++){
-                               qualForwardMap[i].assign(41,0);
-                               qualReverseMap[i].assign(41,0);
+                               qualForwardMap[i].assign(101,0);
+                               qualReverseMap[i].assign(101,0);
                        }       
                }
                else if(qFileName != "" && !aligned){
@@ -724,8 +724,8 @@ int SeqErrorCommand::driver(string filename, string qFileName, string rFileName,
                        qualForwardMap.resize(maxLength);
                        qualReverseMap.resize(maxLength);
                        for(int i=0;i<maxLength;i++){
-                               qualForwardMap[i].assign(41,0);
-                               qualReverseMap[i].assign(41,0);
+                               qualForwardMap[i].assign(101,0);
+                               qualReverseMap[i].assign(101,0);
                        }       
         }
         
@@ -759,7 +759,10 @@ int SeqErrorCommand::driver(string filename, string qFileName, string rFileName,
             int numParentSeqs = -1;
             int closestRefIndex = -1;
                         
-            numParentSeqs = chimeraTest.analyzeQuery(query.getName(), query.getAligned(), outChimeraReport);
+            string querySeq = query.getAligned();
+            if (!aligned) {  querySeq = query.getUnaligned();  }
+            
+            numParentSeqs = chimeraTest.analyzeQuery(query.getName(), querySeq, outChimeraReport);
             
             closestRefIndex = chimeraTest.getClosestRefIndex();
             
@@ -1268,7 +1271,7 @@ void SeqErrorCommand::printErrorQuality(map<char, vector<int> > qScoreErrorMap){
                outputNames.push_back(errorQualityFileName);  outputTypes["errorquality"].push_back(errorQualityFileName);
 
                errorQualityFile << "qscore\tmatches\tsubstitutions\tinsertions\tambiguous" << endl;
-               for(int i=0;i<41;i++){
+               for(int i=0;i<101;i++){
                        errorQualityFile << i << '\t' << qScoreErrorMap['m'][i] << '\t' << qScoreErrorMap['s'][i] << '\t' << qScoreErrorMap['i'][i] << '\t'<< qScoreErrorMap['a'][i] << endl;
                }
                errorQualityFile.close();
@@ -1378,6 +1381,10 @@ int SeqErrorCommand::setLines(string filename, string qfilename, string rfilenam
                                        
                                        string sname = "";  nameStream >> sname;
                                        sname = sname.substr(1);
+                    
+                    for (int i = 0; i < sname.length(); i++) {
+                        if (sname[i] == ':') { sname[i] = '_'; m->changedSeqNames = true; }
+                    }
                                        
                                        map<string, int>::iterator it = firstSeqNames.find(sname);
                                        
@@ -1438,6 +1445,10 @@ int SeqErrorCommand::setLines(string filename, string qfilename, string rfilenam
                     istringstream nameStream(input);
                     string sname = "";  nameStream >> sname;
                     
+                    for (int i = 0; i < sname.length(); i++) {
+                        if (sname[i] == ':') { sname[i] = '_'; m->changedSeqNames = true; }
+                    }
+                    
                     map<string, int>::iterator it = firstSeqNamesReport.find(sname);
                 
                     if(it != firstSeqNamesReport.end()) { //this is the start of a new chunk