From: westcott Date: Tue, 15 Jun 2010 13:50:04 +0000 (+0000) Subject: changed how we count sequences in a fastafile to allow for '>' in sequence names X-Git-Url: https://git.donarmstrong.com/?p=mothur.git;a=commitdiff_plain;h=cd985cf388dcc4c7de8251339206aec5f7e12f1e changed how we count sequences in a fastafile to allow for '>' in sequence names --- diff --git a/aligncommand.cpp b/aligncommand.cpp index c5407ca..1f93068 100644 --- a/aligncommand.cpp +++ b/aligncommand.cpp @@ -373,7 +373,7 @@ int AlignCommand::execute(){ if(processors == 1){ ifstream inFASTA; openInputFile(candidateFileNames[s], inFASTA); - numFastaSeqs=count(istreambuf_iterator(inFASTA),istreambuf_iterator(), '>'); + 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(inFASTA),istreambuf_iterator(), '>'); + getNumSeqs(inFASTA, numFastaSeqs); inFASTA.close(); lines.push_back(new linePair(0, numFastaSeqs)); diff --git a/chimeraccodecommand.cpp b/chimeraccodecommand.cpp index 45f7f54..280fd8f 100644 --- a/chimeraccodecommand.cpp +++ b/chimeraccodecommand.cpp @@ -304,7 +304,7 @@ int ChimeraCcodeCommand::execute(){ if(processors == 1){ ifstream inFASTA; openInputFile(fastafile, inFASTA); - numSeqs=count(istreambuf_iterator(inFASTA),istreambuf_iterator(), '>'); + 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(inFASTA),istreambuf_iterator(), '>'); + getNumSeqs(inFASTA, numSeqs); inFASTA.close(); lines.push_back(new linePair(0, numSeqs)); diff --git a/chimeracheckcommand.cpp b/chimeracheckcommand.cpp index 66cf12f..4947dc9 100644 --- a/chimeracheckcommand.cpp +++ b/chimeracheckcommand.cpp @@ -245,7 +245,7 @@ int ChimeraCheckCommand::execute(){ if(processors == 1){ ifstream inFASTA; openInputFile(fastafile, inFASTA); - numSeqs=count(istreambuf_iterator(inFASTA),istreambuf_iterator(), '>'); + 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(inFASTA),istreambuf_iterator(), '>'); + getNumSeqs(inFASTA, numSeqs); inFASTA.close(); lines.push_back(new linePair(0, numSeqs)); diff --git a/chimerapintailcommand.cpp b/chimerapintailcommand.cpp index 6cef8bb..c43dd38 100644 --- a/chimerapintailcommand.cpp +++ b/chimerapintailcommand.cpp @@ -312,7 +312,7 @@ int ChimeraPintailCommand::execute(){ if(processors == 1){ ifstream inFASTA; openInputFile(fastafile, inFASTA); - numSeqs=count(istreambuf_iterator(inFASTA),istreambuf_iterator(), '>'); + 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(inFASTA),istreambuf_iterator(), '>'); + getNumSeqs(inFASTA, numSeqs); inFASTA.close(); lines.push_back(new linePair(0, numSeqs)); diff --git a/chimeraslayercommand.cpp b/chimeraslayercommand.cpp index 8a0e287..004cfb0 100644 --- a/chimeraslayercommand.cpp +++ b/chimeraslayercommand.cpp @@ -329,7 +329,7 @@ int ChimeraSlayerCommand::execute(){ if(processors == 1){ ifstream inFASTA; openInputFile(fastafile, inFASTA); - numSeqs=count(istreambuf_iterator(inFASTA),istreambuf_iterator(), '>'); + 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(inFASTA),istreambuf_iterator(), '>'); + getNumSeqs(inFASTA, numSeqs); inFASTA.close(); lines.push_back(new linePair(0, numSeqs)); diff --git a/classify.cpp b/classify.cpp index 7f45126..22728eb 100644 --- a/classify.cpp +++ b/classify.cpp @@ -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(inFASTA),istreambuf_iterator(), '>'); + getNumSeqs(inFASTA, numSeqs); inFASTA.close(); } diff --git a/classifyotucommand.cpp b/classifyotucommand.cpp index 94a60d4..aac1637 100644 --- a/classifyotucommand.cpp +++ b/classifyotucommand.cpp @@ -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"); diff --git a/classifyseqscommand.cpp b/classifyseqscommand.cpp index e5c0494..6c5d827 100644 --- a/classifyseqscommand.cpp +++ b/classifyseqscommand.cpp @@ -470,7 +470,7 @@ int ClassifySeqsCommand::execute(){ if(processors == 1){ ifstream inFASTA; openInputFile(fastaFileNames[s], inFASTA); - numFastaSeqs=count(istreambuf_iterator(inFASTA),istreambuf_iterator(), '>'); + 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(inFASTA),istreambuf_iterator(), '>'); + getNumSeqs(inFASTA, numFastaSeqs); inFASTA.close(); lines.push_back(new linePair(0, numFastaSeqs)); diff --git a/filterseqscommand.cpp b/filterseqscommand.cpp index 1c70b3e..a6290a6 100644 --- a/filterseqscommand.cpp +++ b/filterseqscommand.cpp @@ -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(inFASTA),istreambuf_iterator(), '>'); + 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(inFASTA),istreambuf_iterator(), '>'); + 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(inFASTA),istreambuf_iterator(), '>'); + 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(inFASTA),istreambuf_iterator(), '>'); + getNumSeqs(inFASTA, numFastaSeqs); inFASTA.close(); numSeqs += numFastaSeqs; diff --git a/mothur.h b/mothur.h index 5d12977..a7946fd 100644 --- 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 group){ diff --git a/screenseqscommand.cpp b/screenseqscommand.cpp index 878a06b..66e0cb0 100644 --- a/screenseqscommand.cpp +++ b/screenseqscommand.cpp @@ -295,7 +295,7 @@ int ScreenSeqsCommand::execute(){ if(processors == 1){ ifstream inFASTA; openInputFile(fastafile, inFASTA); - numFastaSeqs=count(istreambuf_iterator(inFASTA),istreambuf_iterator(), '>'); + 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(inFASTA),istreambuf_iterator(), '>'); + getNumSeqs(inFASTA, numFastaSeqs); inFASTA.close(); lines.push_back(new linePair(0, numFastaSeqs)); diff --git a/seqsummarycommand.cpp b/seqsummarycommand.cpp index d613391..7226f9d 100644 --- a/seqsummarycommand.cpp +++ b/seqsummarycommand.cpp @@ -228,9 +228,9 @@ int SeqSummaryCommand::execute(){ if(processors == 1){ ifstream inFASTA; openInputFile(fastafile, inFASTA); - numSeqs=count(istreambuf_iterator(inFASTA),istreambuf_iterator(), '>'); - 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(inFASTA),istreambuf_iterator(), '>'); + getNumSeqs(inFASTA, numSeqs); inFASTA.close(); lines.push_back(new linePair(0, numSeqs)); diff --git a/trimseqscommand.cpp b/trimseqscommand.cpp index 71e5c92..3fd3ad1 100644 --- a/trimseqscommand.cpp +++ b/trimseqscommand.cpp @@ -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(inFASTA),istreambuf_iterator(), '>'); + 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(inFASTA),istreambuf_iterator(), '>'); + getNumSeqs(inFASTA, numSeqs); inFASTA.close(); lines.push_back(new linePair(0, numSeqs));