outputNames.push_back(groupFile); outputTypes["group"].push_back(groupFile);
getOligos(fastaFileNames, qualFileNames);
}
- cout << fastaFileNames.size() << '\t' << qualFileNames.size() << endl;
+
vector<unsigned long int> fastaFilePos;
vector<unsigned long int> qFilePos;
#endif
if (m->control_pressed) { return 0; }
- cout << "done with driver " << endl;
+
for(int i=0;i<fastaFileNames.size();i++){
- cout << fastaFileNames[i] << endl;
- if (m->isBlank(fastaFileNames[i])) { cout << fastaFileNames[i] << " was blank" << endl; remove(fastaFileNames[i].c_str()); }
- else if (filesToRemove.count(fastaFileNames[i]) > 0) { cout << fastaFileNames[i] << " was on the remove list" << endl; remove(fastaFileNames[i].c_str()); }
+ if (m->isBlank(fastaFileNames[i])) { remove(fastaFileNames[i].c_str()); }
+ else if (filesToRemove.count(fastaFileNames[i]) > 0) { remove(fastaFileNames[i].c_str()); }
else {
ifstream inFASTA;
string seqName;
if(itCombo->second == i){ thisGroup = itCombo->first; combos.erase(itCombo); break; }
}
}else{ thisGroup = groupVector[i]; }
- cout << thisGroup << '\t' << i << '\t' << comboStarts << endl;
+
while(!inFASTA.eof()){
if(inFASTA.get() == '>'){
inFASTA >> seqName;
inFASTA.close();
}
}
- cout << "done with fastaFileNames " << endl;
+
if(qFileName != ""){
for(int i=0;i<qualFileNames.size();i++){
- cout << qualFileNames[i] << endl;
- if (m->isBlank(qualFileNames[i])) { cout << qualFileNames[i] << " was blank" << endl; remove(qualFileNames[i].c_str()); }
- else if (filesToRemove.count(qualFileNames[i]) > 0) { cout << qualFileNames[i] << " was on the remove list" << endl; remove(qualFileNames[i].c_str()); }
+ if (m->isBlank(qualFileNames[i])) { remove(qualFileNames[i].c_str()); }
+ else if (filesToRemove.count(qualFileNames[i]) > 0) { remove(qualFileNames[i].c_str()); }
else {
ifstream inQual;
string seqName;
}
}
}
- cout << "done with qualFileNames " << endl;
+
if (m->control_pressed) {
for (int i = 0; i < outputNames.size(); i++) { remove(outputNames[i].c_str()); }
}
ofstream outGroups;
- //vector<ofstream*> fastaFileNames;
- //vector<ofstream*> qualFileNames;
if (oligoFile != "") {
m->openOutputFile(groupFile, outGroups);
ifstream qFile;
if(qFileName != "") { m->openInputFile(qFileName, qFile); qFile.seekg(qline->start); }
+
+ for (int i = 0; i < fastaNames.size(); i++) { //clears old file
+ ofstream temp;
+ m->openOutputFile(fastaNames[i], temp);
+ temp.close();
+ }
+ for (int i = 0; i < qualNames.size(); i++) { //clears old file
+ ofstream temp;
+ m->openOutputFile(qualNames[i], temp);
+ temp.close();
+ }
+
+
bool done = false;
int count = 0;
}
}
- if (allFiles) { m->mothurOut("Done with allfile"); m->mothurOutEndLine(); }
+ if (allFiles) { m->mothurOut("Done with allfiles"); m->mothurOutEndLine(); }
}
return exitCommand;
//int indexPrimer = 0;
while(!inOligos.eof()){
- inOligos >> type;
+ inOligos >> type; m->gobble(inOligos);
if(type[0] == '#'){
while (!inOligos.eof()) { char c = inOligos.get(); if (c == 10 || c == 13){ break; } } // get rest of line if there's any crap there
map<string, int>::iterator itPrime = primers.find(oligo);
if (itPrime != primers.end()) { m->mothurOut("primer " + oligo + " is in your oligos file already."); m->mothurOutEndLine(); }
- primers[oligo]=index; index++;
- groupVector.push_back(group);
+ primers[oligo]=index; index++;
+ groupVector.push_back(group);
- if(allFiles){
- outFASTAVec.push_back((outputDir + m->getRootName(m->getSimpleName(fastaFile)) + group + ".fasta"));
- if(qFileName != ""){
- outQualVec.push_back((outputDir + m->getRootName(m->getSimpleName(qFileName)) + group + ".qual"));
- }
- if (group == "") { //if there is not a group for this primer, then this file will not get written to, but we add it to keep the indexes correct
- filesToRemove.insert((outputDir + m->getRootName(m->getSimpleName(fastaFile)) + group + ".fasta"));
+ if(allFiles){
+ outFASTAVec.push_back((outputDir + m->getRootName(m->getSimpleName(fastaFile)) + group + ".fasta"));
if(qFileName != ""){
- filesToRemove.insert((outputDir + m->getRootName(m->getSimpleName(qFileName)) + group + ".qual"));
+ outQualVec.push_back((outputDir + m->getRootName(m->getSimpleName(qFileName)) + group + ".qual"));
+ }
+ if (group == "") { //if there is not a group for this primer, then this file will not get written to, but we add it to keep the indexes correct
+ filesToRemove.insert((outputDir + m->getRootName(m->getSimpleName(fastaFile)) + group + ".fasta"));
+ if(qFileName != ""){
+ filesToRemove.insert((outputDir + m->getRootName(m->getSimpleName(qFileName)) + group + ".qual"));
+ }
+ }else {
+ outputNames.push_back((outputDir + m->getRootName(m->getSimpleName(fastaFile)) + group + ".fasta"));
+ outputTypes["fasta"].push_back((outputDir + m->getRootName(m->getSimpleName(fastaFile)) + group + ".fasta"));
+ if(qFileName != ""){
+ outputNames.push_back((outputDir + m->getRootName(m->getSimpleName(qFileName)) + group + ".qual"));
+ outputTypes["qual"].push_back((outputDir + m->getRootName(m->getSimpleName(qFileName)) + group + ".qual"));
+ }
}
- }else {
- outputNames.push_back((outputDir + m->getRootName(m->getSimpleName(fastaFile)) + group + ".fasta"));
- outputTypes["fasta"].push_back((outputDir + m->getRootName(m->getSimpleName(fastaFile)) + group + ".fasta"));
- if(qFileName != ""){
- outputNames.push_back((outputDir + m->getRootName(m->getSimpleName(qFileName)) + group + ".qual"));
- outputTypes["qual"].push_back((outputDir + m->getRootName(m->getSimpleName(qFileName)) + group + ".qual"));
- }
}
- }
-
+
}
else if(type == "REVERSE"){
Sequence oligoRC("reverse", oligo);
map<string, int>::iterator itBar = barcodes.find(oligo);
if (itBar != barcodes.end()) { m->mothurOut("barcode " + oligo + " is in your oligos file already."); m->mothurOutEndLine(); }
- barcodes[oligo]=index; index++;
- groupVector.push_back(group);
+ barcodes[oligo]=index; index++;
+ groupVector.push_back(group);
+
+ if(allFiles){
+ outputNames.push_back((outputDir + m->getRootName(m->getSimpleName(fastaFile)) + group + ".fasta"));
+ outputNames.push_back((outputDir + m->getRootName(m->getSimpleName(fastaFile)) + group + ".fasta"));
+ outFASTAVec.push_back((outputDir + m->getRootName(m->getSimpleName(fastaFile)) + group + ".fasta"));
+ if(qFileName != ""){
+ outQualVec.push_back((outputDir + m->getRootName(m->getSimpleName(qFileName)) + group + ".qual"));
+ outputNames.push_back((outputDir + m->getRootName(m->getSimpleName(qFileName)) + group + ".qual"));
+ outputTypes["qual"].push_back((outputDir + m->getRootName(m->getSimpleName(qFileName)) + group + ".qual"));
+ }
+ }
- if(allFiles){
- outputNames.push_back((outputDir + m->getRootName(m->getSimpleName(fastaFile)) + group + ".fasta"));
- outputNames.push_back((outputDir + m->getRootName(m->getSimpleName(fastaFile)) + group + ".fasta"));
- outFASTAVec.push_back((outputDir + m->getRootName(m->getSimpleName(fastaFile)) + group + ".fasta"));
- if(qFileName != ""){
- outQualVec.push_back((outputDir + m->getRootName(m->getSimpleName(qFileName)) + group + ".qual"));
- outputNames.push_back((outputDir + m->getRootName(m->getSimpleName(qFileName)) + group + ".qual"));
- outputTypes["qual"].push_back((outputDir + m->getRootName(m->getSimpleName(qFileName)) + group + ".qual"));
- }
- }
}else{ m->mothurOut(type + " is not recognized as a valid type. Choices are forward, reverse, and barcode. Ignoring " + oligo + "."); m->mothurOutEndLine(); }
}
m->gobble(inOligos);