]> git.donarmstrong.com Git - mothur.git/blobdiff - getoturepcommand.cpp
pds' small change to sffinfo
[mothur.git] / getoturepcommand.cpp
index 9dfc8bdeadc83c9784a42c10d66b26efcd52e8d4..b872d1a17b16b3472f189045621b325c2b816d36 100644 (file)
@@ -214,6 +214,7 @@ void GetOTURepCommand::help(){
                m->mothurOut("The default value for label is all labels in your inputfile.\n");
                m->mothurOut("The sorted parameter allows you to indicate you want the output sorted. You can sort by sequence name, bin number, bin size or group. The default is no sorting, but your options are name, number, size, or group.\n");
                m->mothurOut("The large parameter allows you to indicate that your distance matrix is too large to fit in RAM.  The default value is false.\n");
+               m->mothurOut("The group parameter allows you provide a group file.\n");
                m->mothurOut("The groups parameter allows you to indicate that you want representative sequences for each group specified for each OTU, group name should be separated by dashes. ex. groups=A-B-C.\n");
                m->mothurOut("The get.oturep command outputs a .fastarep and .rep.names file for each distance you specify, selecting one OTU representative for each bin.\n");
                m->mothurOut("If you provide a groupfile, then it also appends the names of the groups present in that bin.\n");
@@ -522,7 +523,7 @@ string GetOTURepCommand::findRep(vector<string> names) {
        try{
                // if only 1 sequence in bin or processing the "unique" label, then 
                // the first sequence of the OTU is the representative one
-               if ((names.size() == 1) || (list->getLabel() == "unique")) {
+               if ((names.size() == 2) || (names.size() == 1) || (list->getLabel() == "unique")) {
                        return names[0];
                }else{
                        vector<int> seqIndex(names.size());
@@ -754,7 +755,7 @@ int GetOTURepCommand::processNames(string filename, string label) {
 
                        if (sequence != "not found") {
                                if (sorted == "") { //print them out
-                                       rep = rep + "|" + toString(i+1);
+                                       rep = rep + "\t" + toString(i+1);
                                        rep = rep + "|" + toString(binsize);
                                        if (groupfile != "") {
                                                rep = rep + "|" + group;
@@ -780,7 +781,7 @@ int GetOTURepCommand::processNames(string filename, string label) {
                        //print them
                        for (int i = 0; i < reps.size(); i++) {
                                string sequence = fasta->getSequence(reps[i].name);
-                               string outputName = reps[i].name + "|" + toString(reps[i].bin);
+                               string outputName = reps[i].name + "\t" + toString(reps[i].bin);
                                outputName = outputName + "|" + toString(reps[i].size);
                                if (groupfile != "") {
                                        outputName = outputName + "|" + reps[i].group;
@@ -793,6 +794,7 @@ int GetOTURepCommand::processNames(string filename, string label) {
                out.close();
                out2.close();
                
+               remove(filename.c_str());
                rename(tempNameFile.c_str(), filename.c_str());
                
                return 0;