+ if (abort == true) { if (calledHelp) { return 0; } return 2; }
+
+ string fastaReverseFileName;
+
+ if(fastaFileName != ""){
+ ifstream inFASTA;
+ m->openInputFile(fastaFileName, inFASTA);
+
+ ofstream outFASTA;
+ fastaReverseFileName = outputDir + m->getRootName(m->getSimpleName(fastaFileName)) + "rc" + m->getExtension(fastaFileName);
+ m->openOutputFile(fastaReverseFileName, outFASTA);
+
+ while(!inFASTA.eof()){
+ if (m->control_pressed) { inFASTA.close(); outFASTA.close(); remove(fastaReverseFileName.c_str()); 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 qualReverseFileName = outputDir + m->getRootName(m->getSimpleName(qualFileName)) + "rc" + m->getExtension(qualFileName);
+ m->openOutputFile(qualReverseFileName, outQual);
+
+ while(!inQual.eof()){
+ if (m->control_pressed) { inQual.close(); outQual.close(); remove(qualReverseFileName.c_str()); 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) { remove(qualReverseFileName.c_str()); remove(fastaReverseFileName.c_str()); return 0; }