X-Git-Url: https://git.donarmstrong.com/?a=blobdiff_plain;f=mothurout.cpp;h=1a3bf79f50dad4e0a66e9910bb4abfe8c2cff944;hb=28bcfc4a41b8b82f66636587e0d4d355d07cbdd1;hp=dfcf25b4447d28362dae3f27a4e9cfd27e362d8e;hpb=0cefb55a2616975bd4a144fc345693695ffc9bb6;p=mothur.git diff --git a/mothurout.cpp b/mothurout.cpp index dfcf25b..1a3bf79 100644 --- a/mothurout.cpp +++ b/mothurout.cpp @@ -43,7 +43,7 @@ set MothurOut::getCurrentTypes() { types.insert("tree"); types.insert("flow"); types.insert("biom"); - types.insert("counttable"); + types.insert("count"); types.insert("processors"); return types; @@ -79,7 +79,7 @@ void MothurOut::printCurrentFiles() { if (treefile != "") { mothurOut("tree=" + treefile); mothurOutEndLine(); } if (flowfile != "") { mothurOut("flow=" + flowfile); mothurOutEndLine(); } if (biomfile != "") { mothurOut("biom=" + biomfile); mothurOutEndLine(); } - if (counttablefile != "") { mothurOut("counttable=" + counttablefile); mothurOutEndLine(); } + if (counttablefile != "") { mothurOut("count=" + counttablefile); mothurOutEndLine(); } if (processors != "1") { mothurOut("processors=" + processors); mothurOutEndLine(); } } @@ -1052,6 +1052,9 @@ int MothurOut::openInputFile(string fileName, ifstream& fileHandle){ int MothurOut::renameFile(string oldName, string newName){ try { + + if (oldName == newName) { return 0; } + ifstream inTest; int exist = openInputFile(newName, inTest, ""); inTest.close(); @@ -1541,7 +1544,6 @@ vector MothurOut::splitWhiteSpace(string input){ //********************************************************************************************************************** int MothurOut::readTax(string namefile, map& taxMap) { try { - //open input file ifstream in; openInputFile(namefile, in); @@ -1572,6 +1574,23 @@ int MothurOut::readTax(string namefile, map& taxMap) { } } in.close(); + + if (rest != "") { + vector pieces = splitWhiteSpace(rest); + + for (int i = 0; i < pieces.size(); i++) { + if (columnOne) { firstCol = pieces[i]; columnOne=false; } + else { secondCol = pieces[i]; pairDone = true; columnOne=true; } + + if (pairDone) { + //are there confidence scores, if so remove them + if (secondCol.find_first_of('(') != -1) { removeConfidences(secondCol); } + taxMap[firstCol] = secondCol; + if (debug) { mothurOut("[DEBUG]: name = '" + firstCol + "' tax = '" + secondCol + "'\n"); } + pairDone = false; + } + } + } return taxMap.size(); @@ -1584,7 +1603,6 @@ int MothurOut::readTax(string namefile, map& taxMap) { /**********************************************************************************************************************/ int MothurOut::readNames(string namefile, map& nameMap, bool redund) { try { - //open input file ifstream in; openInputFile(namefile, in); @@ -1615,6 +1633,23 @@ int MothurOut::readNames(string namefile, map& nameMap, bool red } } in.close(); + + if (rest != "") { + vector pieces = splitWhiteSpace(rest); + + for (int i = 0; i < pieces.size(); i++) { + if (columnOne) { firstCol = pieces[i]; columnOne=false; } + else { secondCol = pieces[i]; pairDone = true; columnOne=true; } + + if (pairDone) { + //parse names into vector + vector theseNames; + splitAtComma(secondCol, theseNames); + for (int i = 0; i < theseNames.size(); i++) { nameMap[theseNames[i]] = firstCol; } + pairDone = false; + } + } + } return nameMap.size(); @@ -1627,7 +1662,6 @@ int MothurOut::readNames(string namefile, map& nameMap, bool red /**********************************************************************************************************************/ int MothurOut::readNames(string namefile, map& nameMap, int flip) { try { - //open input file ifstream in; openInputFile(namefile, in); @@ -1655,6 +1689,20 @@ int MothurOut::readNames(string namefile, map& nameMap, int flip } } in.close(); + + if (rest != "") { + vector pieces = splitWhiteSpace(rest); + + for (int i = 0; i < pieces.size(); i++) { + if (columnOne) { firstCol = pieces[i]; columnOne=false; } + else { secondCol = pieces[i]; pairDone = true; columnOne=true; } + + if (pairDone) { + nameMap[secondCol] = firstCol; + pairDone = false; + } + } + } return nameMap.size(); @@ -1667,7 +1715,7 @@ int MothurOut::readNames(string namefile, map& nameMap, int flip /**********************************************************************************************************************/ int MothurOut::readNames(string namefile, map& nameMap, map& nameCount) { try { - nameMap.clear(); nameCount.clear(); + nameMap.clear(); nameCount.clear(); //open input file ifstream in; openInputFile(namefile, in); @@ -1700,6 +1748,24 @@ int MothurOut::readNames(string namefile, map& nameMap, map pieces = splitWhiteSpace(rest); + + for (int i = 0; i < pieces.size(); i++) { + if (columnOne) { firstCol = pieces[i]; columnOne=false; } + else { secondCol = pieces[i]; pairDone = true; columnOne=true; } + + if (pairDone) { + //parse names into vector + vector theseNames; + splitAtComma(secondCol, theseNames); + for (int i = 0; i < theseNames.size(); i++) { nameMap[theseNames[i]] = firstCol; } + nameCount[firstCol] = theseNames.size(); + pairDone = false; + } + } + + } return nameMap.size(); } @@ -1711,7 +1777,6 @@ int MothurOut::readNames(string namefile, map& nameMap, map& nameMap) { try { - //open input file ifstream in; openInputFile(namefile, in); @@ -1736,6 +1801,17 @@ int MothurOut::readNames(string namefile, map& nameMap) { } } in.close(); + + if (rest != "") { + vector pieces = splitWhiteSpace(rest); + + for (int i = 0; i < pieces.size(); i++) { + if (columnOne) { firstCol = pieces[i]; columnOne=false; } + else { secondCol = pieces[i]; pairDone = true; columnOne=true; } + + if (pairDone) { nameMap[firstCol] = secondCol; pairDone = false; } + } + } return nameMap.size(); @@ -1747,8 +1823,7 @@ int MothurOut::readNames(string namefile, map& nameMap) { } /**********************************************************************************************************************/ int MothurOut::readNames(string namefile, map >& nameMap) { - try { - + try { //open input file ifstream in; openInputFile(namefile, in); @@ -1779,6 +1854,22 @@ int MothurOut::readNames(string namefile, map >& nameMap) } in.close(); + if (rest != "") { + vector pieces = splitWhiteSpace(rest); + + for (int i = 0; i < pieces.size(); i++) { + if (columnOne) { firstCol = pieces[i]; columnOne=false; } + else { secondCol = pieces[i]; pairDone = true; columnOne=true; } + + if (pairDone) { + vector temp; + splitAtComma(secondCol, temp); + nameMap[firstCol] = temp; + pairDone = false; + } + } + } + return nameMap.size(); } catch(exception& e) { @@ -1789,7 +1880,6 @@ int MothurOut::readNames(string namefile, map >& nameMap) /**********************************************************************************************************************/ map MothurOut::readNames(string namefile) { try { - map nameMap; //open input file @@ -1820,6 +1910,20 @@ map MothurOut::readNames(string namefile) { } } in.close(); + + if (rest != "") { + vector pieces = splitWhiteSpace(rest); + for (int i = 0; i < pieces.size(); i++) { + if (columnOne) { firstCol = pieces[i]; columnOne=false; } + else { secondCol = pieces[i]; pairDone = true; columnOne=true; } + + if (pairDone) { + int num = getNumNames(secondCol); + nameMap[firstCol] = num; + pairDone = false; + } + } + } return nameMap; @@ -1872,6 +1976,29 @@ int MothurOut::readNames(string namefile, vector& nameVector, m } in.close(); + if (rest != "") { + vector pieces = splitWhiteSpace(rest); + + for (int i = 0; i < pieces.size(); i++) { + if (columnOne) { firstCol = pieces[i]; columnOne=false; } + else { secondCol = pieces[i]; pairDone = true; columnOne=true; } + + if (pairDone) { + int num = getNumNames(secondCol); + + map::iterator it = fastamap.find(firstCol); + if (it == fastamap.end()) { + error = 1; + mothurOut("[ERROR]: " + firstCol + " is not in your fastafile, but is in your namesfile, please correct."); mothurOutEndLine(); + }else { + seqPriorityNode temp(num, it->second, firstCol); + nameVector.push_back(temp); + } + + pairDone = false; + } + } + } return error; } catch(exception& e) { @@ -1882,7 +2009,7 @@ int MothurOut::readNames(string namefile, vector& nameVector, m //********************************************************************************************************************** set MothurOut::readAccnos(string accnosfile){ try { - set names; + set names; ifstream in; openInputFile(accnosfile, in); string name; @@ -1900,6 +2027,10 @@ set MothurOut::readAccnos(string accnosfile){ } in.close(); + if (rest != "") { + vector pieces = splitWhiteSpace(rest); + for (int i = 0; i < pieces.size(); i++) { names.insert(pieces[i]); } + } return names; } catch(exception& e) { @@ -1927,6 +2058,11 @@ int MothurOut::readAccnos(string accnosfile, vector& names){ for (int i = 0; i < pieces.size(); i++) { names.push_back(pieces[i]); } } in.close(); + + if (rest != "") { + vector pieces = splitWhiteSpace(rest); + for (int i = 0; i < pieces.size(); i++) { names.push_back(pieces[i]); } + } return 0; }