]> git.donarmstrong.com Git - mothur.git/blobdiff - sequence.cpp
changes while setting up test files
[mothur.git] / sequence.cpp
index 04f97a8c2e22e0ccef1f8322ec23be45615b6380..6aa0c0f8ae2c46a32edde8a67276ccb966bc0003 100644 (file)
@@ -74,14 +74,14 @@ Sequence::Sequence(istringstream& fastaString){
                                }
                        }
                        
-                       while (!fastaString.eof())      {       char c = fastaString.get();  if (c == 10 || c == 13){   break;  }       } // get rest of line if there's any crap there
+                       while (!fastaString.eof())      {       char c = fastaString.get();  if (c == 10 || c == 13){ break;    }       } // get rest of line if there's any crap there
                        
                        sequence = getSequenceString(fastaString);              
                        setAligned(sequence);   
                        //setUnaligned removes any gap characters for us                                                
                        setUnaligned(sequence);         
                }else{ m->mothurOut("Error in reading your fastafile, at position " + toString(fastaString.tellg()) + ". Blank name."); m->mothurOutEndLine(); }
-
+               
        }
        catch(exception& e) {
                m->errorOut(e, "Sequence", "Sequence");
@@ -116,13 +116,14 @@ Sequence::Sequence(istringstream& fastaString, string JustUnaligned){
                                }
                        }
                        
-                       while (!fastaString.eof())      {       char c = fastaString.get();  if (c == 10 || c == 13){   break;  }       } // get rest of line if there's any crap there
+                       while (!fastaString.eof())      {       char c = fastaString.get();  if (c == 10 || c == 13){ break;    }       } // get rest of line if there's any crap there
                        
                        sequence = getSequenceString(fastaString);              
                        
                        //setUnaligned removes any gap characters for us                                                
                        setUnaligned(sequence);         
                }else{ m->mothurOut("Error in reading your fastafile, at position " + toString(fastaString.tellg()) + ". Blank name."); m->mothurOutEndLine(); }
+               
        }
        catch(exception& e) {
                m->errorOut(e, "Sequence", "Sequence");
@@ -138,7 +139,7 @@ Sequence::Sequence(ifstream& fastaFile){
                m = MothurOut::getInstance();
                initialize();
                fastaFile >> name;
-
+               
                if (name.length() != 0) { 
                
                        name = name.substr(1); 
@@ -160,15 +161,15 @@ Sequence::Sequence(ifstream& fastaFile){
                        }
                        
                        //read real sequence
-                       while (!fastaFile.eof())        {       char c = fastaFile.get(); if (c == 10 || c == 13){      break;  }       } // get rest of line if there's any crap there
+                       while (!fastaFile.eof())        {       char c = fastaFile.get(); if (c == 10 || c == 13){  break;      }       } // get rest of line if there's any crap there
                        
                        sequence = getSequenceString(fastaFile);                
-               
+       
                        setAligned(sequence);   
                        //setUnaligned removes any gap characters for us                                                
                        setUnaligned(sequence); 
                }else{ m->mothurOut("Error in reading your fastafile, at position " + toString(fastaFile.tellg()) + ". Blank name."); m->mothurOutEndLine(); }
-               
+
        }
        catch(exception& e) {
                m->errorOut(e, "Sequence", "Sequence");
@@ -202,14 +203,14 @@ Sequence::Sequence(ifstream& fastaFile, string JustUnaligned){
                        }
                        
                        //read real sequence
-                       while (!fastaFile.eof())        {       char c = fastaFile.get(); if (c == 10 || c == 13){      break;  }       } // get rest of line if there's any crap there
+                       while (!fastaFile.eof())        {       char c = fastaFile.get(); if (c == 10 || c == 13){       break; }       } // get rest of line if there's any crap there
                        
                        sequence = getSequenceString(fastaFile);                
                        
                        //setUnaligned removes any gap characters for us                                                
                        setUnaligned(sequence); 
                }else{ m->mothurOut("Error in reading your fastafile, at position " + toString(fastaFile.tellg()) + ". Blank name."); m->mothurOutEndLine(); }
-
+               
        }
        catch(exception& e) {
                m->errorOut(e, "Sequence", "Sequence");
@@ -426,6 +427,13 @@ string Sequence::getAligned(){
        else                            {  return aligned;  }
 }
 
+//********************************************************************************************************************
+
+string Sequence::getInlineSeq(){
+       return name + '\t' + aligned;   
+}
+
+
 //********************************************************************************************************************
 
 string Sequence::getPairwise(){
@@ -513,7 +521,7 @@ int Sequence::getLongHomoPolymer(){
 //********************************************************************************************************************
 
 int Sequence::getStartPos(){
-       if(endPos == -1){
+       if(startPos == -1){
                for(int j = 0; j < alignmentLength; j++) {
                        if(aligned[j] != '.'){
                                startPos = j + 1;
@@ -528,6 +536,17 @@ int Sequence::getStartPos(){
 
 //********************************************************************************************************************
 
+void Sequence::padToPos(int start){
+
+       for(int j = startPos-1; j < start-1; j++) {
+               aligned[j] = '.';
+       }
+       startPos = start;
+
+}
+
+//********************************************************************************************************************
+
 int Sequence::getEndPos(){
        if(endPos == -1){
                for(int j=alignmentLength-1;j>=0;j--){
@@ -544,6 +563,17 @@ int Sequence::getEndPos(){
 
 //********************************************************************************************************************
 
+void Sequence::padFromPos(int end){
+       
+       for(int j = end; j < endPos; j++) {
+               aligned[j] = '.';
+       }
+       endPos = end;
+       
+}
+
+//********************************************************************************************************************
+
 bool Sequence::getIsAligned(){
        return isAligned;
 }
@@ -564,4 +594,16 @@ void Sequence::reverseComplement(){
        aligned = temp;
        
 }
-/**************************************************************************************************/
+
+//********************************************************************************************************************
+
+void Sequence::trim(int length){
+       
+       if(numBases > length){
+               unaligned = unaligned.substr(0,length);
+               numBases = length;
+       }
+       
+}
+
+///**************************************************************************************************/