]> git.donarmstrong.com Git - mothur.git/commitdiff
changed how we count sequences in a fastafile to allow for '>' in sequence names
authorwestcott <westcott>
Tue, 15 Jun 2010 13:50:04 +0000 (13:50 +0000)
committerwestcott <westcott>
Tue, 15 Jun 2010 13:50:04 +0000 (13:50 +0000)
13 files changed:
aligncommand.cpp
chimeraccodecommand.cpp
chimeracheckcommand.cpp
chimerapintailcommand.cpp
chimeraslayercommand.cpp
classify.cpp
classifyotucommand.cpp
classifyseqscommand.cpp
filterseqscommand.cpp
mothur.h
screenseqscommand.cpp
seqsummarycommand.cpp
trimseqscommand.cpp

index c5407ca345a2ff7bdec2ed47089f7e10d1df1fc3..1f93068d6451d701d6587b7b913bcc0e0856fd90 100644 (file)
@@ -373,7 +373,7 @@ int AlignCommand::execute(){
                        if(processors == 1){
                                ifstream inFASTA;
                                openInputFile(candidateFileNames[s], inFASTA);
-                               numFastaSeqs=count(istreambuf_iterator<char>(inFASTA),istreambuf_iterator<char>(), '>');
+                               getNumSeqs(inFASTA, numFastaSeqs);
                                inFASTA.close();
                                
                                lines.push_back(new linePair(0, numFastaSeqs));
@@ -472,7 +472,7 @@ int AlignCommand::execute(){
        #else
                        ifstream inFASTA;
                        openInputFile(candidateFileNames[s], inFASTA);
-                       numFastaSeqs=count(istreambuf_iterator<char>(inFASTA),istreambuf_iterator<char>(), '>');
+                       getNumSeqs(inFASTA, numFastaSeqs);
                        inFASTA.close();
                        
                        lines.push_back(new linePair(0, numFastaSeqs));
index 45f7f545f78d3d239592ccc60c12b2561393e869..280fd8f0acf60c045f732ac07172476c7f9ab29e 100644 (file)
@@ -304,7 +304,7 @@ int ChimeraCcodeCommand::execute(){
                        if(processors == 1){
                                ifstream inFASTA;
                                openInputFile(fastafile, inFASTA);
-                               numSeqs=count(istreambuf_iterator<char>(inFASTA),istreambuf_iterator<char>(), '>');
+                               getNumSeqs(inFASTA, numSeqs);
                                inFASTA.close();
                                
                                lines.push_back(new linePair(0, numSeqs));
@@ -393,7 +393,7 @@ int ChimeraCcodeCommand::execute(){
                #else
                        ifstream inFASTA;
                        openInputFile(fastafile, inFASTA);
-                       numSeqs=count(istreambuf_iterator<char>(inFASTA),istreambuf_iterator<char>(), '>');
+                       getNumSeqs(inFASTA, numSeqs);
                        inFASTA.close();
                        lines.push_back(new linePair(0, numSeqs));
                        
index 66cf12fb8768bcc9c4995256544761e2d8baf820..4947dc97939b6b147718968bb70e544ca262cc00 100644 (file)
@@ -245,7 +245,7 @@ int ChimeraCheckCommand::execute(){
                        if(processors == 1){
                                ifstream inFASTA;
                                openInputFile(fastafile, inFASTA);
-                               numSeqs=count(istreambuf_iterator<char>(inFASTA),istreambuf_iterator<char>(), '>');
+                               getNumSeqs(inFASTA, numSeqs);
                                inFASTA.close();
                                
                                lines.push_back(new linePair(0, numSeqs));
@@ -309,7 +309,7 @@ int ChimeraCheckCommand::execute(){
                #else
                        ifstream inFASTA;
                        openInputFile(fastafile, inFASTA);
-                       numSeqs=count(istreambuf_iterator<char>(inFASTA),istreambuf_iterator<char>(), '>');
+                       getNumSeqs(inFASTA, numSeqs);
                        inFASTA.close();
                        lines.push_back(new linePair(0, numSeqs));
                        
index 6cef8bbec330c3d345d332f772970ff33a988f79..c43dd38046f53fcf7422cfa920374365d374ec30 100644 (file)
@@ -312,7 +312,7 @@ int ChimeraPintailCommand::execute(){
                        if(processors == 1){
                                ifstream inFASTA;
                                openInputFile(fastafile, inFASTA);
-                               numSeqs=count(istreambuf_iterator<char>(inFASTA),istreambuf_iterator<char>(), '>');
+                               getNumSeqs(inFASTA, numSeqs);
                                inFASTA.close();
                                
                                lines.push_back(new linePair(0, numSeqs));
@@ -399,7 +399,7 @@ int ChimeraPintailCommand::execute(){
                #else
                        ifstream inFASTA;
                        openInputFile(fastafile, inFASTA);
-                       numSeqs=count(istreambuf_iterator<char>(inFASTA),istreambuf_iterator<char>(), '>');
+                       getNumSeqs(inFASTA, numSeqs);
                        inFASTA.close();
                        lines.push_back(new linePair(0, numSeqs));
                        
index 8a0e28777f58484f903c7c3f10f39ebe8d9e3ff7..004cfb0c9e1124cd5ad78c542c6df3815bd4541d 100644 (file)
@@ -329,7 +329,7 @@ int ChimeraSlayerCommand::execute(){
                        if(processors == 1){
                                ifstream inFASTA;
                                openInputFile(fastafile, inFASTA);
-                               numSeqs=count(istreambuf_iterator<char>(inFASTA),istreambuf_iterator<char>(), '>');
+                               getNumSeqs(inFASTA, numSeqs);
                                inFASTA.close();
                                
                                lines.push_back(new linePair(0, numSeqs));
@@ -417,7 +417,7 @@ int ChimeraSlayerCommand::execute(){
                #else
                        ifstream inFASTA;
                        openInputFile(fastafile, inFASTA);
-                       numSeqs=count(istreambuf_iterator<char>(inFASTA),istreambuf_iterator<char>(), '>');
+                       getNumSeqs(inFASTA, numSeqs);
                        inFASTA.close();
                        lines.push_back(new linePair(0, numSeqs));
                        
index 7f451261550a949b3a1cbb7ab72fd374122597bb..22728eb7a3ee52a57926e5457a33d73c9a1d7d07 100644 (file)
@@ -97,7 +97,7 @@ void Classify::generateDatabaseAndNames(string tfile, string tempFile, string me
                if (method == "suffix") {
                        ifstream inFASTA;
                        openInputFile(tempFile, inFASTA);
-                       numSeqs = count(istreambuf_iterator<char>(inFASTA),istreambuf_iterator<char>(), '>');
+                       getNumSeqs(inFASTA, numSeqs);
                        inFASTA.close();
                }
 
index 94a60d4db9ff198423a401b74cbb7e78e9c010a5..aac16371f1251fc4c7b78639427f95896aa4c223 100644 (file)
@@ -114,7 +114,7 @@ ClassifyOtuCommand::ClassifyOtuCommand(string option)  {
 
 void ClassifyOtuCommand::help(){
        try {
-               m->mothurOut("The classify.otu command parameters are list, taxonomy, name, cutoff, and label.  The taxonomy and list parameters are required.\n");
+               m->mothurOut("The classify.otu command parameters are list, taxonomy, name, cutoff, label and probs.  The taxonomy and list parameters are required.\n");
                m->mothurOut("The name parameter allows you add a names file with your taxonomy file.\n");
                m->mothurOut("The label parameter allows you to select what distance levels you would like a output files created for, and is separated by dashes.\n");
                m->mothurOut("The default value for label is all labels in your inputfile.\n");
index e5c04949905d7edd6ba5ec45f4fd5a8214053471..6c5d827d6553eac7f8ca8696091dd3ab7c87e4f3 100644 (file)
@@ -470,7 +470,7 @@ int ClassifySeqsCommand::execute(){
                        if(processors == 1){
                                ifstream inFASTA;
                                openInputFile(fastaFileNames[s], inFASTA);
-                               numFastaSeqs=count(istreambuf_iterator<char>(inFASTA),istreambuf_iterator<char>(), '>');
+                               getNumSeqs(inFASTA, numFastaSeqs);
                                inFASTA.close();
                                
                                lines.push_back(new linePair(0, numFastaSeqs));
@@ -520,7 +520,7 @@ int ClassifySeqsCommand::execute(){
        #else
                        ifstream inFASTA;
                        openInputFile(fastaFileNames[s], inFASTA);
-                       numFastaSeqs=count(istreambuf_iterator<char>(inFASTA),istreambuf_iterator<char>(), '>');
+                       getNumSeqs(inFASTA, numFastaSeqs);
                        inFASTA.close();
                        
                        lines.push_back(new linePair(0, numFastaSeqs));
index 1c70b3e493fd2c3bf407746f8f97ddb276b801ea..a6290a6afe55a28001e5e229e518a7c03c6a1c28 100644 (file)
@@ -336,8 +336,9 @@ int FilterSeqsCommand::filterSequences() {
                #if defined (__APPLE__) || (__MACH__) || (linux) || (__linux)
                                if(processors == 1){
                                        ifstream inFASTA;
+                                       int numFastaSeqs;
                                        openInputFile(fastafileNames[s], inFASTA);
-                                       int numFastaSeqs=count(istreambuf_iterator<char>(inFASTA),istreambuf_iterator<char>(), '>');
+                                       getNumSeqs(inFASTA, numFastaSeqs);
                                        inFASTA.close();
                                        
                                        lines.push_back(new linePair(0, numFastaSeqs));
@@ -361,8 +362,9 @@ int FilterSeqsCommand::filterSequences() {
                                if (m->control_pressed) {  return 1; }
                #else
                                ifstream inFASTA;
+                               int numFastaSeqs;
                                openInputFile(fastafileNames[s], inFASTA);
-                               int numFastaSeqs=count(istreambuf_iterator<char>(inFASTA),istreambuf_iterator<char>(), '>');
+                               getNumSeqs(inFASTA, numFastaSeqs);
                                inFASTA.close();
                                        
                                lines.push_back(new linePair(0, numFastaSeqs));
@@ -625,8 +627,9 @@ string FilterSeqsCommand::createFilter() {
                #if defined (__APPLE__) || (__MACH__) || (linux) || (__linux)
                                if(processors == 1){
                                        ifstream inFASTA;
+                                       int numFastaSeqs;
                                        openInputFile(fastafileNames[s], inFASTA);
-                                       int numFastaSeqs=count(istreambuf_iterator<char>(inFASTA),istreambuf_iterator<char>(), '>');
+                                       getNumSeqs(inFASTA, numFastaSeqs);
                                        inFASTA.close();
                                        
                                        numSeqs += numFastaSeqs;
@@ -642,8 +645,9 @@ string FilterSeqsCommand::createFilter() {
                                if (m->control_pressed) {  return filterString; }
                #else
                                ifstream inFASTA;
+                               int numFastaSeqs;
                                openInputFile(fastafileNames[s], inFASTA);
-                               int numFastaSeqs=count(istreambuf_iterator<char>(inFASTA),istreambuf_iterator<char>(), '>');
+                               getNumSeqs(inFASTA, numFastaSeqs);
                                inFASTA.close();
                                
                                numSeqs += numFastaSeqs;
index 5d12977383c4d2eb0457cc88190f078a98a5755e..a7946fde756a68a5eeeabec8aa63e72ec53d1df7 100644 (file)
--- a/mothur.h
+++ b/mothur.h
@@ -632,6 +632,19 @@ inline int getNumSeqs(ifstream& file){
        return numSeqs;
 
 }
+/***********************************************************************/
+inline void getNumSeqs(ifstream& file, int& numSeqs){
+       
+       string input;
+       numSeqs = 0;
+       while(!file.eof()){
+               input = getline(file);
+               if (input.length() != 0) {
+                       if(input[0] == '>'){ numSeqs++; }
+               }
+       }
+}
+
 /***********************************************************************/
 
 inline bool inVector(string member, vector<string> group){
index 878a06bfb3dd91262eccce5197c54e5324e46452..66e0cb07e066c27724480f1f1c6c523ff755e8d6 100644 (file)
@@ -295,7 +295,7 @@ int ScreenSeqsCommand::execute(){
                        if(processors == 1){
                                ifstream inFASTA;
                                openInputFile(fastafile, inFASTA);
-                               numFastaSeqs=count(istreambuf_iterator<char>(inFASTA),istreambuf_iterator<char>(), '>');
+                               getNumSeqs(inFASTA, numFastaSeqs);
                                inFASTA.close();
                                
                                lines.push_back(new linePair(0, numFastaSeqs));
@@ -369,7 +369,7 @@ int ScreenSeqsCommand::execute(){
        #else
                        ifstream inFASTA;
                        openInputFile(fastafile, inFASTA);
-                       numFastaSeqs=count(istreambuf_iterator<char>(inFASTA),istreambuf_iterator<char>(), '>');
+                       getNumSeqs(inFASTA, numFastaSeqs);
                        inFASTA.close();
                        
                        lines.push_back(new linePair(0, numFastaSeqs));
index d613391fb5e27da1d2d933e1b4b2375b69170a95..7226f9ddac16e61ebc2239ff4d868474b990ec25 100644 (file)
@@ -228,9 +228,9 @@ int SeqSummaryCommand::execute(){
                                if(processors == 1){
                                        ifstream inFASTA;
                                        openInputFile(fastafile, inFASTA);
-                                       numSeqs=count(istreambuf_iterator<char>(inFASTA),istreambuf_iterator<char>(), '>');
-                                       inFASTA.close();
-                       cout << numSeqs << endl;                
+                                       getNumSeqs(inFASTA, numSeqs);
+                                       inFASTA.close();        
+                                               
                                        lines.push_back(new linePair(0, numSeqs));
                                        
                                        driverCreateSummary(startPosition, endPosition, seqLength, ambigBases, longHomoPolymer, fastafile, summaryFile, lines[0]);
@@ -250,7 +250,7 @@ int SeqSummaryCommand::execute(){
                #else
                                ifstream inFASTA;
                                openInputFile(fastafile, inFASTA);
-                               numSeqs=count(istreambuf_iterator<char>(inFASTA),istreambuf_iterator<char>(), '>');
+                               getNumSeqs(inFASTA, numSeqs);
                                inFASTA.close();
                                
                                lines.push_back(new linePair(0, numSeqs));
index 71e5c9277af61fef9884f42b2c8e9d54a2796e12..3fd3ad1d8376125c5d2f85b6cf66078f0c083f2f 100644 (file)
@@ -224,8 +224,9 @@ int TrimSeqsCommand::execute(){
                #if defined (__APPLE__) || (__MACH__) || (linux) || (__linux)
                                if(processors == 1){
                                        ifstream inFASTA;
+                                       int numSeqs;
                                        openInputFile(fastaFile, inFASTA);
-                                       int numSeqs=count(istreambuf_iterator<char>(inFASTA),istreambuf_iterator<char>(), '>');
+                                       getNumSeqs(inFASTA, numSeqs);
                                        inFASTA.close();
                                        
                                        lines.push_back(new linePair(0, numSeqs));
@@ -266,8 +267,9 @@ int TrimSeqsCommand::execute(){
                                if (m->control_pressed) {  return 0; }
                #else
                                ifstream inFASTA;
+                               int numSeqs;
                                openInputFile(fastaFile, inFASTA);
-                               int numSeqs=count(istreambuf_iterator<char>(inFASTA),istreambuf_iterator<char>(), '>');
+                               getNumSeqs(inFASTA, numSeqs);
                                inFASTA.close();
                                
                                lines.push_back(new linePair(0, numSeqs));