+ if (abort == true) { if (calledHelp) { return 0; } return 2; }
+
+ string fastaReverseFileName;
+
+ if(fastaFileName != ""){
+ ifstream inFASTA;
+ m->openInputFile(fastaFileName, inFASTA);
+
+ ofstream outFASTA;
+ string tempOutputDir = outputDir;
+ if (outputDir == "") { tempOutputDir += m->hasPath(fastaFileName); } //if user entered a file with a path then preserve it
+ fastaReverseFileName = tempOutputDir + m->getRootName(m->getSimpleName(fastaFileName)) + "rc" + m->getExtension(fastaFileName);
+ m->openOutputFile(fastaReverseFileName, outFASTA);
+
+ while(!inFASTA.eof()){
+ if (m->control_pressed) { inFASTA.close(); outFASTA.close(); m->mothurRemove(fastaReverseFileName); return 0; }
+
+ Sequence currSeq(inFASTA); m->gobble(inFASTA);
+ if (currSeq.getName() != "") {
+ currSeq.reverseComplement();
+ currSeq.printSequence(outFASTA);
+ }
+ }
+ inFASTA.close();
+ outFASTA.close();
+ outputNames.push_back(fastaReverseFileName); outputTypes["fasta"].push_back(fastaReverseFileName);
+ }
+
+ string qualReverseFileName;
+
+ if(qualFileName != ""){
+ QualityScores currQual;
+
+ ifstream inQual;
+ m->openInputFile(qualFileName, inQual);
+
+ ofstream outQual;
+ string tempOutputDir = outputDir;
+ if (outputDir == "") { tempOutputDir += m->hasPath(qualFileName); } //if user entered a file with a path then preserve it
+ string qualReverseFileName = tempOutputDir + m->getRootName(m->getSimpleName(qualFileName)) + "rc" + m->getExtension(qualFileName);
+ m->openOutputFile(qualReverseFileName, outQual);
+
+ while(!inQual.eof()){
+ if (m->control_pressed) { inQual.close(); outQual.close(); m->mothurRemove(qualReverseFileName); return 0; }
+ currQual = QualityScores(inQual); m->gobble(inQual);
+ currQual.flipQScores();
+ currQual.printQScores(outQual);
+ }
+ inQual.close();
+ outQual.close();
+ outputNames.push_back(qualReverseFileName); outputTypes["qfile"].push_back(qualReverseFileName);
+ }
+
+ if (m->control_pressed) { m->mothurRemove(qualReverseFileName); m->mothurRemove(fastaReverseFileName); return 0; }
+
+ //set fasta file as new current fastafile
+ string current = "";
+ itTypes = outputTypes.find("fasta");
+ if (itTypes != outputTypes.end()) {
+ if ((itTypes->second).size() != 0) { current = (itTypes->second)[0]; m->setFastaFile(current); }
+ }