X-Git-Url: https://git.donarmstrong.com/?a=blobdiff_plain;f=splitabundcommand.cpp;h=287086a28a3b0b1ecc18b3988f68ef41ec1909dc;hb=0fb6d165c8dc8dc7153a101513a05f457431d0bc;hp=f86891bde47d6817a3d65651b989f24c7533ea30;hpb=2a7d1455e8cfe4f67a7173f3a7249762c5436217;p=mothur.git diff --git a/splitabundcommand.cpp b/splitabundcommand.cpp index f86891b..287086a 100644 --- a/splitabundcommand.cpp +++ b/splitabundcommand.cpp @@ -20,7 +20,7 @@ SplitAbundCommand::SplitAbundCommand(string option) { else { //valid paramters for this command - string Array[] = {"name","group","label","accnos","groups","fasta","cutoff","outputdir","inputdir"}; //"list", + string Array[] = {"name","group","list","label","accnos","groups","fasta","cutoff","outputdir","inputdir"}; // vector myArray (Array, Array+(sizeof(Array)/sizeof(string))); OptionParser parser(option); @@ -146,7 +146,7 @@ SplitAbundCommand::SplitAbundCommand(string option) { void SplitAbundCommand::help(){ try { m->mothurOut("The split.abund command reads a fasta file and a list or a names file splits the sequences into rare and abundant groups. \n"); - m->mothurOut("The split.abund command parameters are list, name, cutoff, group, label, groups and accnos.\n"); + m->mothurOut("The split.abund command parameters are fasta, list, name, cutoff, group, label, groups, cutoff and accnos.\n"); m->mothurOut("The fasta and a list or name parameter are required, and you must provide a cutoff value.\n"); m->mothurOut("The cutoff parameter is used to qualify what is abundant and rare.\n"); m->mothurOut("The group parameter allows you to parse a group file into rare and abundant groups.\n"); @@ -155,8 +155,8 @@ void SplitAbundCommand::help(){ m->mothurOut("The groups parameter allows you to parse the files into rare and abundant files by group. \n"); m->mothurOut("For example if you set groups=A-B-C, you will get a .A.abund, .A.rare, .B.abund, .B.rare, .C.abund, .C.rare files. \n"); m->mothurOut("If you want .abund and .rare files for all groups, set groups=all. \n"); - m->mothurOut("The split.abund command should be used in the following format: split.abund(list=yourListFile, group=yourGroupFile, label=yourLabels, cutoff=yourCutoff).\n"); - m->mothurOut("Example: split.abundt(list=abrecovery.fn.list, group=abrecovery.groups, label=0.03, cutoff=2).\n"); + m->mothurOut("The split.abund command should be used in the following format: split.abund(fasta=yourFasta, list=yourListFile, group=yourGroupFile, label=yourLabels, cutoff=yourCutoff).\n"); + m->mothurOut("Example: split.abund(fasta=abrecovery.fasta, list=abrecovery.fn.list, group=abrecovery.groups, label=0.03, cutoff=2).\n"); m->mothurOut("Note: No spaces between parameter labels (i.e. list), '=' and parameters (i.e.yourListfile).\n\n"); } @@ -278,6 +278,9 @@ int SplitAbundCommand::execute(){ for (map::iterator itBool = wroteListFile.begin(); itBool != wroteListFile.end(); itBool++) { string filename = fileroot + itBool->first; + if ((itBool->first == "rare") || (itBool->first == "abund")) { + filename = fileroot + itBool->first + ".list"; + } if (itBool->second) { //we wrote to this file outputNames.push_back(filename); }else{ @@ -373,17 +376,17 @@ int SplitAbundCommand::writeList(ListVector* thisList) { ofstream rout; if (rareNames.size() != 0) { - string rare = outputDir + getRootName(getSimpleName(listfile)) + ".rare.list"; + string rare = outputDir + getRootName(getSimpleName(listfile)) + "rare.list"; wroteListFile["rare"] = true; openOutputFileAppend(rare, rout); rout << thisList->getLabel() << '\t' << numRareBins << '\t'; } if (abundNames.size() != 0) { - string abund = outputDir + getRootName(getSimpleName(listfile)) + ".abund.list"; + string abund = outputDir + getRootName(getSimpleName(listfile)) + "abund.list"; wroteListFile["abund"] = true; openOutputFileAppend(abund, aout); - rout << thisList->getLabel() << '\t' << numAbundBins << '\t'; + aout << thisList->getLabel() << '\t' << numAbundBins << '\t'; } for (int i = 0; i < thisList->getNumBins(); i++) {