X-Git-Url: https://git.donarmstrong.com/?a=blobdiff_plain;f=getseqscommand.cpp;h=9f2b5060fcaa715f9a2fd3fc484ba585d6322da9;hb=fa08e82ec2dd48f73d051c210dad54a403308949;hp=d40dcc6a30d20080770ac806855295f98ed83df3;hpb=de67504f85e091a3049ef4c5df8e77f7dcb1d814;p=mothur.git diff --git a/getseqscommand.cpp b/getseqscommand.cpp index d40dcc6..9f2b506 100644 --- a/getseqscommand.cpp +++ b/getseqscommand.cpp @@ -188,8 +188,7 @@ GetSeqsCommand::GetSeqsCommand(string option) { if (accnosfile == "not open") { abort = true; } else if (accnosfile == "not found") { accnosfile = ""; m->mothurOut("You must provide an accnos file."); m->mothurOutEndLine(); abort = true; } - accnosfile2 = validParameter.validFile(parameters, "accnos2", true); - if (accnosfile2 == "not open") { abort = true; } + if (accnosfile2 == "not found") { accnosfile2 = ""; } fastafile = validParameter.validFile(parameters, "fasta", true); if (fastafile == "not open") { abort = true; } @@ -779,6 +778,30 @@ int GetSeqsCommand::compareAccnos(){ set namesDups; set namesAccnos = names; + map nameCount; + + if (namefile != "") { + ifstream inName; + m->openInputFile(namefile, inName); + + + while(!inName.eof()){ + + if (m->control_pressed) { inName.close(); return 0; } + + string thisname, repnames; + + inName >> thisname; m->gobble(inName); //read from first column + inName >> repnames; //read from second column + + int num = m->getNumNames(repnames); + nameCount[thisname] = num; + + m->gobble(inName); + } + inName.close(); + } + while(!in.eof()){ in >> name; @@ -797,21 +820,27 @@ int GetSeqsCommand::compareAccnos(){ m->mothurOut("Names in both files : " + toString(namesDups.size())); m->mothurOutEndLine(); for (set::iterator it = namesDups.begin(); it != namesDups.end(); it++) { - out << (*it) << endl; + out << (*it); + if (namefile != "") { out << '\t' << nameCount[(*it)]; } + out << endl; } out << "Names unique to " + accnosfile + " : " + toString(namesAccnos.size()) << endl; m->mothurOut("Names unique to " + accnosfile + " : " + toString(namesAccnos.size())); m->mothurOutEndLine(); for (set::iterator it = namesAccnos.begin(); it != namesAccnos.end(); it++) { - out << (*it) << endl; + out << (*it); + if (namefile != "") { out << '\t' << nameCount[(*it)]; } + out << endl; } out << "Names unique to " + accnosfile2 + " : " + toString(namesAccnos2.size()) << endl; m->mothurOut("Names unique to " + accnosfile2 + " : " + toString(namesAccnos2.size())); m->mothurOutEndLine(); for (set::iterator it = namesAccnos2.begin(); it != namesAccnos2.end(); it++) { - out << (*it) << endl; + out << (*it); + if (namefile != "") { out << '\t' << nameCount[(*it)]; } + out << endl; } out.close();